---
title: Enroll from a spreadsheet
description: Upload a mail merge spreadsheet to enrol many people at once, each with their own reference date and with extra columns available as custom tokens in the messages.
sidebar:
  order: 2
area: flows
feature: automations
appPath: /flows/home
lastVerified: 2026-10-22
version: "2026-10-16"
audience: admin
related:
  - flows/automations/manually-enroll-employees
  - flows/steps
  - activity/enrollments
intercom:
  - id: "16996083"
    title: Setting Per-Employee Reference Dates in a Mail Merge Spreadsheet (Pyn 2)
    url: https://intercom.help/pyn/en/articles/16996083-setting-per-employee-reference-dates-in-a-mail-merge-spreadsheet-pyn-2
    note: replaces
  - id: "11506664"
    title: Manually Enroll Employees in a Flow (Pyn 2)
    url: https://intercom.help/pyn/en/articles/11506664-manually-enroll-employees-in-a-flow-pyn-2
    note: draws on
---

A mail merge spreadsheet is a manual enrollment with data attached. Every row is one employee; a **Reference Date** column gives each row its own date, and any other column becomes a token such as `custom.startLocation` you can drop into a message. One upload can enrol a whole intake of new hires with different start dates, each greeted with the right office and the right laptop pickup time.

## Before you start

- Build a `.csv`, `.xls` or `.xlsx` file with a header row. Only the first sheet of a workbook is read.
- One column holds each person's primary work email.
- An optional **Reference Date** column holds dates as `yyyy-MM-dd` (for example `2026-11-03`) or `yyyy/MM/dd`, or a real date-formatted cell in Excel or Google Sheets. Day-first and month-first text such as `03/11/2026` is rejected rather than guessed. The header can be `Reference Date`, `reference_date`, `ReferenceDate`, `Ref Date` or `ref-date` in any capitalisation; `Start Date` is treated as an ordinary token column.
- Every other column becomes a token. The header is converted to camel case, so `Start Location` is `custom.startLocation`. The Reference Date column is never a token.
- Steps that use the tokens exist and are published. See [Steps and messages](https://support.pynhq.com/flows/steps/) for inserting tokens.

## Steps

1. In Pyn, open **Flows** in the left navigation, then **Automations**, and select the automation.

2. Select the mode button, then **Manual Enroll**.

3. Set **Reference Date** in the dialog. Rows with a blank Reference Date cell use this date.

4. Select **Upload mail merge spreadsheet** and choose your file. (**Upload a CSV, XLS, or XLSX file of employee email addresses** also recognises a header row with extra columns and treats the file as a mail merge.)

![The Manual Enroll dialog lists Upload mail merge spreadsheet among the ways to add people.](https://support.pynhq.com/media/flows/automations/flows-automations-mail-merge.png)

5. Read the notices under the upload. "The following spreadsheet columns were converted to custom tokens you can use in this Flow's content:" lists the tokens. "Reference dates were taken from the spreadsheet's "Reference Date" column." confirms per-row dates. A list of emails that did not match current employees, and of rows with an invalid reference date, lets you fix and re-upload those rows; the valid rows are already in the selection.

6. Choose **Verify Mode** and **Flag as Test** as you need them, then select **Next**, review the list and select **Confirm**.

> **Caution:** The confirmation list shows the people but not each person's date. Check the notice under the upload and your spreadsheet before you select **Confirm**. If an email appears twice, the first row wins.

## What you should see

Each row becomes an enrollment under [Enrollments](https://support.pynhq.com/activity/enrollments/) with its own **Reference Date**. Open a message in an enrollment to see the custom tokens filled in with that row's values. Uploading a second file in the same dialog replaces a person's date with the new file's value, and a blank cell in the second file clears the date they had from the first.

## Related

- [Manually enroll employees](https://support.pynhq.com/flows/automations/manually-enroll-employees/) for the other ways to add people.
- [Steps and messages](https://support.pynhq.com/flows/steps/) for inserting `custom.` tokens in a message.
- [Enrollments](https://support.pynhq.com/activity/enrollments/) to check each person's date and messages.

## Related Intercom articles

- [Setting Per-Employee Reference Dates in a Mail Merge Spreadsheet (Pyn 2)](https://intercom.help/pyn/en/articles/16996083-setting-per-employee-reference-dates-in-a-mail-merge-spreadsheet-pyn-2) — replaces
- [Manually Enroll Employees in a Flow (Pyn 2)](https://intercom.help/pyn/en/articles/11506664-manually-enroll-employees-in-a-flow-pyn-2) — draws on
