Skip to content

call.routing_decided

POST

An inbound route with an assistant-request URL decided who answers: your server’s answer (source: assistant_request), or the route’s own target when the request failed, timed out or was invalid (source: route, with reason).

webhook-id
required
string

The event ID (evt_…); the same on every retry. Deduplicate on it.

Example
evt_3fT9kq2ZpLr8YwVbN1cX0a
webhook-timestamp
required
string

Unix seconds of this delivery attempt. Reject deliveries more than 5 minutes old.

Example
1762161262
webhook-signature
required
string

Space-separated v1,<base64 HMAC-SHA256> signatures of <webhook-id>.<webhook-timestamp>.<body> with the endpoint secret (two while a secret rotates).

Example
v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=
Media typeapplication/json

An inbound route with an assistant-request URL decided who answers: your server’s answer (source: assistant_request), or the route’s own target when the request failed, timed out or was invalid (source: route, with reason).

object
api_version
required

The API version the payload is rendered in (the endpoint’s pinned version).

string
created
required

An ISO-8601 timestamp in UTC.

string format: date-time
data
required

object is the object the call.routing_decided event is about.

object
object
required
object
call_id
string
>= 1 characters /^call_[0-9A-Za-z]+$/
latency_ms
integer
<= 9007199254740991
reason
string | null
route_id
string
>= 1 characters /^rte_[0-9A-Za-z]+$/
source
string
Allowed values: assistant_request route
status
Any of:
integer
>= -9007199254740991 <= 9007199254740991
target
Any of:
object
assistant_id
string
>= 1 characters /^asst_[0-9A-Za-z]+$/
flow_id
string
>= 1 characters /^flow_[0-9A-Za-z]+$/
queue_id
string
>= 1 characters /^q_[0-9A-Za-z]+$/
type
required
string
Allowed values: assistant flow queue
key
additional properties
key
additional properties
previous_attributes

For *.updated-style events: the changed attributes’ previous values.

object
key
additional properties
id
required

The event ID. Receivers deduplicate on it (it is also the webhook-id header).

string
/^evt_[0-9A-Za-z]+$/
livemode
required

true in live mode, false in test mode.

boolean
object
required
string
Allowed value: event
org_id
required

The organisation the event belongs to.

string
/^org_[0-9A-Za-z]+$/
request
object
id
required
Any of:

The API request that caused the event (its X-Request-Id), if any.

string
/^req_[0-9A-Za-z]+$/
idempotency_key
required

That request’s Idempotency-Key, if any.

string | null
type
required
string
Allowed value: call.routing_decided
Example
{
"api_version": "2026-11-01",
"created": "2026-11-03T09:14:22.000Z",
"data": {
"object": {
"call_id": "call_Oxtl48GXWtJCwMfHzxm0oL",
"latency_ms": 93120,
"reason": "…",
"route_id": "rte_871CI4jp9jg26zg1VtMFoh",
"source": "assistant_request",
"status": 1,
"target": {
"assistant_id": "asst_yosOhvUkeWL0SUSxrLfMTg",
"flow_id": "flow_tR9pvZPjzIEif0WVmzbQUt",
"queue_id": "q_FG2uL2gdWXNMUfXZyRFLfT",
"type": "assistant"
}
}
},
"id": "evt_3fT9kq2ZpLr8YwVbN1cX0a",
"livemode": true,
"object": "event",
"org_id": "org_0000000000000000000001",
"request": {
"id": null,
"idempotency_key": null
},
"type": "call.routing_decided"
}

Acknowledge the event with any 2xx status within 15 seconds. Anything else, or a timeout, is retried for up to 72 hours.