← All playbooks
Newsletter migration

Mailchimp → HubSpot

Move Mailchimp audiences, suppressions, fields, and templates into HubSpot with audience CSVs and an opt-out import, without treating the native Mailchimp app as a reverse sync or a copy of automations.

Typical timeline15–35 business days50–120 hours active work
Statusneeds review
Source profileMailchimp documentation reviewed 2026-10-27
Destination profileHubSpot documentation reviewed 2026-10-27
Documentation date
Review window
Evidence4 sources
This route needs review.Use it as a planning baseline, then verify the dated sources and test with representative data before production.
Before you migrate

Should you make this move?

Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.

Current platform

Mailchimp

Reasons to stay
  • A broad small-business marketing suite combines email, contacts, forms, and campaigns
  • Audience, campaigns, automations, and reporting live in one publishing system
Reasons to leave
  • Pricing, interface complexity, and audience-based billing can become frustrating
  • Automation logic, analytics history, and deliverability settings are not very portable
New platform

HubSpot

What gets better
  • CRM, marketing, sales, service, and content tools share one approachable data model
  • Structured ownership, status, and workflow views improve operational visibility
What gets worse
  • Advanced features become expensive and can lock processes into HubSpot-specific objects
  • Custom fields, automations, history, and reporting are difficult to reproduce exactly
Best of the move

HubSpot: CRM, marketing, sales, service, and content tools share one approachable data model. This removes a major source-side concern: Pricing, interface complexity, and audience-based billing can become frustrating.

Worst of the move

What you lose: A broad small-business marketing suite combines email, contacts, forms, and campaigns. What you inherit: Advanced features become expensive and can lock processes into HubSpot-specific objects.

Jump to a section
01At a glance

Know the shape of the move.

Transfer outcome11 features audited
Transfer outcome distributionClean transfer: 0, Partial transfer: 6, Manual rebuild: 2, Not transferred: 3.
Clean0
Partial6
Manual2
Lost3
Mapping route8 of 9 fields have a destination path

This timeline assumes

  • Up to 250,000 contacts, 1,000 campaigns, and 100 automations
  • Only subscribed contacts with valid consent become HubSpot marketing contacts.
  • Unsubscribed and cleaned addresses land in HubSpot's opt-out import before any marketing send.
  • Mailchimp stays read-only through two successful HubSpot sends.
  • The migration team records evidence for every blocking verification check.
02What transfers

What survives the move.

“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.

ItemOutcomeImpactWhat happensMitigation
Audience export ZIPpartialcriticalMailchimp Owners and Admins can export an audience, segment, tag, or group. The download is often a ZIP with separate CSVs for subscribed, unsubscribed, non-subscribed, and cleaned contacts. Exports stay available for 30 days. Contact exports omit email report data such as opens and clicks. A GDPR data request must come from the contact profile, not this audience export.Export every in-scope audience as the site Owner or Admin. Unzip and keep the four status files separate. Hash each CSV.
Subscribed contacts and marketing billingpartialcriticalHubSpot can import contacts from a spreadsheet. New contacts default to non-marketing unless you use a single-file advanced import and tick Set these contacts as marketing contacts. That checkbox needs Marketing Hub Starter, Professional, or Enterprise plus marketing-contact permission. Marketing contacts count toward the billable tier at least until the next update date. If you hit the marketing-contact maximum, extra imported contacts stay non-marketing.Import subscribed CSVs alone. Confirm the marketing checkbox and the estimated count. Leave non-subscribed and cleaned rows out of that file.
Unsubscribed and cleaned addressespartialcriticalHubSpot has a separate List of contacts to opt out of emails import. The file needs an Email column. After it runs, Unsubscribed from all email is true. Addresses that are not already HubSpot contacts are not created and do not add to the billable total. Addresses that already exist stay as contacts and still count toward billing unless you delete them and re-import as opted-out.Load the unsubscribed CSV through the opt-out importer before any HubSpot campaign. Do the same for cleaned addresses you must never mail again.
Fields, tags, notes, and consent columnspartialhighA Mailchimp audience export includes audience fields except language, plus TAGS, NOTES, MEMBER_RATING, OPTIN_TIME, CONFIRM_TIME, and GDPR marketing permissions when those forms are on. It omits signup source, purchase history, predicted demographics, favorite email client, social profile data, and a full profile-change log.Map Email first. Create HubSpot properties for tags, notes, and consent you still need. Skip columns you will not use.
Segments, tags, and groupsmanualhighMailchimp can export a saved segment, a tag, or a group as its own CSV. HubSpot does not receive those as live Mailchimp segments. You recreate them as HubSpot segments after the contacts exist.Write down each segment filter before export. Rebuild the ones people send from weekly. Compare counts on the pilot.
Campaign HTML, templates, and the content studiopartialhighMailchimp's account backup, one per 24 hours, can include a campaigns_content folder with HTML and TXT, a templates folder, and the My files gallery. You can re-import exported account data except email and SMS reports. Website, landing page, and ad content are not in the backup.Run the account export before you cancel Mailchimp. Rebuild HubSpot emails from the HTML you still need. Reload gallery images.
Automations, customer journeys, and formslostcriticalNeither the audience CSV nor the account ZIP creates HubSpot workflows. Mailchimp's native HubSpot app only sends contacts from HubSpot to Mailchimp. It does not import an audience the other way.Inventory journeys and forms. Rebuild the ones you still send. Do not install the Mailchimp app expecting a reverse import.
Email reports and engagement historylosthighAudience exports exclude opens and clicks. The account backup can include report folders, and Mailchimp says you cannot re-import those reports. HubSpot will not show Mailchimp campaign history as native HubSpot email stats.Keep the Mailchimp report ZIP as an archive. Judge HubSpot deliverability on new sends, not on imported history.
SMS, events, appointments, and ecommerce folderspartialmediumThe account backup can include SMS consent fields, API events, appointments, and ecommerce product and order files linked to sent emails. HubSpot does not turn those folders into native SMS programs or commerce objects on import.Archive the folders. Recreate only the SMS and event work you still run in HubSpot.
Domains, authentication, and dual sendingmanualcriticalA new HubSpot sender needs its own authentication. Sending the same audience from Mailchimp and HubSpot splits reputation and consent.Authenticate the HubSpot sending domain first. Freeze Mailchimp campaigns before HubSpot owns the list. Keep Mailchimp readable.
Deleted audiences and billing receiptslostmediumMailchimp does not host deleted audience data. Account exports omit billing receipts. Those stay on the billing history page.Export every live audience before anyone deletes one. Save receipts from billing history if finance needs them.
03Field and feature mapping

Where each thing goes.

SourceDestinationMethodNotes
EmailEmailautomaticUse this as the unique identifier on import.
Subscribed audience CSVHubSpot contact set as marketingtransformSingle-file advanced import. Tick the marketing checkbox.
Unsubscribed or cleaned CSVUnsubscribed from all emailtransformUse List of contacts to opt out of emails. Email column only.
First name, last name, and audience fieldsMatching HubSpot propertiestransformLanguage does not export. Create properties before the load.
TAGS and NOTESHubSpot tags or a custom propertytransformConfirm the delimiter before you map.
GDPR marketing permissionsSubscription type or legal basismanualThe CSV header matches the GDPR form label.
Segment, tag, or group exportHubSpot segment you rebuildmanualExport the CSV as evidence, then recreate the filter.
Campaign HTML or template fileHubSpot marketing email you rebuildmanualThe account ZIP is an archive, not an importer.
Automation, customer journey, or landing pageNo destinationunsupportedRebuild selected workflows. The Mailchimp app does not import them.
04Before you begin

Make the move recoverable.

Backup procedure

Create the source-of-truth backup

Preserve Mailchimp audiences, suppressions, templates, and reports before any HubSpot write.

  1. Export each in-scope audience as CSV. Keep subscribed, unsubscribed, non-subscribed, and cleaned files apart.
  2. Run one account backup from Manage my data. Include emails, audiences, reports, templates, and the gallery.
  3. Export saved segments and tags you still send from.
  4. Hash every file. Record Owner or Admin identity and the 30-day export window.

Proof to capture: A signed manifest reconciles every scoped audience, status file, export, count, and hash.

Transformation · Mailchimp ZIP plus a HubSpot mapping workbook

Consent and billing split

Keep unsubscribed addresses out of marketing-contact billing.

  1. Put subscribed rows in one file and unsubscribed plus cleaned rows in another.
  2. Map Email, name, tags, and consent columns to HubSpot properties.
  3. Estimate marketing-contact count before you tick the billing checkbox.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

Transformation · HubSpot advanced contact import and opt-out import

Contact import then opt-out import

Load people HubSpot can mail, then lock the people it must not mail.

  1. Import the subscribed file as marketing contacts on a single-object load.
  2. Import the unsubscribed file as List of contacts to opt out of emails.
  3. Rebuild weekly segments and one test workflow before the first production send.

Proof to capture: Save the input, output, command or tool settings, warnings, and final item counts.

05Handle with care

The things most likely to hurt.

These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.

Import

You mail someone who already unsubscribed

criticalpossible likelihood

A subscribed import that still contains unsubscribed or cleaned rows, or an opt-out file loaded after the first send, creates illegal and reputation damage.

Consequence
People who opted out get mail. Spam complaints rise.
Mitigation
Keep the four Mailchimp status files apart. Run the opt-out import first or immediately after contacts land, and before any campaign.

Stop if: Any address from the unsubscribed or cleaned CSV is still marketable in HubSpot.

Import

The marketing-contact bill explodes

highpossible likelihood

HubSpot bills marketing contacts. A single-file import with the marketing checkbox on, or a later bulk Set as marketing, charges the whole file.

Consequence
You pay for contacts you never planned to mail.
Mitigation
Import only consented subscribers as marketing. Leave the rest non-marketing or opted-out.

Stop if: The marketing-contact count cannot be explained by the subscribed CSV.

Cutover

Both tools keep sending

criticalpossible likelihood

Mailchimp journeys and HubSpot workflows both mail the same people.

Consequence
Duplicate campaigns and split authentication.
Mitigation
Pause Mailchimp sends and journeys before HubSpot owns the list.

Stop if: A Mailchimp campaign still sends after freeze.

06Precise timeline

Do the work in this order.

Estimate forUp to 250,000 contacts, 1,000 campaigns, and 100 automations
Total elapsed15–35 business days
Active work50–120 hours
BufferAdd time for more than one audience, GDPR permission columns, a large gallery, or a full journey rebuild.
01
Days 1–4Inventory and consent rules3–4 days
02
Days 4–8Backup and reconcile2–4 days
03
Days 8–20Map and pilot6–12 days
04
Days 18–32Final delta and switch2–6 days
05
Days 22–45Observe and close5–12 days
  1. Days 1–4 · inventory

    Inventory and consent rules

    8–16 hours active3–4 days elapsedOwner, legal, and billing review waiting
    • Inventory audiences, segments, tags, journeys, forms, domains, and SMS.
    • Approve who becomes a marketing contact and who is opted out.

    Depends on: Mailchimp Owner or Admin and HubSpot import plus marketing-contact access

    Stop / go checkpoint

    Export?

    Go when: Every critical audience has an owner and a consent rule.

    Stop when: Consent, billing, or sending-domain ownership is unclear.

  2. Days 4–8 · backup

    Backup and reconcile

    6–14 hours active2–4 days elapsedAudience and account export processing waiting
    • Create audience CSVs and one account backup.
    • Reconcile subscribed, unsubscribed, cleaned, and hashed counts.

    Depends on: Approved inventory

    Stop / go checkpoint

    Transform?

    Go when: Source totals and export manifests agree.

    Stop when: Any critical audience or suppression file is absent.

  3. Days 8–20 · pilot

    Map and pilot

    16–48 hours active6–12 days elapsedDomain authentication and owner review waiting
    • Import a subscribed sample as marketing contacts, then an opt-out sample.
    • Authenticate the HubSpot domain. Send a test campaign to a safe list.

    Depends on: Verified backup

    Stop / go checkpoint

    Scale?

    Go when: Pilot mappings, suppressions, and evidence pass.

    Stop when: Any critical check fails or a count is unexplained.

  4. Days 18–32 · cutover

    Final delta and switch

    6–24 hours active2–6 days elapsedFinal import waiting
    • Freeze Mailchimp sends and journeys.
    • Load the remaining contacts and opt-outs, switch forms, and run blocking checks.

    Depends on: Passed pilot and approved rollback

    Stop / go checkpoint

    Open production?

    Go when: HubSpot alone sends marketing mail and every suppression is accounted for.

    Stop when: A Mailchimp sender remains active or a blocking check fails.

  5. Days 22–45 · observe

    Observe and close

    4–18 hours active5–12 days elapsedTwo successful HubSpot sends waiting
    • Watch two live sends, bounces, and unsubscribes.
    • Sign the verification report before you close rollback.

    Depends on: Verified cutover

    Stop / go checkpoint

    Close rollback?

    Go when: No trigger occurs during the agreed observation period.

    Stop when: Deliverability, consent, or billing regresses.

07The point of change

Cut over with a way back.

Go live

Cutover

Make HubSpot the only marketing sender without losing the final Mailchimp delta.

Recommended window: After the last Mailchimp campaign, on a staffed weekday with marketing and deliverability owners available.

  1. Freeze Mailchimp campaigns, journeys, and new audience imports.
  2. Export and import the final subscribed and unsubscribed delta.
  3. Point forms, signup pages, and ads at HubSpot.
  4. Run every blocking check and keep Mailchimp readable.
  5. Keep the source intact through the rollback window.

Proof to capture: HubSpot owns sending, suppressions reconcile, and every blocking check has evidence.

Return to safety

Rollback

Return sending to Mailchimp without losing HubSpot-era contacts.

Deadline: Within 14 days and before Mailchimp audiences, credentials, or sending domains are changed.

  1. Stop new HubSpot marketing sends and workflows.
  2. Restore Mailchimp campaigns, journeys, and forms.
  3. Export HubSpot contacts created after cutover.
  4. Review and apply safe destination-era changes to Mailchimp.
  5. Run the same blocking checks against Mailchimp.

Proof to capture: Mailchimp again owns sending with current consent and no duplicate HubSpot campaign.

Rollback immediately when
  • Unexplained missing subscribed emails
  • An unsubscribed or cleaned address that is still marketable
  • Duplicate production send
  • Failed authentication or deliverability check
  • A critical journey has no safe HubSpot replacement
08Verification report

Prove the migration worked.

Every blocking check must pass. Capture the evidence before cleanup begins.

0%
Interactive report preview0 / 8 checks passed
PassIDCheckMethodExpected resultEvidence
V-01BlockingContact reconciliationCompare every in-scope Mailchimp email to a HubSpot contact, opt-out, archive, or exclusion.100% of scoped emails are accounted for.Audience ledger.
V-02BlockingOpt-out importSearch HubSpot for a sample of unsubscribed and cleaned addresses.Each one is opted out of all email, or deleted then re-imported as opted-out.Suppression report.
V-03BlockingMarketing-contact countCompare the HubSpot marketing-contact total to the subscribed CSV.Only approved subscribers are marketing contacts.Billing snapshot.
V-04BlockingProperty mappingOpen a sample of contacts and compare name, tags, notes, and consent columns.Mapped fields match. Skipped columns are on the exception list.Field exception list.
V-05BlockingRebuilt segmentsCompare weekly Mailchimp segment counts to HubSpot segments.Each approved segment matches or has a signed reason.Segment report.
V-06BlockingAuthenticated test sendSend a test campaign to a safe list after domain authentication.The message lands. Unsubscribe and one-click headers work.Test-send log.
V-07BlockingSingle senderAttempt a Mailchimp send after freeze.Mailchimp does not deliver a new marketing campaign.Ownership checklist.
V-08BlockingPermissionsTest marketing-contact permission, import permission, and an unauthorized user.Least privilege holds.Access matrix.
09Post-migration cleanup

Remove the scaffolding safely.

Safe after: Two successful HubSpot sends, at least seven stable days, and owner sign-off on every blocking check.

  1. Archive Mailchimp exports, maps, and verification evidence.
  2. Revoke unused Mailchimp API keys and the HubSpot Mailchimp app if it was only used for outbound sync.
  3. Remove obsolete Mailchimp journeys, forms, and sending domains.
  4. Keep Mailchimp read-only through the approved retention window.
  5. Cancel paid Mailchimp plans only after billing, legal, and recovery review.
  6. Schedule the next HubSpot backup, access, and playbook review.
10Experiences from the field

When the plan met reality.

First-hand accounts are preferred. Vendor case studies are labeled, and every note below is an editorial paraphrase—follow the link for the full context.

First-person accountDaniel Liu · Daniel Liu

Rebuilding onboarding email: 140 hours to 482025

Daniel Liu wrote that as marketing manager at PingPong from 2021 to 2023 he inherited one shared Mailchimp account for three regions and an eleven-email calendar that ignored account state. He moved North America to HubSpot for Salesforce sync, about six weeks with one Salesforce admin, then deleted nine of the eleven calendar sends. KYC submission rose from about 10% to 35–40%, and completion time fell from 140 hours to 24–48 hours, comparing eight weeks before and after on registrations in the low thousands a month. He also describes a re-enrollment bug when compliance flipped KYC status, and a silent empty segment when a Salesforce picklist was renamed. The post is a lifecycle rebuild. It does not describe Mailchimp audience ZIP files or HubSpot's opt-out importer.

What they recommend
  • Delete calendar journeys that ignore account state before you rebuild in HubSpot, the way Liu cut nine of eleven Mailchimp sends.
  • Treat the KYC percentage and hour figures as his before-and-after on one payments product, then measure your own funnel.
Worth noticing
  • The reason for HubSpot was Salesforce state and triggers, not a bulk audience importer.
  • A renamed Salesforce picklist emptied a HubSpot segment with no error, so count alerts mattered after cutover.
First-person accountReid Dossinger · HubSpot Community

Much lower email engagement metrics since moving to Hubspot from Mailchimp2026

Reid Dossinger posted on 11 October 2026 that the team moved from Mailchimp to HubSpot in December 2025 on Marketing Hub Enterprise. Click rate fell by about half. Sessions from email fell 40–45%. Open rate was about 25% lower, which he later said was the weaker of the two engagement claims. Bounce rate and unsubscribe rate both improved. Cadence and strategy stayed the same, and they run a re-engagement campaign. He confirmed the sending domain was fully authenticated before December sends, that the gaps are consistent at triple-digit volumes, and that they use a dedicated IP only for transactional mail. The thread is a deliverability complaint. It does not describe CSV mapping or an opt-out import.

What they recommend
  • Authenticate the HubSpot domain before the first production send, then compare click rate and sessions, not only opens.
  • Keep Mailchimp report exports so you can judge whether a drop is measurement, tagging, or inbox placement, the way this thread still debates.
Worth noticing
  • A move can look fine on bounce and unsubscribe while click-through and site traffic fall.
  • Dedicated IP for marketing mail was raised as an open question, not as a proven fix.
Sources and evidence

Verify against the primary material.

Platform behavior changes. Check these sources and the review dates above before executing a production migration.

  1. Mailchimp: view or export your contactsAccessed 2026-10-27
  2. Mailchimp: export and back up account dataAccessed 2026-10-27
  3. HubSpot: import opted-out contactsAccessed 2026-10-27
  4. HubSpot: set contacts as marketingAccessed 2026-10-27