aibrevo

Migrating to HubSpot: A Data Migration Guide

A typical HubSpot migration timeline by phase — proportional, not a fixed schedule. Lifecycle-stage mapping and Hub count shift these percentages meaningfully.

Migrating to HubSpot goes more smoothly when lifecycle stages, deal pipelines and required properties are planned before data moves — HubSpot’s data model has some genuinely different concepts (lifecycle stage in particular) from most other CRMs, and mapping those correctly up front avoids months of confusing reports afterward.

Map lifecycle stages before you map anything else

HubSpot’s lifecycle stage (subscriber → lead → MQL → SQL → opportunity → customer) is central to how HubSpot’s reporting and automation work, and most other platforms don’t have a direct equivalent. Before migrating, decide explicitly how your source data’s stages or statuses translate into HubSpot’s lifecycle stages — get marketing and sales to agree on the mapping together, since lifecycle stage usually drives both team’s reporting and a mismatch here creates disagreement about what a “lead” actually means for months after go-live.

Write the mapping down as an explicit table — source status on one side, target lifecycle stage on the other — and walk through edge cases before import: a contact with no deal and no marketing engagement, a contact who was a customer in the old system but has since churned, a contact imported from a list with no status at all. Deciding these defaults in a meeting takes twenty minutes; discovering them as bugs in a dashboard three weeks post-migration takes considerably longer to trace back to the root cause.

Rebuild your deal pipeline, don’t just import stage names

Deal pipelines and stages need to be built in HubSpot to match your real sales process, not just imported as a flat list of stage names from your old system. This is the moment to fix a pipeline that’s drifted from reality — if your old CRM’s stages didn’t reflect how deals actually moved, recreating them as-is in HubSpot just carries the same problem forward.

A practical check: pull a sample of 20-30 closed-won deals from the old system and trace which stages they actually passed through versus which stages exist on paper but rarely get used. Stages nobody’s deals ever occupy are candidates to cut; stages where deals visibly skip from one to another (bypassing a “Proposal Sent” stage entirely, say) suggest the real process has already diverged from the documented one, and HubSpot’s rebuild is the natural point to reconcile the two rather than encode the fiction.

Set required properties before data lands, not after

HubSpot’s data quality tools (required properties, property validation) are only useful if configured before migration — importing data first and adding required-field rules afterward means you’re retroactively fixing a database that’s already inconsistent. Decide which properties are genuinely required at each lifecycle stage before the first record is imported.

Required properties work best when they’re tied to a specific lifecycle-stage transition rather than applied blanket-wide — requiring a “deal source” on creation makes sense, but requiring it on every contact regardless of stage just trains reps to fill in a placeholder value to get past validation. Property validation rules (format, allowed ranges) are worth setting on fields that feed reporting or automation logic in particular, since a malformed value there breaks a workflow or dashboard rather than just looking untidy on a record.

Rebuild workflows in HubSpot’s automation model

Workflows, lead routing and notification automation from another platform (or from Salesforce Flow/Apex) need to be rebuilt using HubSpot’s own workflow tools — the logic can usually be replicated, but the mechanics are different enough that a direct copy rarely works. Treat automation rebuild as its own line item in migration planning, not an afterthought once data is loaded.

Start by listing every automated action the old system performs — not the tool that runs it, the action itself: “notify the rep when a demo is booked,” “move a contact to MQL after three email opens.” Rebuilding from the action list, rather than trying to translate the old tool’s specific trigger syntax line by line, usually produces a cleaner HubSpot workflow than a literal port would, and it’s the natural point to retire automations that accumulated as one-off exceptions nobody remembers the reason for.

De-duplicate before import — HubSpot’s dedup tools work best on your active-going-forward data

HubSpot has built-in duplicate management, but like most CRMs it’s best used to prevent new duplicates once you’re live, not to clean up a large existing mess after import. Run de-duplication on your source data before migrating (see the general CRM migration guide), particularly for company/contact matching if you’re consolidating from multiple source systems.

Consolidating from more than one source is where this gets genuinely tricky: the same company might exist in a marketing tool’s list, a spreadsheet the sales team keeps, and an old CRM, each with slightly different name spellings and no shared unique identifier. Match on email domain and normalized company name before import rather than relying on HubSpot’s post-import dedup tools to untangle three overlapping datasets — those tools are built to catch a new duplicate created by a rep, not to reconcile a multi-source consolidation.

Decide what happens to marketing data separately from sales data

If you’re migrating from a sales-only CRM into HubSpot’s combined Marketing/Sales/Service Hubs, plan the marketing side separately — email subscription status, marketing consent records and campaign history usually need their own mapping and import process distinct from the deal/contact migration, and consent/compliance data in particular needs to carry over accurately, not be reconstructed from scratch.

Subscription-type mapping deserves its own checklist item: HubSpot’s subscription types (marketing emails, one-to-one emails, and any custom types you configure) need mapping from whatever unsubscribe or consent flags the old system tracked, and any contact whose consent status is ambiguous should default to unsubscribed rather than subscribed — reconstructing consent optimistically is a compliance risk, not a data-quality shortcut worth taking to preserve a bigger marketable-contact count.

Validate before you turn the old system off

After cutover, run a structured validation pass rather than assuming the migration worked because the import completed without errors: spot-check a sample of migrated deals and contacts against the old system, confirm lifecycle-stage automation is moving new activity through the funnel correctly, and check that sales reps’ pipelines and reports look right to them — not just to the person who built the migration. Keep the old system in a read-only state for a defined period (often 30-90 days) rather than deleting it immediately, since it’s the only place to check a migrated record against if a discrepancy surfaces later.

What migrating to HubSpot typically costs

See the HubSpot implementation cost guide for cited industry cost ranges and the specific hidden costs — including contact-tier pricing jumps and Operations Hub costs some migrations don’t anticipate — that a simple per-seat price comparison misses. If you’re comparing HubSpot against where you are now, the HubSpot vs Salesforce, HubSpot vs Pipedrive and HubSpot vs Zoho CRM comparisons cover what switching actually involves from each platform.

Get your migration scoped

A free 30-minute call reviews your current setup and gives you a written read on what migrating to HubSpot specifically involves for your data and process — not a generic estimate.

FAQs

Does HubSpot have a native migration tool?

HubSpot offers CRM data import tools and, for larger migrations, a paid migrations service through partners. Native import handles straightforward contact/company/deal imports well; it's less suited to migrations with heavy custom-object complexity or non-trivial de-duplication needs.

What's the trickiest part of migrating to HubSpot specifically?

Lifecycle stage mapping. HubSpot's lifecycle stage (subscriber, lead, MQL, SQL, customer) is a specific concept that most other CRMs don't have an exact equivalent for, and getting the mapping wrong at migration produces confusing reporting for months afterward.

Can we migrate from Salesforce to HubSpot without losing our automation?

The data can migrate cleanly, but Salesforce automation (Flow, Apex, workflow rules) doesn't transfer directly — it needs to be rebuilt in HubSpot's workflow tools, which work differently. Budget real time for this rebuild, not just the data move.

How much history should we bring over from our old CRM?

Most teams migrate open and recently-closed deals in full, then import closed-lost/closed-won history as read-only records for reporting continuity rather than fully active records — keeps the new pipeline clean without losing historical reporting.

Do marketing consent and subscription status migrate automatically?

No — consent and email-subscription status need their own explicit mapping and import step, since most source CRMs track this differently (or not at all) compared to HubSpot's subscription types. Treat compliance data as a distinct migration task with its own validation pass, not a side effect of the contact import.

What happens to our custom fields that don't have a HubSpot equivalent?

They become new custom properties — the decision is whether to recreate every field as-is or use the migration as an opportunity to consolidate near-duplicate fields the old system accumulated over time. Most teams find several fields that were only ever half-used and can be dropped rather than carried forward.

Should sales and marketing migrate on the same timeline?

Not necessarily. Migrating the sales pipeline first, validating it, and layering marketing (lists, subscriptions, campaign history) in a second phase reduces the number of moving parts during the riskiest part of cutover, especially if you're consolidating from more than one source system.

How do we handle contacts with no clear lifecycle stage in the old system?

Default them to a conservative stage (typically 'lead' rather than assuming 'customer' or 'MQL') and let normal lifecycle automation move them forward based on real behavior post-migration, rather than guessing a stage that skews day-one reporting.

Want a second opinion on your setup?

A free 30-minute call with an engineer. A written read on your current setup, whether or not you hire us.

Book a 30-min call