Helpdesk migration
Field-level mapping, validation, and rollback between Freshdesk and Zoho Desk. We move data and schema; workflows are rebuilt natively in Zoho Desk.
Freshdesk
Source
Zoho Desk
Destination
Compatibility
13 of 15
objects map 1:1 between Freshdesk and Zoho Desk.
Complexity
CModerate
Timeline
3-5 weeks
Try the reverse
Overview
Moving from Freshdesk to Zoho Desk is a platform-native migration within the same vendor tier, but the object models, API mechanics, and import tooling differ in ways that affect completeness. Freshdesk uses per-endpoint account-wide rate limits (200 calls/min on Growth, 700/min on Enterprise) with a 20-call/min ceiling on the Tickets List endpoint; Zoho Desk uses a credit-based API with record-range pricing (3 credits for records 0-2,000, up to 100 credits for 100,001+). We export from Freshdesk using its REST API with exponential backoff on 429 responses, transform channel types and timestamps, and load into Zoho Desk in dependency order. Zoho Desk's own import tooling does not carry over CC users, groups, inline images, Knowledge Base attachments, or the original ticket Created-at timestamp, which we flag explicitly and address through our API-based approach. Automations, macros, and SLA policy definitions do not migrate as code; we deliver a written audit of these for the customer's admin to rebuild in Zoho Desk's Rules engine.
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
Freshdesk platform overview
Scorecard, SWOT, gotchas, and pricing for Freshdesk.
Destination platform
Zoho Desk platform overview
Scorecard, SWOT, gotchas, and pricing for Zoho Desk.
Data migration guide
The complete Zoho Desk migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Source platform guide
Freshdesk migration guide
Understand the data you're exporting from Freshdesk before mapping it.
Destination checklist
Zoho Desk migration checklist
Pre- and post-cutover tasks for moving onto Zoho Desk.
Source checklist
Freshdesk migration checklist
Exit checklist for unwinding your Freshdesk 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 Freshdesk object lands in Zoho Desk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Freshdesk
Ticket
Zoho Desk
Ticket
1:1Freshdesk Tickets map directly to Zoho Desk Tickets. The Freshdesk ticket ID is preserved in a Zoho Desk custom field fd_original_id__c for audit and cross-referencing. Channel type normalization is required: Freshdesk sources (phone, forwarded email, tweet, Facebook, survey feedback) are mapped to Zoho Desk channel equivalents (Phone, Email, Twitter, Facebook, Feedback) with unrecognized types defaulted to Custom and the original channel name stored in a metadata field. Ticket status, priority, type, group, and agent assignment migrate as-is.
Freshdesk
Contact (Requester)
Zoho Desk
Contact
1:1Freshdesk Contacts (called Requesters in the Freshdesk UI) map to Zoho Desk Contacts. We use the contact email as the dedupe key during import. Freshdesk contact custom fields are pre-created as custom fields in Zoho Desk before contact import begins. Freshdesk's unique requirement that at least 10 tickets exist before CSV import applies only to Freshdesk's native import feature; our API-based extraction does not carry this restriction.
Freshdesk
Company
Zoho Desk
Account
1:1Freshdesk Companies map to Zoho Desk Accounts. The Freshdesk company domain becomes the Account's Website field and is used as a secondary dedupe signal alongside email. We preserve the contact-to-company relationship by setting the AccountId on each migrated Contact record after Account creation so that the lookup is satisfied at the moment of Contact insert.
Freshdesk
Agent
Zoho Desk
Agent
1:1Freshdesk Agents map to Zoho Desk Agents. We resolve agents by email match against the destination Zoho Desk agent list. Any Freshdesk agent who is also a ticket requester is flagged during scoping to prevent circular references; Zoho Desk handles this through role-based visibility rather than a separate Collaborators concept. Agent groups from Freshdesk map to Zoho Desk Teams.
Freshdesk
Conversation
Zoho Desk
Response or Note
1:1Freshdesk Conversations are the messages within a ticket: public replies, private notes, and incoming emails. These map to Zoho Desk Responses (public, outgoing) and Notes (private, internal) on the corresponding ticket. We determine the target entity by inspecting the Freshdesk conversation type field: incoming_message becomes a Response, note becomes a Note. Attachments on conversations migrate as Files linked to the Response or Note. Author information is preserved in a metadata field because Zoho Desk's import does not carry Comment Author type.
Freshdesk
Time Entry
Zoho Desk
Time Log
1:1Freshdesk Time Entries (billable or non-billable hours logged against a ticket) map to Zoho Desk Time Logs. Duration, billable flag, note, and agent attribution migrate directly. Time Logs are linked to the migrated ticket via ticket ID lookup. We set the Time Log creation date to the original Freshdesk timestamp to preserve the billing and audit timeline.
Freshdesk
Satisfaction Rating
Zoho Desk
CSAT Survey Response
1:1Freshdesk Satisfaction Ratings (post-resolution CSAT with satisfied/dissatisfied score and optional comment) map to Zoho Desk CSAT Survey responses. The score is mapped to Zoho Desk's 1-5 scale equivalent. The comment migrates as the Survey Response body. If Freshdesk CSAT surveys used a different scale, we normalize to Zoho Desk's standard during transformation.
Freshdesk
Tag
Zoho Desk
Tag
1:1Freshdesk Tags are flat cross-object labels applied to tickets, contacts, and companies. These map directly to Zoho Desk Tags with the same label. Tags do not carry object-type scoping in either platform, so the tag assignment per record is preserved during migration by tagging the corresponding Zoho Desk record at import time.
Freshdesk
Custom Field (Ticket)
Zoho Desk
Custom Field (Ticket)
lossyFreshdesk ticket custom fields must be pre-created in Zoho Desk before ticket import begins. We audit the full custom field schema during scoping, match field types (text, dropdown, checkbox, number, date) to their Zoho Desk equivalents, and pre-create them in the destination account via Zoho Desk's custom field API. Field dependencies (e.g., a dropdown whose options are sourced from another field) are flagged as requiring post-migration admin review.
Freshdesk
Custom Field (Contact)
Zoho Desk
Custom Field (Contact)
lossyFreshdesk contact custom fields (managed in Admin > Support Operations > Customer Fields) map to Zoho Desk Contact custom fields. We pre-create these during the schema preparation phase before any contact data is loaded. Multi-select custom fields on Freshdesk migrate to multi-select picklist fields in Zoho Desk.
Freshdesk
Article (Knowledge Base)
Zoho Desk
Article (Knowledge Base)
1:1Freshdesk Knowledge Base Articles map to Zoho Desk Knowledge Base Articles with folder hierarchy preserved. We export articles with all translations, attachments, and folder membership. Note: Zoho Desk's native import does not carry Knowledge Base attachment files, so we use the Zoho Desk API directly to upload attachments after article content is imported. Article creation timestamps are preserved in a custom field fd_article_created_at__c since Zoho Desk's import updates this to the migration date.
Freshdesk
Forum Category
Zoho Desk
KB Category
1:1Freshdesk Forums (Categories containing Topics and Posts) map to Zoho Desk KB Categories. The flat Freshdesk forum structure is translated into a category-to-section mapping. Forum posts migrate as draft articles in the corresponding KB category for the customer's admin to review and publish, since Zoho Desk does not have an equivalent community discussion object.
Freshdesk
Product
Zoho Desk
Product
1:1Freshdesk Products (used to associate items with tickets and track assets) map to Zoho Desk Products. Product name, description, and status migrate directly. Product-to-ticket associations migrate as ticket custom fields referencing the Zoho Desk Product. Note: Zoho Desk's native import does not support Products as a standalone importable object, so we load Products via the API before ticket import.
Freshdesk
SLA Policy
Zoho Desk
SLA Policy
1:1Freshdesk SLA Policies (available on Pro and Enterprise) define response and resolution times per plan. These are audited during scoping and documented as Zoho Desk SLA Policy equivalents. SLA migration is configuration-only: we deliver a written map of each Freshdesk SLA policy with its trigger conditions, response targets, and resolution targets, and the customer's admin configures the corresponding SLA in Zoho Desk's SLA module.
Freshdesk
Collaborator
Zoho Desk
Contact (view-only)
1:1Freshdesk Collaborators are view-only users added to tickets for context. Up to 5,000 are included on paid plans. Zoho Desk does not have a direct collaborator concept with view-only restriction. We migrate Freshdesk collaborators as Contacts with a custom field fd_collaborator__c set to true and a note documenting their original view-only role. The customer's admin assigns appropriate Zoho Desk role permissions post-migration.
| Freshdesk | Zoho Desk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Contact (Requester) | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Agent | Agent1:1 | Fully supported | |
| Conversation | Response or Note1:1 | Fully supported | |
| Time Entry | Time Log1:1 | Fully supported | |
| Satisfaction Rating | CSAT Survey Response1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Custom Field (Ticket) | Custom Field (Ticket)lossy | Fully supported | |
| Custom Field (Contact) | Custom Field (Contact)lossy | Fully supported | |
| Article (Knowledge Base) | Article (Knowledge Base)1:1 | Fully supported | |
| Forum Category | KB Category1:1 | Fully supported | |
| Product | Product1:1 | Fully supported | |
| SLA Policy | SLA Policy1:1 | Fully supported | |
| Collaborator | Contact (view-only)1: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.
Freshdesk gotchas
API access is blocked on the free plan
Per-minute rate limits are account-wide and endpoint-specific
Multi-channel source types do not map 1:1 to all destinations
Custom objects created in-product cannot be accessed by other apps
Contact import requires at least 10 existing tickets in the account
Zoho Desk gotchas
Agent email identity determines comment ownership after migration
Blueprints and SLA policies do not export via API
File upload capped at 10GB per migration batch
Tier-gated export and migration capabilities
Inbound migration is two-phase with a hard Phase 2 cutoff
Pair-specific challenges
Migration approach
Discovery and Freshdesk plan tier verification
We audit the source Freshdesk account across plan tier, ticket volume, contact and company counts, conversation history depth, active agents and groups, custom field definitions, knowledge base article count with translation count, SLA policy definitions, and active automations and macros. We verify API access is available (at least Growth plan) and map the customer's plan-tier rate limits for our export throttle configuration. The discovery output is a written migration scope, a Zoho Desk edition recommendation (Standard at $12/agent covers most migrations; Plus at $22/agent adds advanced SLA and Blueprint; Elite at $35/agent adds custom functions; Enterprise at $55/agent adds dedicated support), and a custom field pre-creation checklist for the customer's Zoho Desk admin.
Zoho Desk schema preparation
We guide the customer's Zoho Desk admin through pre-creating all Freshdesk custom field equivalents in Zoho Desk, including field types, picklist values, and required flags. We pre-create the Freshdesk Product equivalents in Zoho Desk's Product module via API. We document Freshdesk agent groups and map them to Zoho Desk Teams. We audit the Freshdesk SLA policy definitions and deliver a written SLA configuration guide for Zoho Desk. We confirm Zoho Desk KB category structure and article folder hierarchy for the knowledge base migration plan.
Freshdesk API extraction with rate-limit throttling
We extract all objects from Freshdesk via its REST API using OAuth2. Export queries are throttled to the customer's plan-tier per-endpoint limits with exponential backoff on 429 responses. Tickets are paginated in ascending ID order with a cursor window to avoid gaps during high-volume export windows. Multi-channel source types (phone, tweet, Facebook, survey, forwarded email) are normalized to Zoho Desk channel equivalents during extraction with the original channel name preserved in a metadata field. All timestamps (created_at, updated_at) are preserved as epoch values for later reconstruction in Zoho Desk.
Transformation and Zoho Desk API credit budgeting
We transform the extracted Freshdesk data into Zoho Desk API payloads. Ticket created_at timestamps are explicitly set via the API rather than relying on Zoho Desk's default import behavior. Conversation threads are split into Response and Note entities based on Freshdesk's conversation type field. Satisfaction ratings are normalized to Zoho Desk's CSAT scale. We budget API credits against the Zoho Desk plan's monthly allocation: a 50,000-ticket migration fetching records in the 10,001-100,000 range (50 credits per request, 50 records per request) consumes approximately 50,000 credits, which fits within most paid plan allocations. We flag if the migration requires additional credit pack purchases.
Test migration and reconciliation
We run a test migration into a Zoho Desk sandbox or the production account with a subset of data (typically the 100 most recent tickets and 50 contacts) to validate field mapping, conversation threading, attachment upload, and custom field population. The customer spot-checks migrated records against the Freshdesk source and confirms the mapping is correct. We adjust the transformation rules based on feedback and re-run the test migration with the corrected logic before proceeding to full production migration.
Production migration in dependency order
We run the production migration in record-dependency order: Accounts (from Freshdesk Companies), Contacts (with AccountId resolved), Products (if not pre-created), Agents (with Team assignment), Tickets (with Response and Note threads, Time Logs, and CSAT responses), Tags (applied per record), KB Articles (with attachments), and SLA Policies (configuration documentation delivered, not imported as code). Each phase emits a row-count reconciliation report. We freeze Freshdesk ticket creation during cutover and run a final delta migration of any records created or updated during the migration window.
Automation and macro audit delivery
We deliver a written inventory of every active Freshdesk automation rule and macro with its trigger conditions, filter logic, actions, and a recommended Zoho Desk Rules equivalent. This document is handed off to the customer's admin team to rebuild in Zoho Desk's Rules engine. We do not rebuild automations as code inside the migration scope. We support a one-week post-go-live window where we resolve any data quality issues raised during the customer's first operational week.
Platform deep dives
Freshdesk
Source
Strengths
Weaknesses
Zoho Desk
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 4 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Freshdesk and Zoho Desk.
Object compatibility
4 of 7 objects need a mapping; the rest are 1:1.
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
Freshdesk: Account-wide per-minute limits: Free=0, Growth=200, Pro=400, Enterprise=700. Each endpoint has sub-limits (e.g., Tickets List capped at 20-200/min depending on plan)..
Data volume sensitivity
Freshdesk 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 Freshdesk to Zoho Desk migration scoping. Not seeing yours? Book a call.
Walk through your Freshdesk to Zoho Desk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Freshdesk
Other ways to arrive at Zoho Desk
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.