Ciaran
02/20/2026, 5:01 PMAI Evy
02/20/2026, 5:01 PMAI Evy
02/20/2026, 5:01 PM{{user_first_name}}) . [(1) ]()
You can add conditional logic in your prompt like this:
If {{user_first_name}} appears with curly braces, use a generic greeting.
Otherwise, greet the customer by name.
To check if a variable is set, you can also use the equation syntax in Conversation Flow conditions:
Equation: {{user_name}} exists
Result: True if variable is set
For your specific use case, you could write something like this in your prompt:
- If {{user_first_name}} appears with curly braces (meaning it's not set) , say: "Hi, can I ask who is speaking?"
- Otherwise, greet the user by saying: "Hi {{user_first_name}}, how are you doing today?"
This approach uses "defensive prompting" — designing prompts that work with or without variables.AI Evy
02/20/2026, 5:01 PMAI Evy
02/20/2026, 5:01 PMCiaran
02/20/2026, 5:03 PMAI Evy
02/20/2026, 5:03 PMAI Evy
02/20/2026, 5:03 PM{{introduction_message}} at call start based on your logic.
Here's how it works:
1. In your webhook response, you can dynamically set variables based on whether you have the caller's information:
json
{
"call_inbound": {
"dynamic_variables": {
"introduction_message": "Hi John, how are you doing today?"
}
}
}
[(2) ]()
2. Then use {{introduction_message}} in your begin message field. [(1) ]()
3. Your webhook logic determines whether to return a personalized greeting or a generic one before the call starts.
The key limitation is that you cannot dynamically make the begin message field "not set" to have the AI generate its own opening—if you send null for a dynamic variable, it reads out the variable name. [(3) ]() So you'll need to explicitly set the full greeting text in your webhook response.AI Evy
02/20/2026, 5:03 PMAI Evy
02/20/2026, 5:03 PM