Skip to main content

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​

VariableInsert thisWhat 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)
Current day{{agent_current_day}}Today's day of the week in the agent's timezone, e.g. Monday
Current date{{agent_current_date}}Today's date in the agent's timezone, e.g. January 5, 2026
Current time{{agent_current_time}}The current time in the agent's timezone, e.g. 3:45 PM (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.

  • {{agent_current_day}}, {{agent_current_date}}, and {{agent_current_time}} are always present — they're computed from the current moment in the agent's timezone, so there's no fallback to worry about.

Where this works​

All twelve 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}}/{{agent_current_day}}/{{agent_current_date}}/{{agent_current_time}} always reflect the agent's own configuration and clock regardless of caller data.

Editing the whole prompt​

The variables above are for the Greeting Message and Agent Prompt fields. If you open the System Prompt field lower down the same tab, you get the agent's complete instruction set — with extra tokens for whole instruction blocks (appointments, transfer, during-call tools, and the standing voice-call rules). See The System Prompt.

Next step​

See Agent Prompting for general guidance on writing effective agent instructions.