Helpdesk migration
Field-level mapping, validation, and rollback between Desky and Zendesk. We move data and schema; workflows are rebuilt natively in Zendesk.
Desky
Source
Zendesk
Destination
Compatibility
10 of 12
objects map 1:1 between Desky and Zendesk.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Desky to Zendesk is a cross-platform migration where the absence of a Desky public API shapes the entire approach. Desky offers a bulk CSV export from the admin panel; Zendesk accepts imports through its admin interface and REST API. We extract the CSV from Desky, run a pre-migration validation pass, transform field types to match Zendesk's schema, and re-upload attachment files to the destination before running the import. Ticket conversations, custom ticket fields, and the link between Customers and their associated Company records all require explicit mapping because Desky's data model and Zendesk's data model use different field names and relationship structures for the same objects. We do not migrate Desky's automation rules, macros, or views as code; we deliver a written inventory of these for the customer's Zendesk admin to rebuild in the target environment.
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 Zendesk, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Desky
Ticket
Zendesk
Ticket
1:1Desky Tickets map directly to Zendesk Tickets with subject, description, status, priority, assignee, and timestamps preserved. Custom ticket fields in Desky are detected during the source scan and matched to Zendesk custom ticket fields created before import. We validate that Desky field types (text, number, dropdown, checkbox, date) have equivalent Zendesk field types and flag any unsupported formats. Ticket ID from Desky is preserved in a custom field desky_ticket_id__c on the Zendesk ticket for cross-reference.
Desky
Agent
Zendesk
User (Agent role)
1:1Desky Agent accounts migrate to Zendesk Users with the Agent role. We map display name, email, and active/inactive status. If the agent email in Desky matches an existing Zendesk user, we link to that record; if not, we create a new Zendesk user. We flag agent seats that exceed the destination Zendesk Suite plan limit before committing the migration.
Desky
Customer
Zendesk
End User (Requester)
1:1Desky Customer contacts map to Zendesk End Users (requesters) with name, email, phone, and company association preserved. The link between Customer and Company in Desky translates to a link between the Zendesk End User and an Organization record. We validate email format and flag any duplicate email addresses in Desky before import to avoid Zendesk end-user conflicts.
Desky
Company
Zendesk
Organization
1:1Desky Company records map to Zendesk Organizations. Each Organization is created before importing End Users so that the organization_id lookup is satisfied at the moment of user insert. Organization name, domain, and any custom fields migrate directly. We resolve Customer-Company associations through the Organization link on the End User record.
Desky
Knowledge Base Article
Zendesk
Help Center Article
1:1Desky KB Articles map to Zendesk Help Center articles via Zendesk's /help_center/articles API or admin import. Article title, body content (HTML), publication status, and category assignment migrate. HTML formatting in Desky articles may require post-migration formatting review because paragraph breaks, embedded images, and code blocks render differently across platforms. We flag articles with heavy inline CSS or non-standard HTML for manual review.
Desky
KB Category
Zendesk
Help Center Section
1:1Desky KB categories map to Zendesk Help Center sections. We create sections in the destination Help Center before importing articles so that the section_id is available at article import time. Section name, description, and sort order migrate directly. If Desky uses a two-level category structure, we create both a parent section and a child section in Zendesk to preserve the hierarchy.
Desky
Tag
Zendesk
Tag
1:1Tags in Desky are lightweight string labels attached to Tickets and Articles. We migrate Tags as string values and re-apply them to the corresponding Zendesk Ticket and Article records during import. Zendesk tag limits (maximum 200 tags per ticket, 1,000 tags per article) are checked during scoping. Tags with special characters are normalized to Zendesk-compatible formats.
Desky
Attachment
Zendesk
Attachment
1:1Desky attachments are stored as file references in the CSV export (URLs pointing to hosted files). We download all referenced files during the migration, preserving original filenames and MIME types, then re-upload them to Zendesk via the attachment upload API. The re-upload job runs as a post-import pass and associates each file with the correct Ticket or Article record. Tickets with more than 10 attachments are flagged upfront for manual verification.
Desky
Ticket Conversation
Zendesk
Ticket Comment
1:1Desky ticket thread entries (customer replies and agent responses) map to Zendesk Ticket Comments. We preserve the author (agent vs. requester), comment body, timestamp, and public/private visibility. Internal notes in Desky migrate as private comments in Zendesk. Comment ordering is preserved by setting the Zendesk comment created_at timestamp to the original Desky timestamp.
Desky
Custom Ticket Field
Zendesk
Custom Ticket Field
lossyDesky custom ticket fields (dropdowns, checkboxes, date fields, numeric fields, and text fields) are detected during the source scan and recreated in Zendesk as matching custom ticket fields. We create the destination fields before ticket import so that the field IDs are available for mapping. Desky dependent fields (conditional display logic) have no direct Zendesk equivalent and require manual configuration of Zendesk's conditional field visibility per ticket form after migration.
Desky
Agent Group
Zendesk
Group
1:1If Desky uses agent groups to route tickets, we map those groups to Zendesk Groups. Group membership for each Agent/User is set during user import. Zendesk Groups are used for ticket routing, SLA assignment, and view filtering. If Desky does not use groups, we map all agents to the default Zendesk group and configure routing after migration.
Desky
Ticket Status
Zendesk
Ticket Status
lossyDesky ticket statuses (Open, Pending, Resolved, Closed, or custom statuses) map to Zendesk ticket statuses. We create a status mapping table during scoping: each Desky status value is assigned to a corresponding Zendesk status (new, open, pending, hold, solved, closed). If Desky uses custom status names, we either map them to the closest Zendesk standard status or create a Zendesk custom status if the Suite plan supports it.
| Desky | Zendesk | Compatibility | |
|---|---|---|---|
| Ticket | Ticket1:1 | Fully supported | |
| Agent | User (Agent role)1:1 | Fully supported | |
| Customer | End User (Requester)1:1 | Fully supported | |
| Company | Organization1:1 | Fully supported | |
| Knowledge Base Article | Help Center Article1:1 | Fully supported | |
| KB Category | Help Center Section1:1 | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Ticket Conversation | Ticket Comment1:1 | Fully supported | |
| Custom Ticket Field | Custom Ticket Fieldlossy | Fully supported | |
| Agent Group | Group1:1 | Fully supported | |
| Ticket Status | Ticket Statuslossy | 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
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
Source data extraction and scoping audit
We extract all data from Desky using the admin bulk CSV export. We audit the export scope across ticket volume, KB article count, custom field inventory, agent count, and attachment inventory. We confirm the export size limits with the customer and run a test export to validate file encoding, field headers, and row counts before committing to a migration timeline. If Desky export has character encoding issues (common with non-ASCII customer names or ticket content), we handle normalization at this stage.
Destination schema preparation in Zendesk
We configure the Zendesk destination before any data import. This includes creating custom ticket fields matching the Desky custom field types (text, dropdown, checkbox, date, numeric), configuring ticket statuses to match Desky status values, setting up Help Center sections for KB article import, and provisioning Zendesk Groups if Desky uses agent routing groups. We also activate Zendesk Guide if the customer is migrating Knowledge Base content. Schema preparation is validated through a dry-run import of a small sample of records before the full migration begins.
CSV validation and data transformation
We run a pre-migration validation pass on the Desky CSV export. This catches field-length violations (Zendesk has limits on text field length), invalid email addresses, missing required fields (subject, requester email), and encoding issues. We transform data values during this pass: Desky status names map to Zendesk status IDs, Desky priority values map to Zendesk priority integers, and date formats are normalized to ISO 8601. The validation output is a reconciliation report showing record counts, flagged rows, and transformation log.
Attachment download and staging
We extract all attachment URLs from the Desky CSV export, download each file preserving original filename and MIME type, and stage them in a local migration workspace organized by ticket ID. We log the original Desky ticket ID and filename for each attachment so that re-association in Zendesk is accurate. Tickets with more than 10 attachments are flagged in this phase for customer decision.
Ticket and user import in dependency order
We import data into Zendesk in record-dependency order: Organizations (from Desky Companies) first, then End Users (from Desky Customers) with organization_id resolved, then Users (from Desky Agents) with role assigned, then Tickets with requester_id, assignee_id, organization_id, and custom field values resolved. Each import phase emits a row-count reconciliation report before the next phase begins. We use Zendesk's /imports/tickets endpoint where available for faster throughput and lower API rate limit impact.
KB article import and comment thread restoration
We import Desky Knowledge Base articles into Zendesk Guide via the /help_center/articles import endpoint. Articles are mapped to sections using the section_id created during schema preparation. We then restore ticket comment threads by importing conversation entries against the migrated ticket IDs, preserving author, timestamp, and public/private visibility. Internal notes in Desky are marked as private comments in Zendesk.
Attachment re-upload and final validation
We re-upload all staged attachments to Zendesk via the attachment upload API, associating each file with the correct ticket or article record. We run a post-migration validation comparing Desky ticket counts and article counts against Zendesk records, spot-checking 25-50 random records for field-level accuracy. We deliver the automation and macro inventory document to the customer's Zendesk admin for rebuild. We support a one-week post-migration window for reconciliation issues.
Platform deep dives
Desky
Source
Strengths
Weaknesses
Zendesk
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 Zendesk.
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 Zendesk migration scoping. Not seeing yours? Book a call.
Walk through your Desky 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 Desky
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.