Skip to content

分配客服

POST /visitor/chatting/find

为当前 Token 对应的访客分配一个客服。访客页在获取基础数据后调用;服务端会先确认是否已有正在进行的会话,再按机器人、历史客服和分组候选规则选择客服。

响应中的 data.agent_id 是后续获取聊天记录发送消息和输入状态接口使用的客服 ID。

分配规则

groupid 决定新会话从哪个分组中找客服;它不会强制打断访客已经在进行的会话。服务端按以下顺序处理:

  1. 继续当前会话:该访客只要已有一条进行中的会话,就继续使用该会话的客服。即使这次入口传入了其他分组,或该客服目前不在线,也不会在这里自动换人;已被禁用的客服除外。
  2. 分配机器人:没有当前会话且已启用知识库插件时,若入口分组有状态正常的机器人,优先交给机器人。
  3. 找回历史人工客服:没有机器人可用时,尝试复用该访客在同一分组最近接待过、当前在线、接待状态正常且未过期的人工客服;已结束的历史会话也可用于这一步。
  4. 从分组候选中选择:仍未命中时,先找在线且正常接待的客服;没有时依次放宽为“在线但离开”“离线但未过期”“账号正常但已过期”。候选不足时才返回“该分组下没有可用的客服”。

候选人之间的选择依据是其 chatting 记录中最大的 id:值最小的优先,没有记录的客服优先。因此它是一个基于历史分配记录的近似轮换,不是按当前接待数量、未读数或最后一条消息时间进行负载均衡;并列时不应依赖固定顺序。

离线不是自动失败

首次分配的最后两层候选允许选到离线或已过期但账号状态仍正常的客服,响应中的 state 会反映该状态。客户端应正常展示结果,不要把“已分配但客服离线”误判为接口失败。只有没有任何候选账号时才会返回错误。

会话与转接的关系

  • 调用本接口只会建立或复用一条会话记录;首次分配本身不会向客服工作台推送一条新咨询。访客发送消息后,会话才进入客服的进行中列表并产生未读提醒。
  • 客服手动转接后,目标客服成为该访客的当前接待方。之后再次调用本接口会优先继续该转接后的会话,不会按入口分组重新分配。
  • 机器人会话中,访客点击“转人工”或发送明确的转人工请求时,系统只在同分组的在线、正常接待、未过期人工客服中选择;优先复用最近接待过该访客的人工客服。没有合适人工客服时,保留机器人会话,并发送“无人工在线提示”。
  • 客服在工作台手动转接时,目标可以是同商户中账号正常且不是工单专员的客服;该操作不受自动分配的分组、在线和到期筛选限制。客户端应通过 conversation.transferred 事件更新当前会话,事件处理见会话与消息事件

请求参数

字段位置类型必填用途
groupidbodynumber客服分组 ID;默认分组传 0
langbodystring访客语言。未传时服务端按访客、客服和 Accept-Language 解析。
uniqueIdbodystring | number客户端关联标识,仅用于问候语实时事件关联。

成功响应

尖括号内字段为运行时值。机器人客服的部分字段由账户配置决定。

json
{
  "code": 0,
  "msg": "ok",
  "data": {
    "agent_id": "<客服 ID>",
    "nickname": "<客服昵称>",
    "signature": "<客服签名>",
    "state": "<online 或 offline>",
    "avatar": "<客服头像 URL 或相对路径>",
    "greeting": "",
    "translate": "<on 或 off>",
    "visitor_lang": "<客服面向访客的语言代码>",
    "level": "<客服角色>",
    "groupid": 0
  }
}
字段类型用途
data.agent_idstring后续获取消息、发送消息和输入状态必须传递的客服 ID;仅允许字母、数字、下划线或连字符,长度 1–64,不能为 0
data.nicknamestring客服展示昵称。
data.signaturestring客服签名;未设置时为空字符串。
data.statestring分配结果中的客服状态。
data.avatarstring客服头像地址。
data.greetingstring当前响应固定清空;问候语由 message.created 实时事件下发。
data.translatestring客服翻译开关。
data.visitor_langstring客服面向访客的语言偏好。
data.levelstring客服账户角色,例如普通客服或机器人。
data.groupidnumber本次会话所属分组。