Moving from Mailchimp to HubSpot is more than a contact import. The work includes consent, audience structure, forms, automations, reporting, and the web pages that collect new subscribers. A careful migration keeps these pieces working while you change systems.
1. Inventory what Mailchimp currently does
List every audience, segment, tag, group, signup form, landing page, email automation, and integration. Note who owns each one and whether it is still in use. Save screenshots or exports of important journeys and reports so the team can compare behavior later. Do not assume a Mailchimp tag should become a new HubSpot property; several tags may express one business concept.
Define the desired outcome before building: which contacts should be marketable, how people enter a nurture journey, what counts as a conversion, and which team handles unsubscribes. This prevents a one-to-one recreation of an old, messy setup.
2. Export contacts with status and consent intact
Mailchimp's contact export guide explains how to export an audience, segment, tag, or group and notes that exports can contain separate files for subscribed, non-subscribed, unsubscribed, and cleaned contacts. Keep those statuses separate. Do not turn every exported record into a marketable HubSpot contact. Preserve the evidence of permission available in the export and investigate records whose status is unclear.
Back up the original files before cleaning them. Make a working copy for mapping, but retain the source so you can diagnose mismatches after import. Count records by audience and status; these counts become your reconciliation baseline.
3. Design a HubSpot data map
Map identity fields, audience preferences, tags, lifecycle stages, and custom fields to HubSpot properties. Decide whether each field belongs on a contact, company, or another object. Use consistent names and controlled options where possible. Identify duplicate email addresses and decide how they will merge before loading. HubSpot's import tool guide describes column mapping and import behavior.
Treat marketing-contact status as an explicit decision. HubSpot's marketing-contact guidance explains how import choices affect who is set as marketing. Review this with the person responsible for subscriptions and billing before bulk import.
4. Test a small import and inspect real records
Import a sample containing subscribed, unsubscribed, duplicate, and unusual records. Check field mapping, associations, segmentation, and consent state on individual records. Compare counts with the sample export and resolve errors before scaling up. A successful import message is not the same as a successful migration if records landed in the wrong segment or lost permission context.
5. Rebuild forms and automations intentionally
Create the minimum journeys the team still needs. For each form and automation, document its entry condition, owner, audience, suppression rule, and exit condition. Test signup, confirmation, preference changes, unsubscribe, and follow-up emails using controlled test contacts. Update website forms only after the replacement path has passed an end-to-end test. Keep the old process available during the transition so a failed form does not silently lose leads.
6. Cut over, reconcile, and monitor
Freeze changes briefly, export a final delta, import it, and compare record counts by status and segment. Test a real signup through the live site, verify the record and source attribution in HubSpot, and confirm the correct email or suppression behavior. Monitor delivery, unsubscribes, form submissions, and conversions during the first weeks. Keep the Mailchimp export and migration mapping until the team can explain every material difference in counts and behavior.
The best migration is the one where a subscriber's intent survives the platform change and the team can still trust its reports.



