Merge Tags Cheat Sheet

Templates are plain HTML. Everything dynamic goes through a merge tag written {{name}}, resolved per recipient at send time.
One syntax only. Templates use {{name}}. Mailchimp's *|TAG|* syntax is converted when you save a pasted template — it is never a second syntax to maintain.

Supported merge tags

These five are the entire vocabulary. Anything else is reported as unknown.
TagResolves toExample output
{{firstName}}Contact's first nameCamille
{{lastName}}Contact's last nameDubois
{{email}}Contact's email addresscamille@exemple.fr
{{unsubscribeUrl}}Unique unsubscribe link for this recipienthttps://app/u/a1b2c3
{{currentYear}}Year at the moment of rendering2026
{{currentYear}} is computed at render time, in Europe/Paris. It is the © {{currentYear}} of a footer: a template written in 2026 still shows the right year in 2027, without touching it. A value passed for it in an API call is ignored — like {{unsubscribeUrl}}, it is decided by the server, never by the caller.
Whitespace inside the braces is allowed — {{ firstName }} works like {{firstName}}. Merge tags are resolved in both the subject line and the HTML body.
{{unsubscribeUrl}} is mandatory. A template whose rendered HTML does not contain the unsubscribe link is refused at render time, with an explicit error. No footer is silently appended to your HTML — the link must be somewhere in your template.

Mailchimp tags converted on save

Paste a Mailchimp template and save it: these are rewritten automatically.
Mailchimp tagBecomes
*|UNSUB|*{{unsubscribeUrl}}
*|FNAME|*{{firstName}}
*|LNAME|*{{lastName}}
*|EMAIL|*{{email}}
*|CURRENT_YEAR|*{{currentYear}}

Not supported

Any other *|TAG|* is left untouched in the HTML and reported in the editor when you save. It is never silently shipped to recipients.
Mailchimp tagWhy it is not supported
*|DATE:d F Y|*Formats a value. Merge tags substitute, they do not format. Only the bare year, *|CURRENT_YEAR|*, is supported.
*|IF:…|* etc.Conditional blocks require a template engine, not substitution.
*|ARCHIVE|*No web archive of sent campaigns yet.
*|LIST:NAME|*List and account metadata are not exposed to templates.
*|MERGE1|*, …No custom contact fields — the vocabulary above is closed.
If you paste a template using one of these, fix it in the editor: replace the tag with static text, or drop it.

Behaviour rules

A known tag with no value renders empty. If a contact has no first name, Salut {{firstName}}, renders as Salut ,. Write around it, or keep the tag out of a sentence that breaks without it. An unknown tag is left visible and reported. {{fistName}} (typo) stays in the output as {{fistName}} and is listed as an unknown variable in the preview panel — so you catch it before sending, not after. The preview uses sample data. The preview panel renders your template with example values and a placeholder unsubscribe URL, so what you see is what the pipeline actually produces at send time.

Example

<td>Salut {{firstName}}, voici les nouvelles du mois.</td>
<!-- … -->
<a href="{{unsubscribeUrl}}">Se désinscrire</a>
Rendered for a contact named Camille:
<td>Salut Camille, voici les nouvelles du mois.</td>
<!-- … -->
<a href="https://app.example.com/unsubscribe/a1b2c3">Se désinscrire</a>