Ciaran
02/17/2026, 2:07 PMAI Evy
02/17/2026, 2:07 PMAI Evy
02/17/2026, 2:07 PMuser_first_name variable in your greeting by returning it from your inbound webhook and then referencing it with the {{user_first_name}} syntax. [(1) ]()
In your inbound webhook response, return the dynamic variable like this:
json
{
"call_inbound": {
"dynamic_variables": {
"user_first_name": "John"
}
}
}
[(2) ]()
Then in your agent's begin message (greeting) , use the placeholder:
"Hello {{user_first_name}}, thanks for calling!"
[(1) ]()
Dynamic variables can be used in prompts and the begin message, so once you return user_first_name from your inbound webhook, the agent will substitute it into the greeting.
If the variable isn't provided or is empty, it will remain as {{user_first_name}} in the output, so you may want to add defensive prompting to handle cases where the user isn't found.AI Evy
02/17/2026, 2:07 PMAI Evy
02/17/2026, 2:07 PMCiaran
02/17/2026, 2:09 PMAI Evy
02/17/2026, 2:09 PMAI Evy
02/17/2026, 2:09 PMIf {{user_name}} appears with curly braces, use a generic greeting.
Otherwise, greet the customer by name.
Your prompt structure follows this pattern well. When {{user_first_name}} has no assigned value, it remains in its raw form with the curly braces intact, so your conditional logic can detect that and fall back to the generic greeting.
You can also use the exists check in Conversation Flow equations if you're using that builder:
Equation: {{user_name}} exists
Result: True if variable is setAI Evy
02/17/2026, 2:09 PMAI Evy
02/17/2026, 2:09 PM