mcpField
S
setup-inbound

setup-inbound

github.com/bolna-aiエージェントワークフロー368 回インストール今日更新
リポジトリ

setup-inbound について

着信に自動応答する Bolna エージェントへ電話番号を割り当てるスキルです。オプションの IVR ルーティング、発信者識別、迷惑電話対策、多言語メッセージ切り替えも扱います。

主な機能

  1. 01電話番号の割り当てと解除
  2. 02Plivo IVR メニューと入力収集の設定
  3. 03発信者データのプロンプトへの反映
  4. 04着信制限と発信者ルールの設定
  5. 05多言語メッセージ切り替えの設定

活用シーン

  1. 01着信番号をエージェントへルーティング
  2. 02通話の振り分け前にアカウント情報を収集
  3. 03発信者情報を使った通話のパーソナライズ
  4. 04不明な発信者や頻繁な着信の制限

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/bolna-ai/skills --skill setup-inbound

インストール後、Claude Code で/setup-inboundを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

assets/
ivr_account_verification.json
ivr_department_routing.json
ivr_multilingual.json
references/
auto-switch-messages.md
caller-identification.md
ivr-config.md
scripts/
setup_inbound.py

詳細

Bolna の着信通話

着信通話では、電話番号をエージェントに紐付け、その番号への着信に自動で応答します。必要に応じて、IVR メニュー、発信者の識別、スパム対策、多言語切り替えを追加できます。

エンドポイントは 2 つだけです

エンドポイント用途
POST /inbound/setup電話番号をエージェントに紐付けます(IVR 設定は任意)。
POST /inbound/unlink紐付けを解除します。

どちらも、Authorization: Bearer $BOLNA_API_KEY と Content-Type: application/json を指定します。

phone_number_id の取得元

電話番号の取得元ID の取得方法
Bolna ホスティング(ダッシュボードで購入)GET /phone-numbers/all — manage-phone-numbers を参照してください。
接続済みプロバイダー(お使いの Twilio、Plivo、Vobiz、Exotel)プロバイダーの接続後に電話番号を一覧表示すると返されます。
独自の SIP トランク(BYOT)POST /sip-trunks/trunks/{id}/numbers から返されます — setup-sip-trunk を参照してください。

取得元にかかわらず、紐付けの手順は同じです。

基本的な紐付け

curl -X POST https://api.bolna.ai/inbound/setup \
  -H "Authorization: Bearer $BOLNA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "phone_number_id": "123e4567-e89b-12d3-a456-426614174000"
  }'

レスポンス:

{
  "url": "https://api.bolna.ai/inbound_call?agent_id=...&user_id=...",
  "phone_number": "+19876543210",
  "id": "3c90c3cc0d444b5088888dd25736052a"
}

基本的な設定はこれで完了です。これで、+19876543210 への着信にエージェントが応答します。

1 つの電話番号につき、エージェントは 1 つです。 電話番号を別のエージェントに再紐付けすると、以前の紐付けは通知なしに解除されます。再紐付けせずに解除するには、/inbound/unlink を使用します。

IVR(メニュールーティング)

「営業は 1、サポートは 2」のような案内や、通話前のデータ収集に使用します。Plivo のみ対応しています。

curl -X POST https://api.bolna.ai/inbound/setup \
  -H "Authorization: Bearer $BOLNA_API_KEY" \
  -H "Content-Type: application/json" \
  -d @assets/ivr_department_routing.json

アセットファイル:

{
  "agent_id": "default-agent-uuid",
  "phone_number_id": "phone-number-uuid",
  "ivr_config": {
    "enabled": true,
    "voice": "Polly.Aditi",
    "welcome_message": "Welcome to Acme Corp.",
    "timeout": 5,
    "max_retries": 2,
    "default_agent_id": "default-agent-uuid",
    "steps": [
      {
        "step_id": "department",
        "type": "menu",
        "prompt": "Press 1 for Sales. Press 2 for Support. Press 3 for Billing.",
        "field_name": "department",
        "options": [
          { "digit": "1", "label": "Sales",   "agent_id": "sales-agent-uuid" },
          { "digit": "2", "label": "Support", "agent_id": "support-agent-uuid" },
          { "digit": "3", "label": "Billing", "agent_id": "billing-agent-uuid" }
        ]
      }
    ]
  }
}
ステップの種類
種類用途
menu選択肢を提示し、押された番号に応じてルーティングします。
collect複数桁の入力(口座番号、PIN など)を取得します。
IVR のトップレベルフィールド
フィールドデフォルト備考
enabledfalseIVR 全体の有効・無効を切り替えます。
voicePolly.JoannaIVR プロンプト用の Polly 音声です。ヒンディー語と英語には Polly.Aditi を使用します。
welcome_message—接続時に、最初のステップの前に 1 回再生されます。
timeout5ステップごとに、発信者の入力を待つ秒数です。
max_retries2各ステップで無効な入力があった場合の再試行回数です。
invalid_input_message"Invalid input. Please try again."無効なキーが押されたときに再生されます。
no_input_message"No input received. Goodbye."タイムアウト時に再生されます。
steps[]必須IVR のフローです。
default_agent_id—オプションレベルで agent_id が設定されていない場合のフォールバックエージェントです。
ステップの遷移
フィールド動作
next_step直線的な遷移:現在のステップの後に、このステップへ進みます。
conditional_next押された番号に応じて分岐します:{"1": "menu_en", "2": "menu_hi"}。
いずれもなしIVR を終了します。選択された agent_id または default_agent_id にルーティングします。
分岐を使った多言語 IVR
{
  "step_id": "language",
  "type": "menu",
  "prompt": "For English press 1. Hindi ke liye 2 dabayein.",
  "field_name": "language",
  "options": [
    { "digit": "1", "label": "English" },
    { "digit": "2", "label": "Hindi" }
  ],
  "conditional_next": { "1": "menu_en", "2": "menu_hi" }
}

多言語対応の部署振り分けフロー全体については、assets/ivr_multilingual.json を参照してください。

エージェントに渡される情報

IVR の完了後、収集されたフィールドは recipient_data として利用できます。

{
  "department": "Sales",
  "account_number": "123456",
  "language": "English",
  "ivr_completed_at": "2026-05-19T10:30:00Z"
}

エージェントのプロンプトで使用します:"Customer selected {department}. Account number: {account_number}."

IVR を無効にする
curl -X POST https://api.bolna.ai/inbound/setup \
  ... \
  -d '{ "agent_id": "...", "phone_number_id": "...", "ivr_config": { "enabled": false } }'

メニューと入力収集ステップの例、条件分岐を含む IVR の詳しいリファレンスについては、references/ivr-config.md を参照してください。

発信者の識別(ingest_source_config)

発信者に応じて、エージェントのプロンプト変数に値を事前入力します。これは /inbound/setup ではなく、エージェントに設定します。設定方法は 3 種類あります。

ソース適した用途
内部 API既存の CRM/顧客データベースがあるチーム。リアルタイムで、完全に動的です。
CSV アップロード小規模なチーム、通話量が少ない場合、ノーコードでの利用。静的なため、更新するには再アップロードが必要です。
Google Sheetコーディング不要でのリアルタイム同期。シートは一般公開されている必要があります。
内部 API ソース

Bolna は、次の情報を付けてエンドポイントに GET リクエストを送信します。

GET https://your-api.example.com/customers
    ?contact_number=+19876543210
    &agent_id=<agent_uuid>
    &execution_id=<execution_uuid>

認証:Bearer トークン(エージェントごとに設定)。

レスポンスの JSON は recipient_data にマージされます。プロンプトでは次のように使用します。

You are speaking with {first_name} {last_name}. They are on the {plan} plan,
last contacted on {last_contacted_at}.
CSV/Google Sheet ソース

どちらの場合も、contact_number 列(国番号付き)が必要です。それ以外の列はすべてプロンプト変数になります。

contact_number,first_name,last_name,plan,last_contacted_at
+19876543210,Priya,Sharma,Enterprise,2026-05-12
+918765432109,Rahul,Verma,Pro,2026-05-14

各ソースの詳しい設定方法については、references/caller-identification.md を参照してください。

スパムと不正使用の制御

これらは受信マッピング自体ではなく、エージェントのtask_configに設定します。

フィールド説明
inbound_limit受信者の電話番号ごとの最大通話数です。-1 = 無制限です。1つの番号による費用の増加を防ぐのに役立ちます。
whitelist_phone_numbers[]あらゆる制限や不明な発信者のルールを常に回避するE.164形式の番号です。
disallow_unknown_numbersブール値です。trueの場合、エージェントのingest_source_configルックアップに含まれていない発信者を拒否します。ingest_source_configの設定が必要です。
{
  "task_config": {
    "inbound_limit": 3,
    "whitelist_phone_numbers": ["+919876543210", "+19876543210"],
    "disallow_unknown_numbers": true
  }
}

disallow_unknown_numbers: trueでingest_source_configが設定されていない場合、すべての受信通話が拒否されます。必ず最初に発信者識別を設定してください。

多言語の自動切り替え

Bolnaは約3回の会話ターン後に発信者の言語を自動検出し、システムメッセージ(通話終了、ユーザーオンライン確認、ツール待機)をその言語に切り替えられます。エージェントで言語ごとのバリエーションを設定してください。

{
  "check_user_online_message": {
    "en": "Hey, are you still there?",
    "hi": "क्या आप अभी भी वहाँ हैं?",
    "ta": "வணக்கம், நீங்கள் இன்னும் இணைப்பில் இருக்கிறீர்களா?"
  },
  "call_hangup_message": {
    "en": "Thank you for calling. Goodbye!",
    "hi": "कॉल करने के लिए धन्यवाद। अलविदा!"
  }
}

フォールバックの順序:検出された言語 → en → 最初に利用可能な言語。安全策として、必ずenを設定してください。 references/auto-switch-messages.mdを参照してください。

リンク解除

curl -X POST https://api.bolna.ai/inbound/unlink \
  -H "Authorization: Bearer $BOLNA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "phone_number_id": "123e4567-e89b-12d3-a456-426614174000" }'

電話番号の所有権は引き続き維持されます(プロバイダー/SIPトランク/Bolnaの在庫内)。エージェントとのリンクのみが解除されます。

詳細情報

ファイル内容
references/ivr-config.mdすべてのステップタイプ、ナビゲーション、音声、高度なパターン。
references/caller-identification.mdAPI、CSV、Google Sheet — セットアップ手順とプロンプト変数の接続方法。
references/auto-switch-messages.md多言語メッセージ一式、フォールバックの順序、対応コード。
assets/ivr_department_routing.json部門振り分け用のシンプルなIVR。
assets/ivr_multilingual.json言語選択 → 部門メニュー。言語ごとに別々のエージェントを使用します。
assets/ivr_account_verification.jsonエージェントにつなぐ前に、2段階のcollectフロー(アカウント+PIN)を実行します。
scripts/setup_inbound.pyシンプルなセットアップとIVRセットアップ用のフラグを使って、POST /inbound/setupをラップします。

トラブルシューティング

症状原因対処方法
呼び出し音は鳴るが応答しないphone_number_idがまだマッピングされていないPOST /inbound/setupを再実行し、GET /phone-numbers/allで確認します
IVRが400を返すPlivo以外の番号でIVRを使用しているIVRはPlivo専用です。Plivo経由でルーティングするか、IVRを使用しないでください
プロンプト内のrecipient_dataが空ingest_source_configが設定されていない、またはcontact_numberが一致しなかったソースに発信者の番号が含まれていることを確認します。ルックアップのHTTPステータスについてBolnaのログを確認します
すべての発信者が拒否されるingest_source_configを設定せずにdisallow_unknown_numbers: trueにしている先にソースを追加するか、disallow_unknown_numbers: falseに設定します
自動切り替え後の通話終了メッセージが誤った言語で再生される検出には3ターン必要だが、通話がそれより短かったenのフォールバックを設定します。最初の1〜2ターンは引き続き主要言語になる場合があります
エージェントは応答するが、受信SIPの音質が悪いulawコーデックの不一致BolnaはSIP経由の受信でulawを設定します。トランクでulawが許可されていることを確認します

関連項目

  • manage-phone-numbers — Bolna番号の購入または一覧表示(phone_number_idの取得元)。
  • setup-sip-trunk — BYOT番号をBolnaに接続します。
  • create-agent — task_config(スパム制御)とingest_source_configは、エージェントの本文にあります。
  • setup-tools/references/dtmf.md — 通話中のキーパッド入力(IVRメニューのルーティングとは異なります)。
  • https://raw.githubusercontent.com/bolna-ai/skills/main/references/india-compliance.md — 規制対象のインドの番号を使用する場合のDLT/140/160シリーズの規則。

コメント