Skip to main content
For Corporate

CSV bulk import

Upload a recipient list from spreadsheet.

Updated August 5, 2026

For an order with more than a handful of recipients, type-by-type entry is slow. The Quick Send and Advanced Mode forms both let you upload a CSV (or XLSX) of recipients instead. This page covers exactly which columns are expected, the two supported formats, and what to do when validation rejects your file.

If you only need to send to one or two people, use the manual entry described in Placing an order instead.

Where to find it

In the Quick Send form, click Add Manually, then look for the Template and Upload CSV buttons in the Additional Manual Recipients header.

The Upload CSV / XLSX panel revealed under the Recipients section. Drop zone reads Drop CSV or XLSX file here or click to browse. Helper text: Supports firstName + email columns, or Gift Cards sheet format (Name, Email, Code, Amount, Currency, Region). Below: a Recipient 1 row with empty First name, Last name, Email fields and a USD currency dropdown.
The upload panel sits inline between the Add Manually tab and the manual recipient list.

The same panel is available in Advanced Mode at the Recipients step.

The two supported formats

The drop zone helper line tells you both at once. The uploader auto-detects which format your file uses based on the header row.

FormatColumns expectedWhen to use it
Recipient templatefirstName, lastName, email, currency, messageA fresh list you are creating just for this order.
Gift Cards sheetName, Email, Code, Amount, Currency, RegionAn export from another system that already lists gift card values per person.

You only need the minimum required columns. Anything extra is either used (if it matches a known column) or ignored. The bare minimum is firstName and email for the recipient template, or Name and Email for the gift cards sheet.

Get the template

Click Template next to the Upload CSV button. A file named recipients-template.csv downloads. Open it in any spreadsheet tool. The contents are:

firstName,lastName,email,currency,message
John,Doe,john@example.com,CAD,Happy Birthday!
Jane,Smith,jane@example.com,USD,Congratulations!

The two example rows are placeholders. Replace them with your recipients and remove or keep the header row exactly as written.

Column reference: recipient template

ColumnRequiredNotes
firstNameYesRecipient's given name. Used in the gift email greeting.
lastNameNoOptional. Falls back to blank if missing.
emailYesValidated as an email address before import.
currencyNoISO 4217 code (e.g., USD, AED, CAD). Defaults to the order's selected currency if missing.
messageNoA short personal note shown on the gift card email. If set, this overrides the order-level message for that recipient.

Column reference: Gift Cards sheet

This format is for cases where another system already produced a list of gift cards with per-person values. The uploader maps it onto the recipient list and pulls the per-recipient amount from the Amount column.

ColumnRequiredNotes
NameYesFull name. Split into first and last on import.
EmailYesValidated as an email address.
CodeNoAn external reference for your records. Not surfaced to the recipient.
AmountNoPer-recipient amount in the currency below. If supplied, it overrides the order's tier selection for that recipient. Use this format when you need different amounts per person without typing them in by hand.
CurrencyNoISO 4217 code. Falls back to the order currency.
RegionNoFree-text region tag, used for reporting. Not surfaced to the recipient.

Validation rules

The uploader runs every row through validation before adding anyone to the order:

  • File size must be 5 MB or less.
  • File type must be CSV, XLS, or XLSX.
  • Email must parse as a valid address. Invalid emails are flagged in a preview screen with a "did you mean…?" suggestion when the typo is obvious.
  • Currency must be a recognised ISO code. Unrecognised currencies fall back to the order's selected currency.
  • Duplicates within the same upload are de-duplicated by email; duplicates against existing recipients in the form are rejected with a row-level error.

Rows that fail validation are listed in a preview modal. You can fix them in the spreadsheet and re-upload, or accept the partial import and skip the bad rows.

After upload

Once the file passes validation, every recipient in the file appears in the Additional Manual Recipients list, on top of any rows you typed manually. Each row is editable in place if you need to fix a typo or change a per-recipient amount.

The order total at the bottom of the page updates immediately. The same review and submit flow described in Placing an order applies from here.

What's next

  • Placing an order covers the rest of the order flow once your recipients are loaded.
  • Managing employees is the alternative to recipient CSVs: save your team to the directory once, then pick from From Employees instead of uploading a CSV every time.