Migrate Subscription Preferences in Customer.io

Customer.io partner logo

Table of Contents

Summarize this documentation using AI

This banner was added using fs-inject

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Overview

Migrating subscription preferences in Customer.io is the work of bringing over each shopper’s opt-in status and their category choices (like promos vs back-in-stock) so you can keep sending the right messages without spiking unsubscribes or complaints. For D2C brands, this is less about “data hygiene” and more about protecting revenue, because preference mismatches show up fast in deliverability, spam complaints, and lower repeat purchase rates.

A realistic scenario: you switch ESPs right before a seasonal push, and customers who previously opted out of promotions suddenly get your sale emails again. That can tank inbox placement in a week, and it also burns your best customers who only wanted order updates and product drops.

Propel typically helps brands migrate preferences cleanly, then rebuild key flows (cart recovery, post-purchase, winback) so the first sends out of the new platform are revenue-positive, not reputation-damaging. If you want a second set of eyes on your migration plan, book a strategy call. You can also explore how we implement Customer.io for commerce teams.

How It Works

Migrating subscription preferences in Customer.io works by mapping what you already know about each customer’s consent and choices into the fields and subscription structures your messages will reference.

In practice, you are moving three things:

  • Global status: who is allowed to receive marketing at all (subscribed vs unsubscribed).
  • Category preferences: what they want (promotions, back-in-stock, new arrivals, VIP early access, etc.).
  • Channel nuances: email vs SMS consent, and any double opt-in or regional rules that affect send eligibility.

Once those are in place, your campaigns and Journeys filter audiences using subscription status and preference checks, so you stop over-mailing people who opted down and you keep high-intent messages (like back-in-stock) flowing to the right shoppers. If you are building this from scratch, align your data model and orchestration patterns with how Customer.io expects people attributes, events, and subscription types to work together.

Step-by-Step Setup

Migrating subscription preferences in Customer.io goes smoothly when you treat it like a data migration plus a flow QA project, not just a CSV upload.

  1. Inventory your current preference model. Export a list of subscription states from your current ESP or SMS tool, including global unsubscribe and any granular categories (promo, newsletter, back-in-stock, SMS marketing).
  2. Decide your future-state preference taxonomy. Keep it simple and revenue-aligned. Most D2C brands do best with 3 to 6 categories that map to real message types you will send weekly.
  3. Map fields from old to new. Create a source-to-destination mapping table for each attribute (email_subscribed, sms_subscribed, promo_opt_in, drop_alerts_opt_in, etc.).
  4. Normalize values before import. Standardize booleans, timestamps, and null states. If your old system stores “unsubscribed” as multiple values, clean it now so you do not create edge cases later.
  5. Import people with subscription data. Load profiles with the correct statuses and preference attributes. If you are using subscription types, ensure each person is attached to the right type(s) and states.
  6. Rebuild suppression logic in Journeys. Add entry filters and message-level checks so promotional sends require promo opt-in, while transactional messages can still send where appropriate.
  7. QA with a real test matrix. Test at least: subscribed to all, unsubscribed from all, opted out of promos but opted into back-in-stock, SMS opted in but email opted out, and a fully unknown profile state.
  8. Do a controlled warm start. For the first 7 to 14 days, ramp volume with your most engaged segments first, then expand. This protects deliverability while you validate preference logic.

When Should You Use This Feature

Migrating subscription preferences in Customer.io is the right move when you need continuity in messaging while you change platforms, brands, or consent strategy.

  • ESP migration without revenue dip: You want your abandoned cart, browse abandon, and post-purchase flows live immediately, without accidentally mailing people who opted out.
  • Introducing opt-down instead of opt-out: You are adding preference categories so shoppers can stay subscribed to product drops and back-in-stock, even if they do not want weekly promos.
  • Scaling SMS responsibly: You are expanding SMS but need ironclad channel consent to avoid compliance risk and protect list quality.
  • Reactivation with guardrails: You want winback campaigns that exclude people who previously unsubscribed, while still allowing transactional and service messages.

Operational Considerations

Migrating subscription preferences in Customer.io gets messy when data sources disagree, so plan for reconciliation and ongoing governance.

  • Source of truth: Pick one system as authoritative for each channel. For many D2C stacks, email consent lives in the ESP, SMS consent lives in the SMS provider, and your warehouse holds the history.
  • Timestamp logic: If you have multiple consent events, decide whether “most recent wins” or “most restrictive wins” is your rule. In retention programs we’ve implemented for D2C brands, “most restrictive wins” is safer during migration week, then you can loosen rules once you validate the data.
  • Event orchestration: If you trigger flows from checkout and browse events, make sure preference checks happen before the first message send, not only at campaign entry.
  • Edge cases: Handle unknown states explicitly. Treat missing consent as unsubscribed for marketing until you capture a fresh opt-in.
  • Cross-channel consistency: Do not assume email opt-in implies SMS opt-in. Keep them separate in both data and journey logic.

Implementation Checklist

Migrating subscription preferences in Customer.io is easier when you lock the fundamentals before you turn on high-volume sends.

  • Export current global unsubscribe list and all preference categories
  • Define your new preference categories and the messages that map to each
  • Create a source-to-destination mapping document for attributes and subscription types
  • Normalize values (booleans, nulls, timestamps) before importing
  • Import a small pilot cohort first (employees, VIP customers, recent purchasers)
  • QA preference logic across email and SMS with a test matrix
  • Add journey filters so promo sends require promo opt-in
  • Set a 7 to 14 day ramp plan to protect deliverability
  • Monitor unsubscribe rate, complaint rate, and inbox placement during ramp

Expert Implementation Tips

Migrating subscription preferences in Customer.io pays off when you use the migration to upgrade your preference strategy, not just replicate the old one.

  • Design preferences around intent, not departments. “Promos” and “new arrivals” are clearer than “newsletter” for most shoppers, and they map better to Journeys.
  • Protect high-intent flows. In retention programs we’ve implemented for D2C brands, back-in-stock and price-drop alerts often outperform weekly promos on revenue per recipient. Make sure these categories survive the migration even if you tighten promotional eligibility.
  • Use a two-layer check. Apply preference checks at campaign entry and again at message send. This prevents someone who unsubscribes after entering a flow from receiving the next step.
  • Plan a “preference capture” moment. Add a post-purchase or account-page prompt that asks customers to choose what they want. This helps convert unknown states into explicit opt-ins, which improves list quality and repeat purchase performance.

Common Mistakes to Avoid

Migrating subscription preferences in Customer.io can create deliverability and compliance headaches when teams rush or oversimplify the mapping.

  • Only importing global unsubscribes. If you skip granular preferences, you will over-message opt-down customers and inflate unsubscribes.
  • Assuming missing data means subscribed. Treat unknowns as not opted in for marketing, then earn the opt-in back.
  • Forgetting channel-specific consent. Email and SMS consent are not interchangeable, and your Journeys should not treat them as one flag.
  • Not QAing real flows. A clean-looking profile does not guarantee your cart recovery or post-purchase journeys respect preferences at send time.
  • Turning on full volume day one. Warm up gradually, starting with engaged customers, so you can catch preference bugs before they hit your whole list.

Summary

Migrate subscription preferences when you are switching platforms or tightening your consent strategy and you cannot afford a deliverability dip. Done right, it protects your list, improves relevance, and keeps cart recovery and repeat purchase flows performing from day one in Customer.io.

Implement with Propel

Propel can migrate your preferences, validate your journey logic, and launch your highest-revenue flows in Customer.io without the usual migration churn. If you want help pressure-testing your mapping and ramp plan, book a strategy call.

Contact us

Get in touch

Our friendly team is always here to chat.

Here’s what we’ll dig into:

Where your lifecycle flows are underperforming and the revenue you’re missing

How AI-driven personalisation can move the needle on retention and LTV

Quick wins your team can action this quarter

Whether Propel AI is the right fit for your brand, stage, and stack