Using Variables in Prompts
When you write your agent's Greeting Message or Agent Prompt, you can drop in a variable that gets replaced with real call details on every call — so instead of writing one generic greeting, the agent can say the caller's actual name, or its own number, out loud.
Available variables
| Variable | Insert this | What it becomes |
|---|---|---|
| Caller's name | {{user_name}} | The caller's name |
| Caller's phone number | {{user_number}} | The caller's phone number, e.g. +919876543210 |
| Caller's email | {{user_email}} | The caller's email address |
| Caller's country code | {{user_phone_country_code}} | Just the country code, e.g. +91 |
| Caller's number without the country code | {{user_phone_without_country_code}} | Just the number, e.g. 9876543210 |
| Caller's number with the country code | {{user_phone_with_country_code}} | Same full value as {{user_number}}, e.g. +919876543210 |
| Agent's name | {{agent_name}} | The agent's own configured name |
| Agent's phone number | {{agent_number}} | The agent's own outbound phone number |
| Agent's timezone | {{agent_timezone}} | The agent's configured IANA timezone (e.g. Asia/Kolkata) |
{{user_phone_country_code}} and {{user_phone_without_country_code}} split the same number
{{user_number}} already gives you into two pieces — useful if your instructions need to talk
about the country code or the local number as a distinct thing, rather than reading out the whole
number at once. {{user_phone_with_country_code}} is provided as a named sibling of the other two
split variables for consistency, but it always holds the exact same value as {{user_number}} —
use whichever name reads more clearly in context.
How to insert one
Click the Variables button above the Greeting Message or Agent Prompt field and pick a value from the list — it's inserted at your cursor, no need to type or remember the exact syntax.
Example
Hello {{user_name}}, thanks for calling! I have your number as {{user_number}} — is that still the best way to reach you?
On a real call this becomes:
Hello Priya, thanks for calling! I have your number as +91 98765 43210 — is that still the best way to reach you?
What happens if a value is missing
Not every call provides every value. Here's what each variable does when it's not available:
-
{{user_name}}falls back to "there" — e.g. "Hello there, thanks for calling!" -
{{user_number}}and{{user_phone_with_country_code}}are always present when this feature applies, so there's no fallback to worry about. -
{{user_phone_country_code}}and{{user_phone_without_country_code}}fall back to an empty string on the rare call where the phone number can't be split cleanly (e.g. an unusual or malformed number) — write these the same conditional way as{{user_email}}above, rather than a sentence that flatly states the value. -
{{user_email}}falls back to an empty string — the text around it stays, so write sentences that still make sense without it. Avoid a sentence that flatly states the value, since a blank can occasionally read awkwardly out loud; prefer a conditional phrasing instead.Instead of: "Your email on file is {{user_email}}." Write: "If you'd like, I can confirm the email we have on file for you."
-
{{agent_name}}falls back to "Assistant" if the agent has no configured name. -
{{agent_number}}falls back to an empty string if the agent has no outbound number assigned — write it the same conditional way as{{user_email}}above. -
{{agent_timezone}}falls back to Asia/Kolkata (IST) if the agent has no timezone configured. Set the agent's timezone under Agent Settings > Calling Hours.
Where this works
All nine variables are filled in on real phone calls — the API (POST /v1/calls), the dashboard's
"call now" and "schedule a call" actions, campaigns, and inbound calls. {{user_name}}/
{{user_number}}/{{user_email}}/{{user_phone_country_code}}/
{{user_phone_without_country_code}}/{{user_phone_with_country_code}} depend on caller details
being available for that specific call (e.g. a campaign contact list without an email column means
{{user_email}} falls back to blank), while {{agent_name}}/{{agent_number}}/
{{agent_timezone}} always reflect the agent's own configuration regardless of caller data.
Next step
See Agent Prompting for general guidance on writing effective agent instructions.