The Loyalty Members CSV import brings your customers' points balances, VIP tiers, birthdays, and member details into Mage in one upload. It is the easiest way to move from another loyalty app, and it also works for bulk updates from a spreadsheet.
You upload one CSV file. Mage checks every row, shows you a preview, and then imports your customers while you watch the progress live.
Moving from Smile.io or Yotpo? Each has its own import under Settings, then Import Data. For any other loyalty app, including LoyaltyLion, export your members to a CSV file and use this import.
Before You Start
Create your VIP tiers first. If your file assigns VIP tiers, those tiers need to exist in Mage with the same names before you import. Capitalization does not matter.
Customers must exist in your Shopify store. Mage matches every email against your Shopify customers. Emails that do not belong to a customer of your store are skipped, and the results page shows you exactly which ones.
Plan availability. CSV import is available on the Essential plan and above. If you are on a trial and want to migrate early, message us on live chat and we will switch it on for you.
Preparing Your File
Download the template from the import page for a ready-made example. Your file needs one row per customer, with these columns:
Column | Required | What it does |
Required | The customer's email address. Used to find them in your store. | |
points | Optional | Their current points balance, for example 500. |
date_of_birth | Optional | Their birthday in YYYY-MM-DD format, for example 1990-05-15. Used for birthday rewards. |
enrolled_at | Optional | The date they first joined your loyalty program, in YYYY-MM-DD format. |
vip_tier_name | Optional | The VIP tier to place them in. Must match a tier name in Mage. |
loyalty_status | Optional | Either member or excluded. Excluded customers cannot earn or redeem points. |
first_name | Optional | Their first name. If left empty, Mage uses the name from your Shopify store. |
last_name | Optional | Their last name. If left empty, Mage uses the name from your Shopify store. |
lifetime_points | Optional | The total points they have earned over their lifetime. |
redeemed_points | Optional | The total points they have spent over their lifetime. |
Leave any optional cell empty and Mage simply skips that detail for that customer. Dates must use the YYYY-MM-DD format. Files can contain up to 150,000 rows.
Running the Import
Open the importer. In Mage, go to Settings, then Import Data, and click Upload CSV next to Manual CSV Import. You can also open the CSV importer directly.
Choose Loyalty Members as the import type.
Upload your CSV. Mage checks every row before anything is imported. If any rows have problems, such as a misspelled VIP tier or an invalid date, you will see exactly which rows and why, so you can fix the file and upload it again.
Click Import. You will be taken to a progress page that updates live. You can safely close it; the import keeps running in the background and you can come back any time.
If your program runs on store credit, Mage asks How much store credit is 1 point worth? once your file is uploaded, and converts the points columns in your file to store credit at that value. A sample preview and the total store credit are shown before you click Import.
What Happens to Each Customer
Customers already in Mage are updated with the values from your file.
Customers in your Shopify store who are not in Mage yet are added as loyalty members.
Emails that do not belong to a customer of your store are skipped and listed on the results page, so nothing is ever created for an unknown email.
It is safe to upload the same file more than once, for example after fixing skipped rows. Customers are never duplicated.
Emailing Your Imported Members
Importing members does not send them anything. The Mage Welcome event, which starts a welcome flow in Klaviyo, Omnisend or Attentive, is sent when a customer creates a new account or when a guest activates their account. Imported members who already had an account will not receive it, so reach them with a one-off campaign from your email tool.
Sync your members. In Klaviyo or Attentive, open the integration page in Mage and click Sync All Customers. This adds each imported member's Mage details to their profile, such as their points or store credit balance and their Mage Enrolled Date. If you use Omnisend, message us on live chat and we will sync them for you.
Build a segment. Include profiles where Mage Enrolled Date is before the day your program launched. Imported members keep the join date from the enrolled_at column in your file, or the date their Shopify account was created if that cell was empty.
Leave out anyone already welcomed. Add a condition that the profile has done Mage Welcome zero times. This removes imported guests who have since activated their account and already received your welcome flow.
Check the count, then send your campaign to the segment.
Migrating From Smile
Moving from Smile.io? You do not need this importer or any renamed columns. Mage has a dedicated Smile import that reads your Smile customer export exactly as Smile sent it: go to Settings, then Import Data, select Smile.io and click Continue with Smile.io. See How to Migrate from Smile.io for the full steps.
Before you upload, create your VIP tiers in Mage with the same names as your Smile tiers so every customer lands in the right tier.
Questions about your migration? Message us on live chat and we will walk you through it.
