
Export loyalty program data means retrieving the records behind your loyalty program in a usable format. Before you switch apps, separate the customer record, current balance, activity history, and live program obligations, because one export rarely covers all four.
Short answer: You can usually export core loyalty data such as customer identities, current points balances, and VIP tier status, often as a CSV file. A complete migration takes more work because redemption history, pending rewards, referral records, expiry dates, and program rules may need separate exports, mapping, or manual reconciliation.
What export loyalty program data actually means
The four layers of a loyalty program migration
A loyalty export should cover more than a list of names and point balances. It needs to give the next system enough information to restore the customer experience without creating unexplained gaps.
Think about the migration in four layers:
- Member identity: email, Shopify customer ID, name, phone number, and customer status.
- Current value: redeemable points, store value, lifetime earned points, redeemed totals, and VIP tier.
- Historical activity: points earned, redemptions, adjustments, refunds, expiries, and the orders behind them.
- Program mechanics: earning rules, reward settings, tier thresholds, expiry logic, referral rules, and exclusions.
A Shopify loyalty program also includes the rules that determine what customers can earn and redeem. Those rules usually need rebuilding, even when member balances import successfully.
A balance export is not a full program backup
Moving a balance without the ledger is like moving the total from a bank account without bringing the transaction history. Customers may still have the right balance, but your team loses context when someone asks why it changed.
Treat the current balance as the minimum migration dataset, not proof that the entire program is portable.
Myth: exporting a customer CSV moves the whole loyalty program
What a Shopify customer export includes
A Shopify customer export can include customer profiles and selected tags or supported metafields. Shopify limits customer exports to 15 MB, and exports containing more than 50 customers are emailed rather than downloaded directly.
That file is useful for matching loyalty members to Shopify customers, spotting duplicate emails, and finding loyalty records attached to customers who no longer exist in Shopify.
Tags can help too, especially if your old program wrote tier labels or member statuses into Shopify. They should not be treated as the source of truth for a customer balance.
What Shopify customer CSVs do not contain
A Shopify customer CSV is not automatically a loyalty-program backup. Shopify documents that customer CSV imports do not bring in order information or engagement history from another marketing platform. See Shopify’s customer import limitations.
Points balances, earning activity, reward redemptions, referral relationships, and pending rewards may all sit inside the loyalty app instead. Export Shopify customer data and loyalty-app data, then reconcile them before launch.
What loyalty data usually exports cleanly
| Data type | Usually portable | Common caveat | Validation check |
|---|---|---|---|
| Member identity | Usually | Duplicate or changed emails | Match to Shopify customer records |
| Current points balance | Usually | May be a snapshot only | Compare total balance before and after import |
| VIP tier | Usually | Names may need mapping | Check tier names and member counts |
| Lifetime totals | Often | Field definitions can differ | Confirm earned versus redeemable totals |
| Birthday and enrollment date | Often | Missing or inconsistent formats | Test date formatting and sample records |
| Member status | Often | Exclusions may not map directly | Review excluded and active customers |
Member identity and matching fields
The cleanest export fields are usually email, first name, last name, phone number, an external customer ID, and a Shopify customer ID where available. Email is often the practical matching key, but it is not perfect.
Customers change email addresses. Guest buyers may later create accounts with another address. Duplicate profiles and merged accounts can also create one loyalty record that no longer maps neatly to one Shopify customer.
Mage’s Loyalty Members CSV import accepts email, names, birthdays, enrollment dates, loyalty status, points, lifetime points, redeemed points, and VIP tiers. It matches records against Shopify customers by email and skips rows for addresses that do not belong to a Shopify customer. Read the import requirements.
Current points and store-value balances
Current balance is the field customers notice first. If a customer logs in after launch and sees a lower balance, your migration has created a support problem whether the import technically succeeded or not.
Export the current redeemable balance separately from lifetime earned and redeemed totals. A high lifetime total does not tell you what a customer can spend today.
VIP tiers and enrollment details
VIP tier status is often portable, but tier names must be mapped. “Gold” and “Gold Member” may represent the same customer status to your team, but an importer may treat them as different values.
Mage requires tier names to exist before import, then matches imported tier names without regard to capitalization. Its member import can contain up to 150,000 rows, which is an operational limit for Mage, not a universal migration standard.
“I looked into so many different integrations for loyalty and referrals for our Shopify Store, but no one impressed me more than Mage on human connection, customer service, and value.”


Read the Reelie case study →
What may not export cleanly, or may need separate mapping
| Data type | Why it is difficult | What to request | Risk if missing |
|---|---|---|---|
| Points history | Activity types vary between systems | Full ledger with dates and source labels | Incomplete account history |
| Redemption history | Rewards and code statuses differ | Reward, date, points deducted, order, status | Customer disputes and duplicate rewards |
| Pending points | Return windows and approvals vary | Pending amount, approval date, eligibility | Overpaying or underpaying members |
| Referrals | Multiple customers and fraud states are linked | Advocate, friend, link, order, reward status | Broken attribution and unpaid rewards |
| Program rules | Settings are platform-specific | Earning rules, tiers, expiry and reward configuration | Manual rebuild errors |
Points history and ledger entries
A current balance tells the new app where a customer landed. It does not explain how they got there.
Historical points activity often needs its own file, with customer identifiers, point amounts, dates, order IDs, source labels, notes, and activity types. The activity types matter because “purchase,” “birthday,” “review,” and “manual adjustment” may need mapping to separate earning rules in the new system.
Mage’s Points History import is a useful example of this distinction. It imports positive historical activity mapped to an earning-rule ID, while negative entries such as cancellations, expired points, and redeemed points are skipped. Its points-history documentation explains the mapping and skipped rows.
Redemption history and pending rewards
Redemption history can be partial or absent. Request reward name, redemption date, points deducted, discount code, order ID, reward status, expiry date, and refund state.
A customer may have earned points awaiting a return window, redeemed a reward that has not been used, or qualified for a referral reward that is still under review. Decide whether to recreate these records in the new app, honor them manually, or communicate a clear cutover policy to affected customers.
Referrals, expiry dates, and program rules
Referral data has several connected records: advocate identity, referred customer, referral link, conversion status, reward status, and fraud decisions. A simple customer CSV cannot preserve those relationships.
Expiry dates, tier thresholds, earning rates, reward catalogs, exclusions, and campaign logic also tend to be configuration rather than portable customer data. Plan to rebuild them and test the result.
This is especially important when moving from a bespoke database. The work resembles migrating from a custom loyalty program, where data structure and business rules need separate review.
CSV, API, or JSON: which export format is best?
When CSV is enough
CSV is practical for a one-time migration. It is easy to inspect in a spreadsheet, easy to compare against Shopify customer records, and commonly accepted by import tools.
Use CSV when you need a member list, current balances, tier assignments, and a manageable history file. Keep the original export untouched, then create a working copy for cleanup and field mapping.
When API access is safer
API or JSON access is better for large datasets, repeatable backups, and linked records such as referral objects or rewards. It can also reduce manual spreadsheet work when a developer is handling the migration.
If you need an API-based workflow, review the Mage developer toolkit before planning the migration.
Shopify supports report exports in CSV, XML, JSONL, and Parquet. That does not mean a loyalty app’s private records are available through Shopify reporting.
Why you should request a data dictionary
Ask for a sample export and a data dictionary before signing. Review field names, IDs, date formats, null values, status values, and whether balances are snapshots or calculated from a ledger.
Also ask whether API credentials, self-serve export tools, or support-assisted exports remain available during your notice period and after cancellation.
How to switch loyalty apps without losing data
Create a migration inventory
List every object in the old program: members, balances, lifetime totals, tiers, activity history, redemptions, active rewards, pending rewards, referrals, expiry dates, exclusions, and marketing properties.
Check connected email, SMS, reviews, subscription, support, and returns tools too. Loyalty fields and events may be feeding workflows outside the loyalty app. Review your loyalty integrations before the cutover.
Freeze and export at the right moment
Export before cancellation. Save the original files in a restricted location and do not edit them.
Set a cutoff time for the migration. Pause major promotions if possible, record transactions that occur during the migration window, and decide how late points, redemptions, or referrals will be handled.
For contract dates, notice periods, export windows, and connected marketing tools, build a written migration plan before the cutover.
Validate before launch
Map identity fields first. Resolve duplicate emails, unknown Shopify customers, and changed customer addresses before importing any balance.
Create matching tier names and earning rules before importing history. Mage’s Points History workflow requires members to exist first, and repeating the same history upload can create duplicates. Its import guidance covers the dependency and duplicate risk.
Reconcile at three levels:
- Total member count
- Total outstanding points or stored value
- A sample of individual accounts, including high-balance and VIP customers
Then test earning, redemption, refunds, tier progress, expiry, referral attribution, and customer communications.
Keep the old app read-only during the cutover
Leave the old platform available as a read-only reference until reconciliation is complete. Your team may need to check a disputed reward, a past referral, or a missing activity record.
Do not leave both systems actively awarding points for the same behavior. That creates duplicate liability and makes the final comparison harder.
Questions to ask a loyalty vendor before signing
| Question | Acceptable answer | Red flag |
|---|---|---|
| Can I export all member records? | Clear self-serve or documented support process | Vague promise to handle it later |
| Does the export include balances and history? | Field-level list of included records | “You can download customers” |
| Can I export pending rewards and referrals? | Clear inclusion or documented limitation | No answer on outstanding obligations |
| Can I get a sample export? | Sample file and data dictionary | Refusal before contract signature |
| What happens after cancellation? | Defined retention and access period | Export access ends immediately |
| How is migration validated? | Counts, totals, error reporting, support process | Import success treated as proof of accuracy |
Export access and ownership
Ask whether you can export all member records without contacting support, which formats are available, and whether exports have row or date limits.
Field-level completeness
Ask separately about current balances and the full ledger, including adjustments, refunds, expiries, reversals, pending activity, redemption records, unused rewards, referral relationships, fraud decisions, and conversion status.
Cancellation and retention terms
Ask what happens after cancellation, how long data is retained, when export access ends, and whether support fees apply. Get the answer in writing.
Migration support and validation
Ask who owns reconciliation when balances or tiers do not match after import and how the vendor handles transactions created between the final export and the cutover.
A mature answer includes a sample file, field definitions, error reporting, and a clear plan for resolving mismatches.
FAQ
Can I export loyalty program data to a new app?
Loyalty program data can usually be exported to a new app when the old platform provides member records, balances, and tier information in a usable format. A complete move may require separate files for activity history, rewards, referrals, pending balances, and program settings.
What loyalty points can be exported to a new app?
Loyalty points that can usually be exported include the current redeemable balance, and sometimes lifetime earned and redeemed totals. Ask for the underlying ledger as well, including adjustments, refunds, expiries, reversals, pending points, and the dates and orders connected to each entry.
Can I switch loyalty apps without losing customer data?
You can switch loyalty apps without losing customer data if the old system provides complete exports and the new one can map and validate them. Export before cancellation, match records to Shopify customers, preserve original files, and reconcile member counts and balances before launch.
What is included in a loyalty app export CSV?
A loyalty app export CSV commonly includes email, name, customer ID, current balance, lifetime points, tier, enrollment date, birthday, and member status. Reward records, referral relationships, historical activity, pending points, and unredeemed rewards may require separate files or may not be available.
Can pending loyalty rewards be migrated?
Pending loyalty rewards can sometimes be migrated, but the answer depends on what the old and new systems support. Confirm whether pending points, unused rewards, reward expiry dates, return-window status, approval delays, and eligibility conditions are exported and how they will be honored after cutover.
Should I ask for a CSV export or API access from a loyalty vendor?
You should ask for both CSV export and API access when possible. CSV is useful for review and one-time imports, while API or JSON access can help with large datasets and repeatable backups. Completeness, field definitions, and validation matter more than the format itself.
Choose a loyalty vendor that can show you what leaves the system before you put customer value into it. A portable member export, a clear history strategy, and a reconciliation plan protect customers when your program changes. To discuss member, points-history, tier, and rewards migration with Mage, book a demo.
Kris is the co-founder of Mage Loyalty. I spend most days talking to merchants, and making sure our customers get real results. If you run a Shopify store or Agency we should chat!


















