Salesforce Chat 配置
[TOC]
Salesforce Chat 就是早期的Salesforce Live Agent,用于Service Cloud的在线客服模块,一般配合Omni-Channel模块来实现在线聊天功能
前置条件
- 需要Service Cloud 的许可证
- 如果使用Live Chat,需要Digital Engagement,或者是UE 版本的Service Cloud
配置
Chat的配置都在设置==>聊天中
1. 聊天设置
启用在线聊天功能,SF自动生成对应的聊天API信息,不需要修改;
2. 聊天客服人员配置
主要是设置客服人员界面功能
- 基本信息:如预览功能启用:当客户在文本框中输入内容时,客服能实时查看,欢迎用语与客服名称
- 管理者设置:客服主管相关的设置,如耳语功能,主管对客服的协助等
- 聊天转移相关的设置,如:聊天转移给其它人员
3. 聊天按钮 & 邀请
设置聊天按钮或者邀请,聊天按钮设置好后,可以放到任意网页界面,比如官网,community 等;
配置好路由信息,如选择全方位,技能等,及每个客服人员同时能接入几个聊天
4. 部署
创建部署后,会自动生成对应的脚本
5. 嵌入服务
嵌入服务是整合聊天代码与设置,统成输出一段代码,将该代码贴到对应的网站,就能直接在线聊天了
在嵌入服务中,点新建,选择嵌入聊天,填写基本信息,选择site
-
聊天设置:
- 选择前面配置的聊天按钮与部署,保存后,再设置聊天前与品牌化
- 聊天前表单:绑定表单对应的对象,如个案,设置用户点聊天按钮后弹出的窗口的表单的字段
-
离线支持:启用后,如果没有坐席在线,则会提示用户,让用户填写表单后,直接生成个案
-
其他品牌化:针对聊天窗口做设置,比如聊天头像,聊天背景等,可以结合网站的样式,聊天窗口做统一的样式调整
- 标签一栏:针对窗口中的元素做翻译
-
使用 Lightning 组件自定义:
-
这里主要是针对聊天组件开放自定义,聊天页头,聊天文本,最小化,聊天前
聊天前表单自定义时,比如:当用户点在线聊天,先给用户展示常见问题列表,然后才发起聊天
-
当所有个性化设置完成后,点获取代码按钮,得到在线聊天的代码,将代码粘到对应的网站上,即可
6. 测试
-
在站点中,创建一个WebChat VF页面来模拟官网,将代码贴到VF中,在站点简档中,将WebChat VF页面加入公开访问中
-
CORS:将域名加入,处理跨域问题
访问VF页面,在右下角点聊天按钮,弹出对应表单:
客服的聊天界面,针对客服的界面,可以做设置,比如一侧显示个案与联系人,另一侧显示知识库,将得到相关的信息,快速更新到个案或者联系人字段上
补充:
-
快速文本功能:这个功能对客服比较实用,可以将一些固定语句,提交录入系统,在使用时,点击插入,快速插入文本,也可以在电子邮件中使用
-
聊天转移:选择聊天队列、用户或转移此聊天的技能
-
文件:在线聊天支持用户上传文件,但操作上有点不太方便,客服请求上传文件,选择将文件上传到那个记录上,用户端会有个上传文件的图标,点击上传文件
-
关于聊天代码,聊天代码有许多属性开放给开发者修改,具体看对应文档Customizable Parameters in the Embedded Chat Code
var initESW = function(gslbBaseURL) { embedded_svc.settings.displayHelpButton = true; //或为假 embedded_svc.settings.language = 'zh-cn'; //例如,输入 'en' 或 'en-US' //embedded_svc.settings.defaultMinimizedText = '...'; //(默认设置为与专家聊天) //embedded_svc.settings.disabledMinimizedText = '...'; //(默认设置为客服人员离线) //embedded_svc.settings.loadingText = ''; //(默认设置为正在加载) //embedded_svc.settings.storageDomain = 'yourdomain.com'; //(为部署设置域,这样访客可在聊天会话期间导航子域。) // 聊天 的设置 //embedded_svc.settings.directToButtonRouting = function(prechatFormData) { // Dynamically changes the button ID based on what the visitor enters in the pre-chat form. // Returns a valid button ID. //}; //embedded_svc.settings.prepopulatedPrechatFields = {}; //设置自动填充聊天前表单格字段 //embedded_svc.settings.fallbackRouting = []; //按钮 ID、用户 ID 或 userId_buttonId 的数组 //embedded_svc.settings.offlineSupportMinimizedText = '...'; //(默认设置为联系我们) embedded_svc.settings.enabledFeatures = ['LiveAgent']; embedded_svc.settings.entryFeature = 'LiveAgent';
-
针对聊天前表单自定义组件代码参考官方示例,在基础上修改
-
目前了解下来:针对聊天前表单界面,嵌入服务设置中是提供Lightning 组件重写,那针对聊天后,常见的场景是,满意度调查,比如本次服务打分等操作,查资料,在聊天按钮里可以设置聊天后页面,只能选择VF页面,在聊天按钮里也可以设置聊天表单界面,也只能选择VF页面,或者托管聊天页面的URL,另聊天按钮中生成的JS 代码也可以放到任意网页中,只不过需要自己处理相关按钮,而用嵌入服务,则SF直接生成好代码,只需要微调就能直接使用;
以下为聊天后VF页面,能获取到聊天相关的信息,通过这一途径可以解决聊天后满意度调查的问题
<apex:page id="afterafterchatchat">
<div id='details'>
<!-- This will present all the post chat parameters available to this page -->
<h1>Post Chat Page</h1>
<p>
<!-- These variables are passed to the post-chat page and can be used to customize your post-chat experience -->
Request Time: <apex:outputText id="c_rt" value="{!$CurrentPage.parameters.requestTime}" /><br/>
Start Time: <apex:outputText id="c_st" value="{!$CurrentPage.parameters.startTime}" /><br/>
Deployment Id: <apex:outputText value="{!$CurrentPage.parameters.deploymentId}" /><br/>
Button Id: <apex:outputText value="{!$CurrentPage.parameters.buttonId}" /><br/>
Chat Key: <apex:outputText value="{!$CurrentPage.parameters.chatKey}" /><br />
Last Visited Page: <apex:outputText value="{!$CurrentPage.parameters.lastVisitedPage}" /><br/>
Original Referrer: <apex:outputText value="{!$CurrentPage.parameters.originalReferrer}" /><br/>
<!-- When the GeoLocation is not available this will appear as Unknown -->
Latitude: <apex:outputText value="{!$CurrentPage.parameters.latitude}" /><br/>
Longitude: <apex:outputText value="{!$CurrentPage.parameters.longitude}" /><br/>
City: <apex:outputText value="{!$CurrentPage.parameters.city}" /><br/>
Region: <apex:outputText value="{!$CurrentPage.parameters.region}" /><br/>
Country: <apex:outputText value="{!$CurrentPage.parameters.country}" /><br/>
<!-- End of GeoLocation information -->
Organization: <apex:outputText value="{!$CurrentPage.parameters.organization}" /><br/>
Disconnected By: <apex:outputText value="{!$CurrentPage.parameters.disconnectedBy}" /><br/>
Window Language: <apex:outputText value="{!$CurrentPage.parameters.windowLanguage}" /><br/>
Chat Details: <apex:outputText value="{!$CurrentPage.parameters.chatDetails}" /><br />
Transcript: <apex:outputText value="{!$CurrentPage.parameters.transcript}" /><br/>
Attached Records : <apex:outputText value="{!$CurrentPage.parameters.attachedRecords}" /><br />
Error: <apex:outputText value="{!$CurrentPage.parameters.error}" /><br />
</p>
</div>
<hr/>
<!-- Message to show if chat is abandoned -->
<div id='abandoned' style='display: none;'>
We are sorry you decided to leave the chat. Feel free to initiate a new session.
</div>
<!-- Code to decide if we show the abandoned block or the full data -->
<script type='text/javascript'>
var requestTime = '{!$CurrentPage.parameters.requestTime}';
var startTime = '{!$CurrentPage.parameters.startTime}';
// when startTime doesn't have a value, it means the chat never started
if (!startTime) {
document.getElementById('details').style.display = 'none';
document.getElementById('abandoned').style.display = 'block';
}
</script>
</apex:page>
- 使用体验
- 通过Service Cloud的可以快速搭建在线聊天,满足基本的聊天需求,国内使用,在点聊天按钮时,需要加载较长时间,这点也咨询过相关人员,回复,是由于要加载大量的脚本,所以会有点慢
- 跟国内电商的在线聊天体验感相差大,客户会提出,能不能像某东那样的功能,我在那个页面,当点在线聊天时,把用户当前访问页面或者商品发送到聊天中