适用场景
您可以通过此方案对接自建或者第三方的 AI 机器人,依托智能客服丰富的开放接口,自定义开发客服场景。智能客服已为您提供 用户端集成方案 和 客服工作台,用户可通过移动端、小程序或网页端给客服号发送消息,与自建或第三方的 AI 机器人对话,转人工成功后,客服人员可在 工作台 接待用户咨询。
用户端:用户与 AI 的聊天消息和与人工客服的消息都在同一个会话中合并显示。
客服端:转人工后,人工客服也能看到用户跟 AI 聊天的历史消息。
准备工作
消息流程总览
消息流程如下图所示:

1. 发消息:用户发送消息给客服号。
2. 消息回调:智能客服后台将消息回调至开发者后台,开发者后台需立即响应成功。
3. 请求 AI 服务:开发者后台调用 AI 服务。
4. REST API 回消息:开发者后台调用 REST API 发送消息回复用户。
5. 回消息:步骤2-5循环执行,用户和机器人不停进行问答。
6. REST API 转人工:开发者后台识别到用户有转人工意图,调用 REST API 转人工服务。
7. 转人工:用户由人工客服服务。
开发流程指引
配置回调地址
集成用户端
开发者后台处理消息回调
对应消息流程总览的步骤2:用户端发送消息给客服号之后,智能客服后台通过上述配置的回调地址,将该消息回调至开发者后台,回调的协议格式请参见 会话事件回调(Event 是 "ChatBot.UserSendMsg")。开发者后台收到回调请求后,需立即响应成功,然后再开始处理业务逻辑(例如请求第三方 AI 服务)。
自建AI与智能客服机器人的灰度切换
若您已经使用智能客服的机器人上线了业务,希望灰度切换到自建 AI ,可以通过回调请求的响应来控制灰度节奏和比例。
{"AIProvider": 0}
响应包如下时表示本次用户的消息由智能客服机器人来处理。此时开发者后台不再需要进行流程总览里的步骤3、步骤4、步骤6。
{"AIProvider": 1}
字段说明如下:
| 字段 | 类型 | 属性 | 说明 | 
| AIProvider | Integer | 选填 | 0表示使用自建 AI,1表示使用智能客服机器人。默认为0 | 
回复消息
转人工
常见问题
如何实现欢迎卡片功能?
监听启动会话的消息回调
{"MsgBody": [{"MsgType": "TIMCustomElem","MsgContent": {"Data": "{\\"customerServicePlugin\\":0,\\"src\\":\\"7\\"}"}}]}
其中的 Data 字段为如下 JSON 结构序列化后的值:
{"customerServicePlugin": 0,"src": "7"}
发送欢迎卡片消息
{ "MsgBody": [ { "MsgType": "TIMCustomElem", "MsgContent": { "Data": "{\\"customerServicePlugin\\":0,\\"src\\":\\"29\\",\\"subtype\\":\\"welcome_msg\\",\\"content\\":{\\"title\\":\\"猜你想问:\\",\\"items\\":[{\\"content\\":\\"智能客服提供哪些功能\\"},{\\"content\\":\\"如何修改机器人知识库\\"},{\\"content\\":\\"客服在哪里收发消息\\"},{\\"content\\":\\"如何设置工作时间\\"},{\\"content\\":\\"是否支持发送满意度评价\\"}]}}" } } ] }
其中的 Data 字段为如下 JSON 结构序列化后的值:
{ "customerServicePlugin": 0, "src": "29", "subtype": "welcome_msg", "content": { "title": "猜你想问", "content": "", "items": [ { "content": "智能客服提供哪些功能" }, { "content": "如何修改机器人知识库" }, { "content": "客服在哪里收发消息" }, { "content": "如何设置工作时间" }, { "content": "是否支持发送满意度评价" } ] } }