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.
Should you make this move?
Both platforms have a case. Compare what you gain with what you give up before scheduling the cutover.
Mailchimp
- A broad small-business marketing suite combines email, contacts, forms, and campaigns
- Audience, campaigns, automations, and reporting live in one publishing system
- Pricing, interface complexity, and audience-based billing can become frustrating
- Automation logic, analytics history, and deliverability settings are not very portable
HubSpot
- CRM, marketing, sales, service, and content tools share one approachable data model
- Structured ownership, status, and workflow views improve operational visibility
- Advanced features become expensive and can lock processes into HubSpot-specific objects
- Custom fields, automations, history, and reporting are difficult to reproduce exactly
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.
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
Know the shape of the move.
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.
What survives the move.
“Partial” and “manual” are not footnotes. They are work that must be scheduled and verified.
| Item | Outcome | Impact | What happens | Mitigation |
|---|---|---|---|---|
| Audience export ZIP | partial | critical | Mailchimp 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 billing | partial | critical | HubSpot 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 addresses | partial | critical | HubSpot 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 columns | partial | high | A 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 groups | manual | high | Mailchimp 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 studio | partial | high | Mailchimp'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 forms | lost | critical | Neither 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 history | lost | high | Audience 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 folders | partial | medium | The 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 sending | manual | critical | A 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 receipts | lost | medium | Mailchimp 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. |
Where each thing goes.
| Source | Destination | Method | Notes |
|---|---|---|---|
| automatic | Use this as the unique identifier on import. | ||
| Subscribed audience CSV | HubSpot contact set as marketing | transform | Single-file advanced import. Tick the marketing checkbox. |
| Unsubscribed or cleaned CSV | Unsubscribed from all email | transform | Use List of contacts to opt out of emails. Email column only. |
| First name, last name, and audience fields | Matching HubSpot properties | transform | Language does not export. Create properties before the load. |
| TAGS and NOTES | HubSpot tags or a custom property | transform | Confirm the delimiter before you map. |
| GDPR marketing permissions | Subscription type or legal basis | manual | The CSV header matches the GDPR form label. |
| Segment, tag, or group export | HubSpot segment you rebuild | manual | Export the CSV as evidence, then recreate the filter. |
| Campaign HTML or template file | HubSpot marketing email you rebuild | manual | The account ZIP is an archive, not an importer. |
| Automation, customer journey, or landing page | No destination | unsupported | Rebuild selected workflows. The Mailchimp app does not import them. |
Make the move recoverable.
Create the source-of-truth backup
Preserve Mailchimp audiences, suppressions, templates, and reports before any HubSpot write.
- Export each in-scope audience as CSV. Keep subscribed, unsubscribed, non-subscribed, and cleaned files apart.
- Run one account backup from Manage my data. Include emails, audiences, reports, templates, and the gallery.
- Export saved segments and tags you still send from.
- 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.
Consent and billing split
Keep unsubscribed addresses out of marketing-contact billing.
- Put subscribed rows in one file and unsubscribed plus cleaned rows in another.
- Map Email, name, tags, and consent columns to HubSpot properties.
- 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.
Contact import then opt-out import
Load people HubSpot can mail, then lock the people it must not mail.
- Import the subscribed file as marketing contacts on a single-object load.
- Import the unsubscribed file as List of contacts to opt out of emails.
- 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.
The things most likely to hurt.
These are operating limits. Treat every “Stop if” condition as a blocked migration, not a suggestion.
You mail someone who already unsubscribed
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.
The marketing-contact bill explodes
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.
Both tools keep sending
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.
Do the work in this order.
- 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 checkpointExport?
Go when: Every critical audience has an owner and a consent rule.
Stop when: Consent, billing, or sending-domain ownership is unclear.
- 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 checkpointTransform?
Go when: Source totals and export manifests agree.
Stop when: Any critical audience or suppression file is absent.
- 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 checkpointScale?
Go when: Pilot mappings, suppressions, and evidence pass.
Stop when: Any critical check fails or a count is unexplained.
- 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 checkpointOpen 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.
- 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 checkpointClose rollback?
Go when: No trigger occurs during the agreed observation period.
Stop when: Deliverability, consent, or billing regresses.
Cut over with a way back.
Cutover
Make HubSpot the only marketing sender without losing the final Mailchimp delta.
- Freeze Mailchimp campaigns, journeys, and new audience imports.
- Export and import the final subscribed and unsubscribed delta.
- Point forms, signup pages, and ads at HubSpot.
- Run every blocking check and keep Mailchimp readable.
- Keep the source intact through the rollback window.
Proof to capture: HubSpot owns sending, suppressions reconcile, and every blocking check has evidence.
Rollback
Return sending to Mailchimp without losing HubSpot-era contacts.
- Stop new HubSpot marketing sends and workflows.
- Restore Mailchimp campaigns, journeys, and forms.
- Export HubSpot contacts created after cutover.
- Review and apply safe destination-era changes to Mailchimp.
- Run the same blocking checks against Mailchimp.
Proof to capture: Mailchimp again owns sending with current consent and no duplicate HubSpot campaign.
- 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
Prove the migration worked.
Every blocking check must pass. Capture the evidence before cleanup begins.
| Pass | ID | Check | Method | Expected result | Evidence |
|---|---|---|---|---|---|
V-01Blocking | Contact reconciliation | Compare every in-scope Mailchimp email to a HubSpot contact, opt-out, archive, or exclusion. | 100% of scoped emails are accounted for. | Audience ledger. | |
V-02Blocking | Opt-out import | Search 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-03Blocking | Marketing-contact count | Compare the HubSpot marketing-contact total to the subscribed CSV. | Only approved subscribers are marketing contacts. | Billing snapshot. | |
V-04Blocking | Property mapping | Open 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-05Blocking | Rebuilt segments | Compare weekly Mailchimp segment counts to HubSpot segments. | Each approved segment matches or has a signed reason. | Segment report. | |
V-06Blocking | Authenticated test send | Send a test campaign to a safe list after domain authentication. | The message lands. Unsubscribe and one-click headers work. | Test-send log. | |
V-07Blocking | Single sender | Attempt a Mailchimp send after freeze. | Mailchimp does not deliver a new marketing campaign. | Ownership checklist. | |
V-08Blocking | Permissions | Test marketing-contact permission, import permission, and an unauthorized user. | Least privilege holds. | Access matrix. |
Remove the scaffolding safely.
Safe after: Two successful HubSpot sends, at least seven stable days, and owner sign-off on every blocking check.
- Archive Mailchimp exports, maps, and verification evidence.
- Revoke unused Mailchimp API keys and the HubSpot Mailchimp app if it was only used for outbound sync.
- Remove obsolete Mailchimp journeys, forms, and sending domains.
- Keep Mailchimp read-only through the approved retention window.
- Cancel paid Mailchimp plans only after billing, legal, and recovery review.
- Schedule the next HubSpot backup, access, and playbook review.
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.
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.
- 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.
- 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.
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.
- 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.
- 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.
Verify against the primary material.
Platform behavior changes. Check these sources and the review dates above before executing a production migration.
- Mailchimp: view or export your contactsAccessed 2026-10-27
- Mailchimp: export and back up account dataAccessed 2026-10-27
- HubSpot: import opted-out contactsAccessed 2026-10-27
- HubSpot: set contacts as marketingAccessed 2026-10-27