---
title: Merge tags
description: Personalising a campaign, and what happens when a value is missing.
---

Merge tags substitute per-recipient values into subject lines and
bodies.

```
Hi {{contact.first_name}}, here is what is new at {{brand.name}}.
```

## What is available

Two namespaces, and only two.

**`{{contact.*}}`** — the standard fields plus any custom attribute you
have defined on your workspace.

| Tag | Value |
|---|---|
| `{{contact.email}}` | Their address |
| `{{contact.first_name}}` | First name |
| `{{contact.last_name}}` | Last name |
| `{{contact.<your_attribute>}}` | Any custom attribute |

**`{{brand.*}}`** — who the mail is from.

| Tag | Value |
|---|---|
| `{{brand.name}}` | Brand name |
| `{{brand.legal_name}}` | Registered legal name |
| `{{brand.postal_address}}` | Postal address |
| `{{brand.website_url}}` | Website |

There is no `{{order.*}}`, no `{{event.*}}` and no `{{promo.*}}`. If
you need per-recipient data beyond this, put it in a custom attribute;
the tag list is generated from your actual schema, so anything you can
store you can merge.

## A missing value skips the recipient

If a campaign uses `{{contact.first_name}}` and a contact has no first
name, **that recipient is skipped**. They are not sent the email, and
the send is not counted against your plan.

This is a deliberate choice and worth understanding, because the
alternatives are worse. Sending "Hi ," is visibly broken. Sending "Hi
{{contact.first_name}}," is embarrassing and marks you as careless.
Substituting a cheerful default like "there" means you cannot tell the
difference between somebody called Ada and somebody you know nothing
about.

Skipping is the only option that neither sends something bad nor
pretends the data exists. The campaign report shows exactly who was
skipped and which tag was missing, so you can fill the gap and send to
them afterwards.

If you would rather reach everyone, do not personalise that campaign,
or make sure the attribute is populated first. A quick check before
sending is to filter your contacts on the attribute being empty.

## Before you send

The dashboard previews a campaign against a real contact and tells you
how many recipients would be skipped and why. Worth a look on any
campaign using a tag you are not certain every contact has.