Switching from another loyalty app
Bring your customers' points balances (and birthdays) into CounterQuest from Smile.io, LoyaltyLion, BON Loyalty, Rivo, Joy Loyalty, Yotpo Loyalty & Referrals, or any spreadsheet. You see exactly what will happen before anything changes, balances keep their dollar value, and running the import twice never doubles anyone.
Want the details for one app? See the app-by-app switching pages for Smile.io, LoyaltyLion, Yotpo, BON Loyalty, Rivo and Joy Loyalty.
On this page
Before you start
- Set the start date. In Settings → Start date, enter your switch-over day. Only orders on or after it earn points, so orders your old app already rewarded don't earn twice. The import page warns you if it isn't set.
- Set your rates. In Settings, choose Points earned per $1 spent and Points needed for each $1 off. They don't have to match your old program: the import converts balances so each customer keeps the same dollar value.
- Turn off earning in the old app on switch-over day, then export, so the file has everyone's final balance.
1. Export from your old app
The export contains customer details, so keep it somewhere private and delete it when you're done. Menus change from time to time; if yours looks different, look for an export on the app's Customers page or ask its support for "a CSV of customers with their points balance".
Smile.io
- Open Customers and click Filter and export.
- Scroll to the right end of the table, click the ⋯ menu, choose Download results, pick CSV and click Download. Smile emails you the file.
- Changes can take up to 24 hours to show up in Smile's export.
Smile's default is 100 points = $1 off, and the import page fills that in. If you changed your rewards in Smile, use your own numbers.
LoyaltyLion
- Go to Analytics → Exports and click Customers.
- Keep the default columns (at least ID, Name, Email, Points Approved and Birthday) and click Export.
- Download it from Export History or from LoyaltyLion's email (downloading needs two-step sign-in on in LoyaltyLion).
No file needed: LoyaltyLion also writes balances to your Shopify customers (loyaltylion.points_approved). On the import page choose Read them directly from Shopify and the check reads them for you. Points Approved is what members can spend; pending points are left out.
BON Loyalty
- Open Customers, then the Customers Data tab.
- Click Export (upper right) and confirm with Yes, export data. BON emails the file to your Shopify account email.
- With more than 30,000 customers BON asks you to contact its support for the export.
Rivo
- Go to Settings → CSV Imports, scroll to Export Customer Data and click Export.
- Rivo emails the file to your store email within a few minutes.
Joy Loyalty
- Open the Customers page and click Export.
- Enter your email address; Joy emails you the CSV. Joy stores birthdays as month/day only, so those can't be copied (customers can add theirs again).
Yotpo Loyalty & Referrals
- Open Customers and click Export all (top right). Yotpo emails the file to the account owner. Analytics → Reports → Customers gives the same columns.
On Yotpo's Pro plans and up, balances may also be on your Shopify customers (yotpo.loyalty_current_points_balance); try Read them directly from Shopify. If the check finds no balances, Yotpo keeps those fields private to itself on your store: use the export instead.
Any other app or a spreadsheet
Save a CSV (comma, semicolon or tab separated) with one row per customer: a points balance, plus email (best), Shopify customer ID, phone, or first and last name. Choose Other app / spreadsheet and give your old program's name so customers see it in their history.
2. Upload and match the columns
- In CounterQuest, open Switch apps and pick your old app. Its export steps appear on the page.
- Drop the CSV into the upload box.
- Check the column matches. Columns we recognise are picked for you; change any that are wrong. Points balance is required, and email finds customers most reliably. Numbers like 1,234 or 1.234,5 and most date formats are understood.
3. Keep the points' value
Tell the import what your old points were worth, for example 100 old points were worth $1 off. Balances are converted so customers keep the same dollar value: with CounterQuest set to 100 points per $1 off, 1,000 old points worth $10 become 1,000 points; set to 10,000 per $1 off, they become 100,000. If both programs value points the same, tick Keep the same numbers.
Optional: a Switch-over bonus gives every matched customer extra points once, as a thank-you.
4. Do a dry run
Press Check (dry run). Nothing changes yet. The review shows how many customers will be imported, their old points, new points and dollar value side by side, how each was matched, and who needs checking. Download full report gives a spreadsheet of every row. Big stores take a little longer: the check reads all your customers in the background (keep the page open, or come back to it).
How customers are matched
- By Shopify customer ID, when the file has one.
- Otherwise by email address (capital letters don't matter).
- Otherwise by phone number (US/Canada numbers with or without +1).
- Otherwise by exact first and last name, but only when exactly one Shopify customer has that name.
- Anyone else is listed under Needs checking. Nothing is guessed.
Negative balances import as 0 and are flagged. Birthdays are copied over; if a birthday already passed this year, this year's birthday bonus counts as done (no surprise bonus on import day). Placeholder dates are ignored.
5. Review "Needs checking"
These rows matched no single customer: no email, a name or phone shared by several customers, or someone who isn't in Shopify. They are not imported. Download them with Download needs checking, find each person in Customers, and use Adjust points with a reason like "From Smile". Or fix the file and check again.
6. Import
- Press Import N customers. Large imports run in rounds with a progress count; if you close the page, come back and press Continue import.
- Each customer's history shows "Imported from <app>: N".
Re-runs never double. Anyone already imported from that app is skipped, so a newer export or a second try is safe. Importing from two different apps adds both.
Before a big change like this, you can also press Back up now on the Backups page.
7. Turn the old app off and tell customers
- Turn off the old app's widgets, emails and checkout features (or uninstall it) so customers see one program.
- Reward codes customers already got from the old app are ordinary Shopify discount codes. They keep working until they expire or you delete them in Discounts.
- Switch on the Rewards button and the POS tile if you haven't (Getting started).
- Tell customers. The import page has an announcement email you can copy. A points event for launch weekend (for example double points) gives people a reason to look; see points events.
Their old balance (converted to the same dollar value) as their starting balance, with "Imported from <app>" in their history.
Set the start date first. The sign-up bonus goes to customers created after the start date, not to everyone you just imported.