Migrating from LoyaltyLion to Charm: a self-serve walkthrough
Download LoyaltyLion's own Customers export, preview the import in Charm, bring balances, pending points, tiers and birthdays across in one click — and roll back if anything looks off. No support ticket required.
LoyaltyLion is a capable, enterprise-leaning loyalty platform. If you're moving to something self-serve — usually to get off a quote-based contract, or because you want every feature without a plan gate — Charm now has a built-in LoyaltyLion migration preset. The best part: LoyaltyLion gives you your data yourself, so the whole move happens without writing to anyone's support.
The short version
- In LoyaltyLion, download the Customers export (2 min)
- Install Charm → Settings → Data migration → upload the file as-is (3 min)
- Charm auto-detects the format and shows a dry-run preview (auto)
- Review the totals, map your VIP tiers, then import (email-silent)
- Flip the storefront surfaces on, send one comms email
- Changed your mind? Revert restores the pre-import state in one click
Step 1: Export your customers from LoyaltyLion
In LoyaltyLion, go to Analytics → Exports and request the Customers export. The CSV arrives by email — one row per member with everything the migration needs:
points_approved— the spendable balancepoints_pending— points still inside LoyaltyLion's approval windowpoints_spent— lifetime redeemed (LoyaltyLion documents that the three together are the member's lifetime points — Charm imports the sum as lifetime earned, so nothing reads inflated or deflated)- VIP tier, enrolment date, birthday, blocked status — all carried across
No support ticket, no plan negotiation — the export is self-serve.
Step 2: Upload it to Charm
Install Charm, open Settings → Data migration, and drop the file in exactly as downloaded. Charm recognizes the LoyaltyLion column signature automatically — there's no field-mapping step.
One nice property of this export: LoyaltyLion's id column is the customer's Shopify ID, so Charm matches members even when their email address changed since the export.
Step 3: Read the dry-run preview
Nothing is written yet. The preview shows the balance per customer, totals to sanity-check against LoyaltyLion, and a flagged list of anything needing a decision. Three LoyaltyLion-specific things it handles for you:
- Members who never enrolled. LoyaltyLion can award points passively — members with a blank enrolment date earned points but never formally joined. Charm imports their balance, but when your program requires opt-in they're routed through Join & Agree before they can spend. Your consent flow survives the migration.
- Pending points. Points still maturing in LoyaltyLion come across as Charm pending points and release a number of days after import that you choose (14 by default). Nobody's maturing points vanish.
- Blocked members stay excluded in Charm.
If your LoyaltyLion tiers have different names than your Charm tiers, a small mapping panel routes each one where it belongs.
Step 4: Import — nothing emails your customers
Migrated balances are written directly to the ledger, never through the points engine — so no welcome emails, no "you earned points" notifications, no Flow triggers fire. Migrated members are tagged (migratedFrom: loyaltylion) and excluded from growth analytics, so your post-migration charts show real activity, not the import spike. Enrolment dates come from LoyaltyLion, not from the import day.
Step 4½: What about unspent reward codes?
Customers redeemed points in LoyaltyLion and got discount codes — some of those are still sitting unused in inboxes. They live in Shopify, not in LoyaltyLion, so they'd keep working after you uninstall... invisibly, with no app tracking them.
Charm handles this without any export: in Settings → Data migration, click Scan discount codes (filter by your LoyaltyLion code prefix if you used one). You'll see every unused single-use reward code, who holds it, and the total outstanding value. Then pick a policy: convert fixed-amount codes into points of matching value, keep the codes valid and show each customer theirs in the Charm hub, let them quietly run out, or deactivate them. Every batch can be undone with one click.
Step 5: Cutover
- In Charm → Visibility → turn on the storefront widget and customer-account hub
- In your theme editor → remove LoyaltyLion's storefront components
- Cancel or downgrade LoyaltyLion
Two notes for the switch:
- Referral links regenerate. Charm mints fresh referral links and codes for every member — old LoyaltyLion referral URLs won't carry over, so mention the new link in your announcement email.
- Challenges map cleanly. If you ran LoyaltyLion Challenges, Charm covers the same ground: order-count milestones, punch cards, review milestones, and subscription payment milestones — with no cap on milestone count and no plan gating.
Ready? Install Charm, open Settings → Data migration, and upload your LoyaltyLion export. Want a second pair of eyes first? Email team@appfleece.com — we'll check your export before you touch anything, and we'll happily run the whole migration for you, free.
Comparing more broadly? See Charm vs LoyaltyLion for a side-by-side.