Hi {{first_name}}, and every person receives theirs with their name in it.
This page covers app variables (campaigns and automations built in the dashboard), which come from each contact’s record. If you send over the API and pass your own variables in the payload, see Templates and Variables — there you define the names yourself.
Recipient variables
These come from the contact record. They’re what you use in the greeting and the subject line.System variables
RQE injects these at send time. They belong in a link’s destination, not in body text.Shopify variables
Available when the email comes from a store event (abandoned cart, order created). The main ones:
The editor’s variable picker lists the full set, each with a sample value.
The data has to exist
A variable resolves whatever is on the contact record. If you imported a list of bare email addresses,{{first_name}} comes out empty — it doesn’t fail and it doesn’t warn: it sends “Hi ,” and moves on.
So when you import contacts, map the name column. Contacts coming from Shopify or from an event in your system arrive with the name when the payload includes it.
When the data might be missing
Double braces don’t support a default value:{{first_name || "friend"}} doesn’t work, it renders literally.
Two options:
- Write a line that survives an empty value. “Hi, we miss you” works with or without a name. “Hi , we miss you” breaks in half.
- Use the single-brace form with a default in imported HTML templates:
{first_name || "Hi"}. The send engine resolves it and falls back to the default text when the data is missing.
Where they work
In the subject line and in the body — anywhere text goes. Don’t use them as an image source (a photo’ssrc): that needs a real URL. And your brand name and logo go in as literal values, not variables: {{brand_name}} and {{brand_logo}} don’t exist.