Helpdesk migration
Field-level mapping, validation, and rollback between Freshservice and Zendesk. We move data and schema; workflows are rebuilt natively in Zendesk.
Freshservice
Source
Zendesk
Destination
Compatibility
10 of 13
objects map 1:1 between Freshservice and Zendesk.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Freshservice to Zendesk is an ITSM-to-support-desk structural migration. Freshservice organizes work around ITIL constructs — Changes, Problems, Releases, and a built-in CMDB — that require deliberate re-mapping when landing in Zendesk, which was designed for customer support workflows rather than internal IT service management. We handle the object-level mapping in dependency order: Requesters (Users in Zendesk) before Tickets, Agents before group assignments, Assets as configuration items in Zendesk's asset inventory, and Changes and Problems as mapped Ticket records with custom field tags that preserve the original Freshservice ITIL classification. We do not migrate Freshservice automations, SLA escalation rules, or Service Catalog items as working code; we deliver a written inventory of every active automation and escalation with the recommended Zendesk equivalent for the customer's admin to rebuild. Custom Objects from Forest and Enterprise plans cannot define native associations in Freshservice and are stored in Zendesk as tagged text fields with a documented schema gap in the migration report.
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.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
Each row shows how a Freshservice object lands in Zendesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Freshservice
Ticket
Zendesk
Ticket
1:1Freshservice Tickets map directly to Zendesk Tickets with all standard fields (subject, description, status, priority, type, group, agent) preserved via the Zendesk tickets API. Freshservice's agent and group assignments map to Zendesk's assignee_id and group_id using our pre-built lookup tables. Custom ticket fields migrate as Zendesk ticket fields with equivalent types (text, dropdown, checkbox, date). Conversation threads (public replies and internal notes) migrate as Zendesk comments with the public/private flag preserved.
Freshservice
Agent
Zendesk
Agent (User with agent role)
1:1Freshservice Agents map to Zendesk end-users with agent roles. We extract agent records by email, map the Freshservice role (Agent, Service Manager, Full Administrator) to the nearest Zendesk role (agent, admin), and resolve group memberships to Zendesk group membership. Agents without a matching Zendesk user account enter a reconciliation queue for the customer's Zendesk admin to provision before ticket import begins.
Freshservice
Requester
Zendesk
End User
1:1Freshservice Requesters map to Zendesk end-users who submit tickets. The Freshservice requester contact model (name, email, primary phone, organization) maps directly to Zendesk User fields. Requester organization membership in Freshservice maps to Zendesk Organization membership. Requesters are migrated before tickets so that the requester_id reference is satisfied at ticket insert time.
Freshservice
Organization
Zendesk
Organization
1:1Freshservice Organizations map to Zendesk Organizations. Freshservice's domain-based auto-grouping logic is translated to Zendesk organization membership rules. Organization custom fields migrate as Zendesk organization fields. We use the organization name as the dedupe key during import to avoid creating duplicate organizations for the same entity.
Freshservice
Asset
Zendesk
Configuration Item (via Asset custom fields or Zendesk Asset Management on Enterprise)
1:1Freshservice Assets (hardware, software, network items tracked in the CMDB) migrate to Zendesk as tagged ticket fields or as records in Zendesk's separate Asset Management workspace (available on Enterprise Suite). Freshservice asset type, serial number, vendor, and CI relationships map to Zendesk custom asset fields. Large CMDB hierarchies with parent-child relationships are stored as text fields on the related Zendesk ticket with a flat export for the customer's asset management team to reconstruct post-migration.
Freshservice
Change
Zendesk
Ticket (tagged as Change)
1:manyFreshservice Changes track planned IT environment modifications with risk level, approval workflow, and associated CIs. Zendesk has no native ITIL Change object, so we map Changes to Zendesk Tickets with a custom field 'fs_change_type' capturing the original Freshservice change type (Normal, Standard, Emergency) and 'fs_risk_level' preserving the risk assessment. The approval status migrates as a dropdown field. Customers who need formal Change management post-migration use Zendesk's Change Management product as a separate tier.
Freshservice
Problem
Zendesk
Ticket (tagged as Problem)
1:1Freshservice Problems track root-cause analysis behind one or more incidents. Zendesk has no native Problem object, so we map Problems to Zendesk Tickets with a custom field 'fs_problem_id' and a 'fs_related_incidents' text field listing related Freshservice ticket IDs. The linkage to related incidents is preserved as a comma-separated reference list for the customer's admins to rebuild as Zendesk macro or topic associations post-migration.
Freshservice
Release
Zendesk
Ticket (tagged as Release)
1:1Freshservice Releases group Changes and Assets into deployable units with scheduled dates and approval workflows. Zendesk has no native Release object, so we map Releases to Zendesk Tickets with a custom field 'fs_release_date' and 'fs_release_status' preserving the release state. The associated asset and change references migrate as tagged text fields.
Freshservice
SLA Policy
Zendesk
SLA Policy
lossyFreshservice SLA policies (response time and resolution time targets tied to ticket priority or type) map to Zendesk SLA Policies which are available on Support Team and above. We map Freshservice SLA policy assignments to Zendesk SLA policy assignments on a per-ticket basis. Freshservice's business-hours calendar configuration maps to Zendesk's business hours settings, which the customer configures in their Zendesk admin panel before migration.
Freshservice
Comment (conversation thread)
Zendesk
Comment
1:1Freshservice ticket conversation threads — agent replies, requester replies, and internal notes — map to Zendesk ticket comments. The public/internal flag is preserved: Freshservice public notes map to Zendesk public comments; Freshservice internal notes map to Zendesk private comments. HTML-formatted content is sanitized during import. Inline images hosted on Freshservice's file servers are re-hosted to Zendesk's attachments API with URL rewriting applied to preserve display in the ticket thread.
Freshservice
Attachment
Zendesk
Attachment
1:1Freshservice ticket attachments migrate to Zendesk ticket attachments via the Zendesk attachments API. File size limits on Zendesk apply (25 MB per attachment); files exceeding the limit are flagged in the migration report with a recommendation to archive to an external storage link stored as a custom field on the ticket.
Freshservice
Custom Object
Zendesk
Ticket custom field (text or lookup)
lossyFreshservice Custom Objects exist on Forest and Enterprise plans only and do not support associations to native objects. Since Zendesk has no equivalent custom object model, we migrate Custom Object records as Zendesk ticket custom fields with the original Freshservice record ID stored as a text reference. The association gap (Custom Object records with no native Zendesk link) is documented in the migration report with a recommendation to store the relationship in a custom text field or a separate lookup table in Zendesk Explore.
Freshservice
Location and Department
Zendesk
Organization custom fields or user fields
1:1Freshservice Locations and Departments are organizational metadata used for ticket routing and asset assignment. These migrate as Zendesk Organization custom fields (location, department) and User custom fields, preserving the hierarchical relationship where Freshservice associates locations with departments. The customer configures routing rules in Zendesk based on these fields post-migration.
| Freshservice | Zendesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Agent | Agent (User with agent role)1:1 | Fully supported | |
| Requester | End User1:1 | Fully supported | |
| Organization | Organization1:1 | Fully supported | |
| Asset | Configuration Item (via Asset custom fields or Zendesk Asset Management on Enterprise)1:1 | Fully supported | |
| Change | Ticket (tagged as Change)1:many | Fully supported | |
| Problem | Ticket (tagged as Problem)1:1 | Fully supported | |
| Release | Ticket (tagged as Release)1:1 | Fully supported | |
| SLA Policy | SLA Policylossy | Fully supported | |
| Comment (conversation thread) | Comment1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Custom Object | Ticket custom field (text or lookup)lossy | Fully supported | |
| Location and Department | Organization custom fields or user fields1: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.
Freshservice gotchas
API rate limits vary by plan and must be accounted for during migration scoping
Agent-based vs requester-based licensing affects migration sizing
Custom Objects cannot define associations to native Freshservice objects
Child ticket reporting is limited in native Freshservice dashboards
Zendesk gotchas
Data export requires API scripting on non-Enterprise plans
Automations cap at 500 active rules and 1,000 tickets per hour
Help Center has no native export feature
Custom Objects and full data export are Enterprise-only
Pair-specific challenges
Migration approach
Discovery and scoping
We audit the source Freshservice instance across plan tier (Starter/Growth/Pro/Enterprise), active agent count, total requester count, ticket volume and age distribution, asset inventory size, and the presence of Forest-tier or Enterprise-tier Custom Objects. We inventory active Freshservice automations, SLA policies, escalation rules, and Service Catalog items. We assess the Zendesk destination plan tier (Suite Team/Growth/Professional/Enterprise) to confirm which destination features are available. The discovery output is a written migration scope, a pair-specific object map, and a migration sequence plan that accounts for Freshservice API rate limits on the source side and Zendesk's /imports user-first requirement on the destination side.
Field and schema mapping
We document the mapping between Freshservice field names and Zendesk field equivalents, including custom ticket fields, user fields, and organization fields. We identify Freshservice Change, Problem, and Release records that require custom field reconstruction in Zendesk and define the target custom field schema. We map Freshservice SLA policy assignments to Zendesk SLA policies and flag any SLA calendar configuration that must be set up in Zendesk before migration. We confirm the custom field strategy for Freshservice Custom Objects that have no native Zendesk equivalent.
Test migration into a Zendesk sandbox or staging account
We run a limited migration using a recent data sample (typically the last 90 days of tickets plus all active agents and requesters) into a Zendesk staging environment. We validate field mappings, user associations, ticket thread integrity, and attachment re-hosting. The customer reconciles a random sample of 25-50 migrated records against the Freshservice source. Any mapping corrections are applied to the migration scripts before production migration begins. This step is the last opportunity to catch data model mismatches without affecting live systems.
User and organization migration
We migrate Freshservice Agents and Requesters to Zendesk Users in dependency order: organizations first (to satisfy the organization_id on users), then agents, then requesters. We resolve Freshservice group memberships to Zendesk group memberships. Agents without matching Zendesk user accounts are flagged in a reconciliation queue for the customer's Zendesk admin to provision. Migration cannot proceed to tickets until the user migration is complete and validated.
Ticket migration with conversation preservation
We migrate Freshservice Tickets to Zendesk Tickets using the Zendesk tickets or tickets/import API, with requester_id and assignee_id resolved from the user mapping completed in the previous step. Conversation threads (public replies and internal notes) migrate as Zendesk comments with the public/private flag preserved. Freshservice Change, Problem, and Release records migrate as tagged Zendesk tickets with custom fields preserving the original ITIL classification. SLA assignments are set at the ticket level during import. Attachments are re-hosted from Freshservice CDN URLs to Zendesk's attachments API, with inline image URLs rewritten in the comment body.
Delta migration and cutover
We freeze Freshservice write access during the cutover window, run a final delta migration of any records created or modified since the bulk migration began, then enable Zendesk as the system of record. We deliver a written inventory of all Freshservice automations, SLA escalation rules, and Service Catalog items with recommended Zendesk equivalents for the customer's admin to rebuild. We support a one-week hypercare window where we resolve any reconciliation issues raised by the support team. We do not rebuild Freshservice automations or SLA escalation rules as Zendesk triggers or macros within the migration scope.
Platform deep dives
Freshservice
Source
Strengths
Weaknesses
Zendesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. All 7 core objects map 1:1 between Freshservice and Zendesk.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Freshservice and Zendesk.
Object compatibility
All 7 core objects map 1:1 between Freshservice and Zendesk.
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
Freshservice: 200 calls/min (Growth) to 700 calls/min (Enterprise) depending on plan tier; limits are per-account, not per-agent.
Data volume sensitivity
Freshservice doesn't expose a bulk API — REST + parallelization used for high-volume runs.
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 Freshservice to Zendesk migration scoping. Not seeing yours? Book a call.
Walk through your Freshservice to Zendesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Freshservice
Other ways to arrive at Zendesk
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.