Helpdesk migration
Field-level mapping, validation, and rollback between Desky and Salesforce Service Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Service Cloud.
Desky
Source
Salesforce Service Cloud
Destination
Compatibility
7 of 10
objects map 1:1 between Desky and Salesforce Service Cloud.
Complexity
CModerate
Timeline
2-4 weeks
Overview
Moving from Desky to Salesforce Service Cloud is a structural migration that crosses from a lightweight agent-based helpdesk into an enterprise CRM platform. Desky has no documented public API, so we sequence the migration through Desky's admin-level CSV bulk export and Salesforce's REST and Bulk APIs, downloading any attachment URLs for re-upload at the destination. Desky's flat Ticket model maps to Salesforce's Case object, but Cases require a parent Account or Contact, which means we must pre-build the Account and Contact records before inserting Cases and re-establishing all ticket-to-contact links. We do not migrate Desky's internal automations, automation rules, or knowledge-base publish-state logic as code; we deliver a written inventory of these for the customer's admin to rebuild in Salesforce Flow and Salesforce Knowledge.
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
Desky platform overview
Scorecard, SWOT, gotchas, and pricing for Desky.
Destination platform
Salesforce Service Cloud platform overview
Scorecard, SWOT, gotchas, and pricing for Salesforce Service Cloud.
Data migration guide
The complete Salesforce Service Cloud migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Salesforce Service Cloud migration checklist
Pre- and post-cutover tasks for moving onto Salesforce Service Cloud.
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 Salesforce Service Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Desky
Ticket
Salesforce Service Cloud
Case
1:1Desky Tickets migrate to Salesforce Case as the primary support record. Each Ticket's subject, description, status, priority, created date, and updated date map to Case Subject, Description, Status, Priority, CreatedDate, and LastModifiedDate. The mapping resolves the Ticket's linked Customer to a Salesforce Contact record and the linked Company to a Salesforce Account record before Case insertion. Custom ticket fields are detected during the source scan, custom fields are created in Salesforce (as text, picklist, or checkbox depending on content), and field values transfer directly. Tickets in closed states (Resolved, Closed) preserve their original status mapping so that Case history reflects the same resolution state.
Desky
Customer
Salesforce Service Cloud
Contact
1:1Desky Customers map to Salesforce Contact. The customer's name, email, phone, and company association migrate directly. The Company-to-Account relationship is resolved during the Account migration pass so that Contact.AccountId is set at insert time. Any Desky Customer records without a company link create Contacts without an Account (unparented) and are flagged for the customer admin to resolve post-migration. Custom contact properties migrate to Salesforce custom fields on Contact where the destination org supports the field type.
Desky
Company
Salesforce Service Cloud
Account
1:1Desky Company records map to Salesforce Account. The Company name becomes Account Name. Address fields (street, city, state, country, postal code) map to BillingAddress fields on Account. We use Account Name as the dedupe key during import and create Accounts before Contact import so that the Contact.AccountId lookup is satisfied at the moment of insert. Company records with no associated Customers still migrate as standalone Accounts and are flagged for manual review if the customer expects a different organizational structure at the destination.
Desky
Agent
Salesforce Service Cloud
User
1:1Desky Agents map to Salesforce User records by email address match. We extract the full agent list from the Desky export and match each by email to the destination org's User table. Agents without a matching Salesforce User are held in a reconciliation queue; the customer's Salesforce admin provisions missing Users before the migration resumes. Agent role (Admin, Agent) maps to Salesforce Profile and Role assignments based on a mapping table agreed during scoping.
Desky
Knowledge Base Article
Salesforce Service Cloud
Knowledge__kav
1:1Desky KB Articles migrate to Salesforce Knowledge (Knowledge__kav object). The article title maps to ArticleTitle, body content to ArticleBody, publication status to ValidationStatus (Published, Draft, Archived), and category to DataCategoryGroup selections. HTML formatting within article bodies may require sanitization before import to prevent rendering issues in Salesforce Lightning. Articles with embedded images are flagged for manual re-embedding as Salesforce stores inline images as ContentDocument references. Draft articles migrate as draft Salesforce Knowledge articles; the customer admin publishes them post-migration.
Desky
Tag
Salesforce Service Cloud
Topic or Custom Multi-Select Picklist
lossyDesky Tags are lightweight label strings attached to Tickets and Articles. We extract all unique tags from the export and apply them as either Salesforce Topics (via TopicAssignment records linked to Case or Knowledge article) or as a custom multi-select picklist on Case, depending on the destination org's configuration. The customer chooses the tagging strategy during scoping. Tag-to-topic mapping is stored as a lookup table for audit and rebuild reference.
Desky
Attachment
Salesforce Service Cloud
ContentVersion + ContentDocumentLink
1:1Desky ticket and article attachments are stored as file URLs in the CSV export. We download all referenced files, preserve original filenames and MIME types, and re-upload them to Salesforce as ContentVersion records (file blob) linked to the parent Case via ContentDocumentLink. Files over 25 MB are flagged individually because Salesforce has a 25 MB per-file upload limit via API. Tickets with more than 10 attachments are flagged upfront so the customer can decide whether to proceed with automated re-attachment or handle them manually. The re-attachment pass runs as a separate post-import job after all Cases are inserted.
Desky
Custom Ticket Field
Salesforce Service Cloud
Custom Case Field
lossyDesky supports user-defined fields on Tickets beyond the standard set (subject, description, status, priority, assignee). We detect all custom fields during the source scan, infer Salesforce field types from the data content (text, number, date, checkbox, picklist), and create matching custom fields on the Case object in Salesforce before migration begins. Fields that cannot be typed confidently from content analysis are flagged for the customer's admin to define before the migration phase starts.
Desky
Ticket Thread / Conversation
Salesforce Service Cloud
EmailMessage + CaseComment
1:1Desky ticket conversation threads contain agent and customer replies with timestamps and author attribution. These migrate to Salesforce as EmailMessage records linked to the Case, preserving the original sender email, timestamp, and body text. Internal agent comments flagged as private in Desky migrate to CaseComment with CommentType=Private. Thread ordering is preserved by the EmailMessage MessageDate field.
Desky
Tag
Salesforce Service Cloud
Case Tag
lossyIf the destination org does not use Salesforce Topics, we apply Desky tags as Case Tag records (the legacy tagging model) which appear in the Case Tags related list in Lightning. This is a fallback option discussed with the customer during scoping. Tag cardinality is checked against the destination org's tag limits per object.
| Desky | Salesforce Service Cloud | Compatibility | |
|---|---|---|---|
| Ticket | Case1:1 | Fully supported | |
| Customer | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Agent | User1:1 | Fully supported | |
| Knowledge Base Article | Knowledge__kav1:1 | Fully supported | |
| Tag | Topic or Custom Multi-Select Picklistlossy | Fully supported | |
| Attachment | ContentVersion + ContentDocumentLink1:1 | Fully supported | |
| Custom Ticket Field | Custom Case Fieldlossy | Fully supported | |
| Ticket Thread / Conversation | EmailMessage + CaseComment1:1 | Fully supported | |
| Tag | Case Taglossy | 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
Salesforce Service Cloud gotchas
Data Export 512MB file size cap breaks large org exports
API Daily Request Limits vary by license edition
No automatic data backup in base Salesforce
Picklist dependencies silently break records when unmapped
Workflow rules fire unexpectedly during data load
Pair-specific challenges
Migration approach
Source extraction and scoping
We audit the Desky portal to establish record counts across Tickets, Agents, Customers, Companies, KB Articles, Tags, and attachments. We confirm with the customer which Desky product they are using (desky.support, not the furniture brand) and identify any custom ticket fields, unusual data structures, or historical data that should be excluded. We also confirm the destination Salesforce org edition, whether Service Cloud is already provisioned, and whether the customer has an existing Account-Contact hierarchy they want us to preserve or overwrite. The scoping output is a written migration scope document with record counts, object mapping table, and a timeline estimate.
CSV extraction and validation
We extract data from Desky using the admin-level CSV bulk export. We run a validation pass on the extracted CSV to catch field-length violations, missing required fields, encoding issues, and orphaned attachment URLs. Any tickets without a linked Customer or Company are flagged and logged with the customer for resolution before migration begins. We also download all attachment files referenced in the CSV during this phase so they are ready for the re-upload pass.
Destination schema setup
We design and deploy the Salesforce destination schema into a Sandbox org for validation. This includes creating any custom fields on Case, Contact, Account, and User to receive Desky's custom ticket fields and agent properties; configuring Case Record Types if the customer needs separate ticket types; setting up Salesforce Knowledge article types and data categories for KB article import; and creating a tag-to-topic or tag-to-custom-field mapping based on the customer's preference. We coordinate with the customer's Salesforce admin to grant the migration user the Bulk API, REST API, and ContentVersion upload permissions needed for migration.
Sandbox migration and reconciliation
We run a full migration into the Salesforce Sandbox using production-like record counts. The customer's service operations lead reconciles record counts (Accounts in, Contacts in, Cases in, Knowledge articles in, attachments in), spot-checks 25-50 random Cases against the Desky source to verify field mapping accuracy, and reviews the thread-level conversation migration. Any mapping corrections are made before production migration begins. This step also validates that Salesforce validation rules and field-level security do not reject the incoming records.
Production migration in dependency order
We run production migration in strict dependency order: Accounts (from Desky Companies), Contacts (with AccountId resolved), Users (agent mapping validated), Cases (with ContactId and AccountId resolved), EmailMessage records (ticket conversations linked to Case), Knowledge articles (with sanitized HTML), then Tags (as TopicAssignment or Case Tag). Each phase emits a row-count reconciliation report before the next phase begins. Attachment re-upload runs as a separate final pass.
Cutover, validation, and automation rebuild handoff
We freeze Desky ticket creation during cutover, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We deliver a written inventory of Desky Automation Rules and KB publish-state configurations that the customer's admin rebuilds in Salesforce Flow and Salesforce Knowledge. We support a one-week hypercare window where we resolve any reconciliation issues raised by the customer's service team. We do not rebuild Desky automation rules as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Desky
Source
Strengths
Weaknesses
Salesforce Service Cloud
Destination
Strengths
Weaknesses
Complexity grading
Moderate Helpdesk migration. 1 of 7 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Desky and Salesforce Service Cloud.
Object compatibility
1 of 7 objects need a manual workaround.
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 Salesforce Service Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Desky to Salesforce Service Cloud 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 Salesforce Service Cloud
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.