功能说明
智能客服会话事件回调,包含了会话开始,机器人会话阶段消息,转人工中,转人工成功,人工会话阶段消息,转接,会话关闭等会话期间的关键事件及消息回调通知。
注意事项
要启用回调,必须配置回调 URL并打开事件回调开关。
回调的方向是即时通信 IM 后台向 App 后台发起 HTTP POST 请求。
收到事件通知后应异步处理内部逻辑,同步返回接收成功应答。
App 后台在收到回调请求之后,务必校验请求 URL 中的参数 SDKAppID 是否是自己的 SDKAppID。
其他安全相关事宜请参见 第三方回调简介:安全考虑 文档。
接口说明
请求 URL 示例
以下示例中 App 配置的回调 URL 为
https://www.example.com
。
示例:https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json&ClientIP=$ClientIP&OptPlatform=$OptPlatform
请求参数说明
参数 | 说明 |
https | 请求协议为 HTTPS,请求方式为 POST |
www.example.com | 回调 URL |
SdkAppid | 创建应用时在即时通信 IM 控制台分配的 SDKAppID |
CallbackCommand | 固定为 Desk.SessionEventNotify |
contenttype | 固定值为 JSON |
ClientIP | 客户端 IP,格式例如:127.0.0.1 |
OptPlatform |
请求包示例
{"CallbackCommand": "Desk.SessionEventNotify","SessionId": "session_id","Event": "ChatBot.RobotSendMsg","EventTime": 1725540020017,"ChannelType": "SDK","ClientUserId": "client_user_id","CustomerServiceId": "@customer_service_account","AgentId": "agent_id","MsgKey": "msg_key","MsgBody": [{"MsgType": "TIMTextElem","MsgContent": {"Text": "1212121234345"}}],"CloudCustomData": "","IsContactUser": false}
请求包字段说明
字段 | 类型 | 说明 |
CallbackCommand | String | 回调命令 |
SessionId | String | 会话的 SessionID |
Event | String | 事件类型: 详见事件类型列表及说明 |
EventTime | Integer | 事件触发的毫秒级别时间戳 |
ChannelType | String | 渠道类型: SDK:SDK 集成渠道 Web(H5):Web 渠道 |
ClientUserId | String | 用户 ID |
CustomerServiceId | String | 客服号 |
AgentId | String | 客服 ID |
MsgKey | String | 消息类事件的消息 Key |
MsgBody | Array | |
CloudCustomData | String | 消息自定义数据 |
IsContactUser | Bool | 是否客服主动联系用户 |
事件类型列表及说明
事件类型 | 说明 |
SessionBegin | 会话开始 |
ChatBot.RobotSendMsg | 机器人会话中,机器人消息 |
ChatBot.UserSendMsg | 机器人会话中,用户消息 |
Human.AgentSendMsg | 人工会话中,客服消息 |
Human.UserSendMsg | 人工会话中,用户消息 |
TransferringToHuman | 转人工中 |
TransferringToHumanWait | 转人工等待 |
TransferToHumanSuccess | 转人工成功 |
NoAgentOnline | 无客服在线 |
SessionUserEnd | 用户结束会话 |
SessionAgentEnd | 客服结束会话 |
SessionUserTimeoutEnd | 用户超时结束会话 |
SessionPendingAutoFinishEnd | 排队中自动结束(用户离线) |
SessionEnd | 会话结束 |
应答包示例
App 后台同步数据后,发送回调应答包。
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0}
应答包字段说明
字段 | 类型 | 属性 | 说明 |
ActionStatus | String | 必填 | 请求处理的结果,OK 表示处理成功,FAIL 表示失败 |
ErrorCode | Integer | 必填 | 错误码,此处填0表示忽略应答结果 |
ErrorInfo | String | 必填 | 错误信息 |