> 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/ja/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/)の「Security」タブで、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/ja/eleven-agents/customization/personalization/dynamic-variables)および
> [オーバーライド](/docs/ja/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)でシークレットとして保存してください
* 受信したリクエストパラメータを検証してください