Members & CRM
Bulk Import Members
Use the import wizard to upload a spreadsheet of contacts, map columns, review data, and import in bulk, including paid-through dates, comps and updating members who are already staged.
Bulk Import Members
To import many contacts at once, use the bulk import wizard. This is especially useful when migrating from another system or loading a prospect list.
How to Start an Import
- Click CRM in the left sidebar to open the CRM page.
- Click the Import button (upload icon) in the top-right corner.
- You are taken to the import wizard page.
Import Wizard Steps
The wizard has five steps, shown in a progress bar at the top: Upload → Map → Review → Import → Complete.
Step 1: Upload
- Drag and drop a file onto the upload area, or click it to browse your computer.
- Accepted formats: Excel (.xlsx) or CSV. Maximum 5,000 rows, 10 MB limit.
- To download a template file, click the Download template link below the upload area. The template has a column for each of your programs' signup questions, with an example answer, plus Paid Through, Comp and Comp End Date columns (see Paid-Through Dates and Comps) and a Location column. Its Programs Reference sheet lists each program and plan, and for programs without pickup or shipping, the locations members can belong to (see Home Locations).
- After selecting a file, the wizard automatically advances to the next step.
Step 2: Map
- The wizard displays a table showing your spreadsheet columns and how they were auto-mapped to MemberZone fields (e.g., Name, Email, Phone, Address).
- Each mapping shows a confidence badge (green for high confidence, yellow for medium, red for low).
- Review each mapping. To change one, use the dropdown next to the column to select a different field.
- Unmapped columns are preserved in the contact's import metadata and can be viewed later in the Import Data tab.
- If the programs you're importing into ask signup questions, a Signup questions section lists them. Pick the column that answers each question, or Don't import. Columns named exactly like a question are matched for you, and MemberZone shows which values don't fit (an option that doesn't exist, a word that isn't yes or no).
- Click Next to continue.
Step 3: Review
- A preview table shows all rows that will be imported, along with a summary (e.g., "42 of 45 rows ready to import").
- Rows with issues (duplicates, missing required fields) are flagged and can be unchecked to exclude them. A row that leaves a required signup question blank, or has an answer that doesn't fit, is flagged too and won't import until it's fixed.
- When a plan requires an age (its tier asks for age verification, or your business sells alcohol, cannabis or tobacco), a row whose birthday is under that age is flagged "Must be {age} or older". The age is 21 for every US business; for a business in Canada it's the age in the province where the row ships to or picks up. Changing a row's delivery method, address or location re-checks its age for the new place. The import checks every row again on the server before creating anything, so an under-age row fails with the same message instead of becoming a member or lead.
- Use the checkbox next to each row to include or exclude it from the import. To change a row's notes, open them in the Edit notes sidebar ("Row N"), edit Notes and click Save.
- Review the data, then click Import to proceed.
Step 4: Import
- A progress indicator shows the import being processed.
- The system processes contacts in batches. Wait for it to complete.
Step 5: Complete
- A summary screen shows the results: how many contacts were successfully imported and how many had errors.
- If there were errors, details are displayed so you can correct and re-import.
- Click Go to CRM to return to the contacts table and see your imported contacts.
Paid-Through Dates and Comps
Three optional columns set how imported members of subscription programs are billed when they're activated. Rows for programs billed per release, or with no program, ignore them and the review step says so.
Paid Through
The date a member has already paid through, for members moving over from another system. They're staged to activate without a card: nothing is charged until that date. Columns named like "Paid Through", "Expiration Date", "Expires", "Renewal Date", "Next Billing" or "Valid Until" are matched automatically; a card's expiry date never is.
- The date must be 2 days to 2 years ahead. Rows with a date that can't be read, or is out of range, are flagged.
- If the plan bills everyone on the same date, the row notes "Paid through {date}, the {plan}'s billing date", the date they'll really be paid through.
- In the review table the cell reads "{date}, no card".
Comp and Comp End Date
Mark complimentary members, who are never billed. A Comp cell of Yes, Y, True, 1, X, Comp, Complimentary or Lifetime makes the row a comp. A Paid Through cell that says "Lifetime" or "Never" does too.
- A comp row ends on its Comp End Date, or, without one, on its Paid Through date. With neither, it's a lifetime comp.
- The end date has to be after today.
- In the review table the cell reads "Lifetime comp" or "Comp until {date}".
See Comps and Lifetime Memberships.
Choices for the batch
When the checked rows include paid-through dates or comps, a bar on the review step shows how many ("{n} members paid through a date, no card", "{n} comps, never charged") and asks:
- Fulfillment for paid-through members (only when a program ships or hands over items): Current shipment already paid or Starts at first paid shipment, in your program's word.
- Activate them now ("Nothing is charged today. Without this they stay staged until you activate them."). It needs the Manage Comps and No-Card Activation permission, and for paid-through rows, activating without a card turned on for your business. When the import finishes, the members are activated in the background (no welcome email); track it in the header.
Members left staged keep their terms ("Paid through {date}, no card", or "Staged as lifetime comp" / "Staged as comp until {date}" on People), and activating them later always uses those terms. See Members Without a Card.
Home Locations
In a program without pickup or shipping, each membership belongs to one of your locations, its home location (see Multi-Location Support). The import sets it from the Location column:
- A column headed like "Location", "Pickup Location", "Home Location" or "Store" maps to Location. For these programs it's matched against the program's locations; for programs with pickup it's still the pickup location.
- On the review step, the Location cell of such a row is a list of the program's locations, so you can pick or correct it. The file's text shows above it until you change it. The column is shown automatically while rows still need a location.
- When some rows name no location and their program is offered at several, a bar below the table says how many ("N memberships without a location") and offers Location for rows without one. Those rows belong to the location you choose there, unless you choose one on the row.
- A program offered at a single location gives every row that location; nothing to choose.
A row can't import until its location is settled. The review step flags it, for example: "Uptown" isn't one of Studio Pass's locations (Downtown, Harbor), or: Studio Pass is offered at several locations: choose this row's location, or a location for rows without one.
For someone already staged in the same program and plan, a row naming a different location moves them there. A row with no location, or the Location for rows without one, never changes a staged member's location.
Duplicate Handling
The system matches contacts by email address. If a contact with the same email already exists, the import flags it as a duplicate rather than creating a second record.
Importing staged members again
A row for someone already staged in the same program and plan updates them instead of being skipped. The review step notes "Already staged for this program/tier, so they'll be updated" (in your own word for program). The import fills in a blank name, phone or birthday, adds the row's extra columns to their import data, and replaces their paid-through date or comp terms. With Activate them now ticked, they're activated too. If nothing changed, the row is skipped as "Already staged for this program/tier, nothing to update". A member whose activation has already started is left as they are.
Existing store and rewards customers
A row imported as a prospect (no program) for someone who is already a customer with no membership, because they bought from your online store or are enrolled in your Loyalty Program, isn't added again. It still fills in whatever their profile is missing:
- Name, when their name is blank, is just their email, or is a "Guest" label such as "Guest ••1234" (how customers from a loyalty export with only a phone number show up)
- Phone, when they have none
- Birthday, when they have none
A value they already have is never overwritten, and a "Guest" label in the file never counts as a name. The skip report says what was added, for example "Already a store customer, added name, birthday", or just "Already a store customer" when there was nothing to add. So importing a guest list from your register is a way to put real names on loyalty customers.
The same rule applies when you stage someone who already has an account: a blank or placeholder name, a missing phone and a missing birthday are filled from the row.
Where Imported Contacts Appear
- Imported contacts are created as prospects by default, with the source marked as "Imported"
- If you assign a club and tier during the import, they are created as staged members
- Any unmapped spreadsheet columns are preserved and viewable in the Import Data tab on the contact's sidebar
Rewards for imported members
Every membership the import creates is marked as brought over from another system, and it keeps that mark if you move the staged member to another program. A reward set to New members at signup, existing members at their first renewal starts for these members at their first renewal here (their paid-through date, or the end of their first billing period), or on the first anniversary of the comp for a comp, because they already had this period's benefits on their old system. Until then their reward card shows Starts {date}. Rewards left on Right away start as soon as they're activated. See Rewards and Discounts.
Importing Existing Member Statuses
If your spreadsheet has a status column (e.g., "Active", "Cancelled", "Past Due", "On Hold"), MemberZone's AI canonicalizer normalizes the values to one of MemberZone's recognized statuses:
- Active (default for any new row without a status column)
- Staged (default if you assign a club but don't specify a status)
- Cancelled
- Paused
- Past Due
This lets you migrate from another system without exact label matches. For example, "On Hold", "Suspended", and "Hold" all map to Paused. If the AI can't confidently map a value, it falls back to Staged and the row is flagged in the review step so you can correct it.
Updating Signup Answers for Existing Members
To fill in signup answers for people already in MemberZone, choose Update existing members as the import type ("Fill in signup answers for members already in MemberZone. Matched by email or member ID; nobody is added."). It never adds anyone or creates a membership.
- Upload your spreadsheet as usual.
- Rows are matched by email. Optionally choose a member ID column: people whose email isn't in MemberZone are then matched by their custom ID or member code.
- Map a column to each question. A blank cell leaves that answer as it is.
- Replace answers members already gave is off by default, so only questions a member left blank are filled in. Turn it on to overwrite answers.
- When it finishes, each row shows Updated, No change, Not found, Not a member or Couldn't read. Click Download report for the full list.
A row whose answer doesn't fit is reported and nothing in that row is changed.
Notifications on Completion
When a bulk import finishes (success or partial), an internal notification is sent to the MemberZone ops team summarizing how many rows succeeded, were skipped, or had errors. This helps the team proactively reach out if your import looks unusual. Imports are processed asynchronously in batches, so very large files may take a few minutes after the wizard finishes.
Still stuck?
Ask Zoe about this article and get a direct answer.
Related articles
Signup Questions
Ask people something when they join a program, such as a size, a preference or a date to remember, and use their answers on the People page, in exports, the Signup answers report, new-member emails, imports and at the register (Show at POS).
Comps and Lifetime Memberships
Give a member a complimentary (comp) or lifetime membership that is never billed: where to grant one, ending on a date or never, changing the end date, ending a comp, pausing and tier changes, and how comps show up on People, in exports, in revenue and in the member portal.
Members Overview
Central hub for managing memberships in your clubs, memberships or programs, with links to detailed guides on filtering, editing, bulk actions, statuses, notes, and how members heard about you.
Members Without a Card
What happens when a member reaches renewal with no card, the reminders they get beforehand and how to change them, card links and expired links, the daily "Members without a card" email, which charges need a card, importing members with a paid-through date, and how to activate members without a card and set or change their paid-through date.
Prospect Pipeline
Track and manage prospects through your pipeline - from first contact to club membership.
CRM Overview
A unified view of everyone connected to your business - prospects, staged members, ecommerce customers, and active members.