> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allgoodhq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Merge field reference

> Every merge field an email can use, grouped by what it describes.

A **merge field** is a placeholder in double curly braces, such as `{{ person.firstName }}`, that allGood fills in for each recipient when the email sends. This page lists every one an email can use. For how they work and why, see [Personalizing an email](https://docs.allgoodhq.com/mk/content/email/emails/personalizing-an-email.md).

Write each field exactly as shown. Capitalization matters, and a misspelled field shows as blank with no warning.

## The recipient: `person`

| Field | What it holds | Notes |
| - | - | - |
| `person.firstName` | First name | |
| `person.lastName` | Last name | |
| `person.fullName` | Full name | |
| `person.email` | Email address | |
| `person.title` | Job title | |
| `person.companyName` | Company name | The only company detail available. |
| `person.phone` | Phone number | Stored in international format, such as `+14155552671`. |
| `person.lifecycleStage` | Lifecycle stage | |
| `person.timezone` | The person's time zone | A time zone name, such as `America/New_York`. |
| `person.consent` | Subscription state | `subscribed`, `unsubscribed`, or `unknown`. Someone marked `unsubscribed` doesn't receive the email at all. |

Every `person` field can be empty. An empty field shows as blank. Add a [fallback](https://docs.allgoodhq.com/mk/content/email/emails/personalizing-an-email.md#when-a-value-is-missing) for any you use in a greeting or subject.

A few more exist for advanced use: `person.name`, `person.id`, `person.shortId`, and `person.isTest`.

## The sender: `sender`

| Field | What it holds | Notes |
| - | - | - |
| `sender.fromName` | The From name | |
| `sender.fromEmail` | The From address | Always on your verified sending domain. |
| `sender.replyTo` | The reply-to address | Blank if none is set. |
| `sender.postalAddress` | Your postal address | Required in the footer. See [Before an email can send](https://docs.allgoodhq.com/mk/content/email/emails/before-an-email-can-send.md). |

These come from your sending domain's settings. See [Set up an email domain](https://docs.allgoodhq.com/mk/settings/email/domains-setup.md).

## This send: `send`

| Field | What it holds | Notes |
| - | - | - |
| `send.unsubscribeUrl` | The unsubscribe link for this recipient | Must be the `href` of a real link. Required. |
| `send.sentAt` | When the email was sent | A timestamp, such as `2026-10-26T15:38:28Z`. Format it with the `date` filter. |
| `send.shortId` | The ID of this send | Mostly useful for support. |
| `send.artifactShortId` | The ID of the email | Mostly useful for support. |

## Your copy and other assets: `asset`

| Pattern | What it holds |
| - | - |
| `asset.copy.content.<field>.value` | One field from this email's copy, such as `headline`. The field names come from the template's [copy schema](https://docs.allgoodhq.com/mk/content/email/templates/writing-the-copy-schema.md). |
| `asset.<key>.…` | Anything else the email depends on, such as a webinar, an event, a form, or an image. The key is the name the email gave that dependency. |

## Print the current year

There's no year field. Use the `date` filter on the current time:

```liquid theme={null}
© {{ "now" | date: "%Y" }} Your Company
```

The year is worked out when the email sends, so it needs no yearly update. For more snippets, such as tracking links and dates, see [Liquid recipes](https://docs.allgoodhq.com/mk/content/email/emails/liquid-recipes.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.