Import Your Existing Customers | Passtastic Help
Passtastic
No account yet? Sign up free

Import Your Existing Customers

What this does

If you already keep a customer list — in a spreadsheet, your booking system, or your old loyalty software — you can bring it into Passtastic instead of starting from zero.

Each person you import gets their own card and their own invite link. They tap the link, their card installs, and they carry on collecting from wherever you set them. Once someone has opened their link, it keeps working until the card is actually installed, so a customer who taps it and gets interrupted can come back to it later. An invite link from an import has no time limit: it works until that person adds their card.

Importing does not install cards on anyone's phone by itself. Only the customer can add a card to their own wallet — the import prepares each card and gives you a link to send.

Before you start

You'll need a file with one row per customer and a header row at the top. Both formats work:

  • CSV (`.csv`)
  • Excel (`.xlsx`)

Older Excel files (`.xls`) aren't supported — open the file in Excel and use File → Save As to save it as `.xlsx` or CSV UTF-8 first.

Your columns can be named anything sensible — Passtastic matches common names automatically, and you can correct the matching by hand in the next step. A typical file looks like this:

First nameLast nameEmailPhone
AnaNovakana@example.com+61 400 000 001
BenCarterben@example.com+61 400 000 002

Each row needs at least an email or a phone number. Rows with neither are skipped and shown to you before anything is saved.

If your export starts with a title row or a "generated on" date above the real header, that's fine for Excel files — Passtastic looks for the row that actually holds your column names.

Step 1: Upload the file

1. Open Customers in the sidebar and click Import Customers.

2. Choose the program the customers should join.

3. Drop your file onto the upload box, or click it to browse.

If the file can't be read, you'll get a message saying why — wrong file type, an older `.xls`, or no usable rows — and nothing is imported.

Step 2: Match your columns

Passtastic matches your columns to First name, Last name, Email, Phone and a balance column automatically. Check each one and correct anything it got wrong using the dropdowns.

The balance column follows your card type. For stamp cards, the column is called Stamps — enter each customer's current number of stamps. If a value is higher than your card's stamp goal, it will be capped at the goal. For point cards, the column is Points / Balance. Membership cards don't have a balance column to map.

There are two name dropdowns: First name (or full name) and Last name (optional). If your file has separate columns for first and last name, map both. If it has a single full-name column, map it to First name (or full name) and leave the last name on Do not import — it's split at the first space ("Ana Novak" becomes first name Ana, last name Novak).

Set anything you don't want brought over to Do not import.

Step 3: Review

You'll see how many rows are valid and how many have problems, with the reason for each. Fix the file and re-upload if you want to correct them, or carry on — rows with errors are skipped, not imported half-finished.

Step 4: Import and invite

Tick the confirmation that these are your existing customers and that you're allowed to message them about their loyalty card. This is required — it's your record that you have a genuine relationship with the people on the list.

Then choose how to send:

  • Start import — imports everyone and sends their invite straight away, by email, SMS, or both, depending on the channels you picked.
  • Import only — invite later — imports everyone without sending anything. Use this when you want to check the list first, or send invites at a specific time.
  • I’ll send them myself — imports everyone without sending anything, and gives you a file with each person’s invite link to send from your own email tool. See Send the invites from your own email tool below.

You can invite later at any point from the Customers page, either everyone who hasn't been invited yet or a selected few. You can also copy one customer's invite message and send it through your own channel. In the invite message box, click + First name to add `[name]`; each customer sees their own first name, and a customer with no name gets the message without it.

Cards with a welcome coupon: imported customers don't get the welcome coupon by default — they join as regular members with their stamps, since they're existing customers. If you want imported customers to receive the welcome coupon too, turn on Give imported customers the welcome coupon in the last step of the import.

Invite language: choose the language of the invite email and text message. It starts on your dashboard's language, and you can pick another one, including Français, which the dashboard itself doesn't come in. If your customers speak different languages, split your list into one file per language and import each file with its own invite language. The page where customers add their card follows the language of their phone.

One row per membership

Some systems export one row for each membership, so a member with two memberships appears twice. To bring that in without double-counting:

  1. Map the column that holds the number (for example 2215 or 1212) to Member number. Several numbers in one cell are fine.
  2. Tick Combine rows with the same email. Rows with the same email become one customer.
  3. Each new number adds one point. On a level card, the points decide the customer’s level. With the example above, a member with numbers 2215 and 1212 gets two points.
  4. Import the same file twice and nothing is added the second time: numbers a customer already has are skipped.
  5. An import never removes points. The numbers are saved on the customer’s profile, under Member numbers.

Without a Member number column, combining only merges the rows and adds nothing. To count each row as one point, tick Add 1 point for each row. Uploading the same file again would then add those points again, and Passtastic warns you before you import.

Cards with several memberships

On a card with Customers can hold several memberships switched on, Member number is required, rows with the same email are combined automatically, and each number is one membership. A row with only a name and a member number is imported without an invite: add an email in Edit details or use Download invite links. Rows with no member number, or with no name and no email, are left out. They are listed before you import and again when it finishes, with the row number and the reason. See Several Memberships on One Card.

Send the invites from your own email tool

Choose this when you want the invite to come from your own address and in your own design, for example through Brevo or Mailchimp. Passtastic sends nothing, and each person still gets their own personal link.

1. In the last step of the import, choose I’ll send them myself and click Start import.

2. On the results screen, click Download invite links. You get a CSV file with one row for each person who hasn’t added their card yet: First name, Last name, Email, Phone, their points, stamps or level, the extra columns from your own file, and Invite link.

3. Import the file into your email tool as contacts. In Brevo, when you match the columns, create a new text attribute for the Invite link column, for example `INVITE_LINK`.

4. In your email, add a button and use that attribute as its link. In Brevo, use the variable button next to the link field, or type `{{ contact.INVITE_LINK }}`. Send yourself a test email and tap the link before you send it to everyone.

When someone taps their link, their card opens with the details from your file already filled in. They only add what your card asks for and your file didn’t have. Until they add the card, the Customers page shows them as still to install.

Good to know:

  • The links don’t expire, so you can send a reminder later with the same link.
  • Each link adds that person’s card for whoever opens it. Keep the file private, and send each person only their own link.
  • Downloading the file again gives the same links. People who have already added their card aren’t in it. To download it again later, for example for a reminder, select the people on the Customers page and choose Download invite links.
  • If you later use Send invite on the Customers page for these people, Passtastic warns you first, so nobody gets a second invite by mistake.
  • The download needs the same permission as exporting customers: an Editor role or higher, on a plan that includes data export.

Which card types can be imported

Most programs can be imported into, including Memberships you issue yourself.

Bundles and Store credit can't be imported. Those cards carry a balance — visits or money — and a spreadsheet can't say reliably whether "50" means fifty visits, fifty points or fifty euros. Getting it wrong would hand out real value by mistake, so they're issued with activation codes instead. See Selling Bundles, Store Credit & Memberships Yourself.

Programs you can't import into simply won't appear in the list when you open Import Customers.

Common questions

Does importing send anything to my customers straight away?
Only if you choose Start import. Pick Import only — invite later to bring the list in silently and send invites when you're ready.
What if someone is already in my customer list?
They're matched on email or phone and updated rather than duplicated. Someone who has already installed their card keeps their balance — an import won't overwrite what they've earned.
Can I import the same file twice?
Yes. The second run updates the people already there instead of creating copies. It won't extend a membership's expiry date, though — that stays as it was first issued.
What does the invite say for a membership or level card?
It invites customers to their member card and doesn't mention a balance. On a level card it shows the level each customer starts at, for example "Your level: Gold".
Is there a limit?
Up to 10,000 rows per import.
Who can do this?
You need an Editor role or higher. See Team Roles & Permissions for the full breakdown.