The Challenge
A mid-market industrial parts manufacturer was switching from Salesforce to HubSpot. Their Salesforce instance had been in use for 7 years and contained 120,000 contact and company records across 14 custom fields.
The problem wasn't the migration tool. HubSpot's import works fine for clean data. The problem was that the data wasn't clean. Seven years of manual entry by dozens of sales reps had created a mess:
- Company names entered inconsistently ("ABC Manufacturing" vs. "ABC Mfg" vs. "A.B.C. Manufacturing Inc.")
- Phone numbers in 8 different formats
- 34,000 duplicate records from years of trade show lead imports
- Custom picklist values that didn't match HubSpot's field types
- 5,200 contacts with no email or phone (just a name and company)
Their IT team estimated the cleanup would take 3-4 months of manual work. The HubSpot contract was starting in 3 weeks.
Our Approach
We ran the migration prep in three parallel workstreams:
Workstream 1: Deduplication
Fuzzy matching on company names, contact names, emails, and phone numbers identified 34,000 duplicate records in 15,200 clusters. We built merge rules that preserved the most recent activity date, the most complete field set, and all associated deal history.
Workstream 2: Standardization & Field Mapping
We mapped all 14 Salesforce custom fields to their HubSpot equivalents. Picklist values were translated. Phone numbers were reformatted to E.164. Company names were standardized. State abbreviations were normalized. Every record was validated against HubSpot's import requirements before export.
Workstream 3: Enrichment of Skeleton Records
The 5,200 name-only records were enriched to add email addresses and phone numbers where possible. We recovered usable contact data for 3,800 of them (73%), turning dead records into reachable contacts.
The Key Finding
Importing 34,000 duplicates into a fresh CRM would have immediately recreated the same data quality problems they were trying to escape. Cleaning before migration meant the HubSpot instance started with a trustworthy foundation instead of inheriting seven years of accumulated data debt.
| Category | Before | After | Action |
|---|---|---|---|
| Total records | 120,000 | 89,600 | Duplicates merged, dead records removed |
| Duplicate clusters | 15,200 | 0 | Merged into golden records |
| Skeleton records (name only) | 5,200 | 1,400 | 73% enriched with contact data |
| Migration-ready records | 0 | 89,600 | Clean, standardized, HubSpot-formatted |
Migration Outcome
The cleaned dataset was imported into HubSpot over a single weekend:
- Zero records lost during import. Every legitimate contact was preserved.
- All 14 custom fields mapped correctly with matching picklist values
- Sales team was productive on Day 1 instead of spending weeks fixing data in the new CRM
- HubSpot deduplication tools confirmed 0 duplicates on the imported dataset
The Hidden Benefit
By recovering 3,800 skeleton records through enrichment, the migration actually increased the company's usable contact count. They moved to HubSpot with fewer total records but more actionable contacts than they'd ever had in Salesforce.
The VP of Sales said it was the first time in years that a rep could search the CRM and trust what came back.
What We Recommended Next
- Set up HubSpot deduplication rules to prevent new duplicates from forming
- Implement required field validation on new contact creation
- Schedule quarterly data hygiene reviews to maintain the clean baseline
- Enrich the remaining 1,400 skeleton records as more data becomes available
Migrating Your CRM?
Don't import dirty data into a clean system. We'll deduplicate, standardize, and validate every record before it touches your new CRM.