Message variables
Variables let one pipeline message speak to each recipient personally. You write a variable as %{name} — for example Hello %{responder.first_name} — and when the message is sent, it's replaced with that recipient's value: their name, their own survey link, your workspace's name.
This page lists every variable a messaging pipeline can fill in.
Where you can use them
Variables work in every part of a message, on every channel:
- the subject line of an email,
- the message body of an email, SMS or Viber message,
- the SMS fallback of a Viber message,
- and every language version you add under Languages & locale.
In an email, a variable can also go inside a link's address or an image's address — for example <a href="%{collection_url}"> or <img src="%{application.application_icon_url}">.
How variables are filled in
- Type them exactly. A variable is
%{, its name, then}— no spaces, and in lower case as shown below. Anything that isn't a known variable is sent exactly as you typed it, so a typo such as%{responder.firstname}reaches the recipient as it is. - A missing value is sent as written. When a recipient has no value for a variable — no first name on file, or a metadata field their queue item doesn't carry — the variable isn't replaced, and they see
%{responder.first_name}itself. Use a personal variable only when every recipient of the pipeline has it; a greeting such as "Hello," always reads well. - Test before you go live. Send the pipeline to yourself with a queue item like your real ones, and check that every variable came through.
Survey links
| Variable | What it becomes |
|---|---|
%{collection_url} | This recipient's own link to the survey. On SMS and Viber it's shortened; on email it's the full link. Every message should include it — it's the only way to answer. |
%{collection_url_long} | The survey link in full, never shortened for the channel — useful on SMS or Viber when you'd rather show the whole address. |
%{collection_url_short} | The same link as %{collection_url}: shortened on SMS and Viber, full on email. |
%{unsubscribe_url} | A link the recipient can use to stop receiving your messages. Shortened on SMS and Viber. In an email without it, an Unsubscribe link is added below your message automatically. |
Surveys whose links expire
If a survey's links are set to expire after a number of days, its survey link is always a short link that carries the expiry date — on every channel, and for all three survey-link variables. If the same invitation is sent to a recipient again, they get the same link, and its expiry is pushed out to the new date. A re-sent message never carries a link that has already expired.
Your workspace
The workspace the survey belongs to.
| Variable | What it becomes |
|---|---|
%{application.title} | Your workspace's name — for example Acme Store. |
%{application.display_name} | Your workspace's display name, if it has one. |
%{application.description} | Your workspace's description. |
%{application.application_icon_url} | The address of your workspace's logo image — for use as an image's address in an email. |
The recipient
Details about the person the message is sent to, when the queue item carries them.
| Variable | What it becomes |
|---|---|
%{responder.first_name} | The recipient's first name. |
%{responder.last_name} | The recipient's last name. |
%{responder.email} | The recipient's email address. |
%{responder.phone_number} | The recipient's phone number. |
%{locale} | The recipient's language code — for example el or en. |
About this message
Details of the send itself and of the transaction behind it.
| Variable | What it becomes |
|---|---|
%{metadata.pipeline} | The name of the pipeline sending the message. |
%{metadata.channel} | The channel it's sent through: Email, SMS or Viber. |
%{metadata.responder_channel_identifier} | The address or phone number the message is sent to. |
%{metadata.transaction_id} | The transaction's reference — an order or booking number, for example — when the queue item carries one. |
%{metadata.transaction_date} | The transaction's date, when the queue item carries one. |
Your own metadata fields
Any metadata sent with a queue item can go into the message too, by the field's name:
| Variable | What it becomes |
|---|---|
%{metadata.<field>} | A questionnaire metadata field — a detail about the visit or transaction, such as %{metadata.store} or %{metadata.order_total}. |
%{responder.metadata.<field>} | A responder metadata field — a detail about the person, such as %{responder.metadata.loyalty_tier}. |
Replace <field> with the field's name exactly as it's stored, including its capitals — %{metadata.Store} and %{metadata.store} are different fields. If a queue item doesn't carry the field, the variable is sent as written — see How variables are filled in.