home/migrations/to Customer.io
// migrate to

move to Customer.io without rebuilding by hand.

mailexodus normalizes your current platform into one portable schema, then checks what Customer.io can actually import. You get a route report before your agent writes anything.

agentUse mailexodus skill: your source → Customer.io playbook
// try it

bring your data into Customer.io.

Pick the platform you're leaving and generate a route playbook. The report shows what maps cleanly into Customer.io's model and what needs review — before you approve writes.

analyzing Klaviyo
source modeAutomated adapter
source exports8
Customer.io imports4
destination gapslists, tags, custom fields, templates, automations
data leaves machineno · dry-run
$npx mailexodus@latest migrate --from klaviyo --to customer-io --dry-run
agentUse mailexodus skill: KlaviyoCustomer.io playbook
// fit

when Customer.io is the right move.

Customer.io is a strong fit for teams that want customer.io teams with subscriber data, campaigns, and automation branches that need a migration report before rebuild. The migration risk is rarely the CSV — it is the automation graph: triggers, delays, branches, template references, and consent state. mailexodus puts a portable schema in the middle so those objects are inspected before they become Customer.io objects.

// inbound

what Customer.io receives.

can import
  • +
    subscribers
  • +
    segments
  • +
    suppressions
  • +
    campaigns
needs review
  • ?
    segments
  • ?
    campaigns
not exposed for import
  • x
    lists
  • x
    tags
  • x
    custom fields
  • x
    templates
  • x
    automations
destination adapter

Automated adapter

Customers map to subscribers and attributes. Broadcasts and newsletters map to campaigns. Campaign email actions map to automation emails. Transactional messages map to templates

Customer.io can receive people, manual segments, suppression state, and newsletter-style campaign content through exposed APIs. Full journey campaign graphs and transactional template resources are not exposed as clean create/import surfaces; rebuild those in Customer.io after import. Dry-run the report first, then approve writes when the counts and destination gaps look right.

// before you switch

plan the move to Customer.io.

  1. Authenticate your sending domain in Customer.io (SPF, DKIM, DMARC) and plan a warmup window — sender reputation is earned here, it does not transfer.
  2. Bring consent and suppression state across first, so unsubscribes and bounces are honored from the first send in Customer.io.
  3. QA migrated templates and segments inside Customer.io, and send seed tests before any live campaign.
  4. Keep your current platform active until in-flight automations finish and Customer.io is warmed and trusted.
// migrate it

start with the route playbook.

The agent prompt returns a route report with source exports, destination imports, skipped objects, and manual-review tasks. When it looks right, wire credentials and approve writes from a controlled machine.

inspect

destination coverage

npx mailexodus@latest info customer-io

playbook

agent playbook

Ask mailexodus for a migration_playbook with to=customer-io

agentUse mailexodus skill: your source → Customer.io playbook