The migration template we use across every Salesforce → HubSpot engagement.
The biggest myth about migrations is that the hard part is the ETL. It isn't. The hard part is knowing what NOT to bring over.
Phase 1 — Object map (Week 1–2)
Before you write a line of code, sit down with the CRO and VP Sales. Walk through every Salesforce object. Three columns: bring it / don't bring it / decide later. Most "decide later" should become "don't bring it" by week 2.
Typical results:
- Custom objects: 40+ → 6
- Properties: 400+ → 80–120
- Workflows: 60+ → 18
Phase 2 — ETL build (Week 3–6)
Custom-coded TypeScript with full audit trail. Idempotent. Replay-able. We never use a no-code tool for this — too much fragility, no audit trail.
Phase 3 — Parallel run (Week 7–10)
Both systems live. Both teams using HubSpot for new work, Salesforce for reference. Daily reconciliation report.
Phase 4 — Cutover (Week 11)
Tuesday afternoon. Salesforce becomes read-only. Sales team has been trained. Dashboards are live. The 3am Slack messages don't happen because the parallel run caught everything two weeks ago.