Helpdesk migration
Field-level mapping, validation, and rollback between DoneDone and Freshdesk. We move data and schema; workflows are rebuilt natively in Freshdesk.
DoneDone
Source
Freshdesk
Destination
Compatibility
9 of 10
objects map 1:1 between DoneDone and Freshdesk.
Complexity
BStandard
Timeline
2-3 weeks
Overview
Moving from DoneDone to Freshdesk is primarily a record-type and workflow remapping. DoneDone organizes work around Issues with a flexible project-level Workflow model where each project defines its own status progression; Freshdesk uses a Tickets model with configurable pipelines, groups, and agents. The migration requires enumerating every distinct DoneDone project workflow, mapping each status sequence to a Freshdesk pipeline and set of status values, and resolving the DoneDone multi-watcher model (which allows multiple watchers per Issue) against Freshdesk's single assigned agent per ticket. We flatten the watcher list to a multi-select custom field and assign the primary watcher as the ticket agent by default. Private comments migrate as Freshdesk internal notes to prevent exposing internal team discussions to end customers. Saved Replies become Freshdesk Canned Responses. We do not migrate DoneDone Workflows, Automations, or Auto-responders as code; we deliver a written inventory of every workflow requiring rebuild in Freshdesk's Rule Engine post-migration.
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 DoneDone 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.
DoneDone
Issue
Freshdesk
Ticket
1:1DoneDone Issues map directly to Freshdesk Tickets. The Issue title becomes Ticket subject, description becomes Ticket description, status maps to Freshdesk status (Open, Pending, Resolved, Closed), priority maps to Freshdesk priority (Low, Medium, High, Urgent). We preserve the original DoneDone issue ID in a custom field donedone_issue_id__c for audit reference. Linked tasks and sub-issues map to Freshdesk ticket links or are migrated as separate tickets with a parent-child relationship preserved through a custom field.
DoneDone
Project
Freshdesk
Group
1:1DoneDone Projects map to Freshdesk Groups. The project name becomes the group name, and the default fixer (project-level assignee) becomes the group lead. If a DoneDone project maps to a specific Freshdesk product or business unit, we create a Freshdesk Product record and associate tickets to it. Projects without an obvious Freshdesk group equivalent become a dedicated group that the customer names post-migration.
DoneDone
Workflow
Freshdesk
Pipeline + Status
lossyEach distinct DoneDone project Workflow enumerates its own set of Status values and permitted transitions. We map each unique DoneDone status to a Freshdesk ticket Status value. If multiple DoneDone projects share a Workflow, they share one Freshdesk Pipeline. If projects have diverged into unique Workflows, we create separate Freshdesk Pipelines and configure a Rule Engine condition to route incoming tickets to the correct pipeline based on project tag or group. Status color mapping transfers from DoneDone to Freshdesk's status color palette where the destination UI supports it.
DoneDone
Tag
Freshdesk
Tag
1:1DoneDone tags migrate as Freshdesk tags on the corresponding tickets. Tags are a flat string array in DoneDone and map directly to Freshdesk's tag model. We preserve tag-to-issue associations by applying the original tag strings to migrated tickets. If a ticket had multiple tags in DoneDone, the migrated ticket in Freshdesk receives all of them.
DoneDone
Saved Reply
Freshdesk
Canned Response
1:1DoneDone Saved Replies are template text snippets that agents use to respond to recurring ticket types. These map to Freshdesk Canned Responses. We preserve the Saved Reply name, content, and any shortcode or trigger text. Canned Responses in Freshdesk are associated with a Group or available globally; we default to global availability and let the customer's admin scope them to specific groups post-migration.
DoneDone
Private Comment
Freshdesk
Internal Note
1:1DoneDone private comments (visible only to internal team members, not to the end customer) map to Freshdesk Internal Notes on the corresponding ticket. This is a required mapping because exposing internal team discussions to end customers via Freshdesk's public reply would be a data exposure risk. We flag this mapping explicitly during scoping and confirm with the customer before migration begins.
DoneDone
Watcher (primary)
Freshdesk
Agent (assigned)
1:1DoneDone Issues have a primary watcher in addition to any secondary watchers. We map the primary watcher to the Freshdesk ticket's assigned agent field. Secondary watchers are preserved as a comma-separated string in a custom multi-select field donedone_watchers__c on the Freshdesk ticket so that the customer can reference the original watcher list. The customer verifies during scoping that single-agent assignment semantics in Freshdesk workflow routing are acceptable.
DoneDone
Attachment
Freshdesk
Attachment
1:1DoneDone attachments on Issues reference files stored in Google Drive integration. We download each attachment from the source URL, re-upload it to Freshdesk's file storage using the Freshdesk attachments API, and attach it to the corresponding ticket. File name, size, and uploader metadata transfer. If the source file URL is inaccessible (revoked Drive permission or deleted file), we flag the attachment as skipped with a record in the migration report for the customer to address manually.
DoneDone
Task History
Freshdesk
Ticket Conversation
1:1Every DoneDone Issue carries a timestamped history log of field changes (status transitions, assignee changes, priority changes, description edits). We replay this history as a series of internal notes on the Freshdesk ticket in chronological order, each annotated with the timestamp and the field that changed. This preserves the full audit trail of who changed what and when without requiring the customer to navigate a separate history view.
DoneDone
Due Date
Freshdesk
Due By
1:1DoneDone Issue due dates map to Freshdesk ticket_due_by. If the original due date has passed, we flag the ticket in the migration report and set Freshdesk's fr_due_by timestamp accordingly; tickets with past due dates are not automatically escalated but are visible for the customer's admin to prioritize post-migration.
| DoneDone | Freshdesk | Compatibility | |
|---|---|---|---|
| Issue | Ticket1:1 | Fully supported | |
| Project | Group1:1 | Fully supported | |
| Workflow | Pipeline + Statuslossy | Fully supported | |
| Tag | Tag1:1 | Fully supported | |
| Saved Reply | Canned Response1:1 | Fully supported | |
| Private Comment | Internal Note1:1 | Fully supported | |
| Watcher (primary) | Agent (assigned)1:1 | Fully supported | |
| Attachment | Attachment1:1 | Fully supported | |
| Task History | Ticket Conversation1:1 | Fully supported | |
| Due Date | Due By1: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.
DoneDone gotchas
Reporting data cannot be exported as structured records
Private comments require explicit visibility handling
Flexible project structure causes workflow divergence over time
Multi-watcher Issue model requires flattening for most destinations
API access is permission-gated to match application access
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
Discovery and scope enumeration
We audit DoneDone across all Projects, enumerating every distinct Workflow in use and capturing the full status set, transition rules, and naming for each. We extract a representative sample of Issues across each Project to identify common tag patterns, Saved Replies usage, attachment volume, and the proportion of issues with multiple watchers or private comments. We confirm the customer's Freshdesk tier (must be Blossom or above for API access) and identify any Freshdesk Products or Groups that should map to DoneDone Projects. The discovery output is a written scope document with the enumerated workflow map, object count estimates, and any explicit mapping decisions the customer must approve.
Workflow mapping design and confirmation
We produce a status-to-status mapping table for every distinct DoneDone Workflow, mapping each DoneDone status to a Freshdesk ticket status value. If multiple DoneDone Workflows are functionally equivalent, we consolidate them into a single Freshdesk Pipeline. For Workflows with non-standard status sets that have no direct Freshdesk equivalent, we propose a mapping and present it to the customer's admin for explicit approval. We configure Freshdesk Pipelines and Status values in the destination account before any data moves. Saved Replies map to Freshdesk Canned Responses during this phase so that the customer can verify template content and shortcode triggers.
Schema pre-creation in Freshdesk
We create any required custom fields in Freshdesk (donedone_issue_id__c for audit reference, donedone_watchers__c for preserved watcher lists, and any other fields the customer's reporting needs require). We configure Freshdesk Products if the customer wants product-level ticket tracking, and we set up Groups that map to DoneDone Projects. We verify that the Freshdesk Rule Engine has the routing conditions needed to send incoming tickets to the correct pipeline based on project tag or group. All schema work happens in the customer's Freshdesk account before the first record is migrated.
Demo migration and reconciliation
We run a migration of a representative sample (typically 100-500 records across multiple Projects) into a test environment or the production Freshdesk account with a known subset of data. The customer reconciles record counts, spot-checks 25-50 random tickets against the DoneDone source for field accuracy, and confirms that private comments migrated as internal notes, watchers preserved in the custom field, and Saved Replies accessible as Canned Responses. Any mapping corrections (status mapping errors, custom field misplacements, missing attachments) are documented and corrected before the full migration runs.
Full migration in dependency order
We run the full migration in record-dependency order: Groups and Products first (so Freshdesk lookup targets exist), then Tickets (with Issue history replayed as internal notes, primary watcher mapped to agent, secondary watchers in the custom field, and attachments downloaded and re-uploaded), then Tags applied to tickets, then Canned Responses verified. Each phase emits a row-count reconciliation report. If the migration encounters API rate limits on Freshdesk's side (200 calls per minute on Growth, 400 on Pro, 700 on Enterprise), we apply exponential backoff and batch chunking to stay within the limit without losing records.
Cutover, validation, and workflow inventory handoff
We freeze DoneDone writes during the cutover window, run a final delta migration of any records modified during the migration, and enable Freshdesk as the system of record. We deliver a written inventory of every DoneDone Workflow and Automation requiring rebuild in Freshdesk's Rule Engine, with a recommended Rule Engine trigger and condition set for each. We do not rebuild DoneDone Workflows or Auto-responders as Freshdesk rules; that is a separate engagement or an internal admin task. We provide a one-week hypercare window to resolve any post-migration reconciliation issues.
Platform deep dives
DoneDone
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 DoneDone 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
DoneDone: Not publicly documented.
Data volume sensitivity
DoneDone exposes a bulk API — large-volume migrations stream efficiently.
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 DoneDone to Freshdesk migration scoping. Not seeing yours? Book a call.
Walk through your DoneDone 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 DoneDone
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.