Skip to main content
A variable is a slot filled with each recipient’s own data at send time. You write one email that says Hi {{first_name}}, and every person receives theirs with their name in it.
Don’t build one template per person. If the only thing that changes between recipients is the name, that’s a single email with {{first_name}}. Duplicating the template multiplies what you have to maintain and buys you nothing.
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.
The variable is first_name — not name, not nombre. Anything invented ({{company}}, {{discount}}, {{date}}) simply resolves to empty at send time.

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.
Before a large send, use the preview: it renders the email with sample data and makes any gap obvious.

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:
  1. 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.
  2. 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’s src): 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.