CRM migration
Field-level mapping, validation, and rollback between Customer.io and Mailchimp. We move data and schema; workflows are rebuilt natively in Mailchimp.
Customer.io
Source
Mailchimp
Destination
Compatibility
4 of 9
objects map 1:1 between Customer.io and Mailchimp.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Customer.io and Mailchimp serve different use cases, and the migration reflects that gap. Customer.io is an event-driven platform built for product-led teams that track behavioral sequences across email, SMS, push, and in-app channels. Mailchimp is an all-in-one marketing platform designed for SMBs and growing brands that need accessible email automation, landing pages, and audience management without developer involvement. We migrate the core records — People profiles with all traits as subscriber merge fields, and message delivery logs for compliance — but we flag that Custom Events (the behavioral backbone of Customer.io) have no native equivalent in Mailchimp. Segments require rebuild using Mailchimp's segment logic. Campaigns, Journeys, Broadcasts, Custom Objects, and Transactional messages do not migrate as automation code; we deliver a written inventory of every active workflow for your team to reconstruct in Mailchimp's automation builder. Profile-based pricing differences mean the move from Customer.io to Mailchimp can reduce monthly spend significantly for teams with large inactive user bases.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Customer.io object lands in Mailchimp, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Customer.io
Person (Profile)
Mailchimp
Subscriber
1:1Customer.io People records map to Mailchimp Subscribers. The userId becomes the subscriber email address as the primary identifier. All Customer.io traits (including nested JSON and arrays) flatten to Mailchimp merge fields (FNAME, LNAME, and custom MERGE1-MERGE8 fields). We map the created_at timestamp to the SUBSCRIBER_CREATED field and the last_seen or last_activity timestamp to the merge field capturing most recent engagement. Any inactive or deleted-within-billing-cycle profiles are excluded from the initial migration scope and reconciled against the billable profile count before cutover.
Customer.io
Custom Events
Mailchimp
None (no native equivalent)
lossyCustomer.io's custom event tracking has no direct Mailchimp equivalent. We flag every distinct event name and property schema during discovery and deliver a written event inventory. The customer's team decides whether to: rebuild event-replacement automations in Mailchimp using tag-based triggers (e.g., tagging a subscriber when they complete a purchase via Shopify integration), accept the event data loss, or maintain a supplementary event-tracking tool. We do not migrate event records to Mailchimp as they cannot be stored natively.
Customer.io
Segment
Mailchimp
Segment
lossyCustomer.io segments (dynamic audience definitions based on trait values and event conditions) cannot export as reusable objects. We export the segment criteria as a structured rule set including all condition groups, operator types, and values. A Mailchimp segment is rebuilt using Mailchimp's segment builder with attribute-based conditions (tag membership, merge field values, engagement history). We provide the segment rebuild document mapping each Customer.io segment to its Mailchimp equivalent with the specific builder steps required.
Customer.io
Campaign / Journey
Mailchimp
Campaign or Customer Journey Automation
lossyCustomer.io multi-step Journeys with branching, wait steps, cross-channel triggers, and A/B testing have no migration path to Mailchimp's automation model. We export the campaign structure including trigger type, step sequence, branching logic, and channel assignments as a written document. Customer Journey Automations in Mailchimp (entry-triggered, with delays and conditional branching) serve as the rebuild target. The customer's marketing team or a Mailchimp partner reconstructs the active campaigns post-migration using the exported structure as a specification.
Customer.io
Broadcast
Mailchimp
Campaign (one-time send)
1:1Customer.io one-time broadcasts map to Mailchimp Regular Campaigns. The broadcast name, target segment, subject line, from name, and content all migrate directly. If the broadcast was API-triggered, we note the trigger condition and whether it should become a Mailchimp Scheduled Campaign or an Automation trigger. Broadcast send timestamps and delivery statistics export as a compliance log.
Customer.io
Custom Object (Company / Account)
Mailchimp
Merge Field (on Subscriber)
many:1Customer.io Custom Objects (Companies, Accounts) with their own attributes and relationships to People have no Mailchimp equivalent. We flatten the most relevant Company attributes (name, domain, industry, employee count) into merge fields on the Subscriber record. If the customer needs to preserve company-level data for reporting, we recommend using Mailchimp's built-in CRM features (available on Standard and Premium tiers) to tag and segment by company after migration, or maintaining a supplementary CRM.
Customer.io
Transactional Message
Mailchimp
Mandrill (Mailchimp transactional add-on)
lossyCustomer.io transactional messages (receipts, password resets, order confirmations) bypass standard unsubscribe rules. If the customer sends transactional email through Mailchimp, they need the Mandrill add-on (starting at $20/month). We export transactional message templates and note which ones are API-triggered versus scheduled. Delivery logs for transactional messages migrate as a compliance audit file. Note that Mailchimp Mandrill does not support SMS transactional messages; the customer needs a separate SMS transactional provider if SMS is required.
Customer.io
Engagement: Email
Mailchimp
Activity History (tagged)
1:1Customer.io email engagement logs (sent, delivered, bounced, opened, clicked) have no native Mailchimp activity history attached to subscriber records beyond standard open/click tracking. We export the engagement timeline as a compliance and audit CSV. If the customer wants to preserve engagement context in Mailchimp, we tag subscribers based on their engagement history (e.g., Power User, Inactive, Bounced) as part of the migration to maintain segment continuity.
Customer.io
Subscription Preferences
Mailchimp
Marketing Permissions
1:1Customer.io's topic-level subscription preferences (per-channel opt-in for email, SMS, push, in-app) map to Mailchimp's marketing permission flags. We map email_opt_out to the Email Marketing Permission, SMS consent to the SMS Marketing Permission, and flag push and in-app channels as unsupported (Mailchimp does not handle push or in-app). If the customer uses Customer.io's subscription_center preferences, we export the preference center configuration as a reference for rebuilding in Mailchimp's preference center.
| Customer.io | Mailchimp | Compatibility | |
|---|---|---|---|
| Person (Profile) | Subscriber1:1 | Fully supported | |
| Custom Events | None (no native equivalent)lossy | Fully supported | |
| Segment | Segmentlossy | Fully supported | |
| Campaign / Journey | Campaign or Customer Journey Automationlossy | Fully supported | |
| Broadcast | Campaign (one-time send)1:1 | Fully supported | |
| Custom Object (Company / Account) | Merge Field (on Subscriber)many:1 | Fully supported | |
| Transactional Message | Mandrill (Mailchimp transactional add-on)lossy | Fully supported | |
| Engagement: Email | Activity History (tagged)1:1 | Fully supported | |
| Subscription Preferences | Marketing Permissions1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Customer.io gotchas
Deleted profiles still count toward billing for the remainder of the cycle
Push migration requires a new app version with the Customer.io SDK
Broadcast API rate limit constrains high-volume re-imports
Inactive user profiles inflate monthly billing with no campaign benefit
Transactional message content may be redacted in stored logs
Mailchimp gotchas
Contact count includes unsubscribed and non-subscribed records
Automation workflows cannot be exported
Account suspensions trigger silently during migration
Template HTML is Mailchimp-specific and may not render in other platforms
E-commerce data requires active store connection
Pair-specific challenges
Migration approach
Discovery and scope definition
We audit the source Customer.io workspace across plan tier (Essentials/Premium/Enterprise), total profile count, billable profile breakdown (active vs inactive vs deleted-within-cycle), trait schemas (including nested JSON and arrays), event names and property schemas, active segment criteria, campaign and journey structures, broadcast history, and custom object definitions. We pair this with a Mailchimp tier recommendation (Essentials for basic email, Standard for SMS and CRM features, Premium for advanced automation and reporting) based on the customer's feature requirements post-migration. The discovery output is a written migration scope, an event inventory, and a segment rebuild priority list.
Event and object gap analysis
We produce a structured gap document comparing Customer.io's event model and custom objects against Mailchimp's capabilities. For each Customer.io event type and custom object, we document whether a Mailchimp equivalent exists, what the replacement mechanism is (tag-based automation, merge field, CRM feature), and whether the customer accepts the gap or will maintain a supplementary tool. This document is the key decision point before migration begins. We do not proceed to data export until the customer has reviewed and signed off on the gap analysis.
Merge field schema design and Mailchimp workspace preparation
We design the Mailchimp audience schema based on the trait inventory from Customer.io. Each Customer.io trait becomes a Mailchimp merge field (FNAME, LNAME, PHONE, or custom MERGE1-MERGE8) typed to match the source data type (text, number, date, boolean). We pre-create the audience, define all merge fields, and configure marketing permission fields (email and SMS) before any profile import begins. If the customer uses Mailchimp's CRM features (Standard or Premium), we define the company fields here.
Profile export, transformation, and deduplication
We export all Customer.io People profiles with full trait data. Deleted profiles within the current billing cycle are flagged separately and excluded from the primary import to avoid double-billing. We transform the profile data: nested JSON flattens to merge field-compatible strings, anonymousId records are flagged for the customer's review, and the email address serves as the primary dedupe key. Any duplicate email addresses (Customer.io allows multiple profiles per email) are reconciled using the most recent created_at timestamp. The final profile count is verified against the Customer.io billable profile count before Mailchimp import begins.
Segment rebuild specification and compliance log export
We export every active Customer.io segment as a structured rule set including all condition groups, operators, values, and segment logic. We pair this with a Mailchimp segment rebuild guide mapping each Customer.io segment to Mailchimp's segment builder steps. We also export message delivery logs (sent, delivered, bounced, undeliverable status) as a CSV compliance file linked to the subscriber email for audit purposes. Transactional message templates and delivery logs export separately.
Campaign and journey structure export
We export all active Customer.io Campaigns and Journeys as a written specification document. Each campaign includes the trigger type, step sequence, delay durations, branching conditions, channel assignments, A/B test configurations, and active vs paused status. We do not export workflows as code; the document serves as a specification for the customer's team to rebuild in Mailchimp's Customer Journey Automation builder. Active campaigns are exported with their target audience and content references so the team can recreate them in Mailchimp with minimal creative rework.
Production migration and cutover
We run the profile migration into the production Mailchimp audience using batched API imports with deduplication validation. We apply tags based on engagement history (from the compliance log) and subscription preferences (mapped to Mailchimp marketing permission fields). We deliver the segment rebuild guide, campaign specification document, event inventory, and custom object mapping. We freeze Customer.io SDK calls during the cutover window, run a final delta export of any records modified during migration, and mark the Customer.io workspace for billing cancellation. We do not provide post-migration admin support, training, or Mailchimp automation rebuild as standard scope; those are separate engagements.
Platform deep dives
Customer.io
Source
Strengths
Weaknesses
Mailchimp
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Customer.io and Mailchimp.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
Customer.io: Not publicly documented for general API; transactional broadcast endpoint capped at 1 request per 10 seconds.
Data volume sensitivity
Customer.io exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Customer.io to Mailchimp migration scoping. Not seeing yours? Book a call.
Walk through your Customer.io to Mailchimp migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Customer.io
Other ways to arrive at Mailchimp
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.