Inbound webhook returns retell_llm_dynamic_variables but agent doesn't receive them

I have an inbound webhook configured to return caller data via retell_llm_dynamic_variables, but the agent isn’t receiving the variables.

Setup:

  • Phone number has “Add an inbound webhook” enabled

  • Webhook URL points to my N8N workflow

  • N8N looks up the caller in HubSpot and returns their info

What’s working:

  • Webhook fires correctly on inbound calls

  • Detail Logs show the correct response:

inbound call_inbound webhook response: {
  retell_llm_dynamic_variables: {
    first_name: 'Pranam',
    last_name: 'Lipinski',
    email: 'pranam@eocworks.com',
    caller_known: 'true',
    phone_number: '+16174804650'
  }
}

What’s NOT working:

  • Data tab shows “No Extracted Dynamic Variables”

  • Agent doesn’t use the variables — asks for my name instead of greeting me by name

  • Variables are defined in agent settings (first_name, last_name, email, caller_known, phone_number)

Call ID for reference: call_6d54d80e38bc26a9ec757c3542f

Response headers: Content-Type: application/json

Is there an additional configuration needed to enable dynamic variable injection from inbound webhooks? The documentation indicates returning retell_llm_dynamic_variables should populate these for the agent.

The issue is with your response structure. For inbound webhooks, dynamic variables must be nested under call_inbound, not returned at the top level as retell_llm_dynamic_variables.(1)

Your N8N workflow should return:

{
  "call_inbound": {
    "dynamic_variables": {
      "first_name": "Pranam",
      "last_name": "Lipinski",
      "email": "pranam@eocworks.com",
      "caller_known": "true",
      "phone_number": "+16174804650"
    }
  }
}

(1)

The inbound webhook expects fields grouped under call_inbound, with dynamic variables specifically under the dynamic_variables key.(1) This is different from outbound calls where you use retell_llm_dynamic_variables directly in the API request.(2)

Also verify that your inbound webhook URL is configured at the phone number level (in the Phone Numbers tab), not just at the agent level.(3)(4) The webhook must be set on the specific phone number to trigger the call_inbound event before the call connects.(4)