
Can you migrate from Smile.io to Mage without losing customer points or VIP status? This guide explains how to migrate from Smile.io to Mage without losing customer points or VIP status. Treat the move as a controlled data migration and program rebuild, rather than a single CSV upload. A Shopify loyalty program carries customer value that needs to remain accurate on day one.
Short answer: Export the standard customer CSV, create matching VIP tiers in Mage, then go to Settings > Data Migration > Import Data and upload a Loyalty Members file. Validate balances and tiers before launch. Import historical points logs separately only when your team needs transaction-level history.
How to migrate from Smile.io to Mage without losing customer points
What this migration actually needs to preserve
The documented migration scope covers each customer’s current points balance, VIP tier, birthday, first name, and last name. Those fields protect the customer-facing promise: members should find the balance and status they had before the change.
That does not mean every part of the old program appears automatically in the new one. Earning rules, rewards, referral settings, campaigns, discount codes, and customer-facing placements need their own review and configuration.
The safest migration principle: separate balances from history
Start with current balances and VIP tiers. Then decide whether historical points activity serves a clear support, reporting, or audit purpose.
Current balances are what customers need to redeem rewards. Historical logs are useful context, but they add mapping work and duplicate-import risk. If you are still deciding whether the move warrants the effort, review the Smile.io alternative page and assess the program you want to run after launch.
“Cannot say enough good things about the team at Mage Loyalty, one of the absolute best organizations we have ever worked with, full stop! So glad we connected with them, completely redid our loyalty program, new concepts, use of loyalty, increasing user engagement, showing us where we were not valuing our best customers, just WOW, amazing team!”


Read the West Coast Goalkeeping case study →
Phase 1: Audit your Smile.io program before exporting anything
| Program element | Import or rebuild? | Source of truth | Validation check |
|---|---|---|---|
| Current points balances | Import | Customer CSV | Total and sampled balances match |
| VIP tiers | Import and rebuild | Customer CSV and tier settings | Members have expected tier |
| Earning rules | Rebuild | Existing program settings | Rules are configured before launch |
| Rewards | Rebuild | Existing reward catalog | Rewards display and redeem correctly |
| Historical points activity | Optional import | Activity export | No duplicate events |
| Customer-facing surfaces | Rebuild | Theme and program design | Surfaces are visible on storefront |
Create a migration inventory
Before exporting, record your member count, total current points, VIP tier names, tier thresholds, expiry settings, earning rules, rewards, referral settings, active campaigns, and every place customers currently see loyalty information.
Mark each item as one of four actions: import, rebuild, validate, or retire. This separates customer data from program configuration and prevents the mistake of assuming the CSV contains the whole program.
Record your total outstanding points before cutover. That figure is part of your customer-value liability. Read more about loyalty breakage before treating unredeemed balances as an amount you can ignore.
Decide what must be rebuilt in Mage
Set up earning rules, rewards, referral campaigns, and customer-facing surfaces in Mage separately. Mage Canvas can be used to rebuild the loyalty page, Rewards Widget, account experience, referral surfaces, wishlist, and saved-for-later surfaces.
Also decide whether you will preserve points as points or make a future change to the reward currency. A migration week is usually the wrong moment to change too many customer-facing rules at once. If you are considering it, compare loyalty points vs store credit after the balance migration is stable.
Set a cutover owner and freeze window
Assign owners for exports, configuration, and final approval. A single person can hold multiple roles, but accountability should be explicit.
Set a short freeze window for changes to balances, tiers, and rewards while you prepare the final export. Prepare customer-support responses for missing balances, tier questions, old reward codes, and account access.
Phase 2: Export the right customer file from Smile.io
Use the standard customer export
Export the standard customer CSV containing points balance, VIP tier, date of birth, first name, and last name. Mage’s Smile.io migration guide covers the documented customer-data workflow.
Keep the original export unchanged and use a separate working copy for checks and preparation.
Check the file before editing
Confirm that email is present for every row you expect to import. Email is the required field in Mage’s Loyalty Members CSV.
Check for blank emails, inconsistent formatting, duplicate records, and unexpected tier names. Record the source row count and the sum of current balances before making changes. Those two numbers become your first reconciliation test after import.
Do not use Shopify’s customer CSV importer as a substitute for a loyalty migration. Shopify customer CSV files support customer-profile data, not loyalty balances or order information.
Phase 3: Create matching VIP tiers in Mage before importing
| Source tier name | Mage tier name | Entry method | Threshold | QA status |
|---|---|---|---|---|
| Base tier | Base tier | Amount spent | 0 | Pending |
| Mid-tier | Mid-tier | Amount spent | Record source threshold | Pending |
| Top tier | Top tier | Amount spent | Record source threshold | Pending |
Configure the default base tier
Configure your VIP tiers in Mage before uploading customer data. Mage includes a default base tier with a threshold of 0. You can rename it, but you cannot delete it.
Mage supports up to 10 tiers. Keep the structure manageable, especially if your old program has tier names that are no longer useful to customers.
Match names exactly
The tier names in the source CSV must match your configured Mage tier names. If they do not match, the customer imports without a tier.
Build a small mapping sheet before the import. List the exact source name, the exact Mage name, the entry method, and the threshold. This gives your team a direct QA reference and reduces avoidable status errors.
Customers care about more than point totals. Their VIP tier status may determine their perceived access, perks, and relationship with the brand.
Choose the correct entry method
Mage uses one primary entry method across the VIP program: amount spent, points earned, or number of orders. Additional criteria can be configured alongside the primary method using AND or OR logic.
After import, Mage automatically applies the Shopify customer tag format Mage VIP Tier: [Tier Name]. Use that tag as a second check in Shopify customer profiles, filters, and segments.
Phase 4: Import customer balances with Mage's Loyalty Members importer
Open the correct admin area
In Mage admin, go to Settings > Data Migration > Import Data. Choose Manual CSV Import, then select Loyalty Members for current member data.
Mage provides separate import types for Loyalty Members, Points Logs, Rewards History, and Wishlists. Pick the importer that matches the data you are moving. Do not add transaction history to a member-balance file.
Prepare the Loyalty Members file
The Loyalty Members import requires email. It also supports optional fields for points, date of birth, enrollment date, VIP tier, loyalty status, first name, last name, lifetime points, and redeemed points.
Prepare the working customer export for Mage’s expected structure. The documented Smile migration scope preserves current points balance, VIP tier, birthday, first name, and last name.
Keep the file focused on member data. Earning rules, rewards, campaigns, referral settings, and storefront components are configured separately in Mage.
Run the import and monitor the result
Upload the file and monitor the import result rather than treating the upload action as confirmation that every record is correct.
If customers are missing a VIP tier, check the source value against the Mage tier name first. A name mismatch is the documented reason tiered customers can import without status.
Do not start issuing new points, changing tier rules, or launching customer messaging while the import is still being checked.
Phase 5: Decide whether to import historical points logs
When a balance-only migration is enough
A balance-only migration is often the safer first move. Customers can see the correct current balance and redeem it, while your team avoids importing years of activity that may not affect the launch experience.
Use this route when the main business need is continuity of customer value, not transaction-level reporting inside the new platform.
When historical logs are worth importing
Import historical points activity when your team needs transaction-level records for reporting, audits, or support.
Mage handles this through a separate Points Logs CSV import. Review the required mapping before preparing the file, since historical records may need corresponding earning-rule references.
Avoid duplicate history
Do not re-run a points-history import until you have confirmed what already entered the account. Re-importing overlapping records can create duplicate history and make reporting harder to reconcile.
Historical rewards and wishlists should also be treated as separate projects. Import them only if you have the relevant source data and a clear reason to preserve those records.
Phase 6: Validate the migration before customers see it
| Check | Expected result | Owner | Status | Evidence |
|---|---|---|---|---|
| Source and imported rows | Counts reconcile | Data owner | Pending | Export and import totals |
| Current points | Total and sample balances match | Data owner | Pending | Balance comparison |
| VIP tiers | Members appear in expected tiers | Program owner | Pending | Customer records |
| Shopify tier tags | Correct Mage tag appears | Shopify owner | Pending | Customer profile screenshot |
| Storefront surfaces | Planned loyalty features display | Theme owner | Pending | Storefront screenshots |
| Test redemption | Reward applies at checkout | QA owner | Pending | Test order record |
| Duplicate activity | No duplicate points or history | Data owner | Pending | Customer activity review |
Run data reconciliation
Compare source and destination row counts. Then compare total current points and a sample of individual balances.
Sample one customer from every tier, the default tier, the highest tier, a zero-balance customer, a customer with a birthday, and a high-balance customer. Check names, birthdays, loyalty status, points, and tier names.
Test representative customer records
Open the corresponding Shopify customer profiles and confirm the expected Mage VIP Tier: [Tier Name] tag is present.
Test a reward with a controlled customer account. The customer should see the expected balance and redeem a reward at Shopify Checkout without needing to copy a discount code.
Also check that a test order does not create duplicate points. If you imported historical activity, confirm that the customer history contains no repeated events.
Check the storefront experience
Enable the Mage Loyalty app embed on the live theme. Storefront features will not appear without it.
Test only the surfaces in your launch plan: the Rewards Widget, dedicated loyalty page, account sidebar, and checkout redemption. Review them on mobile as well as desktop. A correct import still feels broken when customers cannot find their balance.
Build a launch checklist
Capture evidence as you validate. Screenshots, exported totals, test-order records, and a completed checklist make it easier to approve launch and investigate any later discrepancy.
Phase 7: Cut over, communicate, and retire the old app carefully
Use a final export before launch
Take a final customer export after your program freeze. If balances changed after your first export, treat the final file as the source of truth.
Record exactly which file was imported, when it was imported, and who approved it.
Tell customers what changes
Send a short message explaining that points and VIP status are moving, where customers can see their balance, and where they can get support. Keep the message practical.
Do not promise that customer passwords migrate through CSV. Shopify states that customer passwords cannot be imported through a customer CSV, so customers may need to create new passwords under Shopify’s customer import rules.
Uninstall only after validation
Keep the old app available until Mage data checks and storefront QA are complete. Uninstalling early removes your easiest reference point for source data and settings.
Shopify says uninstalling an app stops future billing cycles, though a pending charge already generated for an upcoming invoice can remain according to Shopify app billing guidance.
Monitor the first post-launch week
Review support requests, redemption failures, missing tiers, duplicate balances, and the first group of repeat orders. Run another reconciliation after 24 hours, then again after the first full reporting period.
Keep a simple issue log. Record the customer, the symptom, the expected result, and the resolution. That record helps distinguish one-off account issues from a migration pattern.
FAQ
What data can I migrate from Smile.io to Mage?
The documented Smile.io migration to Mage includes current points balance, VIP tier, birthday, first name, and last name. Earning rules, rewards, referral links, discount codes, campaigns, and historical redemptions should be reviewed separately rather than assumed to transfer with the customer CSV.
How do I export customer points from Smile.io?
To export customer points from Smile.io, download the standard customer CSV containing points balance, VIP tier, date of birth, and customer names. Preserve the original export, create a separate working copy, then record the row count and total points before preparing the file for Mage.
Do Mage VIP tier names have to match Smile.io names?
Mage VIP tier names need to match the tier names in the source CSV for imported customers to retain their tier. Create the Mage tiers before importing, including the default base tier, then compare exact names in a mapping sheet before uploading customer data.
Can I import historical points activity into Mage?
Historical points activity can be imported into Mage through the separate Points Logs importer. It is optional for preserving current customer balances, so use it when your team needs activity records for reporting, audits, or support.
How do I prevent duplicate points during a loyalty migration?
Prevent duplicate points by freezing balance changes, taking a final export, importing current balances once, and documenting any historical-log imports. Validate row counts, total balances, sampled customer records, and test-order behavior before launch.
Should I uninstall Smile.io before importing data into Mage?
You should keep Smile.io installed until the Mage import and storefront QA are complete. Uninstalling ends future billing cycles, but Shopify says a pending charge already generated for an upcoming invoice may remain, so review billing after validation and before removing the app.
A safe migration preserves balances first, protects VIP status second, and gives the team enough evidence to resolve exceptions quickly. Launch only after customer records, Shopify tags, and the storefront experience pass the same checklist.
Ready to see Mage in action? Book a demo.
Graeme is the co-founder at Mage Loyalty. He heads product development, from complex loyalty migrations and large-scale data handling to building the features shaping the future of loyalty on Shopify.


















