How to migrate from Mailchimp to Klaviyo without losing data
Short answer. Connect the store to Klaviyo first, inventory every Mailchimp audience and automation, preserve subscription and suppression status, map tags into profile properties, rebuild critical flows, and test every entry point before the cutover. Run both systems only for a controlled transition, with one sender assigned to each message. Do not close Mailchimp until forms, flows, tracking, and suppression checks pass.
A Mailchimp to Klaviyo migration is not a CSV upload. It is a transfer of customer identity, consent evidence, behavior, content, sending reputation, and operating responsibility. The highest-risk failure is not a missing logo. It is sending to someone who opted out, triggering the same message twice, or losing the data a flow needs to make a decision.
Klaviyo maintains an official Mailchimp migration guide. As reviewed on July 16, 2026, the native integration can sync subscriber information, audiences, open and click activity, and Mailchimp ratings. It does not replace a complete migration plan, and Mailchimp tags require separate handling.
Define the target operating model first
Write down what Klaviyo will own after launch:
- marketing email campaigns;
- automated email flows;
- signup forms and consent capture;
- SMS, if it is in scope and independently consented;
- segmentation and customer properties;
- ecommerce attribution and reporting;
- transactional messages, only if deliberately moved.
Keep a system owner beside each item. Order confirmation, password reset, shipment status, and marketing email should never move by accident. If the ecommerce platform continues to own transactional email, document that boundary and suppress overlapping Klaviyo messages.
Set a cutover date, a rollback rule, and a freeze window. During the freeze, avoid creating new Mailchimp tags, forms, and automations unless the migration inventory is updated too.
Audit Mailchimp before connecting anything
Build an inventory with these fields:
| Area | Record before migration | Why it matters |
|---|---|---|
| Audiences | Name, purpose, size, defaults, signup source | Audiences may become Klaviyo lists, but not every audience deserves to remain separate |
| Consent | Subscribed, unsubscribed, cleaned, pending, timestamp and source | Prevents unlawful or unwanted sends |
| Tags and groups | Name, definition, last use, automation dependencies | Native sync does not carry every classification into the right target model |
| Merge fields | Data type, example, completeness, owner | Drives personalization and segmentation |
| Automations | Trigger, delays, branches, exclusions, messages | Must be rebuilt and tested as flows |
| Campaigns | Recent sender, volume, engagement and audience | Supports warming and comparison |
| Forms | URL, audience, double opt-in behavior, hidden fields | Every live acquisition path must point to Klaviyo |
| Templates | Active layout, merge tags, footer, preference links | Mailchimp and Klaviyo use different template syntax |
| Integrations | Store, popup, quiz, loyalty, reviews and middleware | Each connection can create or update profiles |
Do not treat duplicate email addresses across audiences as distinct people. Decide which attributes describe a person and which list represents a genuine subscription destination.
Design the field mapping
Create a mapping sheet before import. Keep native Klaviyo fields where they have a defined meaning, and create custom properties only for durable customer attributes.
| Mailchimp source | Klaviyo target | Migration decision |
|---|---|---|
| Email address | Normalize case and whitespace | |
| First and last name | Native name fields | Check invalid placeholders |
| Audience membership | List or profile property | Use a list only when membership has operational meaning |
| Group choice | List property or consent context | Preserve the choice and its source |
| Tag | Custom property or segment logic | Consolidate redundant tags |
| Signup timestamp | Consent or source property | Preserve the original value where available |
| Unsubscribed or cleaned state | Suppression | Validate before the first send |
| Ecommerce behavior | Store integration events | Prefer the source integration over a static CSV |
Mailchimp tags are especially important. According to Klaviyo's current migration documentation, tags are not synced by the built-in integration. Export the relevant tag populations and import them as thoughtfully named custom properties. A boolean like vip_customer = true is easier to govern than dozens of unstructured labels.
Choose data types deliberately. Dates should be dates, counts should be numbers, multi-select preferences may be lists, and yes/no states should be booleans. A property imported as text can silently break numeric or date-based segment logic.
Protect consent and suppressions
Consent is not inferred from the existence of an email address. Preserve the channel, status, timestamp, method, source, and applicable market where your source data supports them.
The Mailchimp integration normally syncs subscription information and adds cleaned or bounced contacts to Klaviyo suppression. There is an edge case worth testing: Klaviyo documents that a profile already active in Klaviyo may not automatically become suppressed when the matching Mailchimp contact is cleaned or bounced. Export suppression populations and reconcile them explicitly instead of assuming the integration covered every record.
Use three counts as a control:
- total distinct email identities in the source;
- marketable email identities by consent definition;
- unsubscribed, cleaned, bounced, or otherwise suppressed identities.
Reconcile the counts after sync. Sample individual profiles from every status and verify the result in Klaviyo.
Connect the ecommerce source before Mailchimp
The store should be the source for catalog, order, checkout, and customer behavior. Connect Shopify, WooCommerce, or the relevant commerce system and confirm that expected events arrive with usable properties.
Klaviyo specifically warns Shopify users to disconnect the old Mailchimp-Shopify integration before connecting Mailchimp to Klaviyo if Shopify is already connected to Klaviyo. Otherwise, existing subscribers may receive unintended double opt-in email. Test this sequence in the current vendor documentation because integration behavior can change.
Check at least these events:
- viewed product, if used;
- started checkout;
- placed order;
- fulfilled order;
- canceled or refunded order;
- subscription events, if relevant.
Event names alone are not enough. Inspect product identifiers, URLs, images, variants, currency, value, discount data, and timestamps.
Use the native integration, then validate it
Create a dedicated Mailchimp API key and connect it through Klaviyo's integration settings. Decide whether to collect engagement data, create lists from all audiences, or limit the sync to selected audience IDs.
As of the July 2026 review, Klaviyo says the initial historical sync includes contacts and the last 90 days of campaign data. Existing audiences then sync more frequently than newly created audiences and campaigns. Treat these intervals as current product behavior, not permanent guarantees, and verify the help page during execution.
The sync does not move complete sent campaigns into editable Klaviyo campaigns. It imports selected engagement metrics. Preserve source reporting separately if the business needs a longer historical record.
Rebuild flows in risk order
Do not activate every flow at once. Rebuild and test in this order for a typical ecommerce program:
- welcome series and signup confirmation;
- cart or checkout abandonment;
- post-purchase education;
- replenishment or subscription lifecycle;
- review request;
- winback and sunset flows.
For each flow, record the source trigger, target trigger, entry filters, conditional splits, timing, message eligibility, exit rules, UTM parameters, and owner. Add a control that prevents people from receiving the Mailchimp automation and Klaviyo flow at the same time.
Use real test profiles to enter every important branch. A flow being set to live does not prove that the data required by its filters exists.
Recreate templates and forms
Klaviyo supports exporting Mailchimp templates as HTML, but the two products use different merge and footer tags. The unsubscribe tag is critical. Imported HTML is also less convenient to maintain than a template rebuilt in Klaviyo's editor.
Rebuild a small modular design system with header, typography, product card, button, legal footer, and dark-mode-safe colors. Validate mobile rendering, fallback values, image weight, tracking, and unsubscribe behavior.
Mailchimp forms cannot simply be redirected inside Mailchimp. Replace embedded forms, popup scripts, landing forms, checkout capture, footer forms, quiz connections, and paid-media lead syncs. After cutover, watch the old audience for new subscribers. Any growth signals a forgotten source.
Warm the new sending setup with engaged recipients
Authenticate the branded sending domain and verify SPF, DKIM, DMARC alignment, tracking links, from address, and reply handling without a default no-reply address. Follow Klaviyo's current domain warming guidance rather than a fixed calendar copied from another sender.
Start with recent, genuine engagement and expand based on performance and expected volume. Historic clicks and purchases are generally more useful than opens alone because privacy features can inflate open data. Monitor delivery, bounce, complaint, unsubscribe, click, and conversion signals by mailbox provider where possible.
Do not manufacture a volume spike to finish a calendar. Reputation responds to recipient behavior, audience quality, authentication, content, and consistency.
Run a controlled cutover
Use a launch checklist:
- all acquisition forms create the expected profile and consent state;
- critical flows pass branch-by-branch tests;
- old automations are paused immediately before new flows start;
- suppressions reconcile;
- ecommerce events and catalog data are current;
- campaign segments return explainable counts;
- links, coupons, preference pages, and unsubscribe work;
- transactional messages still have one owner;
- monitoring and rollback owners are available.
Keep Mailchimp read-only for an agreed retention period if contract and data policy allow. Remove the integration only after new subscribers, flows, and campaign sends have been verified. Export reporting evidence that the team will need later.
FAQ
How long does a Mailchimp to Klaviyo migration take?
It depends on the number of audiences, forms, integrations, templates, and automations. A small clean account may move quickly, while a multi-market program needs several controlled phases. Scope the dependencies rather than promising a universal number of days.
Does the Klaviyo integration import Mailchimp tags?
Not automatically according to Klaviyo's current migration guide. Export relevant tagged populations and map them to governed custom properties or new segment logic.
Should I import unsubscribed contacts?
Yes, when needed to preserve suppression and consent history. They should not be imported as marketable subscribers. Reconcile suppression counts and sample profiles before sending.
Can Mailchimp and Klaviyo send at the same time?
Only with explicit message ownership. Running the same automation in both tools creates duplicates. Assign every campaign and triggered message to one platform during the transition.
Should I copy every old automation?
No. Rebuild automations that still serve a valid lifecycle job. Retire redundant branches, outdated offers, and flows that cannot be measured or explained.
Make the migration testable
The safest migration has a mapping file, count reconciliation, branch-level QA, and a named cutover owner. Deliver audits Mailchimp and Klaviyo, rebuilds the target lifecycle, and manages the change without duplicate sends. Plan your Mailchimp to Klaviyo migration.
Want to apply this to your stack?
Spend 30 minutes with Charlotte to review your CRM setup, size the opportunity and leave with a practical action plan.
Book a 30-minute call →