Salesforce Chat 配置

Salesforce Chat 配置

[TOC]

Salesforce Chat 就是早期的Salesforce Live Agent,用于Service Cloud的在线客服模块,一般配合Omni-Channel模块来实现在线聊天功能

image-20230329151055790

前置条件

  • 需要Service Cloud 的许可证
  • 如果使用Live Chat,需要Digital Engagement,或者是UE 版本的Service Cloud

配置

Chat的配置都在设置==>聊天中

image-20230329151210485

1. 聊天设置

启用在线聊天功能,SF自动生成对应的聊天API信息,不需要修改;

2. 聊天客服人员配置

主要是设置客服人员界面功能

  • 基本信息:如预览功能启用:当客户在文本框中输入内容时,客服能实时查看,欢迎用语与客服名称
  • 管理者设置:客服主管相关的设置,如耳语功能,主管对客服的协助等
  • 聊天转移相关的设置,如:聊天转移给其它人员

3. 聊天按钮 & 邀请

设置聊天按钮或者邀请,聊天按钮设置好后,可以放到任意网页界面,比如官网,community 等;

配置好路由信息,如选择全方位,技能等,及每个客服人员同时能接入几个聊天

4. 部署

创建部署后,会自动生成对应的脚本

5. 嵌入服务

嵌入服务是整合聊天代码与设置,统成输出一段代码,将该代码贴到对应的网站,就能直接在线聊天了

在嵌入服务中,点新建,选择嵌入聊天,填写基本信息,选择site

image-20230329153630346

  • 聊天设置:

    • 选择前面配置的聊天按钮与部署,保存后,再设置聊天前与品牌化
    • 聊天前表单:绑定表单对应的对象,如个案,设置用户点聊天按钮后弹出的窗口的表单的字段 ​
  • 离线支持:启用后,如果没有坐席在线,则会提示用户,让用户填写表单后,直接生成个案

  • 其他品牌化:针对聊天窗口做设置,比如聊天头像,聊天背景等,可以结合网站的样式,聊天窗口做统一的样式调整

    • 标签一栏:针对窗口中的元素做翻译
  • 使用 Lightning 组件自定义:

    • 这里主要是针对聊天组件开放自定义,聊天页头,聊天文本,最小化,聊天前

      聊天前表单自定义时,比如:当用户点在线聊天,先给用户展示常见问题列表,然后才发起聊天

​ 当所有个性化设置完成后,点获取代码按钮,得到在线聊天的代码,将代码粘到对应的网站上,即可

image-20230329155243561

6. 测试

  • 在站点中,创建一个WebChat VF页面来模拟官网,将代码贴到VF中,在站点简档中,将WebChat VF页面加入公开访问中

  • CORS:将域名加入,处理跨域问题

    访问VF页面,在右下角点聊天按钮,弹出对应表单:

    image-20230329165323834iShot_2023-03-29_16.51.30

客服的聊天界面,针对客服的界面,可以做设置,比如一侧显示个案与联系人,另一侧显示知识库,将得到相关的信息,快速更新到个案或者联系人字段上 iShot_2023-03-29_16.51.56

补充:

  • 快速文本功能:这个功能对客服比较实用,可以将一些固定语句,提交录入系统,在使用时,点击插入,快速插入文本,也可以在电子邮件中使用

    image-20230329165950939

  • 聊天转移:选择聊天队列、用户或转移此聊天的技能

    image-20230329170141426

  • 文件:在线聊天支持用户上传文件,但操作上有点不太方便,客服请求上传文件,选择将文件上传到那个记录上,用户端会有个上传文件的图标,点击上传文件

    image-20230329170418095image-20230329170452844

  • 关于聊天代码,聊天代码有许多属性开放给开发者修改,具体看对应文档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 Web Components for Embedded Service for Web

  • 目前了解下来:针对聊天前表单界面,嵌入服务设置中是提供Lightning 组件重写,那针对聊天后,常见的场景是,满意度调查,比如本次服务打分等操作,查资料,在聊天按钮里可以设置聊天后页面,只能选择VF页面,在聊天按钮里也可以设置聊天表单界面,也只能选择VF页面,或者托管聊天页面的URL,另聊天按钮中生成的JS 代码也可以放到任意网页中,只不过需要自己处理相关按钮,而用嵌入服务,则SF直接生成好代码,只需要微调就能直接使用;

    image-20230329223330935

以下为聊天后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的可以快速搭建在线聊天,满足基本的聊天需求,国内使用,在点聊天按钮时,需要加载较长时间,这点也咨询过相关人员,回复,是由于要加载大量的脚本,所以会有点慢
    • 跟国内电商的在线聊天体验感相差大,客户会提出,能不能像某东那样的功能,我在那个页面,当点在线聊天时,把用户当前访问页面或者商品发送到聊天中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章