Guide

How to migrate from HubSpot to Salesforce without burning active leads

Data map first, stage translation before import, activities as Tasks, 1 parallel week, then freeze HubSpot on go-live. The migration sequence that protects active deals.
Jordan Nelson
Jordan Nelson
April 27, 2026

Read Time: 6 Minutes

Migrating from HubSpot to Salesforce without a plan is how you lose 6 months of active deals in a weekend.

Short answer: To migrate from HubSpot to Salesforce without burning active leads... build a field-by-field data map first, translate HubSpot deal stages to Salesforce opportunity stages before import, migrate activities as Tasks not emails, run a parallel week before cutover, and freeze HubSpot write access on day 1 of go-live.

The top reason HubSpot-to-Salesforce migrations fail isn't technical... it's sequence.

Most teams skip the data map and import raw HubSpot data into a Salesforce org that isn't ready to receive it. That creates 2 problems: bad data you can't trust, and reps who lose confidence in the new system before the first week is over.

Build your data map before touching the migration tool

This is the step most teams skip. It's also why most migrations take 3x longer than planned.

Every object in HubSpot maps to a Salesforce object... but the mapping isn't obvious. HubSpot Contacts can become Salesforce Contacts, Leads, or both, depending on your lifecycle stage model. HubSpot Companies become Accounts. HubSpot Deals become Opportunities.

Here's what to document in your data map before touching any import tool:

  • HubSpot object to Salesforce object (Contact, Lead, Account, Opportunity)
  • HubSpot property to Salesforce field, matched by API name and field type
  • Custom HubSpot properties with no Salesforce equivalent: these need new fields built before import
  • Required fields in Salesforce. Imports fail silently without them populated.
  • Picklist values that don't align: free-text history in HubSpot breaks picklist fields on import

The data map is not a tool output. It's a document you build manually before you touch Data Loader or any migration tool.

Translate deal stages before the first import run

HubSpot and Salesforce stage names rarely match. "Discovery," "Demo Scheduled," and "Proposal Sent" in HubSpot don't map cleanly to Salesforce's default stage picklist.

If you import without a stage translation, deals land in Salesforce with wrong probability percentages... or no stage at all. Your forecast is broken from day 1.

Do this before running a single import:

  1. Export your full HubSpot pipeline and list every deal stage name
  2. Map each HubSpot stage to the closest Salesforce opportunity stage
  3. Set the probability % for each Salesforce stage based on your historical close rates
  4. Document the translation table and lock it before go-live. Sales managers will try to change it post-launch.
  5. Build any missing Salesforce stages in Setup before the first import run

One trap to avoid: don't create a Salesforce stage for every HubSpot sub-stage. Collapse them. Fewer, cleaner stages are easier to enforce and report on.

Migrate activities as Tasks, not raw email records

HubSpot stores emails, calls, and meetings in its activity feed. None of those export cleanly as Salesforce Email objects.

Importing raw email logs creates duplicate records, broken contact lookups, and timeline noise that reps will ignore. The right approach:

  • Export HubSpot activities as a flat CSV with type, date, subject, notes, and contact ID
  • Reclassify each row as a Salesforce Task with Task Type set to "Email" or "Call"
  • Include Subject, ActivityDate, Description, and WhoId (the Salesforce contact ID lookup)
  • Only import the last 90 days of activity... older records are archive noise, not actionable history
  • Skip HubSpot meeting records logged via calendar connectors. These don't survive import cleanly.

The goal isn't a perfect mirror of HubSpot's activity feed. It's enough history that a rep can open an account and understand the last 3 months of conversation.

Run both systems in parallel for 1 week before cutover

The worst time to discover a broken field mapping is after HubSpot goes dark. A 1-week parallel run catches the problems test imports don't surface.

How to run the parallel week:

  1. Set HubSpot to read-only for all reps. No new data entry.
  2. Have reps log all new activity and update opportunities in Salesforce only
  3. Run a daily comparison: active deals in Salesforce vs active deals in HubSpot
  4. Spot-check 5 accounts manually each day for data completeness
  5. Identify any required field blocking deal saves and fix the Salesforce setup before cutover

At the end of the week, get at least 3 reps to confirm their pipeline looks right in Salesforce. If they can't confirm it, you're not ready to cut over.

Freeze HubSpot on go-live day

The moment Salesforce goes live, HubSpot is a liability. Every hour it stays writable, someone logs an update in the wrong system and creates a sync problem that takes days to untangle.

  • Revoke write access for all HubSpot users on go-live morning
  • Export a final full-database snapshot to your vault before revoking access
  • Communicate the cutover date to reps at least 5 business days in advance
  • Keep HubSpot in read-only mode for 90 days... reps will ask for old data, and this covers it
  • Cancel the HubSpot subscription only after the 90-day read-only window closes

The 90-day window isn't caution for its own sake. It's a buffer for the edge cases you didn't anticipate.

Bottom line

Monday morning: open your HubSpot data export and start the field map. Schedule a deal stage translation session with your RevOps lead.

Don't touch Data Loader until the map is done. Don't go live until you've run parallel for a week. Don't cancel HubSpot until 90 days after go-live.

That's the sequence. It's not glamorous. But it's the one that doesn't blow up your active pipeline.

Frequently asked questions

How long does a HubSpot to Salesforce migration typically take?

A clean migration for a company with under 50,000 records typically takes 4 to 8 weeks. That includes 2 weeks to build the data map and clean source data, 1 to 2 weeks for test imports, a 1-week parallel run, and 1 cutover day. Larger orgs with complex activity history can take 3 to 4 months.

Will I lose my HubSpot contact activity history when migrating to Salesforce?

You won't lose it if you plan for it. HubSpot emails and calls don't map natively to Salesforce activity records, so they need to be exported as CSVs and imported as Tasks. Most teams only migrate the last 90 days of activity... older records create noise without adding value to the active pipeline.

What is the biggest risk in a HubSpot to Salesforce migration?

The biggest risk is importing data into an unfinished Salesforce org. If required fields aren't set, stage mappings aren't defined, or the Salesforce data model doesn't match HubSpot's structure, imports fail silently or create bad data that's expensive to clean. Build Salesforce first. Map everything. Then import.

Can I migrate HubSpot deals to Salesforce opportunities without losing pipeline data?

Yes, but it requires a stage translation map built before the import. Every HubSpot deal stage needs a corresponding Salesforce opportunity stage with a defined probability %. Without this map, deals land in Salesforce with no stage or wrong close dates, which breaks your forecast from day 1.

Do you need a third-party tool to migrate from HubSpot to Salesforce?

Not always. For migrations under 50,000 records, native Salesforce Data Import Wizard or Data Loader handles most objects. Larger or more complex migrations benefit from tools like Trujay, MoveMyData, or a custom ETL pipeline. The tool matters less than the data map... even the best tool fails without clean, mapped source data.

Want more of this? The Simply Scale newsletter drops every week: https://www.gosimplyscale.com/newsletter

Other blog posts

Pipeline hygiene rules that stop your AEs from gaming the number
RevOps

Pipeline hygiene rules that stop your AEs from gaming the number

Your AEs are gaming your pipeline and you can't see it. Here are the stage rules, close-date policies, and alerts that fix it in Salesforce.
April 27, 2026
All
Stop your Salesforce forecast from lying to you every Monday
RevOps

Stop your Salesforce forecast from lying to you every Monday

Your Salesforce forecast is wrong right now. Here's how to fix forecast categories, collaborative forecasting, and override discipline in Sales Cloud.
April 27, 2026
All
Sarah left. Now 3 things broke.
RevOps

Sarah left. Now 3 things broke.

3 things that break the moment you deactivate a Salesforce user (and how to find them before it happens) ͏ ‌ ͏ ‌ ͏ ‌
April 24, 2026
All

Ready to work together?

Let's talk about how we can build a Salesforce system that grows with your business.

Book Your Discovery Call
Unlock Exclusive Salesforce Growth Strategies
Join the Simply Scale network and get insider strategies, automation tips, and expert insights straight to your inbox. No fluff—just real solutions to scale faster.