Template variables¶
Template variables let you personalise messages by dropping in dynamic content per recipient. By placing a placeholder in your text, you can pull in details like the customer's name or an agent's name automatically.
For example, sending Hey {{ contact.name }}, how may I help you? produces Hey John, how may I help you? when the contact's name is John.
Variables also work in canned responses, macros, and automation rules — anywhere you compose reusable message text.
Inserting a variable¶
While composing a message or canned response, type two opening curly braces {{. A list of available variables appears, and you pick the one you want.
The available variables are:
| Variable | Resolves to |
|---|---|
conversation.id |
The numeric conversation ID. |
contact.id |
The numeric contact ID. |
contact.name |
The contact's full name. |
contact.first_name |
The contact's first name. |
contact.last_name |
The contact's last name. |
contact.phone_number |
The contact's phone number. |
agent.name |
The agent's full name. |
agent.first_name |
The agent's first name. |
agent.last_name |
The agent's last name. |
agent.phone_number |
The agent's phone number. |
Fallback text¶
If a variable can't be filled in — say contact.first_name is empty — you can supply fallback text to use instead. Wrap the fallback in single quotes:
{{ contact.first_name || 'there' }}
This sends "there" whenever the first name is missing.
Common questions¶
What happens if I use a variable that doesn't exist? ChannelX shows a warning so you can correct it before sending.
Tip
Always add a fallback for any variable that might be blank, especially in outbound or automated messages. A message that opens "Hey ," reads as broken; "Hey there," does not.