Skip to main content

Server integration

Inbound call webhook

Synchronous routing before a call connects. Not available yet.

Not available yet

Finn doesn't have an inbound call webhook yet. When someone calls one of your numbers, Finn doesn't contact your server to choose an agent, set variables, reject the call or transfer it. The Finn assigned to that number answers.

Earlier versions of this page described a request and response format, a latency budget, reject and transfer actions and a finn inbound simulate command. None of these exist. If you built against them, those requests never arrive.

The Inbound webhook URL field

A Finn's Deployment settings has an Inbound webhook URL field under Phone. Finn saves the URL, and Initialize sends one test request to it:

{
  "event": "inbound_call.test",
  "finn_id": "8f14e45f-ceea-467a-9f6a-1c0e5b2a77d1",
  "org_id": "3c1a9f52-0d77-4a6e-9b21-8e4c5f7d2a10",
  "test": true,
  "sent_at": "2026-09-18T11:02:44.000Z"
}

If a signing secret is set, the test includes X-Finn-Signature: t=<unix>,v1=<hex>, signed the same way as webhook deliveries. The URL must be public https; private and internal addresses are refused. A 2xx response marks the URL verified.

Finn doesn't call this URL during real calls. Saving it doesn't change how calls are answered.

What to use instead

You want toUse
Choose which agent answers a numberAssign the number to a Finn with POST /api/v1/deployments/inbound (see api-deployments) or in the dashboard.
Route different callers to different agentsGive each agent its own number.
Personalize a call with your own dataFor outbound calls, add the data to the audience contacts (see api-audiences).
Act on a call after it endsThe call.completed webhook.