Migrating from another loyalty app
Plan: Bulk import is plan-gated; check that your plan includes Bulk import before you start.
Moving from another loyalty app means carrying your customers' balances with you. The path: export balances from the old app, reshape them into DollarBack's CSV format, import with notifications off, then spot-check before you announce anything.
Prerequisites
A plan that includes bulk import (Choose a plan and start your trial)
Balance export access in your old loyalty app
Not a development store (bulk import is blocked on development stores)
Step 1: Export balances from the old app
Most loyalty apps offer a CSV export of customer balances (sometimes called points, credits, or wallet balances). Export it last thing before switching. Any earning that happens in the old app after the export won't carry over.
If the old app uses points rather than currency, decide your conversion rate now (say, 100 points = $1) and convert every row. DollarBack imports currency amounts, not points.
Step 2: Map the columns
Reshape the export into DollarBack's format. Required headers:
Amount
Yes
Positive number, in currency (convert points first). Quoted values and thousand separators like "8,260.90" are handled.
Currency
Yes
e.g. USD
Email or CustomerId
At least one
CustomerId (the Shopify customer ID) wins when both are present. Email must match the customer's email in Shopify.
Keep the file under 5 MB; split large migrations into multiple files if needed.
Duplicate rows are not deduped: two rows for the same customer credit them twice. Deduplicate in your spreadsheet before uploading.
Step 3: Import with notifications off
Open DollarBack admin β Bulk import ("Bulk credit or debit customers by uploading a CSV file").
Set Action Type to Credit.
Set Expiry Days:
0means the migrated credit never expires; enter a number of days if you want migrated balances to expire.Turn Notify Customers off. A migration shouldn't blast every customer with a "you just earned credit" email. Announce the switch on your own schedule instead.
Optionally turn Send to Integrations off too, so the import doesn't trigger Klaviyo/Omnisend/Flow events for every row.
Upload the CSV and click Import CSV.
Watch the job move from pending β processing β completed. Rows commit in small batches; stopping a job keeps everything already processed.
Unknown customers log "Customer not found" and the job continues; those rows are skipped, not fatal. Full field-by-field details are in Bulk import credit (CSV).
Step 4: Spot-check balances
Download the job's log. It lists every row with customer ID, email, action, amount, currency, status, and message.
Filter for anything that isn't a success. "Customer not found" rows usually mean the customer hasn't been migrated into Shopify yet, or the email differs. Fix and re-import only those rows.
Pick five to ten known customers and compare their DollarBack balance against the old app's export: check the credit log in DollarBack admin β Analytics, or sign in to the storefront as a test customer and open the widget.
Confirm the totals: the credited sum in Analytics should match your CSV's column total (bulk imports are included in the overview cards).
Verify it works
Place a test order with a migrated customer account: at checkout, store credit appears as a payment option with the migrated balance available to spend.
Common issues
The job failed or many rows errored β My bulk import failed
"Customer not found" on rows you expected to work: the customer doesn't exist in Shopify yet, or the email doesn't match; import customers into Shopify first.
A customer was credited twice: duplicate rows in the CSV; use Action Type: Debit with a correction file to remove the excess.
Balances imported but not offered at checkout β Store credit isn't available at checkout
Related articles
Last updated