Five9

Five9 AI Agent Connectを使用して、Five9 VCCからElevenAgentsへ通話を転送します。

このガイドを進める前に、ElevenLabsのSIPトランクとカスタムSIPヘッダーのサポートについて理解するため、SIPトランクガイドを読むことをおすすめします。

概要

このガイドでは、Five9 AI Agent Connectを使用して、ElevenAgentsをFive9 Virtual Contact Center(VCC)と統合する方法を説明します。Five9はライブ通話をElevenLabsの電話番号に転送し、ElevenLabsエージェントが会話を処理した後、ElevenLabsはルーティングまたはディスポジションデータをFive9に返して、Five9フローを継続できるようにします。

Five9統合の仕組み

Five9 AI Agent Connectは、SIP経由の外部転送を使用し、双方向でカスタムSIP X-ヘッダーを通じて通話コンテキストをやり取りします。

  1. 着信転送:Five9 IVR External Transfer Moduleが、INVITE上のSIP X-ヘッダーとして通話コンテキストを送信しながら、通話をElevenLabsの電話番号へ転送します。
  2. 会話:ElevenLabsが通話に応答し、必要に応じてルーターエージェントを経由して適切なエージェントにルーティングした後、発信者との会話を処理します。
  3. 返送経路:会話が終了すると、ElevenLabsはルーティングおよびディスポジションデータをX-ヘッダーとしてSIP BYEに追加します。
  4. AI後のルーティング:Five9は返されたヘッダーを通話変数にマッピングし、ライブエージェントへの転送、通話終了、ディスポジションの記録など、通話フローを継続します。

要件

Five9統合を設定する前に、以下を確認してください。

  1. AI Agent Connectが有効になっているアクティブなFive9 VCCドメイン。
  2. Five9設定への管理者アクセス、または変更を行うFive9導入チーム。
  3. ElevenLabsアカウントと、転送された通話を処理するためのエージェント。
  4. Five9の転送先として使用する、ElevenLabsにインポート済みのSIPトランク電話番号。

AI Agent ConnectはFive9 VCCの有料アドオンであり、デフォルトでは有効になっていません。この統合を開始する前に、Five9アカウントマネージャーに連絡してドメインで有効化してください。

設定を開始する前に、両チームで転送用電話番号、各方向に送信するヘッダー名、ルーティング値、テスト計画について合意しておく必要があります。

ElevenLabsの設定

1

転送用電話番号をインポートする

SIPトランクガイドに従って、Five9が通話を転送する電話番号をインポートします。カスタムSIPヘッダーおよびBYEヘッダーには、SIPトランク電話番号が必要です。

+1の国番号を含むE.164形式で番号をインポートしてください(例:+18005550100)。Five9はこの形式で転送を送信するため、不一致があると転送に失敗します。

2

エージェントを割り当てる

1つのエージェントがFive9からのすべての通話を処理する場合は、電話番号ダッシュボードでそのエージェントを電話番号に直接割り当てます。

複数のエージェントで1つの転送番号を共有する場合は、代わりにルーターエージェントを割り当て、1つの番号で複数のエージェントをルーティングするに従ってください。

3

返却ヘッダーを設定する

会話中にエージェントが設定する動的変数を、Five9が想定するSIP BYEヘッダー名にマッピングします。BYEヘッダーの設定を参照してください。

4

テスト通話を実行する

Five9でテスト通話を行い、着信ヘッダーが動的変数として届くこと、およびBYEヘッダーが想定どおりに返されることを確認します。着信ヘッダー値は、会話履歴のPhone Callタブで確認できます。

1つの番号で複数のエージェントをルーティングする

単一のFive9転送番号を通じて複数のElevenLabsエージェントへ通話をルーティングするには、電話番号にルーターエージェントを割り当て、Five9からX-AgentIDなどのヘッダーで対象エージェントを送信します。

着信X-ヘッダーは動的変数として公開されるため、ルーターエージェントではX-AgentIDを{{sip_agentid}}として利用できます。ルーターエージェントにエージェント転送ツールを設定し、想定する各X-AgentID値に対して転送ルールを追加します。各値を、その通話を処理すべきエージェントにマッピングしてください。

これにより、エージェントごとに別の電話番号を用意する必要がなくなります。

Five9からElevenLabsに送信されるヘッダー

Five9は、INVITE上のSIP X-ヘッダーとして通話メタデータを送信できます。ヘッダー名は、X-プレフィックスを削除し、小文字に変換し、ハイフンをアンダースコアに置き換え、sip_プレフィックスを追加することで正規化されます。

ヘッダー動的変数説明
X-CallANI{{sip_callani}}発信者の電話番号。
X-CallDNIS{{sip_calldnis}}ダイヤルされた電話番号。
X-CallID{{sip_callid}}一意のFive9通話識別子。
X-CallSessionID{{sip_callsessionid}}現在のセッションの識別子。
X-CallCampaign{{sip_callcampaign}}Five9キャンペーンの名前。
X-AgentID{{sip_agentid}}ルーターエージェントによるルーティングに使用する対象ElevenLabsエージェント。

これらの変数をエージェントプロンプト、最初のメッセージ、ツールで使用し、会話をパーソナライズできます。

予約済みヘッダーX-Call-IDおよびX-Caller-IDは、system__call_sidおよびsystem__caller_idのシステム動的変数にマッピングされます。Five9はハイフンなしのX-CallIDおよびX-CallANIを送信し、これらは代わりにsip_callidおよびsip_callaniに正規化されます。プロンプトで参照する前に、テスト通話中にどの変数が入力されているか確認してください。

ElevenLabsからFive9に返されるヘッダー

ElevenLabsは、ルーティングおよびレポートデータをSIP BYEで返します。以下のヘッダー名は、Five9 AI Agent Connectで推奨される規則です。

ヘッダー説明
X-RouteTypeFive9が実行するアクション。例:SkillTransfer。
X-RouteValueアクションの対象。例:Five9スキル名。
X-RouteReason顧客の意図など、ルーティング判断のコンテキスト。
X-ConversationIdログの関連付けに使用するElevenLabs会話識別子。

Five9フローで必要な追加のX-ヘッダーも返せます。各ヘッダー値はエージェント上の動的変数から取得されるため、エージェントは会話中にこれらの変数を設定する必要があります。

BYEヘッダーの設定

BYEヘッダーは、エージェントの動的変数の最終値をFive9に返します。電話番号のinbound_trunk_configでattributes_to_headersを使用し、各動的変数名をヘッダー名にマッピングします。エージェントが設定する変数と、system__conversation_idなどのシステム動的変数の両方をマッピングできます。

import os
from dotenv import load_dotenv
from elevenlabs import ElevenLabs, InboundSipTrunkConfigRequestModel
load_dotenv()
elevenlabs = ElevenLabs(api_key=os.getenv("ELEVENLABS_API_KEY"))
elevenlabs.conversational_ai.phone_numbers.update(
phone_number_id="phnum_8901k4t9z5defmb8vh3e9361y7nj",
inbound_trunk_config=InboundSipTrunkConfigRequestModel(
attributes_to_headers={
"route_type": "X-RouteType",
"route_value": "X-RouteValue",
"route_reason": "X-RouteReason",
"system__conversation_id": "X-ConversationId",
}
),
)

ヘッダー値には、エージェントツールまたはWebhookオーバーライドを通じて通話中に設定された値を含め、会話終了時点の動的変数の値が使用されます。エージェントが終了時にroute_typeをSkillTransferに、route_valueをbilling_supportに設定する通話では、次のBYEヘッダーが生成されます。

X-RouteType: SkillTransfer
X-RouteValue: billing_support
X-RouteReason: Customer needs help with an invoice
X-ConversationId: conv_7401k6a2b8cxyzmn9pq3r5s7t1uv

その後、Five9は発信者をbilling_supportスキルにルーティングします。

推奨ルーティング値

Five9フローで直接分岐できるよう、X-RouteType値はシンプルで予測可能なものにしてください。

X-RouteTypeX-RouteValueの例説明
SkillTransferbilling_support通話を特定のFive9スキルキューに転送します。
PhoneTransfer+18005550199通話を外部の電話番号に転送します。
Hangup空AIとのやり取り後に通話を終了します。
DispositionOnlyResolved通話を終了し、特定のディスポジションを記録します。

Five9の設定

通常、Five9導入チームは以下を行います。

  1. Five9ドメインでAI Agent Connectを有効にします。
  2. Five9 IVR転送フローを設定します。
  3. ElevenLabsの電話番号を転送先として追加します。
  4. External Transfer Moduleを設定します。
  5. ElevenLabsに送信する送信X-ヘッダーを設定します。
  6. ElevenLabsから返される受信X-ヘッダーを設定します。
  7. 返されたヘッダーをFive9通話変数にマッピングします。
  8. それらの変数に基づいて分岐するAI後のルーティングロジックを設定します。
  9. エンドツーエンドのテスト通話を行います。

トラブルシューティング

  • ElevenLabsの電話番号がSIPトランク番号としてインポートされ、エージェントが割り当てられていることを確認してください。
  • Five9 External Transfer Moduleで設定された転送先が、インポートした番号と一致することを確認してください。
  • ファイアウォールで、設定したトランスポートおよびポートのSIPシグナリングトラフィックが許可され、RTPポートがブロックされていないことを確認してください。
  • Five9がINVITE上でX-プレフィックス付きのヘッダーを送信していることを確認してください。
  • 正規化された変数名を確認してください。X-AgentIDは{{X-AgentID}}や{{agent_id}}ではなく、{{sip_agentid}}になります。
  • 会話履歴のPhone Callタブで、どのヘッダーが到着したか確認してください。
  • カスタムヘッダーでsystem__call_sidおよびsystem__caller_idシステム変数を上書きすることはできません。
  • 通話を受ける電話番号のinbound_trunk_configにattributes_to_headersが設定されていることを確認してください。
  • キーが動的変数名で、値がヘッダー名であることを確認してください。逆ではありません。
  • 会話中にエージェントが実際にそれらの動的変数を設定していることを確認してください。未設定の変数ではヘッダー値は生成されません。
  • Five9がすべての転送通話でX-AgentIDを送信していることを確認してください。
  • 各X-AgentID値に、ルーターエージェント上の対応する転送ルールがあることを確認してください。
  • ルーターエージェントの転送ルールが{{sip_agentid}}を参照していることを確認してください。

便利なリンク