---
title: "外呼活动"
description: "上传联系人列表，让智能体逐一处理——支持呼叫时段、重试和实时进度。"
---

活动会代表您拨打联系人列表：选择一个智能体，上传 CSV，设置允许外呼的时间，ThunderPhone 会依次处理列表中的联系人——按照您选择的计划重试未接听和语音信箱。您可在 **互动 → 活动**（`/dashboard/campaigns`）下找到它们。

如需进行一次性的程序化呼叫，请改用[外呼 API](/zh/guides/place-outbound-calls)。

## 前提条件

- 已部署的语音智能体。
- 已启用外呼功能的电话号码。客户的 VoIP 号码仍支持活动。ThunderPhone 号码初始仅支持呼入；组织管理员可以从电话号码页面申请外呼权限。ThunderPhone 会人工审核每项申请，获批号码即可运行活动。请参阅
  [连接 VoIP 提供商](/zh/guides/voip-providers)。
- 以包含 `phone` 或
  `phone_number` 列的 CSV 文件（或粘贴的 JSON）形式提供联系人。**每次上传最多 5,000 行**，采用 UTF-8 编码。
  新上传的 JSON 必须为扁平结构：额外值可以是字符串、数字、
  布尔值或 `null`。包含数组或嵌套对象的行会分别被拒绝，
  并显示验证消息；有效行仍会导入。CSV 单元格均为字符串。接受的额外列会作为每位联系人的变量保留在活动的
  联系人记录中，并自动提供给每次拨号。ThunderPhone 还会在每次外呼前
  对已保存的智能体提示词进行分类，以决定智能体是否应操作电话菜单。诸如 `name` 和 `account_id`
  的列标题会与已保存智能体提示词中的 `{{name}}` 和 `{{account_id}}` 相匹配。名称映射还可以将多个列合并为 `name`。请参阅
  [每次通话变量](/zh/guides/call-variables)，了解默认值、命名规则、
  32 KB 对象限制，以及完成 Webhook 中返回的值。

较早的联系人记录可能包含此前 JSON 上传中的嵌套元数据。该元数据会保留在已存储的联系人中。每次拨号都会从变量载荷中省略非标量值，并记录该次尝试中被忽略的键名，但不会记录值。重试时会使用相同的筛选方式。

## 创建活动

<Steps>
  <Step title="点击新建营销活动">
    为其命名，选择 **语音智能体**，然后选择 **呼出号码**
    （您的一个已启用外呼的号码）。
  </Step>
  <Step title="上传联系人 CSV">
    电话号码或变量无效的行会被分别拒绝，
    并返回其行号——其余行会正常导入。
  </Step>
  <Step title="设置呼叫时间窗口">
    选择 **时区** 和 **每日开始/结束时间** 窗口；营销活动
    仅会在该窗口内拨号。时区默认采用您的呼出号码所在时区
    （在美国和加拿大按区号确定，在其他地区按国家确定）；对于免费电话等跨越多个时区的号码，
    则采用您的浏览器时区。字段下方的提示会说明采用哪一种。该窗口默认
    为上午 9 点至下午 5 点。开始时间早于上午 8 点或结束时间晚于晚上 9 点的窗口会显示
    警告：在这些时段之外呼叫可能违反 TCPA 等呼叫时间规定。
    结束时间早于开始时间表示跨越午夜：22:00 →
    02:00 表示从晚上 10 点拨号至次日凌晨 2 点，并会显示警告。该
    窗口按营销活动的时区运行，而非按每位联系人的时区运行，因此当联系人分布在不同地区时，请按时区拆分
    联系人。
    您还可以设置 **开始时间** 来安排启动时间，并设置 **结束时间**，营销活动将在该时间后自动完成。
  </Step>
  <Step title="调整节奏和重试">
    - **并发通话数** ——此营销活动同时进行的通话数量
      （1–10，默认值为 3）。当您的组织已有 10 个外呼通话正在进行时，营销活动不会发起新的通话，
      因此并行营销活动共享该额度。每个通话还会计入您组织的[并发通话限制](/api-reference/introduction#call-limits)
      （默认值为 20，涵盖呼入、外呼、网页和测试通话）。
      达到该限制时，或者同一号码在过去 10 秒内已被呼叫时，
      联系人只会等待后续轮次；其尝试次数不会被消耗。
    - **最大尝试次数** ——每位联系人最多可拨打的次数
      （1–10，默认值为 2）。
    - **重试退避时间（分钟）** ——重试前的等待时间（至少 30，
      默认值为 60）。
    - **重试条件** ——触发重试的结果：**无人接听**、
      **语音信箱**、**失败**（默认均已启用）。

    需要更多尝试次数或更短的间隔？请联系支持团队：工作人员可以
    为您的组织提高这两项限制。
  </Step>
  <Step title="创建草稿，然后启动">
    营销活动会创建为草稿——仅当营销活动处于草稿状态时才能添加联系人。
    启动营销活动需要您明确同意承担通话费用。设置未来的 **开始时间** 后，营销活动将变为
    *已计划*；否则会立即开始 *运行中*。
  </Step>
</Steps>

<Note>
  在这些限制生效前保存的营销活动将继续完全按照原有配置运行。
  即使进行其他编辑，其尝试次数和间隔也会保持为保存时的设置。
</Note>

## 结果和重试机制

每次通话后，联系人都会获得一个结果——成功通话会标记为已完成；如果通话被判定为未接听、检测到语音信箱或失败，且该结果在您的**重试条件**列表中并且联系人仍有剩余尝试次数，则会重试。尝试次数用尽的联系人会标记为*已耗尽*；不可重试的失败会标记为*失败*。

<Note>
  当您的账户余额状态不正常时，拨号会自动暂停，并会在余额恢复正常后继续。对于长期营销活动，请保持启用[自动充值](/zh/guides/billing-and-topups)。
</Note>

## 监控和控制

每张营销活动卡片都会显示其状态和进度（例如“248 个中已完成 173 个”）。打开营销活动即可查看状态明细、每位联系人的结果以及最近通话——每项均可链接至通话记录中的完整转写和录音。

- **暂停／继续**——暂停会停止新的拨号；正在进行的通话会自然结束。已暂停的营销活动可以编辑并继续。
- **取消**——永久停止该营销活动。
- 当每位联系人都达到最终状态，或超过**结束时间**时，营销活动会自动完成。

营销活动状态：`draft`、`scheduled`、`running`、`paused`、`completed`、`cancelled`。联系人状态：`pending`、`scheduled`、`calling`、`completed`、`failed`、`exhausted`。

## 后续步骤

<CardGroup cols={2}>
  <Card title="实时查看通话" icon="tower-broadcast" href="/zh/guides/monitor-live-calls">
    在营销活动通话进行时旁听。
  </Card>
  <Card title="外呼通话 API" icon="phone-arrow-up-right" href="/zh/guides/place-outbound-calls">
    以编程方式发起单通通话。
  </Card>
</CardGroup>
