发起自动外呼任务

本手册将引导您完成从创建外呼任务到启动、查看与导出结果的完整流程,帮助您快速上手自动外呼系统,实现高效批量外呼、任务追踪与结果管理。

1. 概览

当您开始使用自动外呼功能时,需要依次完成以下配置与操作:

  • 新建外呼任务:定义任务名称、呼叫并发、语音导航等基础信息,根据业务需求选择性配置定时任务与重呼策略
  • 导入外呼数据:通过页面或 API 接口导入待呼号码,支持配置通道变量以实现个性化外呼,或设置高优批次以调整呼叫顺序。
  • **自动外呼交互:**任务启动后,CTICloud批量呼叫客户,机器人与客户完成高自然度的多轮交互。
  • 查看呼叫数据:实时监控任务运行状态、呼叫结果,并深入分析机器人对话记录与交互日志。
  • 导出呼叫记录:根据多维条件筛选数据,批量导出呼叫记录、录音文件与对话文本,以便后续分析与复盘。

2. 外呼任务全流程概述

📋 自动外呼任务完整流程

┌───────────────────────────────────────────────┐
│              自动外呼任务全流程图              │
└───────────────────────────────────────────────┘

🚀 **步骤 1:新建外呼任务**
    └── 配置任务基础信息(任务名称、并发量、语音导航等)
    └── 按需设置定时任务、重呼策略、呼叫顺序等高级策略

📂 **步骤 2:导入号码数据**
    ├── 页面/接口导入,支持批量导入**通道变量**实现个性化外呼、
    └── 接口导入,可配置**批次与号码优先级**,实现高优插队呼叫。

🤖 **步骤 3:机器人外呼交互**
    ├── 自动拨打导入号码
    ├── 意图识别与智能对话
    └── 支持打断、重问等复杂交互逻辑

📊 **步骤 4:查看呼叫数据**
    ├── 任务呼叫记录(全部外呼)
    └── 机器人对话记录(接通会话)

📤 **步骤 5:结果导出**
    ├── 筛选与查询条件设置
    └── 数据导出与下载中心查看

⏱️ 预计操作时间

  • 任务创建与配置:约 3-5 分钟
  • 数据导入与验证:约 5 分钟
  • 呼叫执行与监控:任务运行期间自动完成
  • 数据导出与分析:约 5 分钟

3. 步骤详解

Step 1:新建外呼任务

页面位置

外呼任务 → 自动外呼任务 → 任务管理

操作步骤

  1. 点击 “新建任务” 按钮。
  2. 填写任务名称。
  3. 配置呼叫并发数量(建议根据线路数与并发上限合理设置)。
  4. 选择语音导航(用于机器人呼叫时的语音交互逻辑)。
  5. 选择外显号码(对外显示的主叫号码)。
  6. 点击 “保存”,任务将出现在任务管理列表中。

流程示意

graph TD
    A[任务管理页面] --> B[点击新建任务]

    %% 第三层:四个并列操作项
    B --> C1[填写任务名称]
    B --> C2[配置呼叫并发]
    B --> C3[选择语音导航]
    B --> C4[选择外显号码]

    %% 第四层:保存任务
    C1 --> D[保存任务]
    C2 --> D
    C3 --> D
    C4 --> D

    %% 第五层:任务创建完成
    D --> E[任务出现在任务管理列表中]

    %% 样式定义
    style A fill:#ff6b6b,color:#fff
    style B fill:#feca57,color:#fff
    style C1 fill:#54a0ff,color:#fff
    style C2 fill:#54a0ff,color:#fff
    style C3 fill:#54a0ff,color:#fff
    style C4 fill:#54a0ff,color:#fff
    style D fill:#1dd1a1,color:#fff
    style E fill:#95e1d3,color:#000

🗒️ Scenario1:使用任务模板,复用已有任务配置

任务模板用于快速复用已有任务配置,帮助用户在创建新任务时避免重复设置。

当用户选择一个模板后,系统会自动填充模板中保存的所有配置项(包括基础设置和高级设置),用户仍可在此基础上进行修改与调整。 用户也可以在任务模板管理页面,创建或编辑模板,以便后续快速创建相似任务。

⚠️ 注意:选择模板后,页面会立即加载模板内容覆盖已有配置,请在选择前确认已有配置是否需要保存

页面位置

外呼任务 → 自动外呼任务 → 任务模板

流程示意

graph TD
 A[任务模板页面] --> B[管理任务模板]
 B[管理任务模板] --> C[新建]
 B[管理任务模板] --> D[编辑]
 B[管理任务模板] --> E[删除]
 
 F[新建/编辑任务页面] --> G[选择任务模板]
 G[选择任务模板] --> H[手动修改配置]
 H[手动修改配置] --> J[保存任务]

style A fill:#ff6b6b,color:#fff
style B fill:#feca57,color:#fff
style C fill:#54a0ff,color:#fff
style D fill:#54a0ff,color:#fff
style E fill:#1dd1a1,color:#fff
style F fill:#1dd1a1,color:#fff
style G fill:#95e1d3,color:#000

Scenario2:配置定时任务,自动执行外呼计划

在部分业务场景下,用户希望外呼任务能够在指定时间自动开始与结束,而无需人工干预。 为此,系统提供了 定时任务功能,通过“定时开始”“定时完成”与“间隔呼叫”配置,可实现任务的自动启停与周期性执行。


功能说明

  • 定时开始:设置任务在指定日期与时间自动启动。
  • 定时完成:设置任务在设定的结束时间自动停止。
  • 间隔呼叫:在任务运行期间,根据“预计呼叫时间段”自动分时呼叫,避免在禁呼时间段内触发外呼。
  • 禁呼时间:用于限定不可拨打的时间段,与呼叫时间段互补,不可重叠。
⚠️

注意:

  • 定时呼叫时间段与禁呼时间段应完全互斥,且两者合计应覆盖 24 小时。
  • 定时开始时间应与“预计呼叫时间段”的起始时间保持一致。
  • 定时完成时间的日期应尽量延后,确保任务中的号码能正常呼完。

页面位置

外呼任务 → 自动外呼任务 → 任务管理 → 新建任务(或编辑任务) 企业配置 → 时间条件(配置预计呼叫时间段、禁呼时间段)

操作步骤

  1. 配置时间条件
    • 进入「企业配置 → 时间条件」页面。
    • 新建“预计呼叫时间段”(如:上午时间、下午时间)。
    • 新建“禁呼时间段”(如:禁呼时间-早、禁呼时间-晚)。
    • 确保两个时间段无重叠,合计覆盖 24 小时。
  2. 设置任务定时启动与停止
    • 进入「新建/编辑自动外呼任务 → 基础设置」。
    • 打开 定时开始,设置任务启动时间(与预计呼叫时间段开始时间保持一致)。
    • 打开 定时完成,设置任务结束时间(建议日期延后,时分秒设置在当前时间之后)。
  3. 配置间隔呼叫
    • 勾选 间隔呼叫
    • 选择“定时呼叫时间段”为已创建的预计呼叫时间段。
  4. 设置禁呼时间(高级设置)
    • 进入「高级设置」,选择对应的禁呼时间段。
  5. 保存任务
    • 点击保存后,任务将在设定时间自动启动并按配置执行。

示例场景

某企业希望外呼任务每天上午 9:00 自动开始,下午 18:00 自动结束,夜间禁止外呼。 操作步骤:

  1. 在“时间条件”中设置“预计呼叫时间段”为 09:00–18:00,“禁呼时间段”为 00:00-08:59、18:01–23:59。
  2. 新建任务时,开启定时开始(09:00)、定时完成(18:00)、间隔呼叫并选择该时间段。
  3. 任务将在每天 9 点自动启动,18 点自动停止,无需人工操作。

流程示意

graph TD
    A[Enterprise Configuration - Time Conditions] --> B[Create Expected Call Time Period]
    A --> C[Create Do-Not-Call Time Period]

    D[Create/Edit Task Page] --> J[Basic Settings]
    J --> E[Configure Scheduled Start & End]
    E --> F[Enable Interval Calling & Select Time Period]
    D --> K[Advanced Settings]
    K --> L[Configure Do-Not-Call Time]
    F --> H[Save Task]
    L --> H
    H --> I[Task Automatically Starts & Stops at Scheduled Time]

    style A fill:#ff6b6b,color:#fff
    style B fill:#54a0ff,color:#fff
    style C fill:#54a0ff,color:#fff
    style D fill:#feca57,color:#fff
    style E fill:#54a0ff,color:#fff
    style F fill:#1dd1a1,color:#fff
    style H fill:#95e1d3,color:#000
    style I fill:#95e1d3,color:#000

运行逻辑

阶段任务状态状态描述
新建任务初始页面显示“开始/结束”图标均置灰,需导入数据后生效
到达定时开始时间运行中任务自动启动并执行外呼
一轮呼叫结束暂停任务内无待呼叫号码
到达重呼时间节点运行中任务自动重新启动
禁呼时间段暂停状态描述:禁止呼叫时间段
最后一呼结束暂停状态描述:任务内无待呼叫号码/禁止呼叫时间段
💡

💡 即使任务未手动开启,只要设置了定时开始时间,到达时间后系统也会自动启动任务。

📞 Scenario 3:

设置重呼策略,提升客户接通率

在外呼过程中,客户可能因忙线、无人接听、关机等原因导致首次呼叫未接通。 为了提高外呼任务的整体接通率,系统支持 重呼策略配置,可根据不同条件自动对未接通号码进行再次呼叫。


功能说明

  • 重呼策略:启用后,系统将按照配置的规则对未接通号码进行多次重拨。
  • 重呼时间基准:可选择以“首次呼叫”或“上一次呼叫”为时间基准,系统将基于此计算重呼间隔。
  • 重呼模式
    • 基础模式:系统自动对未接通号码按照统一间隔进行重呼,无法选择号码状态。
    • 高级模式:可在基础间隔的基础上,自定义需要重呼的号码状态,实现更精细的重呼控制。

页面位置

外呼任务 → 自动外呼任务 → 任务管理 → 新建任务(或编辑任务) → 基础设置 → 重呼策略


操作步骤

  1. 开启重呼策略

    • 在任务配置页面开启「重呼策略」开关。
    • 启用后,系统将在任务执行中自动根据配置执行重呼流程。
  2. 选择重呼时间基准

    • 基于首次呼叫:重呼间隔以首次呼叫时间为基准计算。

    • 基于上一次呼叫:重呼间隔以上一次呼叫时间为基准计算。

      ⚠️ 注意:任务启动后修改配置,仅对修改后触发的呼叫数据生效。

  3. 配置重呼模式

    • 基础模式:系统自动按照统一时间间隔对所有未接通号码进行重呼。
    • 高级模式:可在统一间隔基础上,勾选需要进行重呼的号码状态,实现针对性重呼。
  4. 设置重呼条件(高级模式)

    • 勾选需要进行重呼的号码状态:
      • 空号
      • 关机
      • 停机
      • 忙 / 正在通话中
      • 拒接超时 / 无人接听
      • 暂时无法接听
      • 呼叫受限
      • 暂停服务 / 不再使用
      • 来电助手 / 来电提醒
      • 外呼失败
    • 系统仅对被选中的状态执行重呼操作。
  5. 添加重呼间隔

    • 点击「添加重试」,设置每次重呼的时间间隔(基础模式和高级模式均相同)。
    • 支持多次重呼配置,每次间隔可独立设置。
    • 若选择「基于首次呼叫」,则第二次呼叫时间必须大于第一次,以此类推。

流程示意

graph TD
    A[任务执行中出现未接通号码] --> B[重呼策略是否开启]
    B -->|否| C[不再呼叫,记录结果]
    B -->|是| D[判断号码状态是否符合重呼条件]
    D -->|不符合| H[不执行重呼]
    D -->|符合| E[计算本次重呼时间(基于首次或上次呼叫)]
    E --> F[到达时间后发起重呼]
    F --> G[记录本次重呼结果]
    G --> I{最大重呼次数/已接通}
    I -->|否| D
    I -->|是| C

    style A fill:#ff6b6b,color:#fff
    style B fill:#feca57,color:#fff
    style C fill:#95e1d3,color:#000
    style D fill:#54a0ff,color:#fff
    style E fill:#1dd1a1,color:#fff
    style F fill:#1dd1a1,color:#fff
    style G fill:#95e1d3,color:#000
    style H fill:#95e1d3,color:#000
    style I fill:#f78fb3,color:#000

注意事项

  • 任务启动后修改重呼配置,仅对修改后触发的呼叫数据生效。
  • 若号码在禁呼时间段内,系统将自动顺延至下一个可呼时间。
  • 重呼策略建议与“定时任务”结合使用,确保重呼在合规时段执行。

示例场景

某企业外呼任务中,客户首次呼叫无人接听。系统根据重呼策略自动安排:

  • 第一次呼叫:10:00
  • 第二次呼叫:10:10(间隔 10 分钟)
  • 第三次呼叫:10:30(间隔 20 分钟) 若客户仍未接听,系统停止重呼并记录最终结果。

🔢Scenario4:调整呼叫顺序,提升外呼执行效率

在外呼任务中,号码的呼叫顺序和重呼策略直接影响任务的执行效率与客户接通率。

系统提供灵活的呼叫顺序配置,帮助用户合理安排历史待重呼号码与新导入号码的优先级。

功能说明

  • 呼叫顺序:在同一任务中导入新号码后,为妥善处理历史待重呼号码与新导入号码的呼叫顺序,系统支持通过 手动拖动排序 的方式灵活调整重呼号码与未呼叫号码的优先级。

    ⚠️

    注意:任务启动后修改顺序,仅对新导入的数据生效。

  • 重呼号码:系统支持根据 待重呼轮次 调整呼叫优先级,用户可选择降序或升序模式。

    • 待重呼轮次降序
      1. 优先呼叫待重呼轮次数值较大的号码,即轮次靠后(如第5轮、第4轮)的号码先被呼叫。
      2. 当号码的待重呼轮次一致时,系统将根据 批次优先级号码优先级 进行呼叫。
    • 待重呼轮次升序
      1. 优先呼叫待重呼轮次数值较小的号码,即轮次靠前(如第1轮、第2轮)的号码先被呼叫。
      2. 当号码的待重呼轮次一致时,系统将根据 批次优先级号码优先级 进行呼叫。
  • 未呼叫号码:系统支持顺序或随机呼叫两种模式。

    • 顺序:按照导入号码的批次顺序和号码指定优先级顺序依次呼叫。
    • 随机:若未设置号码优先级,则系统随机呼叫号码。

页面位置

外呼任务 → 自动外呼任务 → 任务管理 → 新建任务(或编辑任务) → 基础设置 → 呼叫顺序

号码呼叫顺序与号码导入逻辑密切相关,具体导入规则将在 Step 2 中详细说明

Step 2:导入号码数据

自动外呼任务需先导入待呼号码数据,支持页面导入与接口导入两种方式。

方式一:页面导入

  1. 点击 “导入” 按钮。
  2. 下载导入模板并填写号码信息,支持批量导入
  3. 上传已填写好的模板文件。
  4. 在弹窗中配置:
    • 号码排重规则(如“任务内去重”或“全局去重”)
    • 启动类型(立即启动或手动启动)
    • 批次名称(便于后续查询与统计)
  5. 点击 “确认导入”

方式二:接口导入

  • 调用平台提供的 API 接口,通过程序化方式批量导入号码。
  • 适用于大规模外呼或系统集成场景。
  • (配置外呼优先级)

👨‍👩‍👧‍👦 Scenario1:传入通道变量,实现个性化外呼

在外呼任务中,不同客户可能有个性化的信息(如客户姓名、城市、产品名称、预约时间等)。

为此,系统支持在号码导入阶段 导入自定义变量,并在外呼任务中调整对话内容,帮助实现个性化外呼体验。


功能说明

  • 前置配置
    • 在智能体中配置变量(Link
    • 在路由导航中配置通道变量(Link
  • 变量导入: 在导入号码时,可同时上传包含变量字段的模板文件(如姓名、城市、业务类型等),系统将在外呼时为对应号码自动填充变量内容。
  • 变量匹配规则: 模板中的变量列名需与智能体及语音导航中的变量名一致

页面位置

外呼任务 → 自动外呼任务 → 任务管理 → 导入号码 → 下载导入模板


操作步骤

  1. 点击 “导入” 按钮,选择“下载导入模板”。

  2. 在模板中填写号码及对应变量列,例如:

    电话号码优先级外显号码备份号码arg1arg2
    13800000001变量内容1_1变量内容2_1
    13800000002变量内容1_2变量内容2_2

    备注:

    • 电话号码:必填,一个批次最多10万个号码
    • 优先级:可选,默认为0
    • 外显号码:可选
    • 备份号码:可选,最多六个,多个号码之间用英文逗号隔开
    • 自定义字段:若需导入自定义字段,需要在【备份号码】列右侧新增列,其中,表头写字段名,表内填字段值。自定义字段是否必填取决于后续语音导航及智能体对这些字段的使用方法

    ⚠注意:对于无需填充内容的可选字段,单元格留空即可,不可以删除或改动除自定义字段之外的其他字段表头。⚠


示例场景

🔍企业希望对不同客户播放个性化语音内容:

​ 「您好,{{customerName}},我是Tinet官方顾问,您预约的{{ModelName}}试驾将在{{appointmentTime}}开始,届时请您准时到店。」

​ 在导入号码时,上传包含客户姓名、车型名称和预约时间的模板,即可实现语音内容的自动替换:

电话号码优先级外显号码备份号码customerNameModelNameappointmentTime
13800000001李女士天润X71月1日上午九点
13800000002王先生天润X91月1日下午五点

​ 播报示例:

​ 「您好,李女士,我是Tinet官方顾问,您预约的天润X7试驾将在1月1日上午九点开始,届时请您准时到店。」

​ 「您好,王先生,我是Tinet官方顾问,您预约的天润X9试驾将在1月1日下午五点开始,届时请您准时到店。」


🔢 Scenario2:导入高优数据,实现优先呼叫

在外呼任务中,若已有批次正在呼叫,但需要临时插入一批高优先级号码(如高意向客户、重点名单等),可通过“按优先级导入”方式灵活调整呼叫顺序。

系统支持两种导入方式:

  • 页面导入:仅可在同一批次内调整号码的优先级。
  • 接口导入:可同时调整批次之间的优先级批次内号码的优先级,适用于需要更精细化控制的场景。
⚠️

若需让新导入的号码在任务中“插队”呼叫,必须使用 接口导入; 页面导入仅用于普通批量导入或单批次优先级调整。


任务配置要求

  • 呼叫顺序:在任务管理页面中, “未呼叫号码呼叫顺序”必须设置为 顺序,不可设置为随机。

  • 配置开关(需联系技术支持)

    配置项作用说明
    predict_call_priority_strategy_gray启用优先级功能开启后系统支持批次优先级与号码优先级
    gray_predict_call_use_full_cache控制高优批次是否可“插队”开启后新批次可立即优先外呼

接口导入说明

  1. 接口位置:详见平台开放文档《任务号码导入接口》(Link
  2. 导入步骤
    • 确认已导入批次的名称与优先级(页面导入批次默认优先级为 0)。
    • 调用接口导入新号码批次时,
      • 指定新的批次名称
      • 设置更高的批次优先级
      • 可同时定义批次内号码的优先级
  3. 批次逻辑说明
情况系统处理逻辑
新批次名称 = 已有批次名称,且旧批次未启动新导入优先级覆盖旧批次,两批次合并为一个
新批次名称 = 已有批次名称,但旧批次已启动新导入批次独立生效,优先级单独计算
新批次名称 ≠ 已有批次名称新导入批次独立存在,根据优先级决定呼叫顺序

实现效果

✅ 已开启 gray_predict_call_use_full_cache

  • 高优批次可在外呼中“插队”,立即优先呼叫。
  • 系统会优先完成高优批次外呼,再继续旧批次剩余号码。
  • 批次内呼叫顺序根据号码优先级执行。

⚙️ 未开启 gray_predict_call_use_full_cache

  • 若旧批次正在外呼 → 必须先完成旧批次。
  • 若旧批次尚未外呼 → 高优批次优先执行。

Step 3:外呼机器人交互

​ 当外呼任务启动后,系统会根据导入的号码列表自动发起外呼。在每通通话中,根据语音导航的配置,逐个执行对应节点。

​ 用户与机器人进行的语音交互,通常发生在语音导航的智能体节点。


📞 Scenario1:基础对话交互

​ 用户语音输入后,AudioSocket 将语音流传输给语音AI模型,同步进行语音识别(ASR)智能断句处理,识别出的文本内容将被发送至智能体进行思考并生成回复,最终通过 TTS 合成语音向用户播报。

sequenceDiagram
    autonumber
    participant User as 用户
    participant AS as AudioSocket
    participant VA as 语音AI模型服务
    participant Agent as 智能体

    User ->> AS: 说话(语音)
    AS ->> VA: 语音流 → ASR识别 & 智能断句
    VA ->> AS: 文本内容
    AS ->> Agent: 文本 → 思考
    Agent ->> AS: 文本回复
    AS ->> VA: 文本 → TTS
    VA ->> AS: 语音流
    AS ->> User: 播报回复

🗣️ Scenario2:智能打断

​ 在机器人语音播报过程中,若用户发言,AudioSocket 将语音流传输给语音AI模型后,打断模型实时识别内容是否为有效打断信息。如非打断信息,则忽略并继续播报;如为有效打断,则立即停止播报,进入聆听状态并启动新一轮交互。

sequenceDiagram
    autonumber
    participant User as 用户
    participant AS as AudioSocket
    participant VA as 语音AI模型服务
    participant Agent as 智能体

    AS ->> User: 播报中...
    User ->> AS: 用户说话
    AS ->> VA: 语音 → ASR识别 & 判断
    VA ->> AS: 文本 + 打断判断

    alt 非打断信息
        AS ->> AS: 忽略
        AS ->> User: 继续播报
    else 有效打断
        AS ->> AS: 停止播音
        AS ->> User: 继续聆听
        User ->> AS: 继续说话
        AS ->> VA: 语音 → ASR识别 & 断句
        VA ->> AS: 文本内容
        AS ->> Agent: 文本 → 思考
        Agent ->> AS: 文本回复
        AS ->> VA: 文本 → TTS合成
        VA ->> AS: 语音流
        AS ->> User: 播报新回复
    end

🔈Scenario3 附和响应

​ 开启该功能后,机器人在用户发言过程中,实时检测用户说话状态将插入回复预设的附和语(如“嗯”、“好的”、“我在听”等),以增强交互的自然度与亲和力。

sequenceDiagram
    autonumber
    participant User as 用户
    participant AS as AudioSocket
    participant VA as 语音AI模型服务<br/>(ASR/VAD/TTS)
    participant Agent as 智能体

    User ->> AS: 持续说话(语音流)
    
    loop 用户持续讲话,语音不断输入
        AS ->> VA: 音频片段 → ASR + 说话状态检测
        VA ->> AS: 实时文本片段 + 说话状态(VAD)

        AS ->> Agent: 文本片段 + 讲话状态(用户仍在说话)
        Agent ->> AS: 附和话术(如:嗯、我在听…)

        AS ->> VA: 附和文本 → TTS
        VA ->> AS: 附和语音流
        AS ->> User: 播报附和语音
    end

    Note over User,AS: 当用户停止说话(VAD 检测到结束)

    AS ->> Agent: 汇总文本 → 请求正式回复
    Agent ->> AS: 完整回答文本

    AS ->> VA: 正式回复文本 → TTS
    VA ->> AS: 回复语音流
    AS ->> User: 播报正式回复

🗒️Scenario4:语义整合与攒句机制

​ 在用户的自然口语表达中,停顿、犹豫词、语句碎片化是非常常见的现象。例如“我想问……一下你们……现在利率是多少”这种多段式表达,如果系统按照每一段即时回复,会导致机器人频繁插话、误解意图,整体对话体验显得生硬、割裂。

​ 为了解决这一痛点,我们引入了 攒句回复机制: ​ 系统会在用户多次开口之间,根据 “模型返回时间 vs 用户再次说话时间” 的时序逻辑动态判断是否需要取消上一轮请求,并将多段语句拼接成一个完整的问题再进行理解与回复。

​ 这样的机制可以显著提升:

  • 机器人对碎片表达的理解能力(避免误判意图)
  • 对话的连贯性与自然度(避免打断、重复确认)**
  • 整体交互体验(用户感觉更像在与会倾听的真人沟通)

以下两个示例时序图分别展示启用攒句机制前后的差异:


❌ 未启用攒句机制:机器人频繁对碎片回复,造成多次打断
sequenceDiagram
    autonumber
    participant User as 用户
    participant AS as AudioSocket
    participant VA as ASR/VAD
    participant Agent as 智能体

    Note over User,AS: 用户说话停顿思考较多

    User ->> AS: "我想问…"
    AS ->> VA: 语音片段①
    VA ->> AS: 文本① "我想问"
    AS ->> Agent: 文本①
    Agent ->> AS: 回复① "您好,请问您想问什么?"
    AS ->> User: 播报回复①  ← **第一次打断**

    User ->> AS: "一下你们…"
    AS ->> VA: 语音片段②
    VA ->> AS: 文本② "一下你们"
    AS ->> Agent: 文本②
    Agent ->> AS: 回复② "您可以说得更完整一点吗?"
    AS ->> User: 播报回复②  ← **第二次打断**

    User ->> AS: "现在利率是多少"
    AS ->> VA: 语音片段③
    VA ->> AS: 文本③ "现在利率是多少"
    AS ->> Agent: 文本③
    Agent ->> AS: 回复③ "我们的利率是……"
    AS ->> User: 播报回复③  ← **正确回复**

    Note over User,Agent: 一个完整问题被机器人打断两次,体验割裂

✅ 启用攒句机制后:根据用户说话时序拼接完整语义,仅在最终表达完成后回复
sequenceDiagram
    autonumber
    participant User as 用户
    participant AS as AudioSocket<br/>(缓存/拼接/轮次管理)
    participant VA as ASR/VAD
    participant Agent as 智能体

    Note over User,AS: 用户开始表达(第一段)
    User ->> AS: "我想问一下..."
    AS ->> VA: 片段① → ASR
    VA ->> AS: 文本① "我想问一下"
    AS ->> AS: 缓存文本①
    AS ->> Agent: 请求① "我想问一下..."

    Note over User,AS: 请求①期间,用户继续说话(第二段)
    User ->> AS: "...你们利率现在是多少?"
    AS ->> VA: 片段② → ASR
    VA ->> AS: 文本② "你们利率现在是多少?"

    Note over AS: ⚠️ 用户开口发生在请求①尚未返回之前 → 取消请求①
    AS ->> Agent: 取消请求①(丢弃上一轮上下文)

    AS ->> AS: 拼接文本①+② = "我想问一下你们利率现在是多少?"
    AS ->> Agent: 请求② "我想问一下你们利率现在是多少?"

    Agent ->> AS: 回复② "好的,目前我们的利率是……"
    AS ->> User: 播报最终回复②(仅播报最新轮次)

    Note over User,AS: 由于上一轮被取消 → 不会出现打断或多次回复

🔑 其他关键能力

  • 智能体核心能力

    • 多轮对话

      • 每通电话内部具备上下文记忆,支持连续提问、问题回溯

      • 通话之间互相独立,保证隔离

      • 可结合智能体+工具调用+知识库完成复杂交互

    • 流程执行

      • 智能体识别用户意图后根据提示词描述可触发流程跳转
  • 降噪支持&VAD调节:

    ​ 为适应不同场景下的语音输入质量,系统在 ASR 前后链路中提供 降噪参数VAD(Voice Activity Detection)静音检测时长 的调节能力。 降噪用于削弱环境背景音(风声、人声干扰、机械噪音等),确保识别模型能更清晰地提取语音主信号;而 VAD 则用于判断“用户是否仍在说话”,其核心依据为 静音停顿时长——停顿超过设定阈值即认为用户表达结束。

    通过合理配置降噪等级与 VAD 时长,可以在不同环境下取得最佳的识别体验:

    • 嘈杂环境 → 更强降噪 + 更长 VAD(避免噪声被识别成语音、避免提前截断)
    • 安静环境 → 轻度降噪 + 较短 VAD(保留弱音节、提升响应速度)

    以下给出了典型环境下的推荐配置参数,便于快速应用与调优:

    典型场景背景噪音特征降噪等级VAD 参数建议ASR 参数建议说明
    办公室弱噪音、人声远距离低频杂音500ms0.5清晰环境,不宜过度降噪,否则会抹掉弱音节
    家庭环境偶发环境声:电视声、小孩讲话800ms0.7保留语音细节同时削弱突发噪音
    户外街道持续噪音:车流声、风噪800ms1.0强降噪,重点压背景噪音,避免误识别
    地铁/公交高频机械噪声 + 多人讲话1000ms1.0场景极嘈杂,建议使用强噪声过滤模型
    工业/仓库机械运作、冲击声极高1200ms1.0必要时结合 AEC、深度模型辅助降噪
    车内电话封闭空间但低频隆隆声800ms0.7降低发动机低频噪声干扰
  • 指令执行:系统提供双模式指令执行体系,实现精准的流程控制与交互管理。

    • #井号指令#

      • 采用语义化指令格式,支持包括 #挂机##转人工# 等在内的多种预设指令
      • 触发后,通话流程将立即跳出当前智能体节点,跳转至语音导航中指令指定的下一节点
      • 适用于需要中断当前对话、进行流程转场的业务场景
    • {括号动作}

      • 采用标准化动作格式,在通话过程中兼容如 DTMF 按键指令等传统交互方式
      • 触发后,通话将保持当前智能体节点不变,同时精准执行指令对应的特定动作
      • 适用于需要保持对话连续性、同时执行辅助操作的场景
    • 统一触发机制

      • 在模型输出环节直接嵌入指令内容,即可自动触发相应的系统响应
      • 无需额外配置,实现对话流程与指令执行的自然融合

      通过这套指令系统,企业可以灵活控制通话流程,在保持对话自然流畅的同时,实现精准的业务逻辑执行。

Step 4:呼叫数据查看

​ 系统提供完整的呼叫数据追踪与分析能力,支持从任务维度到单通会话粒度的全方位数据查看。

📊任务呼叫记录

页面位置呼叫记录 → 外呼机器人记录 → 任务呼叫记录

数据范围:展示全部外呼任务的呼叫记录,包含接通与未接通的所有通话

核心功能

  • 查看任务级别的整体呼叫表现与接通率统计
  • 追踪每个号码每次呼叫的状态(已接通、未接听、呼叫失败等)
  • 支持按任务批次、时间段、呼叫结果等多维度筛选

🤖机器人对话记录

页面位置呼叫记录 → 外呼机器人记录 → 机器人对话记录

数据范围:仅展示用户已接通的机器人会话详情

🔍 数据查看与筛选流程

智能查询筛选

  • 动态查询筛选:在筛选栏中选择或输入查询条件,点击查询即可实时刷新数据
  • 查询条件管理
    • 查询条件设置:自定义筛选框中的查询条件
    • 保存查询条件组:将当前勾选的筛选字段保存为条件组,可一键复用,提升查询效率

多维数据展示

  • 列表页面:展示通话基础维度字段及话后分析关键指标
    • 通话基础维度字段
    • 话后分析字段:意向标签、信息捕获、流程挂断点
  • 详情抽屉
    • 通话详情信息记录
    • 完整的对话文本转录内容
    • 交互日志:深入查看机器人每个交互环节的详细执行日志,包括ASR识别、智能体返回、TTS合成等核心节点的过程信息

Step 5:呼叫结果导出

​ 系统提供灵活的数据导出功能,支持根据筛选结果快速导出所需的呼叫数据、录音文件及对话内容,满足企业多维度的数据分析需求。

📥 数据导出配置

操作入口:在完成数据筛选后,点击列表页面上方的 "导出" 按钮

导出配置选项

  • 录音文件下载:勾选后可同时导出通话录音文件,便于质量检查与话术优化
  • 机器人对话文本:导出完整的对话文本记录,包含用户与机器人的每轮交互内容
  • 导出字段设置:自定义需要导出的数据字段列,灵活适配不同的分析场景

导出流程

  1. 在筛选后的数据页面点击 "导出" 按钮
  2. 在弹出的配置窗口中设置导出内容选项
  3. 确认导出后,系统将在后台生成导出任务
  4. 前往 "下载中心" 查看导出进度并下载生成的文件

流程示意


graph TD
    %% 第一层
    A[设置筛选条件] --> B[点击导出下拉按钮]

    %% 第二层到第三层:导出选项分支
    B --> C1[点击下载录音]
    B --> C2[点击下载机器人对话文本]
    B --> C3[配置导出字段]

    %% 分支逻辑调整
    C1 --> E[进入下载中心]
    C2 --> E
    C3 --> D[点击导出记录按钮]

    %% 第五、第六层
    D --> E
    E --> F[下载导出文件]

    %% 样式设置
    style A fill:#ff6b6b,color:#fff
    style B fill:#feca57,color:#fff
    style C1 fill:#54a0ff,color:#fff
    style C2 fill:#54a0ff,color:#fff
    style C3 fill:#54a0ff,color:#fff
    style D fill:#1dd1a1,color:#fff
    style E fill:#10ac84,color:#fff
    style F fill:#95e1d3,color:#000

💡 导出功能特性

高效批量处理

  • 支持大规模数据导出,系统自动处理海量呼叫记录
  • 后台异步生成,不影响前端正常操作体验

多格式支持

  • 导出文件采用标准格式,便于直接导入其他分析系统
  • 支持 Excel、CSV 等通用数据格式

权限安全保障

  • 导出操作受权限管控,确保数据安全
  • 导出记录留痕,便于审计追踪

⚙️ 数据字段说明

字段名字段解释
客户号码该通记录的被叫电话号码
客户号码归属地客户号码对应的省份、城市归属地信息
客户号码加密串对客户号码进行脱敏后的加密展示
外显号码拨打给客户时所使用的外呼号码
外显号码归属地外显号码所属的省份、城市信息
中继组号呼叫使用的中继分组标识,用于线路管理
虚拟号码为保护隐私所使用的虚拟中间号
虚拟号码归属地虚拟号对应的运营商归属信息
接听状态客户是否接听(客户接听/客户未接听)
通话ID本次通话的唯一标识
呼叫结果呼叫过程最终结果
挂断方由谁结束通话(客户挂断/系统挂断)
录音对应通话的录音文件地址或状态
CallID系统生成的通话标识,用于溯源
WebRTCCallIDWebRTC 会话标识(用于实时通话场景)
被叫状态被叫号码当前的网络/服务状态
座席工号座席对应的员工编号
座席姓名执行本次呼叫任务的座席姓名
座席电话座席使用的外呼电话号码
开始时间呼叫开始发起的时间
客户响铃时间客户端开始振铃的时间点
客户接听时间客户成功接通时间
结束时间呼叫结束的时间
客户接听时长客户接听后到挂断的持续时间
总时长呼叫全流程总时长
客户响铃时长从呼叫到接通前的响铃时长
任务名称呼叫所属的任务名称
机器人接待时间进入机器人交互节点的时间
机器人结束时间机器人交互节点结束的时间
机器人通话时长机器人节点交互的总时长
机器人使用的机器人名称
机器人接听状态机器人是否成功接管通话
机器人接听结果(机器人应答/机器人未应答/机器人异常/机器人超并发)
对话轮次本次对话中用户与机器人往返交互的次数
打断次数用户在机器人讲话期间的插话次数
是否转人工对话中是否触发转人工座席
意向标签话后分析智能体在通话结束后为该通话判断的客户意向结果,标签名称及判断规则配置见***(LINK)***
开场白挂断点若该通通话在机器人播报开场白的阶段就被挂断,则展示挂断时开场白播报的秒数;否则该字段值为空
流程挂断点话后分析智能体在通话结束后为该通话判断的流程挂断位置,节点名称及判断规则配置见***(LINK)***
信息捕获话后分析智能体在通话结束后为该通话判断的信息捕获情况,捕获字段名称及捕获规则配置见***(LINK)***
自定义字段企业在任务中配置的额外字段
对话文本用户与机器人全量对话记录

四、全流程验证与总结

验证清单

项目内容
✅ 任务创建是否成功保存任务并显示在列表中
✅ 数据导入号码数量、排重规则是否正确
个性化通道变量是否已成功导入
✅ 机器人外呼智能对话、打断、攒句机制功能是否运行正常?
✅ 数据查看任务呼叫记录与机器人对话记录是否完整可查?
✅ 导出功能是否能正确筛选数据,并批量下载呼叫记录、录音文件与对话文本?

五、快捷参考总结

模块页面位置功能说明
任务管理外呼任务 → 自动外呼任务创建与配置外呼任务
数据导入任务管理 → 导入按钮上传号码数据,设置批次与排重
呼叫记录呼叫记录 → 外呼机器人记录查看任务呼叫与对话详情
数据导出呼叫记录页面 → 导出按钮筛选并导出结果至下载中心

🎉 恭喜您!

您已完成自动外呼任务的全流程配置与使用。系统现已支持:

  • ✅ 批量号码外呼与自动语音导航
  • ✅ 呼叫结果记录与对话分析
  • ✅ 导出与复盘支持高效数据管理

如需进一步集成或高级配置(如API任务调度、智能话术分析、外呼策略优化等),请参考系统开发者文档或联系技术支持团队。