Twilio 个性化

使用 webhook 为传入的 Twilio 通话配置个性化设置。

概述

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

有关 webhook 的触发时机和请求结构,请参阅 会话初始化 webhook。

工作原理

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

系统会利用 Twilio 的连接/拨号期间并行获取 webhook 数据,带来无缝体验:

  • 用户会听到预期的电话接通提示音
  • ElevenAgents 同时获取所需的 webhook 数据
  • 音频连接建立时,会话已使用获取的数据初始化

配置

1

配置 webhook 详情

在 ElevenAgents 的设置页面中,配置 webhook URL,并添加身份验证所需的任何密钥。

启用 webhook

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

在请求头中添加密钥

2

启用获取会话初始化数据

在智能体页面的“安全”标签中,启用为 Twilio 呼入电话获取会话初始化数据,并定义可覆盖的字段。

启用 webhook

3

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

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

参数类型说明
caller_idstring来电者的电话号码
agent_idstring接听电话的智能体 ID
called_numberstring被叫的 Twilio 号码
call_sidstringTwilio 通话的唯一标识符
conversation_idstringElevenLabs 会话标识符
4

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

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

dynamic_variables 字段必须包含为智能体定义的所有动态变量。覆盖项则完全是可选的。有关动态变量和覆盖项的更多信息,请参阅动态变量和覆盖项文档。

响应示例如下:

{
"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 会使用动态变量填充会话初始化数据,并顺畅地开始会话。

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

安全

  • 仅使用 HTTPS 端点
  • 使用请求头实现身份验证
  • 通过 ElevenLabs 密钥管理器存储敏感值
  • 验证传入请求参数