前端视角下的转转客服通信过程( 二 )

?我想退货?? 这个问题,但是这个问题在不同场景下有不同的答案,比如订单的状态不同,回复的内容自然也就不同,所以还需要用户提供订单信息 。
人工会话?当机器人无法解决用户的咨询时,会转接到人工客服 。人工客服会在客服工作台完成与用户的对话,整体工作台分为两个部分 。左侧区域是客服的 IM 会话区域,包括了 IM 能力、联系人管理、发送不同类型消息等功能 。右侧是客服的工作台,包括了查询用户的相关订单、信息等 。以及很重要的创建客服工单的能力 。
排队机制在进入人工客服时,如果当前客服人员都在忙碌中,那么会进入排队队列,等待客服人员空闲后,再进入会话 。排队的策略会由多种条件决定,主要有

  1. 客服的熟练度
  2. 当前已经接入的会话数
  3. 进入排队的时间
通过这三个条件,来决定排队的顺序,优先接入熟练度高的客服,同时也会考虑到客服的负载情况,避免客服过于繁忙 。
评价?在完成会话后,针对这次会话,用户可以进行评价 。评价主要有以下几种形式
  1. 客服邀请评价
  2. 用户主动评价
  3. 结束会话时评价
  4. 二次进线时评价
  5. 离线评价
  6. 机器人评价
不同形式的评价,触发的时机不同,评价的内容也不同 。但整体来看,都会对本次服务进行打分,包括满意、一般和不满意 。
IM 的前端设计?在 IM 的前端机制中,主要包含了 ACK 机制、心跳机制、重连机制、消息重发机制等 。这些机制都是为了保证消息的可靠性,即使在网络不稳定的情况下,也能保证消息的可靠传输 。
  • 「ACK 机制」:用户发送的每一条信息都有一个 ack 回执,通过该回执知道当前信息是否发送成功 。相应的在用户端页面,收到 ack 消息,会把消息的 loading 状态去掉,代表发送成功 。
  • 「心跳机制」:每隔一段时间(7 秒钟),客户端会发送一个心跳包,服务端会返回一个心跳包,用于检测客户端与服务端的连接是否正常 。在机器人对话中,超过 2 分钟无心跳响应,或在人工会话中,超过 5 分钟无心跳响应,便会清除该会话 。
更多 IM 的基础设计,可以参考之前的文章:??WebIM 原理解析??
除了基本的 WebSocket 类,还需要一个业务逻辑类,关键方法如下
 
class KFClient {sendInitialInfo() {}// 发送初始信息sendNormalMsg() {}// 发送普通消息sendMsgesRead() {}// 发送消息已读状态requestQueue() {}// 用户请求排队sendEvaluation() {}// 用户发送评价onIMMsg(callback) {}// 收到消息事件注册onMsgAck(callback) {}// 收到ack消息事件注册onKfWriting(callback) {}// 收到IM客服正在输入消息...} 
总结?以上便是客服系统的主要流程,从用户进入到客服系统,到最后的会话结束,整个流程中,客服系统会通过机器人、人工客服、评价等多个环节,来完成用户的咨询 。客服系统也会通过多种手段,来提升用户的体验,更好的服务用户 。

【前端视角下的转转客服通信过程】


推荐阅读