Skip to content

Migration guide · Customer Service

Zendesk or Freshdesk to Salesforce Service Cloud migration

Zendesk / FreshdeskSalesforce Service Cloud

Short answer

Migrating from Zendesk or Freshdesk to Salesforce Service Cloud moves tickets, comments, users, organizations and knowledge articles into Salesforce cases, contacts, accounts and Knowledge, so service teams work on the same platform as sales and operations.

Why firms make this move

Firms that already run Salesforce often consolidate their help desk into Service Cloud to give agents the full client relationship, use the same automation and reporting, and remove an integration. The work covers ticket history, routing, SLAs (entitlements), macros and the customer-facing help centre.

What moves

  • Tickets with comments and attachments
  • Users and organizations
  • Knowledge articles
  • Macros as quick text or actions
  • Fields, statuses and tags

How the data maps

FromTo
TicketCase
CommentCase comment or email message
UserContact
OrganizationAccount
ArticleKnowledge article
SLA policyEntitlement and milestone

See the field-by-field map ↓  ·  Migration architecture ↓

What to watch out for

  • Ticket history volume and attachment storage
  • Rebuilding routing, SLAs and macros
  • Help centre URLs and redirects
  • Integrations that created tickets

How Vantage Point runs the migration

  1. Inventory and design case processes
  2. Map fields and statuses
  3. Migrate history, attachments and articles
  4. Rebuild routing, entitlements and automation
  5. Redirect help centre URLs
  6. Go live and hypercare

Typical timeline

Typically 6 to 10 weeks.

Frequently asked questions

Does ticket history migrate?

Yes, including comments and, where needed, attachments.

Can we use Omni-Channel routing?

Yes. Routing is rebuilt with Omni-Channel and queues to match your team structure.

Last reviewed October 2, 2026 by the Vantage Point team. Browse all migration paths

Migration architecture

How data flows: Zendesk or Freshdesk to Salesforce Service Cloud migration

CRM Middleware / connector layer Connected system
What syncs between systems
FromToWhatDirectionTimingHow
ZendeskSalesforce Service Cloudvia Export (API or file) & map Tickets, comments & attachmentsLoad accounts and contacts first; matching tickets to contacts depends on them. → one-way full load, then final delta at cutovermigration tooling

A typical pattern, simplified. Your design depends on licenses, data ownership and volumes, which we settle in discovery.

Field-level map

Zendesk or Freshdesk to Salesforce Service Cloud: field by field

17 mappings we start from on this migration, 14 of which need a transform, a lookup or a decision. Every project gets its own signed-off version; this is the baseline.

FromToHowNotes
Ticketsubject / description CaseSubject / Description req direct
Ticketstatus / priority CaseStatus / Priority req picklist map
Ticketrequester CaseContactId req lookup
TicketRequester email with no matching contact CaseContactId / SuppliedEmail manual review Requester lookups by email are the most common reason cases fail to load. Load and dedupe contacts first, then send unmatched tickets to an agreed placeholder contact (or leave ContactId blank and keep the address in SuppliedEmail) so they can be reviewed instead of rejected.
TicketRequester email (primary and secondary addresses) CaseContactId (matched on email fields marked External ID) lookup Match in passes: primary email first, then any secondary or alternate email on the contact. Mark each email field you match on as an External ID so it can be used as an upsert key. Hold tickets that still do not match in a review file rather than attaching them to a dummy account.
OrganizationOrganization AccountName direct
Ticketassignee / group CaseOwnerId (user or queue) lookup
TicketAssignee (deactivated agent) CaseOwnerId lookup Records owned by people with no active Salesforce user fail the load. Route them to a queue or an integration user and keep the original assignee name in a text field.
Ticket commentPublic / private comments CaseComment / EmailMessage— manual review Private comments become internal comments.
Tickettags / custom fields CaseCustom fields picklist map
MacroMacros Quick text / macros— rebuild
Help Center articleArticles Knowledge article— direct
SLA policyTargets Entitlements & milestones— rebuild
TicketTicket ID CaseExternal ID field req derive Store the source ticket ID with a prefix (for example ZD-12345) in an external ID field. Users can still search by the old ticket number, comments and attachments can be linked back, and reruns can upsert instead of duplicating.
TicketRequester type (staff or system vs. customer) CaseRecordTypeId / Type derive Tickets raised by internal staff or system senders are not customer cases. Load them under a separate record type or type value so they stay searchable by old ticket number without skewing customer history and service reports.
User (agent)Zendesk user ID UserZendesk user ID (custom field) lookup Matching agents and submitters by Zendesk user ID only works if that ID is stored on the Salesforce User first. Add and populate the field before loading cases, or match on email instead.
Ticket attachmentAttached files Salesforce FilesContentVersion + ContentDocumentLink (to Case) association Load attachments as Files after the cases exist, then link each file to its case. Attachment exports can run to hundreds of gigabytes, so stage them in cloud storage and load the most recent years first; older history can follow once current records are verified.

Field names are the platforms' standard API names; your org's custom fields are mapped during discovery. What the "How" labels mean

How labels
direct
Value copies across unchanged.
picklist map
Each source value is mapped to a target value.
lookup
Matched to an existing record, such as a user by email.
association
Becomes a relationship between records, loaded in a later pass.
derive
Calculated or cleaned during the load.
split / concat
One field becomes several, or several become one.
rebuild
Configuration or automation that is rebuilt rather than moved.
drop
Not migrated, deliberately.
manual review
Needs a decision with your team before the load.