Loading tutorials…
Loading tutorials…
The migration most stores screw up: dump the CSV, send a 'Hey, we moved!' email, watch open rate drop 40%, lose 90 days of segmentation work. Here's how to actually do it.
Who this is forOwners on Mailchimp who are committed to moving to Klaviyo (usually because they outgrew Mailchimp's e-com features or hit pricing thresholds). This is a project, not a task — block a full week.
What you'll need
Step 1
Before migrating anything, write down everything you're recreating: audiences, segments, automations, signup forms, integrations.
Mailchimp → Audience → All contacts → note total contacts.
Mailchimp → Audience → Audiences → list each one (most accounts have 1-2; some have 3-5).
Mailchimp → Audience → Segments → screenshot each segment definition (Klaviyo segments are built differently — you need the LOGIC, not the segment name).
Mailchimp → Automations → list each active automation. Screenshot the trigger, delay, and email content of each one.
Mailchimp → Audience → Signup forms → note all sources of signups (website embed, popup, landing page, Shopify integration).
Save all screenshots to a shared folder. The migration will reference these for 1-2 weeks.
Step 2
Mailchimp → Audience → All contacts → Export Audience → choose Subscribed contacts → CSV.
Mailchimp → Audience → All contacts.
Filter to "Subscribed" contacts only. Skip "Unsubscribed," "Cleaned," and "Non-subscribed."
Click Export Audience.
Download the CSV when ready (Mailchimp emails it when done — usually 5-30 minutes).
Open the CSV. Confirm columns: Email Address, First Name, Last Name, and any custom fields (tags, MERGE fields).
If you have multiple audiences in Mailchimp, export each separately and label the CSVs so you can recreate them as Klaviyo lists.
Step 3
Klaviyo → Lists & Segments → + Create List → Import. Map columns carefully.
Klaviyo → Lists & Segments → + Create List → name it "Newsletter Migration [Date]" or similar.
On the new list → Add Subscribers → Import → Upload File → choose your CSV.
Map columns: Email (required) → 'Email,' First Name → 'First Name,' Last Name → 'Last Name,' Mailchimp tags → custom property called 'Mailchimp Tag.'
Marketing consent: select "These contacts opted in to receive email marketing." This is the legal toggle — only do this if your Mailchimp opt-in was explicit.
Submit. Import completes in 5-30 minutes depending on list size.
Verify: open the list. Count should match the CSV row count. Spot-check 5-10 random profiles to confirm name + email mapped correctly.
Step 4
Klaviyo segments are dynamic; Mailchimp segments are often static. Translate the LOGIC, not the literal definition.
Open your Mailchimp segment screenshots from Step 1.
For each Mailchimp segment, build the Klaviyo equivalent: Lists & Segments → + Create Segment.
Common translations:
Mailchimp 'opened any campaign in last 30 days' → Klaviyo segment: 'Has opened email at least once in the last 30 days.'
Mailchimp 'has tag VIP' → Klaviyo segment: 'Profile property Mailchimp Tag contains VIP.'
Mailchimp 'subscribed in last 90 days' → Klaviyo segment: 'Subscribed to List in the last 90 days.'
Test each segment by checking its profile count vs. the Mailchimp equivalent. They should match within 5-10% (some drift is normal due to timing differences).
Step 5
Each Mailchimp automation maps to a Klaviyo flow with potentially different triggers. Don't copy literally — translate the intent.
Open your Mailchimp automation screenshots from Step 1.
For each automation, build a Klaviyo flow. Common translations:
Mailchimp 'New subscriber' welcome email → Klaviyo flow with trigger: List → your new Klaviyo list.
Mailchimp 'Abandoned cart' → Klaviyo Started Checkout flow (way more capable than Mailchimp's).
Mailchimp 'Customer thank-you' → Klaviyo Placed Order flow.
Build all flows in DRAFT status. Don't activate yet.
Test each flow: use the Klaviyo "Send a test email" function with sample profile data.
Step 6
Klaviyo treats imported lists as 'cold' until they prove engagement. Send only to engaged subscribers for 14 days before any campaign.
Create a segment: 'In list [Newsletter Migration]' AND 'Opened any Mailchimp campaign in last 30 days' (use the Mailchimp Tag custom property as a proxy if you have engagement tags).
Send Klaviyo campaigns ONLY to this engaged segment for the first 14 days. Pause everything to the rest of the imported list.
Volume: start at 1K-5K sends/day, scale to 10K/day, then 25K/day over 14 days.
Monitor open rate. Should be 25%+ on this engaged segment. If it drops below 20%, your DKIM/SPF/DMARC may not be set up correctly on the Klaviyo side — pause and verify before continuing.
After 14 days of clean engaged-only sending, expand to "Opened in last 60 days," then 90 days, then full list. This protects reputation.
Step 7
Replace Mailchimp signup forms with Klaviyo on your site. Disable Mailchimp campaigns and automations only after 30 days of clean Klaviyo sending.
On your site (Shopify/WordPress), replace Mailchimp embed/popup with Klaviyo equivalent. Klaviyo → Sign-up Forms → + Create.
Update any third-party integrations (landing pages, lead-gen tools) to push new subscribers to Klaviyo, not Mailchimp.
Run both Klaviyo and Mailchimp in parallel for 30 days. Klaviyo handles new signups; Mailchimp finishes its in-flight automations.
At Day 30: pause all Mailchimp automations. Confirm no signups going to Mailchimp.
At Day 60: cancel or downgrade Mailchimp. Archive the account if pricing allows — you may want to reference historical campaign data later.
Common mistakes
Blasting the migrated list with a "Hey, we moved!" campaign
What goes wrong: Cold list + new IP + 50K sends in one day = guaranteed deliverability damage. Open rate drops from 28% to 12%. Recovery takes 60-90 days. This is the most expensive migration mistake.
How to avoid: Warm up the list for 14 days through the engaged segment only. No mass-list campaign for at least 30 days. Klaviyo's reputation needs time to build with mailbox providers.
Importing Cleaned and Unsubscribed contacts
What goes wrong: Re-introducing cleaned (hard-bounced) emails spikes bounce rate. Re-introducing unsubscribes spikes complaint rate. Both damage reputation from Day 1.
How to avoid: On the Mailchimp export, filter to Subscribed ONLY. Never check 'all contacts.' On the Klaviyo import, confirm the count matches Mailchimp's Subscribed total.
Not setting up DKIM/SPF/DMARC on Klaviyo's sending domain
What goes wrong: Auth records still point at Mailchimp's domain. Klaviyo's emails fail DKIM, land in spam at scale. Open rate drops to 5-10%.
How to avoid: Klaviyo → Account → Settings → Domains. Set up dedicated sending subdomain. Add the DKIM, SPF, and DMARC records to your DNS BEFORE the first Klaviyo send. Use mxtoolbox.com to verify all three are valid.
Skipping segment recreation, sending to 'all subscribers' instead
What goes wrong: Loses the segmentation work behind every Mailchimp campaign. Sends VIPs the same messages as one-and-done buyers. Drops campaign revenue 20-40% versus segmented sends.
How to avoid: Rebuild every meaningful segment in Klaviyo before launching campaigns. Segments are dynamic in Klaviyo, so you only build them once — they auto-update.
Pulling the Mailchimp plug too early
What goes wrong: In-flight Mailchimp automations break mid-flow. Customers receive partial sequences. Brand looks broken. Klaviyo doesn't have time to fully take over.
How to avoid: Run both platforms in parallel for 30 days. Mailchimp finishes existing automations. Klaviyo handles all new signups + new automations. Cut over only after 30 clean days of dual sending.
Migrating without updating consent for GDPR/CAN-SPAM compliance
What goes wrong: If your Mailchimp opt-in was implied (pre-checked boxes, soft opt-in), importing to Klaviyo with explicit-consent flag triggers a compliance audit risk. EU subscribers can file complaints.
How to avoid: For EU/UK/Canada subscribers, send a one-time re-permission email before migration: "We're moving — confirm you want to keep hearing from us." Suppress anyone who doesn't reconfirm. Yes, you'll lose 30-50% of the list. That's the cost of clean consent.
Recap
Done — what's next
How to set up the Klaviyo + Shopify integration the right way
Read the next tutorial
Hand it off
Mailchimp-to-Klaviyo migrations are the engagement most likely to cause permanent revenue damage if done wrong. A specialist who's done 20+ migrations will do this in 1-2 weeks, typically $800-1,500 at $14-16/hr. The alternative is a 60-90 day deliverability recovery and losing 20-40% of email revenue during the dip.
See specialist rates
1-2 weeks for the build (export, import, recreate segments, recreate automations) plus 30 days of parallel running before fully cutting Mailchimp off. Total elapsed: 6-8 weeks. Active work: 6-10 hours.
Some — but not from the migration itself. You'll lose 20-30% during the 'engaged-only warmup' (because cold segments don't see your initial Klaviyo sends). And another 5-10% if you do a re-permission email for GDPR. After 90 days, your active list is usually 60-75% of the original Mailchimp list, and that's healthier than a 100% list with 50% disengagement.
Yes — as a profile property called 'Mailchimp Tag' (or whatever you name the column on import). Then build Klaviyo segments referencing that property. Klaviyo doesn't have a 1:1 'tag' concept like Mailchimp; tags become profile property values.
Klaviyo flows trigger on e-commerce events (Placed Order, Started Checkout, Viewed Product) with deep Shopify/WooCommerce integration. Mailchimp's automations are list-based and weaker on e-com. Most stores find their flow capability roughly doubles after migration once they learn Klaviyo's trigger system.
No. Use Klaviyo (or a dedicated transactional provider like Postmark) — not Mailchimp Transactional (formerly Mandrill). Mailchimp Transactional has had multiple delivery issues over the years. Klaviyo handles transactional well if you set up the right templates.
Yes — larger lists need more careful warmup. Plan 30 days of engagement-only sending instead of 14. Volume scaling from 5K/day → 50K/day takes 30 days, not 14. Total migration timeline extends to 8-12 weeks. Strongly recommend hiring a specialist for 50K+ migrations — the deliverability risk is real.
Klaviyo
Shopify and Klaviyo plug together in 10 minutes, but the integration that drives 30%+ email revenue takes 2-3 hours of structured setup. Historical sync, back-in-stock, and identified browsing are where most stores miss the money.
Klaviyo
WooCommerce is messier than Shopify for Klaviyo. The plugin works, but the catalog feed, event mapping, and consent settings need attention most guides skip. This is the setup that doesn't break in 60 days.
Klaviyo
Welcome flows are the highest-revenue flow in most Klaviyo accounts — typically 30-45% of automated email revenue. A bad welcome flow leaves 60% of that on the table. This is the build that captures it.
Klaviyo
Open rates dropping from 28% to 16%, campaigns landing in promotions, sudden bounces? Deliverability is the silent killer of email revenue. This is the systematic diagnostic specialists run before suggesting any fix.
Klaviyo
DIY Klaviyo is a great call — until it isn't. Email should be 25-40% of e-commerce revenue. If yours is at 10-15%, the gap is your list isn't being worked. Here's the honest framework for when to hire.