Migrating data from an existing helpdesk platform into Zoho Desk is a critical step for keeping operations running smoothly, preserving customer history, and protecting team productivity. The process can get complicated when certain technical prerequisites are missed, particularly around external identifiers and correct data formatting. This article covers the most common roadblocks encountered when importing parent modules such as Tickets and their child entities, including Comments, Threads and Attachments.
One of the most common roadblocks in a Zoho Desk data migration is missing External IDs (ExtID) when parent modules are first imported. The CommentExtId and TicketExtId fields are not optional, they are mandatory for backend migration workflows. These identifiers act as unique references that let Zoho Desk correctly link child records, such as comments, to the parent record they belong to, such as a ticket.
If tickets are imported without a mapped TicketExtId, the system cannot establish the relationships needed for downstream modules like Comments, Threads and Attachments. Even where the underlying data exists, migration cannot proceed because the reference points needed to preserve data integrity are missing.
Where a CommentExtId is missing from the CSV file, Zoho Desk can generate these automatically using internal scripts, though this only applies to the initial migration. Any future updates or residual migrations must reuse the same CommentExtId values, otherwise the system may treat new entries as duplicates and create redundant data.
A frequent point of confusion is customers submitting backups in XLSX format. Zoho Desk's backend migration tools are designed to process only CSV files, which keeps parsing consistent and accurate across systems. If a backup arrives as XLSX, the migration team cannot proceed until it is converted, which can delay a migration that is already underway. Exporting as CSV from Excel or Google Sheets is a quick step: go to File, then Save As, and choose "CSV (Comma delimited)" from the file type dropdown.
Zoho Desk enforces a strict dependency chain during migration. Parent modules must be imported first, and only once they have migrated successfully can child modules be processed. The sequence is non-negotiable. The recommended order is:
Once these parent modules import successfully, ideally with external IDs mapped, child entities such as Threads, Comments and Attachments can follow. Attempting to migrate comments before tickets will fail, since there is no parent record to link them to, and the system will reject the file due to missing TicketExtId references even if the comment data itself is complete. This dependency keeps data consistent and prevents orphaned records, so it is worth verifying each stage is fully finished before moving to the next.
Where tickets have been imported without proper external ID mapping, migration hits a dead end, since the system cannot work out which comments belong to which tickets. This makes it impossible to preserve conversation history or assign ownership correctly. In this situation, the only real option is to revert the ticket import and reimport the data with the external ID field properly mapped.
Mandatory fields for comments:
Optional fields with default behaviour:
If CommentExtId values do not exist in your source system, Zoho Desk can generate them during migration, but this should only happen once. Future updates must reuse the same IDs to avoid duplication.