Helpdesk migration
Field-level mapping, validation, and rollback between Salesforce Service Cloud and HubSpot Service Hub. We move data and schema; workflows are rebuilt natively in HubSpot Service Hub.
Salesforce Service Cloud
Source
HubSpot Service Hub
Destination
Compatibility
11 of 15
objects map 1:1 between Salesforce Service Cloud and HubSpot Service Hub.
Complexity
BStandard
Timeline
4-8 weeks
Try the reverse
Overview
Moving from Salesforce Service Cloud to HubSpot Service Hub requires resolving a fundamentally different case data model. Salesforce treats Cases as the top of an object graph that includes Entitlements, Milestones, Case Comments, and a full audit trail; HubSpot Service Hub represents the same concept as a Ticket with conversation threads and custom properties. We handle the Case-to-Ticket mapping, translate Entitlement SLA terms into HubSpot custom properties or a custom SLA object available on Professional and above, and preserve Case milestone timestamps as a custom field on each Ticket. Salesforce Flow automations and entitlement processes do not migrate; we deliver a written inventory of every active Flow and automation for the customer's HubSpot admin to rebuild. We extract from Salesforce via Bulk API under the org's daily request limit, using parallel date-range splits to avoid REQUEST_LIMIT_EXCEEDED failures on high-volume orgs, and load into HubSpot via the Tickets, Contacts, and Companies APIs with batch chunking and parent-record resolution.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Source platform
Salesforce Service Cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Salesforce Service Cloud.
Destination platform
HubSpot Service Hub platform overview
Scorecard, SWOT, gotchas, and pricing for HubSpot Service Hub.
Data migration guide
The complete HubSpot Service Hub migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Salesforce Service Cloud migration guide
Understand the data you're exporting from Salesforce Service Cloud before mapping it.
Destination checklist
HubSpot Service Hub migration checklist
Pre- and post-cutover tasks for moving onto HubSpot Service Hub.
Source checklist
Salesforce Service Cloud migration checklist
Exit checklist for unwinding your Salesforce Service Cloud setup cleanly.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Salesforce Service Cloud object lands in HubSpot Service Hub, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Salesforce Service Cloud
Case
HubSpot Service Hub
Ticket
1:1Salesforce Cases map directly to HubSpot Tickets. CaseNumber becomes Ticket ID for cross-reference; Subject maps to Ticket subject; Status maps to Ticket status (New, Open, Pending, Solved, Closed); Priority maps to Ticket priority (Low, Medium, High, Urgent); Origin maps to a HubSpot dropdown property. Record Type maps to a Ticket pipeline only if multiple pipelines are configured in HubSpot. Parent Case and Case parent lookup to Contact and Account are resolved at migration time via the Contact and Account import.
Salesforce Service Cloud
Contact
HubSpot Service Hub
Contact
1:1Salesforce Contacts map to HubSpot Contacts with email as the dedupe key. FirstName, LastName, Email, Phone, Title, and Department migrate directly. The Contact-to-Account relationship in Salesforce maps to HubSpot's primary Company association on the Contact record. Multi-address contacts require field-level mapping of MailingStreet, MailingCity, MailingState, MailingPostalCode, MailingCountry to HubSpot address properties.
Salesforce Service Cloud
Account
HubSpot Service Hub
Company
1:1Salesforce Accounts map to HubSpot Companies. Account Name becomes Company name; Website becomes the Company domain for HubSpot's company detection logic. Industry, Type, and BillingAddress map to equivalent HubSpot Company properties. Parent Account hierarchies in Salesforce flatten to HubSpot's simple Company record with a custom parent_company__c field if hierarchy depth is required by the customer's reporting.
Salesforce Service Cloud
Case Comment
HubSpot Service Hub
Ticket conversation thread
1:1Case Comments (public and private, distinguished by IsPublished flag) map to HubSpot Ticket conversation entries. Public comments become visible ticket replies; private comments are added as internal notes in HubSpot if the customer's workflow requires them. Rich-text formatting is sanitized to plain text or HTML depending on HubSpot's rendering support at the time of migration. CreatedDate and CreatedById on each comment are preserved as the conversation timestamp and author.
Salesforce Service Cloud
Case History
HubSpot Service Hub
Custom property or snapshot
lossyCase History tracks field-level changes on the Salesforce Case record. HubSpot Tickets do not have a native audit trail equivalent in the free or Starter tiers. We offer selective migration of Case History as a custom multi-line text property on the Ticket (e.g., status_change_log__c) capturing the most recent 10-20 status and priority changes with timestamps. Full field-level audit trail requires HubSpot Service Hub Enterprise with the audit log add-on.
Salesforce Service Cloud
Case Team Member
HubSpot Service Hub
Ticket Team Member or custom property
lossySalesforce Case Team Members assign roles (e.g., Escalation Agent, Tier-2 Support) to individual Users on specific Cases. HubSpot has no native case team concept on Starter or Professional. On Service Hub Enterprise, HubSpot's Teams feature can be used to associate multiple agents with a Ticket. We map team roles to HubSpot Teams (if Enterprise) or to a custom multi-checkbox property on the Ticket listing assigned agents and their roles.
Salesforce Service Cloud
Entitlement
HubSpot Service Hub
Custom SLA fields or custom object
lossySalesforce Entitlements define SLA terms (response time, resolution time) and are linked to Contacts and Accounts via the ServiceContract or Asset. HubSpot Service Hub has no native Entitlement equivalent on Starter; Professional and above support custom properties on Tickets. We translate Entitlement terms (BusinessHours, FirstResponseTime, ResolutionTime) into custom number properties on Tickets: sla_first_response_hours__c and sla_resolution_hours__c. If the customer requires granular milestone tracking (multiple entitlement types per case), we recommend a custom SLA object created in HubSpot's custom object schema.
Salesforce Service Cloud
Case Milestone
HubSpot Service Hub
Custom milestone fields on Ticket
1:1Case Milestones track SLA breach time Remaining (in minutes) and CompletionDate tied to an Entitlement and MilestoneType. We preserve milestone data as custom fields on the mapped Ticket: milestone_type__c, milestone_target_datetime__c, and milestone_remaining_minutes__c. HubSpot has no automatic milestone timer; these fields serve as reference data for the customer's SLA reporting. If the destination HubSpot org has Service Hub Enterprise, the SLA feature provides time-based escalation rules but not the Remaining calculation that Salesforce tracks automatically.
Salesforce Service Cloud
Knowledge Article
HubSpot Service Hub
Knowledge Base article
1:1Salesforce Knowledge Articles with published versions, categories, and URL Names map to HubSpot Knowledge Base articles. Article Title becomes HubSpot article title; Summary and Body (rich text) migrate to HubSpot article body; Knowledge Article categories map to HubSpot Knowledge Base categories. Article publishing state (Draft, Published, Archived) requires mapping to HubSpot's Draft and Published states. Article-Case linking (CaseArticle junction) is preserved by adding the Salesforce Case ID as a custom property on the HubSpot article for cross-reference.
Salesforce Service Cloud
EmailMessage
HubSpot Service Hub
Ticket email conversation
1:1Salesforce Email Messages are child records of Cases representing inbound and outbound email threads. They map to HubSpot Ticket email conversations attached to the Ticket record. Message body (HTML or plain text), subject, FromAddress, ToAddress, and Incoming flag migrate directly. EmailMessage CreatedDate preserves the conversation timestamp. Attachments on Email Messages migrate as HubSpot file attachments linked to the Ticket.
Salesforce Service Cloud
Solution
HubSpot Service Hub
Knowledge Base article or Ticket note
1:manySalesforce Solutions store reusable knowledge article content linked to Cases via CaseSolution. HubSpot has no native Solutions equivalent. We migrate Solution titles and body content as HubSpot Knowledge Base articles (if the customer licenses Service Hub Professional or above) or as internal notes on the mapped Ticket if Knowledge Base is not available on the customer's HubSpot tier.
Salesforce Service Cloud
Asset
HubSpot Service Hub
Custom property on Company or Ticket
1:1Salesforce Assets represent products purchased by an Account and are often linked to Cases for product-specific support. Asset Name, Status, InstallDate, Quantity, and Product reference migrate to HubSpot as a custom object (Service Hub Professional and above) or as custom properties on the Company record (e.g., asset_name__c, asset_status__c). Asset-to-Case linkage is preserved as a custom Ticket property linking to the Asset ID for cross-reference.
Salesforce Service Cloud
Product
HubSpot Service Hub
Product
1:1Salesforce Products (Product2 records) map to HubSpot Products with Standard Pricebook entries created at migration time. Product Name, Product Code (SKU), Family, and Description migrate directly. PricebookEntries map to HubSpot price tables linked to the product. Products are migrated before Cases/Tickets so that the product lookup on the Ticket can be resolved at import time.
Salesforce Service Cloud
User
HubSpot Service Hub
User (manual provisioning)
1:1Salesforce Users (agents and admins) are referenced on Cases, Case Comments, and Case Team Members via OwnerId and CreatedById. HubSpot Users cannot be created via API import; the customer's HubSpot admin must provision the user accounts before migration and provide the email-to-HubSpot-User-ID mapping. We use this mapping to resolve OwnerId and CreatedById references on Cases, Comments, and Email Messages at migration time. Inactive Salesforce Users can be mapped to inactive HubSpot Users if historical assignment is required for audit.
Salesforce Service Cloud
Custom Object
HubSpot Service Hub
Custom Object
1:1Salesforce custom objects (with __c API names) migrate to HubSpot custom objects of equivalent name. HubSpot custom objects require Service Hub Professional or above and must have at least one required property. We pre-create the destination schema including all custom properties, lookup relationships to Contacts, Companies, and Tickets, and any validation rules before data import. Custom object import runs last because destination records must exist to satisfy lookup references.
| Salesforce Service Cloud | HubSpot Service Hub | Compatibility | |
|---|---|---|---|
| Case | Ticket1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Account | Company1:1 | Fully supported | |
| Case Comment | Ticket conversation thread1:1 | Fully supported | |
| Case History | Custom property or snapshotlossy | Mapping required | |
| Case Team Member | Ticket Team Member or custom propertylossy | Fully supported | |
| Entitlement | Custom SLA fields or custom objectlossy | Fully supported | |
| Case Milestone | Custom milestone fields on Ticket1:1 | Fully supported | |
| Knowledge Article | Knowledge Base article1:1 | Fully supported | |
| EmailMessage | Ticket email conversation1:1 | Fully supported | |
| Solution | Knowledge Base article or Ticket note1:many | Fully supported | |
| Asset | Custom property on Company or Ticket1:1 | Fully supported | |
| Product | Product1:1 | Fully supported | |
| User | User (manual provisioning)1:1 | Fully supported | |
| Custom Object | Custom Object1:1 | Fully supported |
Gotchas + challenges
Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.
Salesforce Service Cloud gotchas
Data Export 512MB file size cap breaks large org exports
API Daily Request Limits vary by license edition
No automatic data backup in base Salesforce
Picklist dependencies silently break records when unmapped
Workflow rules fire unexpectedly during data load
HubSpot Service Hub gotchas
Rate limits throttle large migration API calls
Side conversations and Zendesk macros have no HubSpot equivalent
HubSpot stores ticket history as fragmented engagement objects
Custom Objects require Enterprise tier in HubSpot
Ticket pipeline stage probability values do not export cleanly
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the source Salesforce org across license edition, Case record count, active Case Comment and Email Message volumes, Entitlement and Milestone configuration, picklist values on Status, Priority, Origin, and Type, active Salesforce Flows and triggers affecting Cases, and any custom objects linked to Cases via lookup. We pair this with a HubSpot Service Hub tier review to confirm whether the destination supports the required features (custom objects, Knowledge Base, Teams, SLA properties). The discovery output is a written migration scope document with record counts, object list, and a HubSpot tier recommendation if the customer has not yet provisioned the destination account.
Schema design and Entitlement translation plan
We design the HubSpot destination schema: Ticket pipelines and statuses mapped from Salesforce Case Record Types and Status values, custom SLA fields mapped from Salesforce Entitlement and Milestone records, picklist translation tables for all Salesforce dropdown fields, and Knowledge Base category structure mapped from Salesforce article categories. If the customer requires a custom SLA object (multiple milestone types per case), we pre-create the schema in HubSpot including all custom properties and their types before any data import. Schema validation happens in the customer's HubSpot sandbox or trial before production.
Sandbox migration and reconciliation
We run a full migration into the production HubSpot account using a representative sample (first 500-1,000 records per object type) to validate the mapping. The customer's service desk manager or RevOps lead reviews 25-50 random Tickets against the Salesforce source records, checks SLA field values, confirms Knowledge Base article visibility, and validates that Case Comment threads render correctly in HubSpot. Any mapping corrections (picklist values, Entitlement translation, field type mismatches) happen in this phase. The customer signs off the sandbox validation before production migration begins.
User provisioning and Owner reconciliation
We extract every distinct Salesforce Owner (agent) referenced on Cases, Case Comments, and Email Messages and match by email against the HubSpot destination account's User list. Agents without HubSpot accounts go to a reconciliation queue. The customer's HubSpot admin provisions any missing users before production migration because OwnerId references on Tickets must be satisfied at import time. If the customer uses Salesforce Case Teams, we confirm the HubSpot tier (Enterprise required for native Teams) and design the agent-to-Team mapping accordingly.
Production migration in dependency order
We run production migration in record-dependency order: Companies (from Salesforce Accounts), Contacts (with Company association resolved), Products and Pricebook entries (if linked to Cases), Knowledge Base articles (if migrating Solutions as KB articles), Tickets (with custom SLA fields resolved), Case Comments (as ticket conversation entries linked to parent Ticket), Email Messages (as ticket emails), Case Team Members (as Teams or custom agent properties on Tickets), and Custom Objects (last, because they often have lookups to Tickets, Contacts, or Companies). Each phase emits a row-count reconciliation report before the next phase begins. Bulk API extraction from Salesforce uses parallel date-range splits to stay within the org's daily request limit.
Cutover, delta sync, and Flow rebuild handoff
We freeze Salesforce writes during the cutover window, run a final delta migration of any Cases, Comments, or Email Messages modified during the migration window, then designate HubSpot Service Hub as the system of record. We deliver the Flow and automation inventory document to the customer's HubSpot admin, including every active Salesforce Flow and trigger, the Case object events it responds to, and a recommended HubSpot Workflow equivalent. We support a one-week hypercare window where we resolve any Ticket-to-Case reconciliation issues surfaced by the service team. We do not rebuild Salesforce Flows as HubSpot Workflows within the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Salesforce Service Cloud
Source
Strengths
Weaknesses
HubSpot Service Hub
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 1 of 7 objects need a manual workaround.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Salesforce Service Cloud and HubSpot Service Hub.
Object compatibility
1 of 7 objects need a manual workaround.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
7-object category — typical timelines run 2–7 days end-to-end.
API constraints
Salesforce Service Cloud: 100,000 API requests/day on Enterprise (rolling 24-hour window); lower limits on Professional and Starter editions. Concurrent API limits cap simultaneous long-running requests separately..
Data volume sensitivity
Salesforce Service Cloud exposes a bulk API — large-volume migrations stream efficiently.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during Salesforce Service Cloud to HubSpot Service Hub migration scoping. Not seeing yours? Book a call.
Walk through your Salesforce Service Cloud to HubSpot Service Hub migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Salesforce Service Cloud
Other ways to arrive at HubSpot Service Hub
Same-Helpdesk migrations
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.