Subscription Migration Checklist

A step-by-step checklist for moving subscription apps without losing contracts, shifting billing dates or breaking the automations that depend on them.

Work through this in order. The steps before the migration matter more than the migration.

Before — establish the facts

  • Confirm the contract model of the current app. Native Shopify subscription contracts, or the app’s own database? Get it in writing.
  • Confirm the contract model of the new app. Same question.
  • Confirm who holds the payment method. Shopify, or the app’s own vault? This decides whether subscribers must re-authorise.
  • Export active subscriptions — customer, products, quantities, frequency, next charge date, discount, cycle count, address, status.
  • Record baseline metrics — active count, MRR, renewal success rate, churn rate for the last 90 days. You cannot tell whether the migration hurt without this.

Before — inventory the dependencies

  • Metafields written by the old app, and anything reading them
  • Order tags, and the automations keyed on them
  • Webhooks to 3PLs, ERPs, email platforms
  • Theme code referencing the old app’s assets or snippets
  • Shipping and fulfilment rules that depend on subscription data
  • Reports and dashboards built on the old app’s data
  • Shopify Flow automations triggered by subscription events

Build

  • Recreate plans — frequency, billing policy, delivery policy
  • Recreate discounts — and verify the type matches, not just today’s price
  • Recreate tiered or tenure discounts, and confirm cycle counts carry over
  • Rebuild build-a-box rules — item count, eligible list, price bands, choice deadline
  • Configure the portal — branding, permitted actions
  • Set up emails — renewal reminder, dunning sequence, cancellation confirmation
  • Configure retries — attempts, spacing, behaviour by decline reason
  • India: confirm e-mandate registration, pre-debit notification, UPI Autopay, GST invoicing

Test

  • Place a real subscription on the new app, with a real payment method
  • Let it renew. Do not skip this. Most subscription bugs appear at the second charge.
  • Test the portal on a phone — skip, pause, address change, cancel
  • Test a failed payment and confirm the dunning email arrives and its link works
  • Test cancellation end to end
  • Migrate ten subscribers including yourself, and let one renew

Migrate

  • Stop new signups on the old app — you cannot reconcile a moving target
  • Migrate remaining subscriptions
  • Reconcile counts — active before equals active after
  • Reconcile next charge dates — every contract, not a sample
  • Reconcile discounts — next renewal amount matches the last one
  • Reconcile cycle counts — tenure benefits intact
  • Repoint webhooks and integrations
  • Update order tag automations
  • Keep the old app installed for one full billing cycle

After — watch for two weeks

  • Renewal success rate against baseline
  • Failed payments by decline reason — a spike in mandate or vault errors means the migration broke something that only shows at renewal
  • Support tickets — volume and themes
  • Cancellations against the prior period
  • Portal usage — if skips drop to zero, the portal is broken or unreachable

Only then

  • Uninstall the old app
  • Archive the export you made at the start. Keep it — it is your only record of the pre-migration state.

General guide · Moving to Super Subscription