Article content and detailed guides remain in English. The selected language applies to controls and quick instructions.

Back to articles

How to Migrate Email Lists Between Marketing Platforms: Mailchimp to Klaviyo, Constant Contact to Brevo, ActiveCampaign to HubSpot and Other Common Migration Paths

On this page

Why Migrate Email Platforms

Businesses migrate email marketing platforms for better pricing at scale, more advanced automation, improved deliverability, better e-commerce integration, more sophisticated segmentation, or because their current platform is being discontinued or acquired. The migration itself is where lists get lost, corrupted, duplicated or stripped of valuable engagement data:

Migration trigger Typical migration path Risk level Primary concern
E-commerce growth Mailchimp to Klaviyo; Constant Contact to Omnisend Medium Preserving purchase history and product engagement data alongside email data
B2B sales enablement Marketing platform to HubSpot; standalone ESP to CRM-integrated platform High Mapping email engagement to contact records; preserving lead scores
Cost reduction at scale Full-featured platform to value platform (Brevo, EmailOctopus, Sender) Medium Feature parity gaps; ensuring deliverability on new platform
Automation complexity Basic platform to ActiveCampaign, Drip or advanced automation platform Medium Recreating automation workflows; preserving subscriber journey state
Platform sunset or acquisition Discontinued platform to any alternative High Tight timeline; limited support from departing platform; data export constraints
Deliverability issues Any platform to platform with better deliverability infrastructure Medium Warm-up required on new platform; sending reputation does not transfer

Migration Workflow

Step 1: Export from source platform

Platform Export method Export format What exports What does NOT export
Mailchimp Audience > All contacts > Export Audience CSV Email, name, tags, subscription date, last engagement, consent source, custom fields Automation state (which step a subscriber is on); campaign-level engagement history (opens, clicks by campaign); journey position
Klaviyo Lists & Segments > specific list > Manage List > Export CSV Email, name, phone, custom properties, consent, profile data Flow position; predictive analytics (CLV, churn risk); event history (browsed, started checkout)
Constant Contact Contacts > Export CSV Email, name, phone, address, custom fields, list membership, engagement status Campaign engagement history; automation state
Brevo (Sendinblue) Contacts > Export contacts CSV Email, name, custom attributes, list membership, subscription status Automation state; transactional email history
ActiveCampaign Contacts > Export CSV Email, name, tags, custom fields, deal data, lead score Automation state (which automation and step); site tracking data; event history
HubSpot Contacts > Import/Export > Export CSV or XLSX Email, name, company, deal data, custom properties, lifecycle stage, lead score Workflow state; conversation history; activity timeline details
Kit (ConvertKit) Subscribers > Export CSV Email, name, tags, custom fields, subscription date, referral source Automation state; link click history
Drip People > Export CSV Email, name, tags, custom fields, lead score, lifetime value Workflow state; event history

Step 2: Clean the list before importing

Migration is the best time to clean your email list because you avoid importing bad data into the new platform and you reduce the cost of the new platform (most charge by subscriber count):

Cleaning task How to do it Why it matters during migration
Remove bounced addresses Most platform exports include a status or engagement column; filter out "bounced", "cleaned" or "hard bounce" status Importing bounced addresses to a new platform damages your sending reputation from day one
Remove unsubscribed contacts Filter out "unsubscribed" status from export Importing unsubscribed contacts and emailing them violates CAN-SPAM; most platforms flag this as a compliance issue
Remove inactive subscribers Filter out subscribers who have not opened or clicked in [12-24] months (depending on your sending frequency) Inactive subscribers lower engagement rates and increase spam complaint risk on the new platform
Deduplicate Upload all exports to Email Extractor to find and remove duplicates across lists Duplicates inflate subscriber count (higher cost) and cause duplicate sends
Fix obvious typos Sort by domain; correct "gmial.com", "yahooo.com", "hotmal.com" Prevents bounces on the new platform
Remove role-based addresses Filter out info@, admin@, sales@, support@, noreply@ Role-based addresses generate complaints and lower engagement metrics
Validate remaining addresses Run through an email verification service before importing Ensures list quality on the new platform from day one

Step 3: Map fields between platforms

Common field mapping challenge Source platform field Destination platform field Solution
Different field names for the same data Mailchimp: "FNAME" / "LNAME" Klaviyo: "first_name" / "last_name" Rename columns in CSV before importing
Merged vs. split name fields Source has "Full Name" Destination has separate first/last name fields Split using spreadsheet formulas before importing
Date format differences Source: "MM/DD/YYYY" Destination: "YYYY-MM-DD" Reformat dates in spreadsheet before importing
Tag vs. list segmentation Source uses tags for segmentation Destination uses lists Create lists from tags during import, or map tags to custom fields
Custom field type mismatches Source: text field with "yes"/"no" Destination: boolean/checkbox field Convert values before importing
Multi-value fields Source: "Interests: A, B, C" in one field Destination: separate fields or multi-select Split into separate columns or use multi-select import format
Consent and opt-in records Source records opt-in date and source Destination requires consent proof Map consent fields; preserve original opt-in data for compliance

Step 4: Import to destination platform

Platform Import method Maximum file size Dedup on import Consent handling
Mailchimp Audience > Import contacts > CSV 15 MB Merges by email; updates existing records Can mark as opt-in confirmed during import
Klaviyo Lists & Segments > Create List > Import > CSV 50 MB Merges by email; updates profiles Records consent status from import field
Constant Contact Contacts > Add Contacts > Upload CSV 4 MB Merges by email; option to update or skip Requires agreement that contacts opted in
Brevo Contacts > Import contacts > Upload file 10 MB Merges by email Records opt-in status from import
ActiveCampaign Contacts > Import > CSV Varies by plan Merges by email; updates or skips Imports consent data from mapped fields
HubSpot Contacts > Import > File from computer 512 MB Merges by email; creates or updates Imports subscription status; honours unsubscribes
Kit (ConvertKit) Subscribers > Import > CSV 10 MB Merges by email Confirms existing; imports as unconfirmed option
Drip People > Import > CSV 50 MB Merges by email Imports subscription status

Step 5: Warm up sending on new platform

Warm-up phase Timeline Daily volume Who to send to
Phase 1 Days 1-3 500-1,000 Most engaged subscribers (opened or clicked in last 30 days)
Phase 2 Days 4-7 2,000-5,000 Engaged subscribers (opened or clicked in last 90 days)
Phase 3 Days 8-14 5,000-15,000 Active subscribers (opened or clicked in last 180 days)
Phase 4 Days 15-21 15,000-50,000 All active subscribers (opened or clicked in last 12 months)
Phase 5 Days 22-30 Full list volume Entire migrated list (excluding cleaned/bounced/unsubscribed)

Using Email Extractor During Migration

When migrating between platforms, you often have subscriber data in multiple exports (one per list, one per segment, one per tag group, plus supplementary data from CRM exports, e-commerce platforms and other sources). Upload all export files to Email Extractor to:

  1. Extract all email addresses from every export file regardless of column name or format
  2. Deduplicate across all files (the same subscriber may appear in multiple list exports)
  3. Download as CSV to see which source file each email came from (helps identify list overlaps)
  4. Produce a clean, deduplicated master list for import into the new platform

This is particularly useful when migrating from platforms that export by list (one CSV per list with overlap between lists), or when consolidating from multiple platforms into one (migrating from Mailchimp + Constant Contact + a CRM into a single HubSpot instance).

Common Migration Pitfalls

Pitfall What happens How to avoid it
Importing bounced and unsubscribed addresses New platform flags your account for importing bad data; deliverability damaged from first send Clean exports before importing; filter by engagement status
Not warming up on new platform High bounce rates and spam complaints; new platform's IP/domain flagged Follow warm-up schedule; start with most engaged subscribers
Losing engagement history Cannot segment by engagement on new platform; treating all subscribers as new Export engagement metrics (last open date, click date) as custom fields; import these as profile data
Double-sending during migration Subscribers receive the same email from both platforms during overlap period Use one platform exclusively for sending during transition; disable sends on old platform before enabling on new
Consent data loss Cannot prove opt-in on new platform; compliance risk Export and preserve opt-in dates, sources and consent records; import as custom fields
Automation re-trigger Subscribers re-enter automations they already completed on old platform Exclude migrated subscribers from welcome sequences and onboarding automations; use "migrated" tag

Extract emails

Explore tools

Verify emails

Check address validity before using your list.

ZeroBounce

Email Verification

Verifies email lists and provides tools for monitoring deliverability.

Useful when list cleaning and sender health belong in one workflow.

Explore ZeroBounce (opens in a new tab)