Skip to main content

标签回调

Shulex → 第三方:回传流程标签(可选)
当渠道配置了 tagsUrl 时,Shulex 会在回复成功或需要转人工时回传流程标签。调用时会携带渠道配置的 replyAuthHeader(如有)。

触发场景

请求信息

replyAuthHeader 为渠道配置中的回复鉴权 Header,会同时用于 replyUrltagsUrl 请求。

请求体

字段说明

tags 的处理语义

tags 是覆盖式回传,不是简单追加。 第三方收到回调后,应将请求体中的 tags 作为该工单最终标签全集保存。 Shulex 生成最终标签的流程如下:
  1. 通过 queryUrl 查询工单当前标签。
  2. 保留第三方已有的业务标签。
  3. 根据本次动作移除互斥状态标签。
  4. 合并本次 AI 状态标签、意图标签和转人工标签。
  5. 去重后回传最终标签集合。
如果 queryUrl 未配置或查询失败,Shulex 会退化为仅回传本次生成的标签,不会阻断 AI 回复流程。

标签来源

AI 回复成功标签

AI 回复成功后,Shulex 会回写:
  • repliedTags:AI 回复成功标签
  • callbackTags:AI 回复成功后追加的固定标签
例如:
最终可能回传:

AI 意图标签

只有当 createIntentTags=true 时,Shulex 才会根据 AI 返回的 intents 生成标签。 处理规则:
  1. 忽略名称为 other 的意图。
  2. 如果配置了 allowedIntents,只处理白名单中的意图。
  3. 如果配置了 intentTagMappings,优先使用映射后的标签。
  4. 没有配置映射时,使用意图名称作为标签,并将空格替换为 _
  5. 同一批标签会自动去重。
示例配置:
当 AI 返回 refund_request 时,回调示例:

转人工标签

当 AI 或过滤规则决定转人工时,Shulex 会回写:
  • handoffTags
  • 可选的转人工原因标签
只有当 addHandoffReasonTag=true 且转人工原因不为空时,才会追加原因标签。 例如:
回调示例:

互斥状态处理

为避免工单同时处于 AI 回复和转人工状态,Shulex 会执行以下清理: 第三方业务标签不会被删除,只会清理上述互斥状态标签。

回调触发条件

以下情况会触发 tagsUrl
  • AI 回复成功,并配置了 repliedTagscallbackTags
  • AI 意图打标成功,并启用了 createIntentTags
  • AI 或规则判断转人工,并配置了 handoffTags
  • 本次处理最终存在可回写的标签
以下情况不会调用 tagsUrl
  • 未配置 tagsUrl
  • 本次没有任何标签
  • 标签列表为空

第三方处理建议

第三方系统收到回调后应:
  1. 根据 ticketId 定位工单。
  2. 使用 tags 覆盖保存工单最终标签。
  3. 可使用 baseTicketTag 判断当前工单主状态。
  4. 可使用 intentTags 区分本次 AI 生成的意图标签。
  5. 建议按照 ticketId + messageId 实现幂等处理。
  6. 尽快返回 HTTP 2xx,实际标签更新可以异步执行。
标签回调失败不会阻断已经完成的 AI 回复。

期望响应

第三方成功处理后应尽快返回任意 2xx 状态码。例如:

幂等与失败处理

  • 建议使用 ticketId + messageId + tags 作为幂等依据;未传 messageId 时可退化为 ticketId + tags
  • tagsUrl 未配置时不会发送标签回调。
  • 标签回调失败不会撤销已完成的回复或转人工判断;仍建议记录失败并按第三方策略补偿。