Migrate from Smile, Rivo, Loloyal, LoyaltyLion or another loyalty platform
Move your whole program over by uploading your old loyalty app’s export — Charm detects the format, maps the columns, and imports your customers’ point balances with no spreadsheet editing. Smile.io, Rivo, Yotpo, Ellity, Okendo, Loloyal, LoyaltyLion, and BON Loyalty exports are recognized automatically; both .csv and .xlsx files work.
- Go to Settings → Data migration → Migrate from another platform.
- Under Which app are you moving from?, select your platform (Smile.io, Rivo, Yotpo, Ellity, Okendo, Loloyal, LoyaltyLion, or BON Loyalty), then click Choose CSV and pick your unmodified export file.
- Review the Import preview — customers, opening points, and any rows needing attention. Under Map your VIP tiers, match your old tier names to Charm tiers, then click Confirm and import.
The preview adapts to what’s in your file: unmatched customers get a Create Shopify accounts checkbox, points still maturing in your old app get a Release imported pending points after (days) field, and customers who never formally enrolled in the old program (Okendo “Pending”, LoyaltyLion members with no enrolment date) are routed through Charm’s join step when program opt-in is on.
What each platform’s export brings over
Section titled “What each platform’s export brings over”Some platforms split their data across several exports. Charm recognizes each file by its columns, so you never pick the file type by hand.
Smile.io
Section titled “Smile.io”The Customers export carries balances, VIP tiers, birthdays and member state in one file. Customers who never joined the old program are routed through Charm’s join step when program opt-in is on. Balances Smile writes with a thousands separator, such as 7,830, import at their full value.
Then, optionally, upload Smile’s discounts export (List of discounts created by Smile) to bring over reward codes your customers claimed but never used. Only unused codes are imported, and the points behind them are already gone from the balances in the Customers export, so nothing is counted twice.
LoyaltyLion
Section titled “LoyaltyLion”All three exports come from Analytics → Exports. Start with Customers, then add the other two:
- Customers: balances, pending points, tiers, birthdays and blocked members in one file.
- Rewards: vouchers your customers claimed but never used.
- Customer Activities: each customer’s points history (display-only, it never changes balances).
Yotpo Loyalty
Section titled “Yotpo Loyalty”The Customers export brings balances. Tiers live in a separate Yotpo dashboard report with no per-customer link, so re-map them in Charm afterwards. The upload help in the import dialog covers this.
Import Points Logs (balances) and optionally Balance Redemptions (outstanding rewards). Both the older and the newer layout of Balance Redemptions are recognized, and each reward keeps its type, amount and issue date.
Okendo
Section titled “Okendo”Import Customer Profiles first, then Loyalty Transactions to bring each customer’s points history (display-only, it never changes balances).
Loloyal
Section titled “Loloyal”The Customers export carries balances, VIP tiers and birthdays in one file. Customers are matched on the Shopify customer ID Loloyal puts on every row rather than on the email address, and birthdays written day-first are read correctly. Loloyal’s referral links aren’t imported; Charm mints fresh referral codes for everyone.
BON Loyalty
Section titled “BON Loyalty”Upload the customer data export exactly as downloaded. It carries each member’s current balance, join date and whether they’re excluded from the program (excluded customers stay excluded in Charm). Customers are matched on the Shopify customer ID, with the email as a fallback. BON doesn’t export VIP tiers, so to place members in a tier, add a Tier column with the tier’s name in Charm before you upload.
Ellity
Section titled “Ellity”Export your points in Ellity under Customer List → Export → Export Points. It is one semicolon-delimited file with each customer’s points and VIP tier, and Charm reads it as is. For a Shoptet-to-Shopify move, Charm creates the missing Shopify customer accounts. The Ellity migration walkthrough covers the whole replatform.
After the upload
Section titled “After the upload”Large files run in the background — a Large file — the import will run in the background banner appears, and you can leave the page. The Recent imports table tracks each job’s status (Queued, Running, then Completed) with imported, skipped, and failed row counts; click View errors on a job that finished with problems to see the rows that failed. If something lands wrong, revert the import.
Balances and tiers aren’t the only thing worth bringing over: discount codes your customers earned in the old app but never redeemed are still active in Shopify. Take over those reward codes from the same page — Charm scans them in your store, no export needed.
Loading customers or past orders into Shopify yourself, with a customer CSV, Matrixify or a migration tool? Those rows reach Charm as live signups and orders. Prepare them first so nobody gets a welcome email or a signup bonus they shouldn’t.