Skip to main content
Variables allow you to inject dynamic data directly into your agent’s prompt — like the customer’s name, phone number, current date, or any custom data you define. This lets your agent personalize conversations and access relevant information without hardcoding it into the prompt.

Quick Start

1

Reference a variable in your prompt

Use double curly braces: {{variableName}}
2

System defaults work automatically

Variables like {{firstName}}, {{currentDate}}, and {{phoneNumber}} are always available
3

Create custom variables for your data

Add custom properties to contacts (e.g., {{contractId}}, {{city}}) and reference them in your prompt

Use Cases

  • Personalize greetings“Hi {{firstName}}, this is Emma from Telli”
  • Reference customer data“I see you’re calling about contract {{contractId}}
  • Context-aware routing — Use customer properties to guide the conversation flow
  • Time-based behavior — Adjust responses based on {{currentTime}} or {{currentWeekday}}
  • Pass order details — Include order numbers, product names, or any custom data from your system

Variable Types

System Defaults (Read-only)

These are standard variables that telli provides automatically for every call. You don’t need to configure them — they’re always available:
VariableDescription
{{firstName}}Customer’s first name
{{lastName}}Customer’s last name
{{phoneNumber}}Customer’s phone number
{{email}}Customer’s email address
{{language}}Customer’s language
{{currentDate}}Today’s date
{{currentTime}}Current time
{{currentWeekday}}Current day of the week
{{callDirection}}Whether the call is inbound or outbound

Custom Variables

Variables and properties you define yourself when creating contacts in telli. These give you complete flexibility to pass any information to any agent in the account.
VariableExample Use Case
{{product}}Customer’s current product
{{city}}Customer’s city
{{customerId}}Customer ID
{{contractId}}Contract number
{{currentTotalPrice}}Current contract value
{{__contact_empfangsart}}Custom field from contact details
The variable names you use in the prompt must exactly match the names you define in your contact details. If you name a field contractId in the contact, you must reference it as {{contractId}} in the prompt — not {{contract_id}} or {{ContractId}}.

Best Practices

Define Variables in a Centralized Section

Define all variables in a centralized section so the agent has full clarity on what values are available.

Don’t Build Logic Around Raw Values

If a variable is unknown, empty, or 0, the agent has no instruction on how to interpret it and may not know which path to follow. Instead, clearly define what each variable represents in natural language and explicitly instruct the agent what to do in each scenario.

What not to do

Before proceeding, review the available customer data and choose the path:

{{letter_received}} == "Yes" and {{rsv_present}} == "Yes" → Path 6.2
{{letter_received}} == "Yes" and {{rsv_present}} == "No" → Path 6.3
What the agent sees if there is no letter and no RSV:0 == "Yes" and 0 == "Yes" → Path 6.2The agent sees the raw template syntax and may not know what to do if a value is missing or unexpected.

What to do

# Available customer data

- Letter received: {{letter_received}}
- Legal protection insurance (RSV): {{rsv_present}}

# Routing rules

- If the customer has received the letter AND has legal protection insurance → follow Path 6.2
- If the customer has received the letter but does NOT have legal protection insurance → follow Path 6.3
- If the letter status is unknown or empty → ask the customer whether they have received a letter before proceeding
This way the agent understands the meaning behind each variable and knows exactly what to do in every scenario — including when data is missing.

Reference Variables Where They’re Used

For longer prompts, define the variable clearly in a centralized section at the top, then reference it again right before it’s actually used. This helps reinforce context and reduces the risk of misapplication.

Good to Know

  • Variable names are case-sensitive{{contractId}} is different from {{ContractId}}
  • System default variables are available on every call automatically
  • Custom variables only populate if the contact has that property defined
  • If a variable is undefined, the agent sees an empty value — make sure to handle missing data in your prompt logic
  • Variables can be used anywhere in the prompt — in the identity section, conversation script, or rules
To avoid confusion, always test your prompt with both populated and empty variable values to ensure the agent handles all scenarios gracefully.