Helpdesk migration

Migrate from Salesforce Service Cloud to HubSpot Service Hub

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 logo

Salesforce Service Cloud

Source

HubSpot Service Hub

Destination

HubSpot Service Hub logo

Compatibility

73%

11 of 15

objects map 1:1 between Salesforce Service Cloud and HubSpot Service Hub.

Complexity

BStandard

Timeline

4-8 weeks

Rollback included Accuracy guarantee Field-level validation

Try the reverse

HubSpot Service Hub
Salesforce Service Cloud

Overview

What this migration involves

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.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Salesforce Service Cloud logo

Salesforce Service Cloud

What's pushing teams away

  • The total cost of ownership远超 base license pricing — storage overages at $125/GB, Agentforce consumption charges at $2 per conversation, and 8–10% annual contract uplifts compound into a 30–40% true-cost premium over sticker price.
  • Complexity of configuration makes basic admin tasks requiring a Salesforce consultant, creating dependency on external expertise for changes that should be self-service, especially for mid-market teams.
  • API rate limits on lower-tier editions throttle integrations and bulk exports, forcing teams to batch operations or purchase higher licenses just to run nightly sync jobs reliably.
  • Steep learning curve and unintuitive UX for non-power-users causes low agent adoption, leading to shadow IT in the form of spreadsheets and informal tools that undermine the central case record.
  • Annual contract lock-in with no pro-rated exit creates switching cost pressure, making migrations feel high-stakes and expensive even when the platform no longer fits the team's operational model.

Choosing

HubSpot Service Hub logo

HubSpot Service Hub

What's pulling them in

  • Unified CRM context means every support ticket links directly to the Contact and Company record without a separate integration
  • Free tier provides unlimited support seat access with basic ticketing and a shared inbox for small teams to validate fit before committing
  • Omnichannel routing consolidates email, live chat, Facebook Messenger, WhatsApp, and Instagram DM into one queue
  • Built-in customer success workspace gives health scores and portfolio views that other standalone helpdesks cannot match
  • AI-powered Breeze agent automates common resolutions and surfaces knowledge base articles without agent intervention

Object mapping

How Salesforce Service Cloud objects map to HubSpot Service Hub

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

maps to

HubSpot Service Hub

Ticket

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Contact

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Company

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Ticket conversation thread

1:1
Fully supported

Case 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

maps to

HubSpot Service Hub

Custom property or snapshot

lossy
Mapping required

Case 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

maps to

HubSpot Service Hub

Ticket Team Member or custom property

lossy
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Custom SLA fields or custom object

lossy
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Custom milestone fields on Ticket

1:1
Fully supported

Case 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

maps to

HubSpot Service Hub

Knowledge Base article

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Ticket email conversation

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Knowledge Base article or Ticket note

1:many
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Custom property on Company or Ticket

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Product

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

User (manual provisioning)

1:1
Fully supported

Salesforce 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

maps to

HubSpot Service Hub

Custom Object

1:1
Fully supported

Salesforce 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.

Gotchas + challenges

What specifically takes care here

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 logo

Salesforce Service Cloud gotchas

High

Data Export 512MB file size cap breaks large org exports

High

API Daily Request Limits vary by license edition

High

No automatic data backup in base Salesforce

Medium

Picklist dependencies silently break records when unmapped

Medium

Workflow rules fire unexpectedly during data load

HubSpot Service Hub logo

HubSpot Service Hub gotchas

High

Rate limits throttle large migration API calls

High

Side conversations and Zendesk macros have no HubSpot equivalent

High

HubSpot stores ticket history as fragmented engagement objects

Medium

Custom Objects require Enterprise tier in HubSpot

Medium

Ticket pipeline stage probability values do not export cleanly

Pair-specific challenges

  • Entitlement and Milestone data requires deliberate translation design

    Salesforce's Entitlement and Case Milestone objects model SLA breach tracking with time Remaining (in minutes) and CompletionDate tied to BusinessHours. HubSpot Service Hub has no native equivalent on Starter and no automatic Remaining calculation on any tier. We translate Entitlement terms into custom numeric fields on Tickets (sla_first_response_hours__c, sla_resolution_hours__c) but the automatic countdown timer that Salesforce provides does not exist in HubSpot. If the customer relies on milestone breach alerts or automatic escalation triggered by time-remaining thresholds, those automations must be rebuilt in HubSpot Workflows or require a third-party SLA add-on. This gap is discovered late in migrations where SLA compliance reporting was central to the Salesforce instance, so we flag it during scoping.

  • Case History audit trail cannot be fully replicated in HubSpot Starter

    Salesforce's Case History object captures every field-level change on a Case with old value, new value, field name, and timestamp. HubSpot Tickets have no native equivalent audit trail in Starter or Professional tiers. We offer selective Case History migration as a snapshot property on the Ticket capturing the last N status and priority transitions, but a full field-by-field change log is not structurally supported. Customers with compliance requirements for audit-level change tracking need Service Hub Enterprise with the audit log add-on or a third-party compliance tool, which we identify during scoping before migration begins.

  • Salesforce Flow automations do not migrate to HubSpot Workflows

    Salesforce Flows (record-triggered, scheduled, and screen variants) and Apex triggers responding to Case events do not have a migration path to HubSpot. HubSpot Workflows use a different trigger model (property-change and enrollment-based rather than record-event-based), and HubSpot does not have an equivalent to Apex triggers. We deliver a written inventory of every active Salesforce Flow and trigger affecting the Case object — with trigger object, entry condition, action, and recommended HubSpot Workflow equivalent — for the customer's HubSpot admin to rebuild post-migration. Entitlement processes and Omni-Channel routing configurations are documented separately and are not migrated as functional equivalents.

  • Picklist dependency translation can silently corrupt case data

    Salesforce enforces dependent picklists (e.g., Country gates State values, Case Type gates Case Reason) that are not enforced in HubSpot. When migrating picklist values from Salesforce to HubSpot dropdown properties, unmapped values either get added to HubSpot's dropdown or force a value-mapping decision (map to nearest equivalent or skip). We generate a picklist value translation table before any records load and resolve every Salesforce picklist (Status, Priority, Origin, Type, Reason, Account Role) against HubSpot's dropdown structure. Records with invalid combinations after translation are held in a reconciliation queue rather than loaded silently.

  • Salesforce Bulk API daily limits constrain large-volume migration windows

    Salesforce Enterprise Edition grants 100,000 API requests per 24-hour rolling window; Unlimited and Einstein 1 grant higher limits. Active integrations (Outlook sync, custom REST endpoints, other CRM connectors) consume headroom before migration extractions begin. When extracting millions of Case, Contact, Case Comment, and Email Message records, we split exports by date range or record type and schedule passes during off-peak hours. We audit API consumption during scoping and surface the risk of REQUEST_LIMIT_EXCEEDED failures before production extraction to avoid partial exports that silently truncate the migration scope.

Migration approach

Six steps for a successful Salesforce Service Cloud to HubSpot Service Hub data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Salesforce Service Cloud logo

Salesforce Service Cloud

Source

Strengths

  • Enterprise-grade security, compliance certifications, and audit logging available across all paid editions with Shield offering enhanced event monitoring.
  • Scalable multi-tenant cloud architecture supporting orgs from 5 users to 150,000+ seat enterprises without infrastructure management overhead.
  • Omnichannel contact center unifying email, live chat, phone, messaging, and social into a single Case timeline per customer interaction.
  • Rich workflow automation via Salesforce Flow, Process Builder, and Apex triggers enabling complex case escalation, routing, and field updates.
  • Native AI capabilities (Agentforce / Einstein) for case auto-routing, classification, suggested responses, and chatbot escalation without third-party add-ons.

Weaknesses

  • Per-seat pricing model with no contact limits creates unpredictable cost scaling for large organizations adding many agents over time.
  • No automatic data backup — organizations must purchase a third-party backup solution or build manual Data Loader exports to protect against data loss from human error, failed deployments, or integrations overwriting records.
  • Steep learning curve for non-technical users requiring dedicated admin resources and formal training investment before teams reach productive velocity.
  • Annual contract requirements and limited pro-ration on exit create significant switching cost friction, especially for organizations evaluating alternatives mid-cycle.
  • Add-on licensing (CPQ, Einstein Activity Capture, Shield, Data Cloud) can double effective per-seat cost without clear documentation of which features are included in base tiers.
HubSpot Service Hub logo

HubSpot Service Hub

Destination

Strengths

  • Unified CRM object model means support context is always linked to sales and marketing data
  • Generous free tier with unlimited tickets and a shared inbox for small teams
  • Omnichannel inbox consolidates email, live chat, and major messaging platforms natively
  • Customer Success Workspace provides portfolio-level health scores without a separate tool
  • AI agent (Breeze) handles Tier-1 resolutions and knowledge base deflection automatically

Weaknesses

  • Per-seat pricing with mandatory onboarding fees inflates year-one cost significantly
  • Ticket history stored as fragmented engagement objects across APIs complicates export and migration
  • Custom Objects locked behind Enterprise tier limits portability for mid-market teams
  • Help desk depth—routing rules, SLA management, advanced reporting—trails dedicated tools like Zendesk
  • Setup and configuration requires real time investment; out-of-box defaults rarely fit existing workflows

Complexity grading

How hard is this migration?

Standard Helpdesk migration. 1 of 7 objects need a manual workaround.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Salesforce Service Cloud and HubSpot Service Hub.

  • Object compatibility

    C

    1 of 7 objects need a manual workaround.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    7-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    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

    A

    Salesforce Service Cloud exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Salesforce Service Cloud to HubSpot Service Hub migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Salesforce Service Cloud to HubSpot Service Hub data migrations

Answers to the questions buyers ask most during Salesforce Service Cloud to HubSpot Service Hub migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most migrations land between four and eight weeks for accounts under 5,000 Cases with no custom objects, no Entitlement translation, and no Knowledge Base migration. Migrations with Entitlement and Milestone translation, Case History snapshot requirements, large Case Comment and Email Message volumes (over 200,000 records), or active Salesforce-to-HubSpot bidirectional sync in place move to eight to sixteen weeks because of picklist dependency review, custom SLA schema design, and Bulk API extraction scheduling under rate-limit constraints.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Salesforce Service Cloud.
Land in HubSpot Service Hub, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day