Webhooks:事件回调
快速阅读
Webhook 是呼叫中心在事件发生后,主动 HTTP 访问企业接收地址的事件回调。企业先配好目标地址和推送动作,运行时按类型、条件、超时和重试把数据送出去;通话事实仍以话单为准。
- 管理端入口:企业配置 → 高级设置 → 推送设置。也可通过 OpenAPI 维护同一套对象。
- 先建目标接口(URL、GET / POST、表单 / JSON、超时),再按事件类型建推送动作并启用。
- 接收方建议返回 HTTP
200,并按mainUniqueId/uniqueId做幂等;必须能忽略尚未识别的事件类型。 - 查送达看事件回调日志(页面常叫推送日志)和 Webhook 监控。失败不代表通话没发生。
- 工作台里的 AgentSDK 事件、服务端 SDK 控通话、OpenAPI 回拉话单,都不是本页这条 HTTP 回调。
阅读地图
- 先分清和推送产品、工作台事件、服务端 SDK 的边界:读“二”和“九”。
- 要配地址、类型、超时和重试:读“六”。
- 要看什么时候真正发出去:读“四”和“六、3”。
- 要联调和验收:读“八”和“附录 C”。
一、文档说明
客户要把响铃弹屏、接通写回 CRM、挂机同步工单、话单或录音状态交给自建系统时,通常不是让业务系统来轮询,而是让呼叫中心在事件发生时回调企业 URL。
本文说明这条 HTTP 事件回调怎么定位、先配什么、何时生效、失败怎么看。逐类型参数、条件表达式和加工脚本建议结合 推送产品 一起确认;送达对账看 事件回调日志。
适用:对接 CRM / 工单 / 自建中台的技术负责人、实施顾问、需要确认事件是否发出的运营管理员。
二、产品总览
Webhook 的对象是已经发生的事件通知,不是座席工作台里的本地事件,也不是服务端去改这一通怎么接、怎么转。
企业给一个 http:// 或 https:// 地址,选定事件类型;呼叫中心在来电、响铃、接通、挂机、座席状态、话单、录音等节点按配置把参数推过去,并记下对方回了什么。
| 集成入口 | 解决什么 | 典型动作 |
|---|---|---|
| Webhooks:事件回调(本文) | 平台访问企业 URL,通知事件 | 配目标接口和推送动作;企业接口收包并回 200 |
| 推送产品 | 同一套能力的配置体系与类型清单 | 参数映射、条件、延迟、加密、脚本 |
| 服务端 SDK | 通话进行中由企业服务端干预 | 转接、挂机、放音等控制 |
| 座席工作台集成 · 事件 | 浏览器 / AgentSDK 本地订阅 | AgentSDK.on(EventType.…) |
| 数据与分析集成 | 事后查询话单、录音、报表 | OpenAPI 拉取,不是回调 |
| 呼叫中心管理集成 | 管座席、队列、任务等配置对象 | 企业调平台,方向相反 |
三、核心概念
| 概念 | 说明 |
|---|---|
| Webhook / 事件回调 | 平台主动访问企业接收地址;页面和接口里也常叫推送 |
| 目标接口 | 发到哪里:名称、URL、方法、内容类型、超时 |
| 推送动作 | 什么时候发:类型、启用、参数、条件、重试、延迟、是否同时推座席端 |
| 推送类型 | 来电、外呼、WebCall、SIP、座席状态、录音、话单、转写等分组 |
| 启用 | 未启用的动作不会发出 |
| 条件 | 不满足则本条事件不发 |
| 超时 | 等待企业接口的秒数,范围 1~10 |
| 重试 | 失败后自动再发;次数 0~3,间隔 0~60 秒 |
| 延迟推送 | 事件发生后再等 0~900 秒再发 |
mainUniqueId / uniqueId | 串联话单、录音和本条回调的通话标识 |
| 座席工号 | 字段里常见 cno,对应 agent ID,不是员工账号 |
四、对象关系与运行链路
管理端或 OpenAPI
目标接口(URL / 方法 / 格式 / 超时)
推送动作(类型 / 启用 / 参数 / 条件 / 重试 / 延迟)
↓
运行时事件发生(来电、响铃、接通、挂机、状态、话单、录音…)
↓
匹配已启用动作 → 判断条件 → 组装参数(可选加工、加密)
↓
HTTP GET 或 POST 到企业 URL
↓
企业接口响应 → 写入事件回调日志
↓
失败则按重试策略再发;仍失败可在日志里人工重推四个层次不要混:
| 层次 | 含义 | 只看这个不够 |
|---|---|---|
| 页面已配置 | 目标接口和动作已保存 | 未启用或条件不匹配仍不会发 |
| 流程实际进入 | 通话或业务事件已经发生 | 事件有了,不等于回调已发出 |
| 系统实际生效 | 平台按配置发起了 HTTP | 发出去不等于企业处理成功 |
| 企业侧实际响应 | 接收地址返回了可接受的 HTTP 状态 | 响应成功不等于 CRM 工单已建好 |
改 URL 或停用动作,对之后发生的事件生效。已经失败的记录不会因为改配置自动改写,需要靠自动重试或日志里的重推。
五、能力地图
实际能开哪些类型,以企业开通能力和推送设置里可见分组为准。常见分组如下。
| 分组 | 典型事件 | 企业侧通常用来做什么 |
|---|---|---|
| 来电 | 到达、座席侧响铃、接通、挂机、转移 / 咨询接通、队列排队 | 弹屏、写会话、挂机回写 |
| 外呼 | 预览 / 主叫 / 预测外呼的响铃、接听、挂断、任务与失败 | 任务结果、座席辅助 |
| WebCall | 首叫 / 转接响铃与接听、请求回调 | 页面呼叫与回呼 |
| SIP 接入 | 进入、响铃、接通 | SIP 对接系统同步 |
| 状态 | 座席状态、号码状态识别、录音状态 | 调度、策略、质检取录音 |
| 转写与分析 | ASR、RASR、对话分析、智能体文本 | 质检和分析平台 |
| 话单与其他 | 主话单、从话单、DTMF、满意度、IVR 交互结束 | 对账、闭环、审计 |
完整类型、建议参数和接收系统见 推送产品 附录。平台后续可能新增类型,接收方不要因为不认识就返回失败,见 系统兼容性。
六、配置项与生效
1. 配置来源与优先级
| 来源 | 作用 |
|---|---|
| 管理端 · 推送设置 | 主入口:目标接口 + 推送动作 |
| OpenAPI 推送管理 | 与页面同一套对象,适合批量或自动化 |
| 企业级兜底重推 | 统一补偿策略,和单条动作的重试一起看 |
| 动作上的“推座席端” | 部分类型可只推座席端、只推 HTTP,或两者都推 |
同一条动作如果既引用了已有目标接口、又填了直配 URL,以目标接口为准。重试如果写了策略对象,以策略对象为准,不再看动作上单独的次数和间隔。
2. 目标接口
| 配置项 | 作用 | 条件与注意事项 |
|---|---|---|
| 名称 | 企业内唯一,供动作引用 | 改名不影响已发出的日志 |
| URL | 企业接收地址 | 必须以 http:// 或 https:// 开头;要公网可达 |
| 请求方式 | POST 或 GET | 带体量大的建议 POST |
| 内容类型 | 表单或 JSON | 与企业接口约定一致 |
| 超时 | 等待响应秒数 | 1~10;超时记失败并可能重试 |
配错表现:日志里连接失败、超时、证书错误,或一直打到旧地址。
3. 推送动作
| 配置项 | 作用 | 条件与注意事项 |
|---|---|---|
| 名称 | 企业内唯一 | 用于检索,不参与通话标识 |
| 推送类型 | 绑定哪一类事件 | 创建后类型不可改;要换类型需新建 |
| 启用 | 是否参与匹配 | 停用立即挡住后续事件 |
| 目标接口 / 直配 | 发到哪里 | 见上文优先级 |
| 参数 | 发出去的字段名和取值 | 字段名按企业接口约定;通话类务必带 mainUniqueId 或 uniqueId |
| 条件 | 满足才发 | 不满足时日志里可能看不到这条,属未发送 |
| 重试次数 / 间隔 | 失败后自动再发 | 次数 0~3,间隔 0~60 秒;下游慢时不要拉满 |
| 延迟 | 事件后再等几秒 | 0~900 秒;适合等录音或话单字段齐 |
| 数据加工 / 加密 | 发出前改结构或保护号码 | 配错表现为企业收到空字段或解不开 |
| 推座席端 | 是否同时给工作台 | 只推座席端时,企业 URL 不会收到 HTTP |
4. 企业接收约定
- 成功:返回 HTTP
200。响应体保持简短,便于日志对照,例如{"code":0,"message":"success"}。 - 失败:非
200、超时、连接失败都可能触发重试。 - 幂等:同一通话同一类型可能因重试或重推到达多次,用
mainUniqueId/uniqueId+ 类型去重。 - 未知类型:解析后忽略即可,不要整单失败。
- 处理时长:业务入库放到异步,先回
200,避免拖过超时。
七、典型业务场景
- 呼入弹屏:来电到达或座席侧响铃回调 CRM,用客户号码和热线号码打开资料。
- 接通写回:来电接通或外呼双方接听后,工单记下座席工号和接通时间。
- 挂机闭环:挂机或主话单回调后更新结果;以话单字段为业务终态,不以回调快慢为准。
- 录音给质检:录音状态推送带录音地址,质检系统再去取文件。
- 座席调度:座席状态变更推到自建监控,和综合状态页对账。
八、上线准备与运营建议
- 测试租户先做一条来电响铃或挂机,确认企业接口能被公网访问。
- 参数先带企业编号、通话标识、座席工号、客户号码,再加业务字段。
- 超时先给到能稳定回
200的值,再收紧;重试从1~2次看起。 - 生产按系统拆分 URL,不要所有类型打进同一个不好排查的处理函数。
- 每天看失败量和响应耗时:Webhook 监控看健康,事件回调日志看单条。
- 推送失败时先对
uniqueId查话单,再决定要不要重推。
九、与周边能力的关系
| 能力 | 关系 |
|---|---|
| 推送产品 | 类型清单、参数、条件、脚本的详细说明 |
| 事件回调日志 | 每一次 HTTP 尝试的送达证明 |
| Webhook 监控 | 推送是否健康、是否重试、耗时如何 |
| 操作审计日志 | 大类入口;用户操作日志能看到谁改过配置、谁点了重推 |
| 主话单 / 从话单 | 通话事实;回调结果不符时以话单为准 |
| 座席工作台集成 · 事件 | 座席浏览器里的实时事件,不是企业服务端 HTTP |
| 服务端 SDK | 控通话;本页只收通知 |
| 呼叫中心管理集成 | 企业调平台;本页是平台调企业 |
| 系统兼容性 | 新增事件类型时接收方要能兼容 |
十、FAQ
页面保存了,为什么日志没有?
动作未启用、条件不满足、选错类型,或事件还没发生。先打一通测试电话,再按类型和时间查日志。
日志成功了,CRM 里没有记录?
平台只证明 HTTP 被企业接口接收。要在企业侧用通话标识查自己的处理队列和落库。
回调失败,话单会不会丢?
不会。话单独立沉淀。补的是通知,不是重放通话。
和工作台弹屏是一回事吗?
不是。工作台可用 AgentSDK 事件;企业中台用本页 HTTP。部分动作可以两种都推,要分别验收。
能不能靠 Webhook 转接或挂机?
不能。收通知走本页;通话中控制走服务端 SDK 或工作台。
十一、总结
先配可达的目标接口,再按类型启用推送动作,用一通测试电话走完“事件发生 → 日志成功 → 企业落库”。Webhook 解决的是事件怎么通知出去,不替代话单,也不替代通话控制。
附录 A:入口与权限
| 项 | 说明 |
|---|---|
| 文档入口 | CTICloud 系统集成 → 实时会话控制集成 → Webhooks:事件回调 |
| 管理端配置 | 企业配置 → 高级设置 → 推送设置 |
| 管理端对账 | 推送日志(事件回调日志) |
| 健康观察 | 数据管理与分析 → 系统监控 → Webhook 监控 |
| 开放能力 | OpenAPI 推送管理(目标接口、推送动作);查询权限与密钥勾选一致 |
附录 B:关键字段口径
| 字段 | 口径 |
|---|---|
| URL | 企业接收地址;改了只影响之后的发送 |
| 推送类型 | 事件种类;创建后不可改 |
| 启用 | 停用则后续事件不匹配该动作 |
| 超时 | 1~10 秒,超时计失败 |
| 重试次数 | 0~3;另有间隔秒数 |
| 延迟 | 0~900 秒后再发 |
mainUniqueId | 一通主通话锚点,联查主话单 |
uniqueId | 某一段通话或从话单 |
cno | 座席工号 |
| 状态码 / 响应文本 | 企业接口回包,写在事件回调日志里 |
附录 C:实施检查清单
- 测试环境 URL 公网可达,证书和防火墙已放行平台出口
- 目标接口方法、内容类型与企业接口一致
- 至少一条动作已启用,类型与要测的呼叫一致
- 通话标识、座席工号、客户号码已放入参数
- 企业接口对重复回调幂等,对未知类型不报错
- 测试呼叫后,事件回调日志能看到成功记录
- 人为返回非
200时,重试次数与间隔符合配置 - 失败样例能用
uniqueId对上话单 - 生产密钥只开推送管理需要的权限
附录 D:常见问题速查
| 现象 | 可能原因 | 建议处理 |
|---|---|---|
| 完全没有日志 | 未启用、类型不对、条件过滤、事件未发生 | 对照动作和测试呼叫 |
| 连接失败 / 超时 | URL 不可达、超时过短、企业处理太慢 | 先回 200 再异步处理 |
| 4xx / 5xx | 企业校验失败或服务异常 | 对照请求参数和响应文本 |
| 同一通话多条相同回调 | 重试或人工重推 | 按标识幂等 |
| 有回调无话单字段 | 发早了,录音或话单未齐 | 加延迟或改用话单 / 录音类型 |
| 只工作台有、企业没有 | 动作只推了座席端 | 改为 HTTP 或同时推 |
| 改了 URL 旧失败还打旧地址 | 历史记录按当时配置重推 | 新事件看新 URL;旧单按需重配后再重推 |
Updated about 2 months ago