Helpdesk migration
Field-level mapping, validation, and rollback between Desky and Freshdesk. We move data and schema; workflows are rebuilt natively in Freshdesk.
Desky
Source
Freshdesk
Destination
Compatibility
6 of 8
objects map 1:1 between Desky and Freshdesk.
Complexity
BStandard
Timeline
1-2 weeks
Overview
Moving from Desky to Freshdesk means transitioning from a help desk with no documented public API to one with a mature REST API spanning v1 and v2 endpoints. Desky's migration path relies on admin-level bulk CSV export and manual CSV re-import at the destination, which we compensate for by structuring all extracted data as clean, well-typed CSV with a pre-migration validation pass. We migrate Tickets (including subject, description, status, priority, assignee, and timestamps), Agents, Customers, Companies, Tags, and Knowledge Base Articles. Custom ticket fields detected during the source scan are pre-created in Freshdesk before migration begins, provided the destination plan supports custom fields (Blossom tier or above). We do not migrate Desky's automation rules, as they are configuration objects rather than data, and we deliver a written inventory of any active rules for the customer's admin to rebuild in Freshdesk's automation builder post-migration. Attachment handling requires a separate post-import job because Desky stores attachments as URL references rather than binary blobs in the export.
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 Desky object lands in Freshdesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Desky
Ticket
Freshdesk
Ticket
1:1Desky Tickets migrate 1:1 to Freshdesk Tickets. Subject, description, status, priority, assignee, and created/updated timestamps transfer directly. Desky's conversation thread (customer replies and agent responses) migrates as Freshdesk Notes attached to the Ticket. Custom ticket fields from Desky are pre-created as Freshdesk custom ticket fields before migration, provided the destination plan is Blossom ($29+) or above.
Desky
Agent
Freshdesk
Agent (User)
1:1Desky Agent accounts map to Freshdesk Agents (Freshdesk User records with agent permission). We preserve display name, email, role, and active/inactive status. We flag any agent count that exceeds the destination plan's agent limit before migration begins. Freshdesk requires at least one admin agent; we ensure the migration preserves admin-level access for the customer's designated admin account.
Desky
Customer
Freshdesk
Contact
1:1Desky Customers map to Freshdesk Contacts. Name, email, phone, and company association transfer. We preserve the link between Customer and Company by resolving the Company reference before Contact import so that Freshdesk's company association is established at insert time. Custom contact properties in Desky are pre-created as Freshdesk custom contact fields before migration.
Desky
Company
Freshdesk
Company
1:1Desky Company records map directly to Freshdesk Companies. The Company object is migrated first to satisfy the foreign-key reference on Contact. Domain information from Desky's company records populates the Freshdesk Company domain field for contact deduplication.
Desky
Knowledge Base Article
Freshdesk
Article
1:1Desky KB Articles migrate to Freshdesk KB Articles within the corresponding category or folder. Article title, body content, publication status, and category assignment transfer. We flag any HTML formatting or embedded media that may require post-migration adjustment, particularly iframes, YouTube embeds, or legacy Flash content that Freshdesk's HTML sanitizer may strip. Articles with more than 10 internal cross-links are flagged for manual URL update after migration.
Desky
Tag
Freshdesk
Tag
1:1Tags in Desky are lightweight label strings attached to Tickets and Articles. We extract all unique tag values, then re-apply them to the corresponding Freshdesk Ticket and Article records at import time. Freshdesk supports tag-based filtering and routing, so tag preservation maintains the customer's categorization logic in the new platform.
Desky
Attachment
Freshdesk
TicketAttachment
lossyDesky exports attachments as URL references in the CSV, not as binary blobs. We download each referenced file before migration, re-encode it as base64, and upload it to Freshdesk via the TicketAttachment API object, mapping FileName and Body fields along with the target TicketId. Tickets with more than 10 attachments are flagged as high-attachment cases requiring manual verification after the automated re-attachment pass.
Desky
Custom Ticket Field
Freshdesk
Custom Ticket Field
lossyDesky custom ticket fields are detected during the source scan and pre-created in Freshdesk as matching custom fields before any ticket data is imported. Field type mapping follows: Desky text fields map to Freshdesk text fields, dropdowns map to picklist fields, date fields map to date fields. We skip any Desky custom field with a double-quote character in the field name, as Freshdesk's API does not support custom fields with double quotes in the name.
| Desky | Freshdesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Agent | Agent (User)1:1 | Fully supported | |
| Customer | Contact1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Knowledge Base Article | Article1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Attachment | TicketAttachmentlossy | Fully supported | |
| Custom Ticket Field | Custom Ticket Fieldlossy | 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.
Desky gotchas
No publicly documented API complicates programmatic migration
Furniture product and software product share the same brand name
Attachment handling requires manual re-attachment
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
Pair-specific challenges
Migration approach
Source audit and CSV extraction
We extract data from Desky using the admin-level bulk CSV export available in the platform. We audit Tickets, Agents, Customers, Companies, Tags, and Knowledge Base Articles, and flag any custom ticket field definitions. We also document automation rules for the written inventory handoff, since these do not migrate as configuration. During this step we confirm which Desky product is in scope by referencing the desky.support domain, since the Desky brand also refers to a furniture company (desky.com) that shares search results.
Freshdesk plan verification and schema pre-creation
We confirm the destination Freshdesk plan includes API access (Blossom $29+ required) and custom field support. We pre-create any custom ticket fields, custom contact fields, and Knowledge Base categories or folders in Freshdesk before importing any data, matching field types and validation rules from the Desky audit. This ensures the import encounters no schema-mismatch rejections.
Attachment download and staging
We parse the attachment URL references from Desky's CSV export, download each file, and stage it with original filename and MIME type preserved. We identify high-attachment tickets (more than 10 files) and flag them for manual verification. We also flag any attachments hosted at non-resolving URLs for customer review.
Data transformation and CSV validation
We transform the extracted CSV into Freshdesk-compatible import format, mapping Desky field names to Freshdesk API field names, resolving Company references before Contact import, and splitting any multi-value fields (for example, Desky tag strings) into Freshdesk's expected format. We run a validation pass against the formatted CSV to catch field-length violations, missing required fields, and encoding issues before any import job begins.
Bulk import in dependency order
We import data into Freshdesk in dependency order: Companies first, then Agents, then Contacts (with CompanyId resolved), then Tickets (with requester and assignee resolved), then Tags applied to Tickets and Articles. Knowledge Base Articles import last with category assignment resolved. Each phase emits a row-count reconciliation report. We use Freshdesk's API v2 for all inserts, applying exponential backoff on rate-limit responses.
Attachment re-attachment and post-import verification
We re-upload all staged attachments to Freshdesk via the TicketAttachment API, mapping each file to its target Ticket by ticket number. We run a spot-check verification on 20-50 random ticket records to confirm subject, status, assignee, and conversation thread integrity. We deliver a KB article count reconciliation and a high-attachment ticket report for manual review. We do not migrate Desky's automation rules as configuration; we deliver the automation inventory document for the customer's admin to rebuild in Freshdesk's Scenario Automations or Dispatcher Rules.
Platform deep dives
Desky
Source
Strengths
Weaknesses
Freshdesk
Destination
Strengths
Weaknesses
Complexity grading
Standard Helpdesk migration. 1 of 7 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Desky and Freshdesk.
Object compatibility
1 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
Desky: Not publicly documented.
Data volume sensitivity
Desky 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 Desky to Freshdesk migration scoping. Not seeing yours? Book a call.
Walk through your Desky to Freshdesk migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Desky
Other ways to arrive at Freshdesk
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.