Migrating your subscription platform is one of the highest-stakes technical operations a Shopify merchant undertakes. Unlike switching a theme, an email app, or a reviews tool, a subscription migration moves live billing relationships — every active contract has a next-renewal date, a stored payment token, a discount tier, and a subscriber who is expecting a specific charge to a specific card on a specific day. Get any of those wrong at scale and you generate chargebacks, support volume, and cancellations all at once. This guide walks through what actually has to migrate, the difference between a CSV migration and an API migration, the platform-specific gotchas for Recharge, Loop, Skio, Appstle, Bold, and Seal, and the cutover plan that compresses risk to minutes. We also call out where our free migration differs from the paid migrations historically charged by other apps.
Which platforms we migrate from — and how each one works
We migrate active subscription contracts from every major Shopify subscription app, plus generic CSV and a public REST API for anything else. Most migrations are one-click and finish in under 30 minutes; the rest take an hour of merchant attention split between audit, staging review, and customer comms. The exact method per source is below — every path lands in a staged review first, so nothing goes live until you approve it.
- Appstle Subscriptions — one-click via Shopify-native contracts. No API key required. Bypasses Appstle's Enterprise tier-lock on their own REST API. Click "Detect & Import" on the Appstle card in the migration page.
- Bold Subscriptions V2 — one-click via Shopify-native contracts. Same flow as Appstle. Bold V1 (which billed through Bold's own ledger, not Shopify) takes the CSV path instead.
- Seal Subscriptions — REST API import. Paste your Seal merchant API token (Seal admin → Settings → API). We page through every subscription via Seal's
/subscriptionsendpoint with full schema parity (status, intervals, line items, addresses). - Skio — GraphQL API import. Paste your Skio API token (Skio admin → Settings → API → Generate). Full subscription contracts, billing schedules, line items, and storefront-user metadata.
- Loop Subscriptions — REST API import OR CSV export. API key from Loop → Settings → API. Contracts, customer data, billing schedules.
- Recharge — REST API import OR CSV export. API token from Recharge → Settings → API tokens. Subscriptions, payment methods, selling plans.
- Anything else (Bold V1, legacy apps, custom apps) — CSV import. Download our template, fill it in from your current app's admin export, upload. Per-row validation and error reporting.
- Custom integrations or ongoing sync — Public REST API. Generate an API key in the migration page, POST contracts programmatically. Useful for migrating from outside Shopify (Stripe, WooCommerce) or for ongoing data sync.
- Staging — every imported contract lands in pending-review status, not live billing. Nothing charges until you approve.
- Preview — see the full list of subscriptions, customers, MRR, and status mix before activating.
- Activate — one click promotes all contracts to live. We then sync them to Shopify under our app's attribution.
- Welcome emails — optional one-click magic-link emails to every active customer so they reach the new portal immediately.
- Rollback — staged migrations can be cancelled and fully deleted with one button. Nothing is irreversible until you activate.
All migrations are free — we don't charge per contract, per migrator hour, or as a percentage of moved MRR (some incumbent apps still do). The migration page lives at /app/migration inside the embedded admin app once you install SimpleSubscription. Detailed per-platform considerations (data quirks, schema gotchas, communication scripts) are in the sections that follow.
Why merchants migrate — and which reason shapes the migration plan
Merchants leave their subscription app for one of four reasons, usually in combination: cost (transaction fees compound brutally as MRR scales), portal quality (a slow or confusing portal drives both support tickets and cancellations), missing features (build-a-box, custom billing schedules, cohort analytics, prepaid plans), and support response time (when a billing bug takes 5 days to triage and your renewals are running, that's existential). Knowing which reason is your primary driver shapes what a successful migration looks like for your store.
If cost is the primary driver, the migration math is concrete. A subscription business at $50,000 MRR on Recharge's standard plan pays roughly $7,500–12,000/year in transaction fees alone, on top of Shopify's processing fees and the monthly app subscription. Loop and Skio sit in similar territory at scale (Loop ~1%, Skio ~1% + 20¢ per transaction). A flat-fee app at $79–299/mo crosses below those costs at around $8,000 MRR and the gap widens linearly above it. Migration ROI compounds every month you stay on the flat-fee side, so the calendar math matters — a migration that pays back in 4 months is a 3x annualized return.
If portal quality is the driver, the migration plan needs to weight subscriber-facing UX (cancellation flow, pause, skip, swap) ahead of admin niceties. If missing features is the driver, validate that the destination app actually has the feature you need at the depth you need — "supports build-a-box" can mean a fully fledged drag-and-drop builder or a basic 2-tier picker. If support response time is the driver, ask for live references from existing customers at your store's MRR tier before committing.
Subscription apps that charge a percentage of revenue feel cheap at $5k MRR (a few dollars a month) and brutal at $50k MRR ($500–1000+ per month on top of base fee). If you're growing, model the cost 12-24 months out. A migration is a one-time cost that pays a recurring dividend.
The complete data inventory — what actually has to migrate
A migration checklist that misses any of the following fields results in either failed charges, incorrect billing dates, or subscribers who have to re-enter their payment details — all of which drive cancellations. Before agreeing to any migration timeline, verify your migration partner has explicit plans for each of these. Missing any of them is a sign the migration plan is too lightweight.
- Subscription contracts — each active subscription's product line items, quantities, variants, and subscription plan ID. Map to corresponding selling plan groups in the destination app.
- Next billing date — the single most important field. A subscriber expecting to be billed on the 15th who gets charged on the 1st will dispute the charge. Dates must be preserved to the day.
- Payment method tokens — Shopify vaults card credentials natively (accessible via customer payment method IDs). A clean migration uses the same Shopify-side token so subscribers are never asked to re-enter card details. Some legacy apps stored tokens with the payment processor instead — see the Bold/Ordersify section below.
- Discount and promotional pricing — subscribers on legacy discount rates, founding-member pricing, or promotional tiers must keep those prices post-migration. Check every unique price point in your subscriber base, not just the headline subscription discount.
- Shipping address and delivery preferences — straightforward to migrate but frequently omitted from "lightweight" migrations that focus only on billing data.
- Subscription status — active, paused, cancelled-with-remaining-prepaid-cycles, and trial all need distinct handling. Paused subscriptions especially — they have to land paused on the new side, not active.
- Customer-side metadata — cancellation reasons, save-flow history, last-shipment delivery confirmations. Nice to have, not strictly required for billing continuity, but useful for retention analytics post-cutover.
Many subscription apps track how many billing cycles a subscription has gone through (e.g. "cycle 7 of 12" for prepaid plans, or just a running counter for analytics). This field often gets dropped in migration because no field on the destination side maps to it. If your analytics or merchandising depends on cycle count — "send the 6-month milestone gift," "end-of-prepaid email at cycle 11" — preserve this explicitly.
The two migration paths: CSV export vs API
There are two viable approaches to a subscription migration, and the right choice depends on what your source app actually exposes. Some apps offer both; some only offer one; some offer a CSV that's missing critical fields. Verify before you commit.
CSV export — the source app generates a flat file (one row per subscription) and the destination app imports it. Simpler operationally, slower iteration cycle (export, fix, re-export), and the export schema often misses fields the destination needs. Works fine if the source is straightforward (e.g. all subscribers on one selling plan, no exotic prepaid configurations) and the export includes payment tokens or token references. Doesn't work for migrations with thousands of variant-level customizations.
API migration — direct programmatic access to the source app's data via its REST or GraphQL API. Faster iteration (you can re-run for delta updates), supports complex contracts with nested data, and lets the migration tool reason about edge cases (paused subscriptions, partial prepaid balances, mid-cycle discount changes). Requires API credentials from the source app, which not all platforms grant willingly — some apps restrict their API to their own customers for fear of migration tooling. Recharge and Skio both offer reasonable API access; Loop's API is partner-only; Bold's older apps have weak or no API. Workarounds exist (the source app's admin UI can usually generate the export, and the migration tool then processes the file as if it were a CSV).
- CSV — fast to start, brittle on complex data, fine for <500 subscribers with simple structures
- API — slower setup (credential exchange, schema discovery), much more reliable on complex data, supports delta sync for staged migrations
- Hybrid — full data via API, plus a CSV of any edge cases (legacy discount tiers, custom metadata) hand-mapped at the end
The pre-migration audit — what to do BEFORE moving anything
The pre-migration audit is the step most migrations skip and most migrations regret. It's the step where you discover that 4% of your subscribers have a billing date that doesn't match the cadence (because someone manually rescheduled them three years ago), or that you have 28 different unique price points in your subscriber base (because legacy promotions were never cleaned up), or that 12 subscribers are in a payment-failure state that's been silently retrying for months.
Run this audit at least a week before cutover, and ideally two. Fix what you can fix in the source app before migrating — it's much easier to clean up a stale discount tier in your current platform than to translate it into the new one. The fewer edge cases you carry across, the cleaner the migration runs.
- List every unique price point in your subscriber base. Match each to a known discount tier. Investigate any anomalies (single subscribers at one-off prices are usually legacy hand-edits).
- Identify subscriptions in payment-failure state. These won't migrate cleanly — decide upfront whether to attempt recovery before cutover, migrate them as-is into the new app's dunning flow, or cancel them with a courtesy email.
- Identify upcoming renewals in the migration window. Anything renewing within 48 hours of cutover should be paused or processed in the old app first. Mid-flight renewals are the #1 source of post-migration billing chaos.
- Audit selling plan configuration on the source side. Document every selling plan, cadence, discount, and the products attached. The destination app needs equivalent structures created BEFORE the migration runs.
- Run a paused-subscription census. Paused subs frequently get treated as cancelled by lazy migration scripts. Make sure each one transfers in its paused state with the correct resume-date intact.
- Decide your discount-history policy. Do you preserve every subscriber's historical promotional rate forever, or do you reset everyone to the current published discount? This is a strategic call — preserving history is friendlier to subscribers; resetting can recover meaningful margin.
- All unique price points enumerated and mapped to discount tiers
- Failed-payment subscribers identified — decide recover, migrate, or cancel
- Renewals in the cutover window paused or processed
- Source selling plans documented and equivalents created on destination
- Paused subscriptions listed with resume dates verified
- Discount-preservation policy decided and documented
- Customer service team briefed on cutover date and post-migration FAQ
Migrating from Recharge — the specific gotchas
Recharge is the oldest of the major Shopify subscription apps and has the most legacy structure. A clean migration from Recharge is achievable but the surface area is larger than from newer apps. The key gotchas:
- Legacy contracts predating Shopify's native subscription API — Recharge used to bill via its own ledger; later contracts use Shopify's native subscription contracts. Some merchants have both vintages in their subscriber base. Migration tooling has to detect which is which and handle them differently.
- Recharge Custom Workflows — merchants frequently build custom logic in Recharge (auto-tag subscribers at certain milestones, conditional discount application, custom email triggers). None of this is portable. Inventory your workflows and decide what to rebuild on the destination side before cutover.
- Recharge bundles vs Shopify selling plan groups — Recharge's bundle and pack constructs don't map 1:1 to Shopify selling plans. If you sell bundles, the destination needs explicit bundle support and the migration has to translate the Recharge structure into the equivalent.
- Payment-method handling — Recharge mostly uses Shopify-vaulted tokens for newer contracts. Some older contracts may have payment methods stored Recharge-side. Audit before migrating.
- Migration cost historically — Recharge has historically charged $500+ for migration assistance when subscribers move TO them. Some apps reciprocate by charging similar fees to migrate FROM Recharge. We don't — our migration from Recharge is free, regardless of subscriber count. See why our pricing is structured this way.
Migrating from Loop — what transfers cleanly, what doesn't
Loop is newer than Recharge and built on Shopify's native subscription contracts API from the start. That makes the technical migration cleaner — contracts, payment tokens, and selling plan structure all map well. But Loop's portal customizations and analytics-side data are where the friction lives.
- Subscription contracts — transfer cleanly. Native Shopify structure on both sides.
- Payment methods — Shopify-vaulted tokens transfer with the contract.
- Portal customizations and branding — Loop's portal builder doesn't export. The destination's portal will look different by default; plan to rebuild the branding (logo, colors, custom modules) before subscribers see the new portal.
- Cohort analytics and historical metrics — historical MRR, churn curves, and cohort retention data stay in Loop's analytics dashboard. You can't migrate the historical data; you can only start fresh on the destination side. Export historical analytics as CSVs and archive separately if you need them for board reporting.
- Loop's API access — partner-tier only. Most merchants will migrate via CSV export from Loop's admin UI, processed by the destination app's migration tool.
- Box subscriptions — Loop has decent box-building. If you use it, validate that the destination app's box builder supports the same configuration depth before migrating, otherwise subscriber-level customizations may be lost.
Migrating from Skio — API access and contract structure differences
Skio is the newest of the four and has the most modern API (GraphQL, well-documented), which makes the technical migration the smoothest of the bunch on paper. The reasons merchants leave Skio are usually cost (1% + 20¢ per transaction stacks fast) or feature depth on edge cases (analytics, build-a-box capability), not technical migration difficulty.
- GraphQL API — well-documented, fully featured for migration use. The destination app's migration tool can pull everything programmatically.
- Subscription contracts — native Shopify structure, transfer cleanly.
- Skio-specific incentives and promotions — Skio has powerful promotion logic (referral codes, first-order discounts, loyalty integration). Most of this doesn't translate 1:1 to other apps; document the rules and rebuild equivalents on the destination side.
- Loyalty integrations — Skio integrates with Yotpo, LoyaltyLion, and others natively. If you use a loyalty app, verify destination compatibility before migrating; otherwise loyalty point accruals on subscription orders may break.
- Subscriber-facing portal — Skio's portal is well-regarded. Subscribers will notice the change in look-and-feel. Brief your support team on the difference and prepare a post-migration FAQ.
Migrating from Appstle — Shopify-native contracts and the Enterprise API tier
Appstle is one of the most-installed subscription apps on Shopify, with strong build-a-box, membership, and bundle features. It stores subscriptions as Shopify-native subscription contracts, which makes the technical migration straightforward — the destination app can read every contract directly from Shopify Admin GraphQL without ever needing an Appstle API key. Most merchants migrating off Appstle do so because of pricing tier creep (advanced features and API access are gated behind Enterprise pricing at $100+/month) or portal usability friction at scale.
- Shopify-native contracts — every Appstle subscription lives as a standard SubscriptionContract in Shopify. A modern destination app reads them via the
subscriptionContractsGraphQL query using the merchant's existing Shopify session — no Appstle API key required, no Enterprise-tier dependency. - App attribution — contracts created by Appstle are tagged with
app.title = "Appstle Subscriptions"on the Shopify side, so a destination importer can filter precisely and skip contracts created by other apps in mixed-vendor stores. - API access tier-locked — Appstle's own REST API at
subscription-admin.appstle.comis documented but gated behind their Enterprise plan. Avoid migration tools that require it; the Shopify-native path is faster and free. - Build-a-box configurations — Appstle's build-a-box UI stores box-level metadata in app-specific metafields. Verify destination support for re-importing these or be prepared to reconstruct them in the destination admin.
- Membership/loyalty rules — Appstle Memberships is a separate product. If you use it, plan its migration independently of the subscriptions migration.
Because Appstle uses Shopify-native contracts, our migration tool reads them directly from your Shopify session — click "Detect & Import" in the migration page and it pages through every Appstle-tagged contract automatically. No API token to copy, no Enterprise plan to upgrade.
Migrating from Seal Subscriptions — clean REST API and full schema parity
Seal Subscriptions is one of the easier sources to migrate from because it offers a well-documented public REST Merchant API with the same status enums (ACTIVE, PAUSED, CANCELLED, EXPIRED) and billing-interval semantics that most modern subscription apps use. Seal stores its own copy of every subscription in its database but links each one to the Shopify-native contract via the shopify_graphql_subscription_contract_id field — so destination apps have two clean import paths to choose from.
- Merchant REST API — base URL
app.sealsubscriptions.com/shopify/merchant/api, authentication viaX-Seal-Tokenheader. The/subscriptionsendpoint paginates 50 per page with filters for active-only, paused-only, cancelled-only, with-items, and with-billing-attempts. No tier lock — API access is included on all plans. - Rate limit — 10 concurrent requests per API key. Migration importers should serialize page fetches rather than parallelise them; you'll hit HTTP 503 (not 429) if you over-saturate.
- Schema parity — status enums, line item fields (
product_id,variant_id,final_price,quantity), shipping address fields (s_first_name...s_country_code), and selling-plan IDs all map cleanly to the destination's native fields. Less translation work than Recharge or Loop. - Next billing date — not exposed as a direct field on the subscription. Derive it from the first uncompleted entry in
billing_attempts[], wherecompleted_atis empty. - Discount codes & loyalty — Seal exposes
discount_codesper line item. If you use Shopify's native discount engine on subscriptions, these transfer cleanly. Build-a-box bundles via Seal's bundle feature need verification on the destination side.
Status enums, billing intervals, and line-item fields map almost 1:1 to the Shopify-native schema. Most Seal merchants migrate in under 30 minutes with zero subscriber-visible churn. The PHP API client on GitHub is a useful reference if your destination's migration tool needs adapting.
Migrating from Bold, Ordersify, or other older platforms
Bold Subscriptions and Ordersify are the oldest of the apps in active use, and the data quality varies dramatically by merchant. Some merchants on these platforms have clean data and a straightforward migration; others have years of accumulated legacy state (manual contracts edited in support tickets, deprecated billing schedules, customer payment methods stored with the gateway instead of Shopify-side). The audit is more important here than for any other source.
- Pre-Shopify-API contracts — Bold's older versions billed through Bold's own ledger, not Shopify's native subscription contracts API. Migration involves not just moving data but recreating the contracts as Shopify-native entities. This is the biggest reason Bold migrations take longer than newer-platform migrations.
- Payment-method tokens — some Bold contracts have payment methods vaulted with the payment processor (Authorize.net, Stripe-direct) rather than Shopify. These require subscriber outreach — there's no way to silently re-vault the card without subscriber action. Plan a card-update email campaign as part of cutover for affected subscribers.
- API access — limited or unavailable on older Bold versions. Most Bold migrations are CSV-based via admin export.
- Data quality — verify every billing date, every price, every subscriber status. Bold customers frequently discover during the audit that they have 50+ "active" subscriptions in the database that haven't actually billed in 18 months — silent data rot.
- Cutover communication — subscribers on Bold often have less context for what the subscription app even is. A migration confirmation email should explain in plain language that nothing changes about their subscription except the portal address.
For subscribers whose payment methods were stored gateway-side rather than Shopify-side, the card cannot be silently transferred. Those subscribers must re-enter their card on the destination platform. Expect 15-30% of them to not re-enter — they'll just churn quietly. Mitigation: a high-priority email campaign with a one-click re-vault link, plus phone outreach for high-value subscribers.
If you're on Bold Subscriptions for Shopify Checkout (V2), your contracts are Shopify-native and payment methods are vaulted Shopify-side. The migration is a one-click "Detect & Import" from the destination app — no API key, no payment-token outreach. Only the older Bold V1 platforms hit the gateway-side token problem above.
Note on Ordersify: Ordersify is a suite of Shopify order-automation apps (PDF invoices, pick-pack-fulfill, restock alerts, order exporter, automation tags) — not a subscription billing platform. If you arrived here looking to migrate "away from Ordersify," you're likely looking for a different operations app, not a subscription app. No subscription contract data needs to move.
Customer communication during migration — do you tell them?
Most successful migrations communicate sparingly and at the right moment. The biggest mistake new operators make is pre-announcing the migration weeks in advance, which serves no purpose except to remind subscribers that they have a subscription they could cancel. Subscribers do not need to know about the migration before it happens; they need to know what changed if and when they encounter the new portal.
The right communication pattern: zero pre-announcement, a one-time confirmation email the day after cutover, and a polished post-migration FAQ at a stable URL that support can link to. Frame the change as an upgrade — "we've upgraded our subscription management system; your subscription, billing date, and pricing are unchanged" — and avoid framing it as a platform switch (which raises subscribers' anxiety about the platform they originally trusted).
- Day -1 (pre-cutover): nothing. Don't email subscribers.
- Day 0 (cutover): nothing public. Internal channels brief support and ops.
- Day +1 (day after cutover): one-time confirmation email — "we've upgraded the system; everything is unchanged; here's the new portal URL."
- Day +2 to +30: post-migration FAQ live on your help center; support team trained on common questions.
- Exception: subscribers requiring action (e.g. Bold subscribers who need to re-enter cards) get a separate, more prominent campaign with one-click re-vault. Don't bury action items in the general announcement.
"We've upgraded our subscription system" sounds routine. "We've switched from Recharge to SimpleSubscription" raises questions subscribers didn't have. Lead with the user-visible benefit (faster portal, easier swap, whatever applies) and treat the underlying platform as an implementation detail.
Verifying the migration — the first 30 days post-cutover
Even a clean migration produces a temporary uptick in subscriber contact and a small number of edge-case issues in the first 30 days. Planning for this avoids interpreting normal migration noise as a product failure. The right metrics to watch are billing success rate, support ticket volume, and weekly cohort cancellation rate — segmented finely enough to spot anomalies.
- Renewal day 1 monitoring. The first billing cycle after cutover is the true test. Review every billing result the day charges run. Failed charges that would have been routine retries in the old app may need manual intervention during the transition.
- Payment success rate. Should be within 1-2 percentage points of pre-migration baseline. A larger drop means payment tokens didn't transfer cleanly for some segment — investigate immediately.
- Support ticket volume. Expect a 20-40% increase in portal-related contacts in weeks 1-2 as subscribers encounter the new interface. Normalizes by week 3. A 100%+ increase or volume that doesn't normalize is a signal that the portal UX has a real problem for your subscriber base.
- Weekly cohort cancellation rate. Compare each post-migration week's cohort to the pre-migration trailing 8-week average. A statistically significant uptick is the warning sign. Segment by subscription type, discount tier, and original signup date to localize the cause.
- Chargeback rate. Should be unchanged. A chargeback spike post-migration is almost always a payment-token issue or a billing-date mismatch — investigate the specific transactions and reconcile.
Keep the old app installed (paused, not uninstalled) for at least 30 days post-cutover. This preserves the ability to reference historical contract data if a discrepancy comes up, and provides a documented rollback path if a serious issue emerges. The cost of leaving an unused app installed is zero; the cost of needing it after uninstall is significant.
What goes wrong — and how to handle each failure mode
Even with rigorous preparation, some things go wrong during real-world migrations. The point of this section is not to scare you off but to give you the playbook for each common failure mode so you can react in minutes, not hours.
- Payment-method tokens didn't transfer for a subset of subscribers — typically a small percentage with gateway-side vaulted cards. Identify the cohort immediately, send a one-click re-vault email, follow up with phone outreach for high-value accounts. Expect 60-75% recovery.
- Billing dates shifted by a few days — usually a timezone or date-format bug in the migration tool. Pause renewals immediately, reconcile the dates manually (or via a script), notify any subscriber whose date moved more than 2 days.
- Discount tiers reset to defaults — subscribers on legacy discounts suddenly see the standard rate. This is the worst kind of bug because it doesn't surface until renewal day. Audit before cutover; if it happens post-cutover, halt all billing, restore the discount mapping, and re-issue any incorrect charges with a courtesy email.
- Paused subscriptions came across as active — they'll bill on the next cycle and ship product the subscriber didn't expect. Identify the cohort, pause them again, refund any incorrectly-shipped orders.
- Support volume spike beyond expectations — usually a portal UX issue (cancel link harder to find, swap flow confusing). Triage the top 3 ticket categories, fix UX bugs first, deploy FAQ updates for the rest.
- Subscriber confusion about the new portal URL — solved by setting up a redirect from the old portal address (if technically possible) and by including the new URL prominently in confirmation emails and shipping notifications.
When something is going wrong, the instinct can be to cancel affected subscriptions and let subscribers re-sign-up. Don't. Re-signup rates after a forced cancellation are 20-40% at best; the rest churn permanently. Pause, reconcile, resume — that's the recovery pattern. Even messy recovery beats a clean re-acquisition.
Why our migration is free — and why others charge
Historically, the major Shopify subscription apps have charged for migration assistance — Recharge has charged $500+ for incoming migrations in the past, and several other apps have followed similar models, sometimes with higher fees scaled to subscriber count. The economic logic from their side is straightforward: migration is real engineering work, the subscriber acquisition cost is high in this category, and a paid migration filters for serious commitment.
We don't charge for migration, and the reasoning is the inverse of that logic. We compete on transparent flat-fee pricing — no transaction fees, no per-subscriber overage, no annual contract uplift. The merchants who benefit most from that pricing structure are also the ones for whom a $500 upfront migration fee is the biggest deterrent. By making migration free, the math becomes simple: move to a flat-fee platform, save the variable transaction fees, and pay back the migration cost in the first month or two regardless of subscriber count. There's no gotcha and there's no upsell tier where the migration would have been chargeable; our pricing is structured around flat fees and free migration as the headline differentiators.
Practically: we run the audit, we operate the migration tool, we stage the data in a preview environment, we run the cutover, and we monitor renewal day 1 with you. If you're on Recharge, Loop, Skio, Bold, Ordersify, or any other Shopify subscription app — the migration itself doesn't cost anything. The only thing we ask is that you give the audit phase the time it deserves; a rushed migration costs more than a paid one in cancelled subscribers.
Migration questions
Will subscribers notice the migration?
If the migration is clean, no. Their card is charged on the same date for the same amount, the product ships normally, and the only visible change is the customer portal — which they'll notice the first time they go to skip or pause. A polished post-migration FAQ and a one-time confirmation email handle that transition smoothly. The signs of a botched migration (failed payments, date shifts, discount resets) are highly visible; the signs of a clean migration are nearly invisible.
How long does a migration take?
End to end, expect 1-2 weeks for a typical small-to-mid merchant: a few days for the audit, a few days for staging and validation, an hour for the actual cutover, and 30 days of post-cutover monitoring. Larger merchants with 10,000+ subscribers or complex data structures (multiple subscription types, legacy promotional tiers, prepaid plans) should plan 3-4 weeks. The actual cutover window — when subscriptions are in transit between systems — is typically under an hour.
What happens to subscribers' next billing date?
It transfers unchanged. If a subscriber was set to bill on the 15th of the month, they bill on the 15th of the month post-migration. The single most important field in the migration data and the one that gets verified first in the staging phase. Any date drift is detected and fixed before cutover.
Do payment methods transfer?
Yes, for any subscription where the payment method was vaulted Shopify-side — which is the standard for all modern subscription apps and most contracts in Recharge, Loop, Skio, and recent Bold versions. Older Bold and pre-API Recharge contracts sometimes had payment methods vaulted gateway-side (Authorize.net, Stripe-direct); those require subscriber re-vault via a one-click email link. The audit phase identifies these subscribers upfront so the re-vault campaign is planned, not surprise.
Can I migrate without losing my discount history?
Yes. The audit phase enumerates every unique price point in your subscriber base and maps each to a discount tier on the destination side. Subscribers on legacy promotional rates (founding members, special pricing tiers) keep those rates post-migration. The alternative — resetting everyone to the current published discount — is also valid as a strategic choice but is the merchant's call, not a technical limitation.
What if the migration fails partway through?
The old app stays installed (paused, not uninstalled) for at least 30 days post-cutover, which provides a rollback path. If a serious issue emerges, the destination subscriptions are paused, the old app is reactivated, and billing continues from the old side while the issue is diagnosed. In practice, mid-migration failures are rare because the staging phase catches the issues that would cause them — but the rollback path exists.
What about subscribers who paused their subscriptions — do those transfer?
Yes, in their paused state, with the configured resume date intact. Paused subscriptions are a frequently-fumbled category in migrations because lazy migration scripts treat them as inactive. The audit phase explicitly enumerates paused subs and verifies they transfer with the correct status and resume date.
Will my historical analytics transfer?
Subscription contracts and customer data transfer; the source app's analytics dashboards (MRR trends, cohort retention curves, churn segmentation) generally do not — they live in the source app's analytics layer. Export the historical analytics to CSV before cutover and archive separately. Going forward, your destination app builds its own analytics history starting from the migration date.
Do you charge for migration?
No. Migration from any Shopify subscription app — Recharge, Loop, Skio, Bold, Ordersify, or any other — is free, regardless of subscriber count. This is a deliberate structural choice that lines up with our flat-fee pricing model. Historically other apps in the category have charged $500+ for migration assistance; we don't.
Should I tell my subscribers about the migration before it happens?
No. Pre-announcing a migration reminds subscribers they have a subscription they could cancel, and it raises anxiety about platform changes that subscribers wouldn't otherwise have noticed. Send a one-time confirmation email the day after cutover ("we've upgraded our subscription system; everything is unchanged") and have a polished FAQ ready at a stable URL. The exception is subscribers who need to take action (re-vault a card, for example) — they get a separate, more prominent campaign.
What's the biggest risk in a subscription migration?
Payment-token transfer for subscribers whose cards were vaulted with the payment gateway rather than Shopify. Those subscribers cannot be silently migrated — they must re-enter their card on the destination platform. Expect 15-30% non-response without targeted outreach. Mitigation: identify the cohort during the audit, run a high-priority re-vault email campaign with a one-click link, and phone-outreach high-value subscribers individually.
Can I migrate just some of my subscribers — say, a pilot of 100 — before committing to the full migration?
Yes. A phased migration is the right pattern for large or complex bases. Move a representative pilot cohort first (~5-10% of subscribers, spanning all subscription types and discount tiers), watch them through renewal day 1, fix any issues, then migrate the rest in waves. The trade-off is operating two subscription apps in parallel for the duration of the phased migration, which adds support complexity. For most small-to-mid merchants, a single-batch migration with thorough staging is simpler.