e-satisfaction

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.
VariableWhat 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.

VariableWhat 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.

VariableWhat 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.

VariableWhat 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:

VariableWhat 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.