Webhook with dynamic variable not getting value

webhook-overview documentation says

says

Webhook URLs support dynamic variables. For example, setting webhook_url to webhook?customer={{customer_name}} resolves the {{customer_name}} placeholder per call before the event is delivered. This applies to both agent-level and account-level webhook URLs.

But when I try to do this no value is passed through.

customer={{customer_name}}

If I pass the value directly like it works.

customer=John

I removed URLs from post because it would not let me add them

Hey @sdelinois

Retell supports dynamic variables in both agent-level and account-level webhook URLs. For example:

?customer={{customer_name}}

However, customer_name must already have a value for that call. Retell’s documentation states that if a dynamic variable has not been assigned, the placeholder remains unresolved rather than receiving a value automatically.

For outbound calls, please make sure customer_name is included in retell_llm_dynamic_variables when creating the call. For inbound calls, it can be supplied through the Inbound Call Webhook or another supported source such as contact variables.

Could you please check one affected call and confirm whether customer_name appears under retell_llm_dynamic_variables in the call details?

If it is present there but still not being substituted into the webhook URL, please share a recent Call ID and we can investigate further.

Best Regards.

This is for an outbound call. Call Ended webhook. I want to send the transcript to the email that’s defined in the variable which is set in the agent prompt

{{email}} = “name@gmail.com”

I’ve used these variables for everything else but this one is not working for the webhook.

Hey @sdelinois

Thanks for clarifying. For an outbound call, defining something like {{email}} = "name@gmail.com" inside the agent prompt does not assign a runtime value to that dynamic variable.

For the webhook URL to resolve {{email}}, the value needs to be provided as an actual dynamic variable — either:

  • as an agent-level default dynamic variable, or

  • in retell_llm_dynamic_variables when creating the outbound call.

For example, the call should contain an email value inside retell_llm_dynamic_variables. Retell then resolves that value in the webhook URL when the call_ended event is delivered.

If this email address is always the same, you can also set it as the agent’s default dynamic variable rather than passing it on every call.

Best Regards.

Thanks for your help as I’m new to retell.

So if I can’t pass a value in the prompt like {{email}}= “name@gmail.com”

Where else can I set a variable that can be used in the webhook. Also, please point me to the steps or the documentation for accomplishing that.

Thanks in advance for your help.

Hey @sdelinois

If the email address is the same for every outbound call, the easiest option is to set it as an agent-level default dynamic variable.

In your agent settings, find the Default Dynamic Variables section and add:

email → name@gmail.com

Then you can use it in your webhook URL like:

?email={{email}}

Retell will use the agent-level default value whenever that variable is not supplied separately for the call. Retell documents this under Configure agent-level default dynamic variables.

If the email needs to be different for each outbound call, pass it when creating the call under retell_llm_dynamic_variables, for example:

"email": "name@gmail.com"

All dynamic-variable values passed this way must be strings.

Also, putting {{email}} = "name@gmail.com" inside the prompt does not assign the variable — the prompt can use a dynamic variable, but its value needs to come from the agent-level defaults or the outbound call request.

You can follow Retell’s Dynamic Variables documentation here:
Dynamic Variables Documentation

Once email has an actual value, Retell supports resolving it inside both agent-level and account-level webhook URLs.

Best Regrads.