一洽客服系统客服端接入业务系统

1.业务系统应用场景

客服的工作场景需要客服频繁的在不同的系统间切换来帮助客户解决问题或者进行答疑。一洽提供业务集成模块的目的是为了让客服的大部分业务操作能方便快捷的在一洽系统的对话页面完成,从而提高客服的工作效率和对访客的服务质量。

您是否也遇到了以下类似的问题,如果有,一洽的业务系统集成模块可能能帮助到您。

场景一:

访客:我的积分为什么被清零了
客服:????您是哪位?什么级别的会员???

场景二:

访客:我刚下的订单弄错了,想取消怎么做呢
客服:您下单的手机号?订单号?购买的商品类型?
访客:我的手机号XXX,订单号在哪里找
客服:截图指引
访客:我的订单号xxxxx
客服:稍等正在帮您查询。。。。。
10秒钟。。。20秒钟。。。30秒钟。。。
客服:继续对话

场景三:

访客:我要退货
客服:。。。。。
访客:。。。。。。
客服进入退换货系统进行操作,10秒钟。。。20秒钟。。。
新对话接入
新问题产生
客服:解答问题

一洽工作台示例:




2.业务系统配置

使用管理者的权限登录一洽软件后,在设置-API接口页面,填写(如下图):

1、填写您的业务系统URL和名称,该名称标签会显示在客服界面。
2、选择该URL要接收的业务数据,一洽服务器会通过iframe框架加载您的URL,并且通过GET方式传递您选择的业务数据至URL。
3、选择显示该标签的访客角色,比如该标签是“退换货”,而您希望只有登录的会员才显示“退换货”,那您就可以选择访客的角色是“登录的会员”,那么如果是未登录的访客咨询,则该URL不会被加载,客服也看不到“退换货”标签。 请根据您的实际情况选择。
4、选择显示该标签的客服分组,还比如标签是“退换货”,而您希望只有“退货组”才能看到该标签,其他组是看不到该标签的,那么您可以选择显示该标签的客服分组为“退货组” ,那么其他组的客服是不能看到该标签的,URL也不会被加载。

3.检验业务系统

客服端在加载已配置的业务系统时会将签名信息通过GET的方式传递给开发者的URL,双方通过签名来验证请求的合法性。
GET请求携带的参数如下表示:

参数 描述
signature 一洽加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自一洽服务器,则进入正常的业务处理,否则进入异常处理流程:

1)将token、timestamp、nonce三个参数进行字典序排序

2)将三个参数字符串拼接成一个字符串进行sha1加密
                    
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于一洽

检验signature的JAVA示例代码:

public boolean verifyUrl(String msgSignature, String timeStamp, String nonce)
    throws AesException {
    String signature = SHA1.getSHA1(token, timeStamp, nonce);
        
    if (!signature.equals(msgSignature)) {
        throw new AesException(AesException.ValidateSignatureError);
    }
        
    return true;
}
			

一洽的签名生成方式和微信一致。

C# C++ Java PHP Python 微信代码示例下载:示例代码

示例:

token:myToken
timestamp:myTimestamp
nonce:myNonce
signature输出:81ceaac69a2f44be4f98d4adbea202d5792c62bb
getUrl:http://api.myserver.com/myBuinessPage?timestamp=myTimestamp&nonce=myNonce&signature=81ceaac69a2f44be4f98d4adbea202d5792c62bb

4.企业业务系统接收来自一洽的业务数据

一洽业务数据按照数据分类,以GET请求的参数形式传递给企业业务系统,业务参数如果存在多个属性值,则将多个属性以A=1&B=2的形式拼接完做URLEncode后赋值给业务参数。
例如:登录客服 数据
传参示例:

logData=logStaffId%3D14%26logStaffLogname%3D13666666666%26logStaffName%3D%E9%83%91%E4%B8%BD%E6%96%87%26logstaffRole%3D%E8%B6%85%E7%BA%A7%E7%AE%A1%E7%90%86%E5%91%98
			

urlDecode logData的值为:

logStaffId=14&logStaffLogname=13666666666&logStaffName=郑丽文&logstaffRole=超级管理员
			

4.1对话状态

参数:chatStatus
值:对话状态 0-未对话,1-对话开始,2-对话结束

4.2登录客服

参数:logData
子项描述:

参数 解释
logStaffId 登录客服的ID 例如:18
logStaffLogname 登录客服的登录名 例如:13666666666
logStaffName 登录客服的姓名
logStaffRole 登录客服的角色

4.3会员数据

参数:metaData
值:加密的会员信息,具体请参考访客端接入中的会员信息接入

4.4扩展数据

参数:myData
值:访客端接入时传给一洽的自定义业务数据,一洽原样返回给业务系统

4.5访客数据

参数:visitorData
子项描述:

参数 解释
visitorMedia 客户端的媒介,1-PC网页,2-手机网页,3-iphone sdk,4-android sdk,5-微信
visitorType 访客身份类型 -1未知,0-游客(web),1-会员(vip),2-SDK游客(sdk),4-微信(wechat),5-自定义接口(custom)
mediaId visitorType==5时,此值有效,值为自定义去掉的渠道ID
visitorId 访客ID,身份描述+ID 例如:vip123
visitorName 访客的姓名
visitorPhoto 访客的头像
visitTimes 访客来访的次数
visitorLan 访问者的语言,例如:en
visitorIp 访客的IP地址
visitorCountry 国家
visitorProvince 省份
visitorCity 城市
browserName 访客的浏览器名称
browserVersion 访客的浏览器版本号
screenResolution 访客的屏幕分辨率
osName 访客的操作系统
osVersion 访客的操作系统版本
se 访客来源的搜索引擎标识 例如:baidu
keyword 访客的来源搜索关键字 例如:一洽客服
keywordType 0:未区分SEO、推广 1:自然优化 2:推广
referPage 访客的来源页面 例如:http://www.echatsoft.com
firstTime 访客的进入网站时间 例如:2016-01-09 17:53:32
firstPage 访客的落地页 例如:http://www.echatsoft.com
firstPageTitle 落地页的标题 例如:一洽软件
lastChatTime 访客上次对话事件 例如:2015-07-08 11:23:36
lastChatStaffId 上次对话的客服ID
lastChatStaffLogname 上次对话的客服登录名
lastChatStaffName 上次对话的客服的姓名

4.6路由数据

参数:routeData
子项描述:

参数 解释
routeId 访客进入网站或者发起对话所触发的路由ID -1表示web默认 -2表示微信默认 -3表示SDK默认
routeName 路由名称 例如:一洽客服
styleId 路由所使用的样式ID
chatDepartmentId 接待分组的ID,0代表没有分组
chatDepartmentName 接待分组的名称 例如:一洽售后组

4.7对话数据

参数:chatData
正在对话的访客此参数有效
子项描述:

参数 解释
chatPage 对话发起页面 例如:http://www.echatsoft.com
chatPageTitle 对话页面标题 例如:一洽软件
chatTimes 历史对话次数
chatEvent 对话发起的方式,1-点击图标,2-邀请对话,3-主动对话
chatRequestTime 请求对话的时间
chatAnswerTime 对话接通的时间
chatType 对话的类型,1-在线对话,2-忙碌对话,3-离线消息
chatStaffId 接待对话的客服ID
chatStaffLogname 接待对话的客服登录名
chatStaffName 接待对话的客服姓名
chatStaffRole 接待对话的客服的内部角色名称
chatEntrance 对话入口 访客端传参为echatTag的值
chatRecordId(已废弃) 对话记录的ID
uniqueRecordId 会话记录的唯一值ID,组成方式为:${talkType}_${talkId}
talkType定义:
1:人工对话
3:留言会话
5:机器人会话

4.8客户数据

参数:crmData
子项描述:

参数 解释
visitorId 访客的唯一值
category 访客类别 例如:意向客户
name 访客姓名
nickName 访客昵称
gender 性别,0-未知, 1-男, 2-女
age 年龄
birthday 生日 例如:2015-08-01
maritalStatus 婚姻状况 1:未婚 2:已婚 0:未知
phone 电话号码
qq QQ号码
wechat 微信号
email 邮箱地址
nation 国家
province 省份
city 城市
address 地址
photo 头像
memo 备注

4.9工单数据

参数:jobData
子项描述:

参数 解释
jobId 工单id
jobFrom 工单创建来源 1:web 2:邮件 3:控制台 4:sdk 5:接口创建
replyEmail 回复邮箱
createTime 工单创建时间 yyyy-MM - dd
jobStatus 工单状态 1:新建,2:已开启,3:待回应,4:已挂起,5:已解决,6:已关闭
jobDepartmentId 工单处理分组ID
jobStaffId 工单处理人ID

5. demo代码下载

说明:可下载对应语言的demo工程,直接在项目上修改即可快速实现会员接入以及业务系统对接。

5.1 JAVA demo下载

说明:可下载对应语言的demo工程,直接在项目上修改即可快速实现会员接入以及业务系统对接。
5.1 JAVA demo下载
下载地址:java demo

6.业务系统集成流程