Migration Guide

Smile.io to Yotpo Loyalty Migration

Steps, data mapping, and the gotchas that cost merchants a weekend. Written for the person doing the migration, not for the person choosing a vendor.

TL;DR

A Smile.io to Yotpo Loyalty migration takes one to two weeks of calendar time and roughly 8 to 15 hours of hands-on work for a single-store program. Point balances transfer by CSV matched on customer email. Everything else is rebuilt by hand: earning rules, VIP tiers, referral links, and widget styling. Activity history and redemption records do not come with you.

The biggest gotcha: tier membership recalculates from imported balances rather than historical spend, so customers can silently land in a lower tier than they held in Smile.io. Model the tier assignment before cutover and decide who, if anyone, gets grandfathered.

Before you touch anything: the export checklist

Anything you do not document before cutover gets reconstructed from memory afterwards. Five exports cover the entire program.

1

Export customers with point balances

From the Smile.io admin, export your customer list including current point balances to CSV. This file is the only asset that carries value into Yotpo. Confirm it contains customer email, since email is the field both platforms match on during import.

2

Record every earning rule and its value

Points per dollar, account creation bonus, birthday points, social follows, product reviews, and any limited-time multiplier. Smile.io rules do not export in a replayable format, so a spreadsheet with rule name, trigger, and point value is the practical record.

3

Document VIP tier thresholds and perks

Capture each tier name, the entry threshold, whether it is points-based or spend-based, the perks attached, and the tier-review window. Smile.io and Yotpo calculate tier membership differently, so the exact rules matter when you rebuild.

4

Audit outstanding reward codes in Shopify

Smile.io issues rewards as Shopify discount codes. Those codes live in Shopify, not in the app, so they remain redeemable after you uninstall. Export active discount codes from Shopify Admin and decide which to honor and which to expire before cutover.

5

List every integration that reads loyalty data

Klaviyo flows using Smile.io events, helpdesk macros quoting balances, subscription apps granting points, and any custom API usage. Each needs rewiring after cutover, and loyalty emails fail quietly rather than loudly.

What transfers, what does not

Point balances are the only data that moves from Smile.io to Yotpo Loyalty. Every other row is rebuilt by hand or lost, and the migration goes badly mainly when someone assumes otherwise.

Smile.ioYotpo LoyaltyTransfersNote
Point balancesPoints balance (CSV import)YesImports as an opening balance matched on customer email. Mismatched emails between systems will not link.
Earning rulesEarning rules (rebuilt manually)NoEvery rule is recreated in the Yotpo admin from your documentation. No import path exists.
VIP tiersVIP tiers (rebuilt manually)NoRebuilt by hand. Membership recalculates from imported balances, which can move customers between tiers.
Points activity historyNot supportedNoCustomers lose the earning history behind their balance. Export it if support or finance rely on it.
Redemption historyNot supportedNoThe record of what each customer previously redeemed does not move. CSV it before you uninstall.
Issued reward codesRemain as Shopify discount codesPartlyThey keep working at checkout because Shopify owns them. Yotpo has no record that they exist.
Referral links and attributionNew links generatedNoExisting advocate links stop attributing on cutover. Pending referral credit is lost unless you settle it first.
Widget styling and copyRebuilt in YotpoNoColors, launcher position, and reward copy are reconfigured from scratch.

The migration sequence

Run both apps in parallel with the new widget hidden, settle referrals and freeze earning before the final export, and swap widgets in one session. Sequence matters more than speed.

  1. 1

    Install Yotpo Loyalty with the widget hidden

    Get the app in place but keep the storefront widget off until cutover. Two live loyalty widgets on one theme confuses customers and generates tickets you do not need mid-migration.

  2. 2

    Rebuild earning rules from your spreadsheet

    Recreate each rule and note anywhere Yotpo has no equivalent for a Smile.io rule. Decide explicitly whether to drop or approximate those, and keep the list — it becomes the "what changed" section of your customer email.

  3. 3

    Rebuild tiers and model who moves

    Recreate thresholds, then check which customers land where once balances import. Smile.io tier logic and Yotpo tier logic differ enough that a few long-standing customers typically shift, and you want to find that now rather than on launch day.

  4. 4

    Settle pending referrals, then freeze earning

    Pay out or void referral credit that is mid-flight, then stop accrual in Smile.io. Points earned after your export land in a system you are about to switch off, and reconciling those by hand is the least pleasant part of the job.

  5. 5

    Export fresh, import, then reconcile a sample

    Re-export balances right after the freeze so the file is current, import into Yotpo, then verify 20 customers across the balance range including your top five. Balances should match to the point, not approximately.

  6. 6

    Rewire integrations and test every flow

    Repoint Klaviyo flows, helpdesk macros, and custom API calls at Yotpo. Trigger a test through each flow before enabling it; loyalty emails referencing a dead data source usually send with blank values rather than failing.

  7. 7

    Swap widgets, then strip leftover code

    Enable the Yotpo widget and disable the Smile.io one in the same session, then remove any Smile.io script tags or theme snippets left behind. Uninstalled loyalty apps frequently leave code that still ships bytes to every visitor.

  8. 8

    Send one clear customer email

    Cover four things: balances carried over, what the new widget looks like, which earning rules changed, and what happens to reward codes issued before the switch. Migrations that skip this email produce a support spike even when nothing was actually lost.

Know what you are migrating into

Smile.io repriced in 2026: the old $49 entry plan is gone, replaced by a free tier and a $15 per month entry plan, while VIP tiers still sit behind the $199 per month plan. That gate is the single most common reason merchants start looking. Yotpo Loyalty prices differently again, charging per order at roughly $0.08 to $0.20, free under 100 orders a month, and quote-based above 5,000.

Price the destination at your real volume before committing. At 500 orders a month per-order pricing is around $40 to $100; at 5,000 it is $400 to $1,000. If you are leaving Smile.io specifically to escape a $199 tier gate, check that the alternative does not cost more than $199 at the volume you expect next year, because a per-order model rises with growth in a way a flat plan does not.

The third option: evaluate the field first

The migration work is identical whichever platform you move to, so it is worth spending an hour pricing the whole category before committing to one destination. This is especially true when the trigger is cost rather than a specific missing feature.

Our evaluation framework scores seven criteria including true cost at your order volume and the migration path in and out, and the tested ranking of eight apps carries the current pricing for each.

Full disclosure: we build Anchor Loyalty, one of the apps that framework covers. It is $14.99 a month flat with VIP tiers included, imports point balances from CSV matched on customer email, and ships a 14 KB widget. We measure it against the alternatives on the same criteria as everyone else — judge the data, not us.

shopping_bagInstall Anchor free on Shopify

Frequently asked questions

Do customer point balances transfer from Smile.io to Yotpo Loyalty?

Yes. Export your Smile.io customer list with point balances to CSV, then import it into Yotpo Loyalty, which matches customers on email address. Activity history, redemption records, and referral attribution chains do not transfer. Balances arrive as a single opening number with no backing ledger.

Will my VIP tiers survive a Smile.io to Yotpo migration?

No. Tiers are rebuilt by hand in Yotpo from your documented thresholds and benefits. Because tier membership recalculates from the imported point balance rather than from historical spend, some customers can land in a different tier than they held in Smile.io. Model the tier assignment before cutover and decide in advance whether to grandfather anyone who would be demoted.

Does Smile.io pricing change the migration decision in 2026?

It changes the arithmetic. Smile.io repriced in 2026: the old $49 entry plan was replaced by a $15 entry tier, while VIP tiers still require the $199 per month plan. Yotpo Loyalty charges per order, roughly $0.08 to $0.20, with quote-based pricing above 5,000 orders per month. If you are leaving Smile.io because of the $199 VIP gate, price Yotpo at your actual order volume first, since per-order pricing can exceed a flat plan as you grow.

LoyaltyLion to Yotpo Loyalty

The same migration from the other common starting point.

All migration guides

Switching from Smile.io, Yotpo, or LoyaltyLion to Anchor.