Updated October 2026By Joe LaGrutta, Founder, JayOhHubSpot Platinum Partner
Records are cheap to move. Logic is expensive. Count your active automations and integrations before you look at record counts.
| Org size | Records | Objects | Automation & integrations | Timeline | Services cost |
|---|---|---|---|---|---|
| Small | Under 50K | Standard objects only | Under 25 active automations, 0–2 integrations, no Apex | 4–6 weeks | $10K–$20K |
| Mid | 50K–500K | Standard + products, 1–3 custom objects | 25–100 automations, 3–6 integrations, light Apex | 8–14 weeks | $25K–$55K |
| Complex | 500K+ or multiple orgs | 4+ custom objects, CPQ, territories | 100+ automations, 7+ integrations, material Apex | 14–24 weeks | $55K–$150K+ |
JayOh guidance from 75+ CRM and marketing automation migrations. Services only: HubSpot licenses, Salesforce overlap months and any middleware are separate. Ranges are built on the same hourly economics as JayOh’s published pricing. Run your own numbers in the CRM migration cost estimator.
Typical effort split on a Mid-band Salesforce to HubSpot project (JayOh guidance).
Native means it moves. Workaround means it moves with a design choice. Gap means there is no equivalent, and somebody decides what replaces it.
| Salesforce | HubSpot | Fidelity | Design note |
|---|---|---|---|
| Lead | Contact (lifecycle stage Lead) or Sales Hub Leads object | Workaround | HubSpot has one person record. Decide whether unconverted Leads become Contacts with a lifecycle stage, or also get a Leads-object record for prospecting. Dedupe Lead vs Contact by email before import. |
| Account | Company | Native | Domain is the HubSpot dedupe key. Normalize website values first or auto-association creates duplicates. |
| Account hierarchy (Parent Account) | Parent/child company associations | Native | Import parents first, then children with the parent record ID. |
| Contact | Contact | Native | Email is the dedupe key. Contacts with no email need a decision: keep as records without email, or archive. |
| Opportunity | Deal | Native | Map stage, amount, close date, owner, type. Keep the Salesforce Opportunity ID as a property for reconciliation. |
| Opportunity record types / sales processes | Separate deal pipelines | Workaround | Each sales process usually becomes a pipeline. Record types that only changed page layouts become property groups, not pipelines. |
| Opportunity Contact Roles | Deal–contact associations with labels | Workaround | Association labels (Decision Maker, Champion) replace roles. Labels are a Professional/Enterprise feature. |
| Products and price books | Product library | Workaround | HubSpot has no native multi-price-book model. Multiple prices per product become currency prices, product variants or quote-template logic. |
| Opportunity line items | Line items on deals | Native | Import after products and deals. Line items reference the product and deal record. |
| Quotes / Salesforce CPQ | HubSpot quotes and Commerce tools | Gap | Bundles, approval chains, and complex discount schedules rarely move one-for-one. Scope CPQ as its own workstream. |
| Case | Ticket (Service Hub) | Native | Case record types map to ticket pipelines. Email-to-case becomes a connected inbox or help desk channel. |
| Campaign and campaign members | Campaigns + lists, or a campaign property | Workaround | Campaign membership status does not map cleanly. Store membership as list membership or a timeline of campaign properties. |
| Tasks, events, emails, notes | Engagements (tasks, meetings, emails, notes) | Native | Imported via API with original timestamps, owners and associations. Decide how many years of activity to keep. |
| Custom objects | Custom objects (Enterprise) | Workaround | Requires a HubSpot Enterprise hub. Junction objects for many-to-many often become association labels instead of objects. |
| Picklists and multi-select picklists | Dropdown select and multiple checkboxes | Native | Keep API names as internal values so integrations and imports match. Inactive picklist values need a mapping rule. |
| Formula fields | Calculation properties | Workaround | Cross-object formulas usually need a workflow or custom code action instead. |
| Roll-up summary fields | Rollup properties on associated records | Workaround | Most sum, count, min and max rollups translate. Filtered rollups need testing. |
| Validation rules | Property validation rules + required properties per pipeline stage | Workaround | Stage-gated required properties cover most deal rules. Cross-field validation needs a workflow or a UI extension. |
| Flows, Process Builder, workflow rules | Workflows (+ custom code actions on Data Hub / Operations Hub Professional) | Workaround | Inventory every active automation and rebuild by business outcome, not one-for-one. |
| Apex triggers and classes | Custom code actions, webhooks or middleware | Gap | No equivalent runtime. Each trigger needs a redesign decision: workflow, code action, middleware, or retire. |
| Profiles, permission sets, role hierarchy | Users, teams, permission sets | Workaround | Team-based visibility replaces role hierarchy. Deep hierarchies with sharing rules simplify, sometimes painfully. |
| Territory management | Owner rotation, teams and workflow-based assignment | Gap | No native territory model. Rebuild territories as assignment logic plus team visibility. |
| Field history tracking | Property history (going forward) | Gap | Historical field changes do not import into HubSpot property history. Archive history, and carry key dates as properties. |
| Reports and dashboards | Reports and dashboards (rebuilt) | Workaround | Rebuild the reports leadership uses. Cross-object report types become custom report builder or dataset reports. |
| Files and attachments | Attachments on records | Native | Moved via API and associated to records. Large libraries need a storage decision. |
Edition-dependent features (custom objects, association labels, calculation properties, custom code actions, sandboxes) reflect HubSpot packaging as of October 2026. Aligning picklists across both systems first? Use the Salesforce–HubSpot picklist alignment tool.
Ten questions, weighted toward the things that actually stall migrations. Answer honestly; the score tells you what to fix before kickoff.
Scoring: technical questions 1–5 carry 12 points, organizational questions 6–10 carry 8. Yes = full, Partly = half, No = zero. JayOh guidance, not a quote.
Two shapes we see often: a fast consolidation onto HubSpot, and a post-merger cleanup across both platforms.
More stories on the case studies page. Not sure HubSpot is the right destination? Read HubSpot vs. Salesforce first. Moving the other way? See the HubSpot to Salesforce migration guide.
We engineer growth systems. JayOh builds the RevOps architecture, GTM execution and data infrastructure that turn messy revenue operations into predictable pipeline for B2B SaaS and PE-backed teams.