---
title: "Tokens"
description: "Every token you can put in a message, what Pyn fills it with, the text it falls back to when the value is missing, and how dates and names are formatted."
sidebar:
  order: 3
area: flows
feature: steps
appPath: /flows/home
lastVerified: 2026-10-22
version: "2026-10-16"
audience: admin
related:
  - flows/steps/format-a-message
  - flows/steps/choose-recipients-and-cc
  - flows/automations/enroll-from-a-spreadsheet
intercom:
  - id: "6024180"
    title: List of supported tokens
    url: https://intercom.help/pyn/en/articles/6024180-list-of-supported-tokens
    note: Pyn 1 article
  - id: "6010962"
    title: Add personalization tokens
    url: https://intercom.help/pyn/en/articles/6010962-add-personalization-tokens
    note: Pyn 1 article
  - id: "6005713"
    title: Personalize your content using tokens and custom senders
    url: https://intercom.help/pyn/en/articles/6005713-personalize-your-content-using-tokens-and-custom-senders
    note: Pyn 1 article
  - id: "6023197"
    title: Personalize your Buddy Pyns with Tokens
    url: https://intercom.help/pyn/en/articles/6023197-personalize-your-buddy-pyns-with-tokens
    note: Pyn 1 article
---

A token is a marker Pyn replaces when a message is formatted for one recipient. Type `@` in the editor to insert one; in a Raw HTML email write it as a Liquid tag, `{{ principal.preferredName }}`. `principal` tokens are about the enrolled employee, `recipient` tokens about the person receiving the message; in a message to the employee the two are the same person.

When a value is missing, the token renders its fallback text, shown in the tables below, unless you set your own fallback on the token. Names, departments and job titles come from the employee record in [Directory](https://support.pynhq.com/directory/employees/).

## Tokens in the editor

| Token | Value | Fallback |
| --- | --- | --- |
| `date.reference` | The enrollment's reference date | reference date |
| `principal.preferredName` | Preferred name, else the first word of the display name | Employee |
| `principal.firstName` | First word of the display name (or legal name) | Employee |
| `principal.preferredFullName` | Preferred name plus the surname from the display name | Employee |
| `principal.legalName` | Legal name, else display name | Employee |
| `principal.jobTitle` | Job title | Job Title |
| `principal.department` | Department | department |
| `principal.location` | Location | location |
| `principal.startDate` | Start date | start date |
| `principal.startDate.dayAfter` | The day after the start date | start date |
| `principal.startDate.nextBusinessDay` | The next weekday after the start date | start date |
| `principal.tenure` | Whole years since the tenure date (or start date) at send time: "1 year", "3 years" | tenure |
| `principal.birthday` | Birthday as day and month, for example "28 Jul" | Birthday |
| `principal.nextBirthday` | The next birthday on or after the reference date | next Birthday |
| `principal.nextAnniversary` | The next start-date anniversary on or after the reference date | next Anniversary |
| `principal.managerName` | Manager's display name | Manager |
| `principal.managerPreferredName` | Manager's preferred name | Manager |
| `principal.managerEmail` | Manager's work email | manager email |
| `principal.buddy.name` | Buddy's display name | Buddy |
| `principal.buddy.preferredName` | Buddy's preferred name | Buddy |
| `principal.buddy.preferredFullName` | Buddy's preferred name and surname | Buddy |
| `principal.buddy.email` | Buddy's work email | buddy email |
| `principal.buddy.startDate.nextBusinessDay` | The weekday after the buddy's start date | start date |
| `principal.hrbp.name` | HR business partner's display name | HRBP |
| `principal.hrbp.preferredName` | HR business partner's preferred name | HRBP |
| `principal.hrbp.preferredFullName` | HR business partner's preferred name and surname | HRBP |
| `principal.hrbp.email` | HR business partner's work email | HRBP email |
| `recipient.preferredName`, `recipient.firstName`, `recipient.preferredFullName`, `recipient.legalName` | As above, for the recipient | Employee |
| `recipient.department`, `recipient.location` | As above, for the recipient | department, location |
| `recipient.startDate` | The recipient's start date | start date |
| `recipient.birthday`, `recipient.nextBirthday`, `recipient.nextAnniversary` | As above, for the recipient | Birthday, next Birthday, next Anniversary |
| `recipient.surveyLink` | A link stored on the recipient's record; renders as a link, or nothing | |

The **Subject** of an email offers a smaller set: the preferred name, birthday, next birthday and next anniversary of the principal and the recipient. A Jira ticket's **Summary** and **Description** offer `principal` tokens only.

## Tokens for Raw HTML

A Raw HTML email resolves every token above by its Liquid name, plus these:

| Token | Value | Fallback |
| --- | --- | --- |
| `company.name` | The workspace's company name | company |
| `date.today` | The send date | today |
| `date.tomorrow` | The day after the send date | tomorrow |
| `principal.name`, `recipient.name` | Display name | Employee |
| `principal.email`, `recipient.email` | Work email | email address |
| `principal.personalEmail`, `recipient.personalEmail` | Personal email | personal email address |
| `principal.endDate`, `recipient.endDate` | Termination date | end date |
| `principal.city`, `principal.country`, `recipient.city`, `recipient.country` | City and country | city, country |

A Liquid name Pyn does not know is left in the email as typed.

## Custom and employee-field tokens

- `custom.<column>`: a column from the mail-merge spreadsheet used to enrol the person, named in camel case (`Start Location` becomes `custom.startLocation`). Insert it with **Insert widget**, **Custom Token**. Falls back to the column name. See [Enroll from a spreadsheet](https://support.pynhq.com/flows/automations/enroll-from-a-spreadsheet/).
- Employee field tokens: any field on the employee record, chosen with **Insert token**, **Employee Field**, applied to the principal or the recipient, with an optional fallback you type. Without one, a missing value renders as nothing.

## Formatting

- Dates render in the recipient's locale as weekday, day, month and year, for example "Thu, 22 Oct 2026". Birthdays render as day and month.
- `date.today` and `date.tomorrow` are taken from the delivery's scheduled time; in a preview with no send time they show their fallback.
- Tenure is rounded to whole years, so someone eleven months in reads "1 year".
- A token inside a bold or coloured run keeps that formatting.

## Names Pyn no longer fills

The following names from Pyn Classic are accepted but render as nothing: `date.nextBusinessDay`, every `manager.*` token (use `principal.managerName`, `principal.managerPreferredName` and `principal.managerEmail`), `principal.homeAddress`, `principal.employeeNumber`, `principal.employmentType`, `principal.mobilePhone`, `principal.brand`, `principal.buddy.jobTitle`, `principal.buddy.location`, `principal.buddy.startDate`, `principal.buddy.startDate.dayAfter`, `principal.returnsFromLeaveOn`, the `recipient` equivalents of those, and `recipient.startDate.dayAfter` and `recipient.startDate.nextBusinessDay`.

## Related

- [Format a message](https://support.pynhq.com/flows/steps/format-a-message/) for inserting tokens, custom tokens and employee fields.
- [Choose recipients and Cc](https://support.pynhq.com/flows/steps/choose-recipients-and-cc/) for who principal and recipient are on each step.
- [Enroll from a spreadsheet](https://support.pynhq.com/flows/automations/enroll-from-a-spreadsheet/) for custom token columns.

## Related Intercom articles

- [List of supported tokens](https://intercom.help/pyn/en/articles/6024180-list-of-supported-tokens) — Pyn 1 article
- [Add personalization tokens](https://intercom.help/pyn/en/articles/6010962-add-personalization-tokens) — Pyn 1 article
- [Personalize your content using tokens and custom senders](https://intercom.help/pyn/en/articles/6005713-personalize-your-content-using-tokens-and-custom-senders) — Pyn 1 article
- [Personalize your Buddy Pyns with Tokens](https://intercom.help/pyn/en/articles/6023197-personalize-your-buddy-pyns-with-tokens) — Pyn 1 article
