微信二次开发如何设计人工接管锁?WechatApi 多客服同时处理同一客户时的并发控制
官网友情链接: wechatapi.net
微信智能客服进入多人协作以后,经常会出现一个问题:

同一个客户问题,两个客服同时看到。
客服A点击接管。
客服B几乎同时也点击。
如果系统没有并发控制,两个人都进入“处理中”。
A发一句。
B也发一句。
客户收到两个不同答案。
这比机器人重复回复更加尴尬。
所以微信二次开发中的人工接管不能只是:
handoff = true。
还需要“接管锁”。
WechatApi 可以作为个人微信API接入层,把客户消息、群聊和会话送入业务系统,本地客服系统负责接管锁、负责人、超时和转移。
一、接管锁解决什么问题
确保同一个会话同一时间只有一个主处理人。
其他客服可以:
查看;
协助。
但不能同时拥有主回复权。
二、一个具体例子
客户C发:
“登录一直失败。”
任务进入公共客服池。
A和B都打开。
A在10:00:01点击接管。
B在10:00:01.2也点击。
数据库使用原子更新:
owner is null → A。
A成功。
B收到:
“该会话已由A接管。”
这就是锁。
三、不能只在前端按钮变灰
两个浏览器并发时,前端控制不可靠。
必须由服务端原子操作。
例如数据库条件更新或分布式锁。
四、锁要有lease
客服A接管后电脑断网。
如果永久锁住,客户没人处理。
所以锁可以有:
lease_until。
客服工作台持续续租。
长时间没有活动:
锁自动释放或进入异常。
五、人工回复可以续租
A每次查看或发送消息:
延长lease。
表示仍然在处理。
六、锁超时不能直接随机分配
超时后:
先通知A;
再进入公共池;
或者分配备用负责人。
具体按业务配置。
七、WechatApi 在这里的位置
WechatApi 负责:
微信消息;
会话;
客户。
客服系统负责:
接管锁;
人工负责人;
超时;
转移。
八、群聊接管粒度要更细
不要锁整个群。
可以锁:
群 + 客户 + 问题会话。
否则A处理一个客户,会阻止其他客服处理群里另一个问题。
九、机器人也要尊重人工锁
存在有效人工接管锁:
普通自动回复暂停。
但后台风险识别继续运行。
十、主管可以强制转移
A临时离开。
主管把会话转给B。
记录:
原负责人;
新负责人;
原因。
十一、协助人和主负责人分开
技术人员可以作为协助人查看和给内部建议。
但客户可见回复仍由主负责人控制。
十二、锁冲突日志
谁尝试接管;
谁成功;
谁失败;
什么时候。
后续可以分析客服协作。
十三、锁和工单负责人不一定相同
微信会话客服A。
技术工单负责人C。
两者独立。
不要强制同步。
十四、接管完成要主动释放
问题关闭。
释放锁。
会话恢复自动化或关闭。
不要一直等超时。
十五、异常
锁超过2小时但无任何回复。
进入异常中心。
主管检查。
十六、权限
普通客服接管自己队列。
主管强制转移。
管理员配置lease时间。
十七、数据看板
平均接管时间;
锁超时;
转移次数;
并发冲突;
人工处理时长。
十八、总结
微信二次开发进入多人客服场景以后,“转人工”并不意味着问题自动解决。
WechatApi 可以把客户会话稳定送入系统。
本地客服层还要通过:
接管锁;
lease;
续租;
超时;
强制转移;
机器人静默;
保证一个客户问题在同一时间由明确负责人处理。
没有接管锁,多客服系统很容易从“协作”变成“抢话”。
只有人工责任边界清晰,微信智能客服才能真正实现机器人和人工、多个人工之间的稳定协作。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)