- Webhookエンドポイント は、以下に記載する安定したペイロード、配信ごとの
event_id、30秒のタイムアウト、および最大24時間のリトライとともに、telephony.complete(電話通話)またはweb.complete(Web通話およびビルダーマイクテスト通話)を受信します。 - レガシー単一URL Webhook は、わずかに異なるペイロードで同期的に1回試行します(10秒のタイムアウト、リトライなし)。詳細はレガシーペイロードの違いを参照してください。
リクエストペイロード(エンドポイント配信)
終了理由
トランスクリプト形式
transcripts の各エントリは、1つの会話ターンです。ロールは
user(発信者の発話)、model(エージェントの発話およびツール呼び出し)、
tool(ツール結果)、system(言語切り替えなどの通話イベント)です。
割り込みマーカー、確認プロンプト、生の位置情報を含む完全に構造化されたターン履歴については、
GET /v1/calls/{call_id}/history を使用してください。
レガシーペイロードの違い
レガシーの単一URL Webhookエンベロープは{"type": "telephony.complete" | "web.complete", "data": {…}} であり、
event_id は含まれません。また、その data はエンドポイントのペイロードと異なります。
- ターン配列は
transcriptsではなくhistoryにあります(ターンスキーマは上記と同じです)。 - フィールドセットは通話終了時の生レポートであり、上記の表以外の追加内部フィールドを含む場合があります。不明なフィールドは参考情報として扱ってください。
- Web通話(
direction: "web")ではfrom_number/to_numberが省略され、origin_domainが追加されます。 - Builderのマイクテスト通話は、レガシーパスでは
telephony.completeとして報告されます(エンドポイントシステムではweb.completeにマッピングされます)。 - 転送の調整: 通話が転送で終了する場合、レガシーWebhookは同期的に呼び出され、引き継ぎ先が準備できていないことを示すために
{"transfer_ready": false}を返すことがあります。その他の応答(またはレガシーWebhookがない場合)は転送を続行します。エンドポイント配信はこの目的で参照されることはありません。
ハンドラーの例
主なユースケース
CRM連携
各通話の文字起こしと録音URLを顧客レコードとともに保存します。
分析
トピックモデリング、CSATシグナルの抽出、転送率の監視のために、文字起こしをパイプラインへストリーミングします。
品質レビュー
人によるレビューのためにQAツールで通話を開くか、独自の評価モデルで処理します。
通知
転送または失敗時にチームメンバーへ通知します。
関連項目
telephony.incoming / web.incoming
通話開始時に実行されるブロッキング対応イベントです。
イベントカタログ
購読できるその他のイベントタイプです。
通話履歴API
バックフィルやリプレイ用にREST経由でアクセスできる同じデータです。