インバウンドウェブフック
動的なエージェントルーティング — インバウンド通話が着信するとFinnが御社のサーバーを呼び出します。
インバウンド Webhooks
インバウンドコールが到着すると、 Finnは、エージェントが回答するリアルタイムで、インジェクトする変数、およびロードする知識ベースを尋ねることができます。 これは、発信者番号、アカウントの階層、日の時刻、A/Bのコホート、またはバックエンドのケアに関する任意のロジックによって、動的にルートすることができます.
固定エージェントが十分な場合は、これをスキップします。 ダイナミックパーコールルーティングが必要な場合は、このページです.
お問い合わせ
作品紹介
caller dials → Finn answers ring → Finn POSTs to your URL → your server returns agent + vars → Finn streams the voice agent
ハンドシェイクはレイテンシーの100〜200msを追加します。 エンドポイントは、デフォルトエージェントに500ms** または Finn が戻ってくる必要があります.
お問い合わせ
設定
1. インバウンドWebhook URLを設定する
ダッシュボード → 設定 → 電話番号 → [番号] → インバウンド Webhook URL.
HTTPS エンドポイントを貼り付けます。 保存。 Finnは、リーダビリティを検証するために、{"ping": true}ボディで一度それをpingsをpings.
APIに従って
curl https://api.hirefinn.ai/v1/phone-numbers/ph_1234 \
-X PATCH \
-H "Authorization: Bearer $FINN_API_KEY" \
-d '{ "inbound_webhook_url": "https://your-app.com/finn/inbound" }'
2. フォールバックエージェントを設定する
デフォルトの Finn をその番号に設定します。Webhook のタイムアウト、エラー、または無効なレスポンスを返す場合に使用されます.
お問い合わせ
リクエストペイロード
Finn は URL への POST を次のようにします
{
"session_id": "ws_2H4abc",
"request_type": "inbound",
"phone_number_id": "ph_1234",
"channel": "pstn",
"from": {
"phone": "+919876543210",
"country": "IN",
"carrier": "Airtel"
},
"to": {
"phone": "+918765432100",
"country": "IN"
},
"received_at": "2026-05-22T14:30:00Z",
"metadata": {}
}
WhatsAppコールの場合、fromブロックはWhatsApp固有のフィールドを使用します
"from": {
"wa_id": "919876543210",
"display_name": "Priya M",
"profile_pic_url": "https://..."
},
"channel": "whatsapp"
お問い合わせ
フィードバック
コールをルーティングする方法を記述する500ms以内にJSONボディを返します
{
"finn_id": "fn_def456",
"language": "hi-IN",
"variables": {
"customer_name": "Priya M",
"account_tier": "premium",
"last_order_id": "ord_99831",
"preferred_agent": "Aria"
},
"knowledge_base_ids": ["kb_general", "kb_premium_perks"],
"metadata": {
"campaign_tag": "premium-support-q2",
"ab_cohort": "B"
},
"recording_enabled": true,
"max_call_duration_seconds": 600
}
フィールド参照
| フィールド | 必須 | ノート |
お問い合わせ
| プライバシーポリシー | どの代理店が答えるか。 あなたの所属する組織に所属しなければなりません。 |
| language | いいえ | オーバーライドエージェントのデフォルト言語。 en-US、hi-IN、es-ES等 |
| variables | いいえ | 自由フォームキー・値袋 {variable_name}``{variable_name}としてプロンプト内で使用可能です。 |
| knowledge_base_ids | No | KB が読み込まれるオーバーライド |
| metadata | ノー | コールレコード・ポストコールwebhookに添付 独自の分析タグ作成に使用します。 お問い合わせ
| recording_enabled | いいえ | エージェントのデフォルトをオーバーライド |
| max_call_duration_seconds | いいえ | ハードキャップ デフォルトは1800(30分)です。 |
呼び出しを拒否する
{ "action": "reject", "reason": "blocked_caller" }
Finnは、設定された発信メッセージで呼び出しを終了します(「この番号はサービスにはありません」)。 DNCの執行、ブロックされたアカウント、またはアフター・タイムの集荷のために使用して下さい.
すぐに転送
{ "action": "transfer", "to": "+918888888888", "reason": "vip_route" }
AIエージェントを完全にスキップ — 直接人へ。 VIP/エスカレーションの層に便利な.
お問い合わせ
実装例(ノード)
import express from "express";
const app = express();
app.use(express.json());
app.post("/finn/inbound", async (req, res) => {
const { from, to, channel } = req.body;
// 1. Look up caller in CRM (must be fast — DB index by phone)
const phone = from.phone ?? `+${from.wa_id}`;
const customer = await crm.findByPhone(phone);
// 2. Block known DNC
if (customer?.dnc) {
return res.json({ action: "reject", reason: "dnc" });
}
// 3. VIP → straight to human
if (customer?.tier === "vip") {
return res.json({
action: "transfer",
to: process.env.VIP_DESK_NUMBER!,
reason: "vip_route",
});
}
// 4. Localized agent based on caller country
const language = from.country === "IN" ? "hi-IN" : "en-US";
// 5. Pick agent + load context
return res.json({
finn_id: customer?.tier === "premium"
? "fn_premium_aria"
: "fn_standard_aria",
language,
variables: {
customer_name: customer?.name ?? "there",
account_tier: customer?.tier ?? "standard",
last_order_id: customer?.last_order_id ?? "",
},
knowledge_base_ids:
customer?.tier === "premium" ? ["kb_general", "kb_premium"] : ["kb_general"],
metadata: { ab_cohort: customer?.ab_cohort ?? "A" },
});
});
app.listen(3000);
お問い合わせ
署名検証
生体上のHMAC-SHA256、ヘッダ X-Finn-Signature のポストコール webhooks と同じスキーム.
const sig = req.headers["x-finn-signature"] as string;
const ok = verifyFinnSignature(rawBody, sig, process.env.FINN_INBOUND_SECRET!);
if (!ok) return res.status(401).send("bad signature");
完全な検証実装の Post-call Webhooks] を参照してください.
お問い合わせ
性能要件
これは、*hot パス ** — 応答を待ちながら、呼び出し主は聴覚リングトーンです.
| メトリック | ターゲット | お問い合わせ | 対応時間 | ※<500ms> | タイムアウト | 1000ms | | タイムアウトのフォールバック | 電話番号で設定された既定のエージェント | | フォールバック 5xx | デフォルトエージェント | | 無効なJSONのフォールバック | デフォルトのエージェント + エラーが記録 |
打つことのための先端 < 500ms
- キャッシュCRMルックアップ 5分間の電話番号で
- 共同データベースを使用する-私たち東からwebhook、私たち西にあるDB = 80ms各方法
- 事前競争のルーティング決定 — 顧客の記録に答えを保存し、ライブを決定しないでください
- Skip 非必須の濃縮 インバウンドホップ — ポストコールのwebhookに動作するプッシュ
お問い合わせ
ケーラー事前スクリーニング
ほとんどのアプリは、これらのパターンの1つにインバウンドWebhookを使用します
| パターン | ユースケース |
お問い合わせ
|Lookup + Personalize | 顧客記録を引っ張り、変数名+ティアを渡す |
|DNC施行 | ブロックされた数字から呼び出しを拒絶する |
|VIPルーティング | スキップエージェント |
|言語検出 | 米国の発信者のためのインドのhi-IN``en-USを選ぶ |
|A/Bテスト | 新規エージェントバージョンへの呼び出しの50%をルート |
|アフタータイムルーティング | 業務外の異なるエージェント(またはボイスメール) |
| キャンペーントラッキング | キャンペーンIDで特定の追跡番号からのタグ呼び出し |
|マルチテナントSaaS | 数字がダイヤルされたテナントへのルート |
お問い合わせ
テスト
実際のPSTNリングなしでインバウンドコールをシミュレートするためにFinnCLIを使用してください
finn inbound simulate \
--phone-number-id ph_1234 \
--from +919876543210 \
--webhook-url https://your-app.com/finn/inbound
出力はエンドポイント応答、レイテンシー、および解決されたエージェント+変数を示します。 CIフレンドリー.
お問い合わせ
普通のゴッチャ
| 症状 | 修正 |
お問い合わせ
| コールは常にデフォルトのエージェントに落ちる | エンドポイントは500msです。 Finnのwebhookログをタイミングでチェックします。 お問い合わせ
| コールアはエージェントが話す前に2〜3秒の沈黙を聞きます | エンドポイントは遅くてもタイムアウトです。 <200ms>を最適化
| エージェントスピーチで表示されていない変数 | プロンプトプレースホルダー{customer_name} と webhook のキー customerName間のMismatch。 両側のヘビ caseを使用してください。 |
| 間違ったエージェントが回答 | エンドポイントは、他の組織に所属するfinn_idを返しました。 所有権の検証 |
| action: reject 敬意を表していない | reasonは文字列であり、JSON は有効です。 無効な応答→フォールバック。 |
お問い合わせ
関連記事
Was this page helpful?
Still stuck or have feedback?
Email [email protected] or use the chat bubble in the bottom-right corner — it's a Finn that knows the Academy cold.