> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# Twilio 个性化

## 概述

接听 Twilio 呼入电话时，可通过 webhook 动态获取会话初始化数据。这样便能根据来电者信息和其他上下文数据自定义智能体行为。

有关 webhook 的触发时机和请求结构，请参阅 [会话初始化 webhook](/docs/zh/eleven-agents/customization/personalization#conversation-initiation-webhooks)。

## 工作原理

1. 收到 Twilio 电话后，ElevenAgents 会调用指定端点的 webhook，并将通话信息（`caller_id`、`agent_id`、`called_number`、`call_sid`、`conversation_id`）作为参数传递
2. webhook 返回会话初始化客户端数据，包括动态变量和覆盖项（如下例所示）
3. 系统使用这些数据初始化会话

> **Tip**
>
> 系统会利用 Twilio 的连接/拨号期间并行获取 webhook 数据，带来无缝体验：
>
> * 用户会听到预期的电话接通提示音
> * ElevenAgents 同时获取所需的 webhook 数据
> * 音频连接建立时，会话已使用获取的数据初始化

## 配置

#### 配置 webhook 详情

在 ElevenAgents 的[设置页面](https://elevenlabs.io/app/agents/settings)中，配置 webhook URL，并添加身份验证所需的任何密钥。

![启用 webhook](/docs/_fern-img/53e98b709e5751bfb6cf6758372a8105c5408b20191523c7e91c2a7625d8b603.webp)

点击 webhook，可修改通过请求头发送的密钥。

![在请求头中添加密钥](/docs/_fern-img/416d30e6906cd209de92820bfc146ac9478fbb6ce61c8fbbc24d62cad54d9f05.webp)

#### 启用获取会话初始化数据

在[智能体页面](https://elevenlabs.io/app/agents/agents/)的“安全”标签中，启用为 Twilio 呼入电话获取会话初始化数据，并定义可覆盖的字段。

![启用 webhook](/docs/_fern-img/6024b7f7541b8f856514b56ebf391cd6ee24206fd89c07327de1b01d81795c20.webp)

#### 实现用于接收 Twilio 数据的 webhook 端点

webhook 将收到包含以下参数的 POST 请求：

| 参数                | 类型     | 说明               |
| ----------------- | ------ | ---------------- |
| `caller_id`       | string | 来电者的电话号码         |
| `agent_id`        | string | 接听电话的智能体 ID      |
| `called_number`   | string | 被叫的 Twilio 号码    |
| `call_sid`        | string | Twilio 通话的唯一标识符  |
| `conversation_id` | string | ElevenLabs 会话标识符 |

#### 返回会话初始化客户端数据

webhook 必须返回包含智能体初始化数据的 JSON 响应。

> **Info**
>
> `dynamic_variables` 字段必须包含为智能体定义的所有动态变量。覆盖项则完全是可选的。有关动态变量和覆盖项的更多信息，请参阅[动态变量](/docs/zh/eleven-agents/customization/personalization/dynamic-variables)和[覆盖项](/docs/zh/eleven-agents/customization/personalization/overrides)文档。

响应示例如下：

```json
{
  "type": "conversation_initiation_client_data",
  "conversation_config_override": {
    "agent": {
      "prompt": {
        "prompt": "The customer's bank account balance is $100. They are based in San Francisco.",
        "llm": "gpt-5.6-luna"
      },
      "first_message": "Hi, how can I help you today?",
      "language": "en"
    },
    "tts": {
      "voice_id": "new-voice-id"
    },
    "conversation": {
      "text_only": false
    }
  },
  "dynamic_variables": {
    "customer_name": "John Doe",
    "account_status": "premium",
    "last_interaction": "2026-01-15"
  },
  "branch_id": "agtbrch_xxxx",
  "environment": "production"
}
```

ElevenAgents 会使用动态变量填充会话初始化数据，并顺畅地开始会话。

> **Warning**
>
> 请确保 webhook 在合理的超时时间内响应，以免延迟通话处理。

## 安全

* 仅使用 HTTPS 端点
* 使用请求头实现身份验证
* 通过 [ElevenLabs 密钥管理器](https://elevenlabs.io/app/agents/settings)存储敏感值
* 验证传入请求参数