Merge tags: personalise with contact data
Every built-in merge tag EmailFig supports, what it renders, and how a typo silently produces a blank instead of an error.
Merge tags drop a contact’s own data into an email (their first name, their unsubscribe link, an account detail) so one template sends a personalised email to every recipient. Type a tag directly ({{ contact.first_name }}) or insert one from the Merge tags menu in either editor, which lists every tag below by name so you don’t have to memorise the syntax.
A misspelled or unsupported tag doesn’t error: it renders blank. {{ contact.frist_name }} (a typo) or a property that doesn’t exist on a contact simply produces nothing, with no warning in the editor. Use the tag menu, or copy a literal from the table below, rather than typing from memory, and check a test send before you rely on a tag.
Built-in tags
| Label in the menu | Tag | Renders |
|---|---|---|
| First name | {{ contact.first_name }} |
The contact’s first name. |
| First name (with fallback) | {{ contact.first_name | default: "there" }} |
The contact’s first name, or “there” if they don’t have one on file. |
| Last name | {{ contact.last_name }} |
The contact’s last name. |
| Email address | {{ contact.email_address }} |
The contact’s email address. |
| Company / from name | {{ account.from_name }} |
Your account’s From name (the same name recipients see as the sender). |
| Mailing address | {{ account.physical_address }} |
Your account’s physical mailing address (the CAN-SPAM footer address). |
| Unsubscribe URL | {{ unsubscribe_url }} |
The link to that recipient’s unsubscribe page. Every send needs this tag somewhere in the body. See What every email must include. |
| View in browser URL | {{ webview_url }} |
The link to view that specific send as a web page. |
Custom field tags
Every custom field on your account gets its own tag automatically, in the form {{ contact.properties.<key> }}, listed in the menu under the field’s own label. If a contact has nothing in that field, the tag renders blank: pair it with a fallback, e.g. {{ contact.properties.plan | default: "Free" }}.
The fallback filter
Any tag can take | default: "…" to supply a value when the data’s missing, not just first name:
{{ contact.first_name | default: "there" }}
{{ contact.properties.company | default: "your company" }}
Also available, not in the tag menu
Two tags work if you type them by hand, though they don’t show up in the menu:
{{ contact.full_name }}: first and last name joined with a space (blank if both are missing).{{ account.name }}: your account’s own name, distinct fromaccount.from_name.