yoavbg
01/09/2026, 5:57 PMAI Evy
01/09/2026, 5:57 PMAI Evy
01/09/2026, 5:57 PMcall_inbound. All fields are optional:
- `override_agent_id`: override the agent for this call
- `override_agent_version`: override the agent version
- `dynamic_variables`: set dynamic variables for the call
- `metadata`: set metadata for the call
- `agent_override`: override agent settings per-call
## Example Response
json
{
"call_inbound": {
"override_agent_id": "agent_12345",
"override_agent_version": 1,
"dynamic_variables": {
"customer_name": "John Doe"
},
"metadata": {
"random_id": "12345"
}
}
}
## Setup Steps
1. Set the inbound_webhook_url on your phone number configuration [(2) ]() , [(3) ]()
2. Your webhook endpoint must respond within 10 seconds with a 2xx status [(1) ]()
3. If the webhook fails, it retries up to 3 times
To reject an inbound call, respond with a 200 status code without the override_agent_id field.
Note: The inbound webhook is configured at the phone number level, not the agent level. [(7) ]()AI Evy
01/09/2026, 5:57 PMAI Evy
01/09/2026, 5:57 PMyoavbg
01/09/2026, 5:58 PMAI Evy
01/09/2026, 5:58 PMAI Evy
01/09/2026, 5:58 PM{{201.statusCharacter}} are template placeholders from your automation tool (like Make or N8N) that need to be resolved to actual string values before being sent to Retell. [(1) ]()
All values in dynamic variables must be **strings**—numbers, booleans, or other data types are not supported. [(2) ]()
Checklist:
1. **Ensure placeholders are resolved**: Your automation tool should replace {{201.statusCharacter}} with the actual value (e.g., "active") before sending the response to Retell.
2. **Verify response timing**: The webhook has a timeout of 10 seconds. If no success status (2xx) is received within that time, it will retry. [(1) ]()
3. **Check your automation logs**: Confirm the actual JSON being sent has resolved values, not the raw template syntax.
Example of what Retell should receive:
json
{
"call_inbound": {
"dynamic_variables": {
"status": "active",
"customer_id": "12345",
"customer_name": "John Doe"
}
}
}
, [(3) ]() , [(4) ]()
If your automation tool is sending the literal {{201.statusCharacter}} text instead of resolved values, the agent will receive those as the actual variable values.AI Evy
01/09/2026, 5:59 PMAI Evy
01/09/2026, 5:59 PMyoavbg
01/09/2026, 5:59 PMAI Evy
01/09/2026, 6:00 PMAI Evy
01/09/2026, 6:00 PMdynamic_variables under call_inbound like this:
json
{
"call_inbound": {
"dynamic_variables": {
"status": "active",
"customer_id": "12345",
"customer_name": "John Doe"
}
}
}
One user reported that using retell_llm_dynamic_variables was not setting the variables correctly, and what fixed it was using the call_inbound.dynamic_variables structure instead.
To verify the variables are being received:
1. Add one of your dynamic variables to the begin message (e.g., "Hello {{customer_name}}") to confirm the agent is receiving them. [(2) ]()
2. If it works in the begin message but not in the prompt, that indicates the variables are arriving but may not be referenced correctly in your prompt.
In your prompt, make sure you're referencing the variables using the {{variable_name}} syntax, like: [(3) ]()
The customer's name is {{customer_name}} and their status is {{status}}.
If the agent speaks the variable correctly in the begin message but not in the prompt responses, try explicitly instructing the agent to use those variables in a "Context" section of your prompt. [(2) ]()AI Evy
01/09/2026, 6:00 PMAI Evy
01/09/2026, 6:00 PM