K Rudy
03/03/2026, 6:18 PMAI Evy
03/03/2026, 6:18 PMAI Evy
03/03/2026, 6:19 PMfrom_number – the caller's phone number
- to_number – the number being called
- agent_id – if an inbound agent is configured for that number
- agent_version – if configured
Note that at this point, the call is not yet connected and no call object or call ID exists yet.
If you need full call information (transcript, recording, analysis, etc.) , you'll want to use the call event webhooks (call_started, call_ended, call_analyzed) which trigger during and after the call and include the complete call object. [(2) ]()
The inbound webhook is primarily designed to let you:
- Override agent settings
- Set dynamic variables
- Add metadata
- Filter/reject calls before they connect
[(1) ]()AI Evy
03/03/2026, 6:19 PMAI Evy
03/03/2026, 6:19 PMK Rudy
03/03/2026, 6:20 PMAI Evy
03/03/2026, 6:20 PMAI Evy
03/03/2026, 6:21 PMaccount_status from your inbound webhook response, you need to return it under the call_inbound.dynamic_variables object in your webhook response.
[(1) ]()
Your webhook should return a JSON response structured like this:
json
{
"call_inbound": {
"dynamic_variables": {
"account_status": "active"
}
}
}
Important: Do not use retell_llm_dynamic_variables at the top level—this is a common mistake. For inbound webhooks, dynamic variables must be nested under call_inbound with the key dynamic_variables.
[(2) ]()
Once configured, you can reference {{account_status}} in your agent's prompts, begin message, or tool configurations.
[(3) ]()
Quick setup steps:
1. Enable the inbound webhook on your phone number
[(1) ]()
2. Your webhook endpoint receives the call_inbound event with from_number and to_number
3. Look up the caller's account status in your system
4. Return the response with dynamic_variables nested under call_inbound
5. Use {{account_status}} in your agent prompt
[(3) ]()AI Evy
03/03/2026, 6:21 PMAI Evy
03/03/2026, 6:21 PMK Rudy
03/03/2026, 6:22 PMAI Evy
03/03/2026, 6:22 PMAI Evy
03/03/2026, 6:23 PMoverride_agent_id → If you want to reject the call, return a 200 status without the call_inbound.override_agent_id field
- All webhook attempts fail → Retell checks if the number has an inbound agent configured. If yes, it connects to that agent. If not, the call disconnects.
So your webhook response determines both if and how the call connects, and the caller remains on hold (ringing) until that response is processed.AI Evy
03/03/2026, 6:23 PMAI Evy
03/03/2026, 6:23 PM