Avoid Zoho Desk Migration Roadblocks with Correct External IDs

Avoid Data Migration Roadblock Using Correct Ticket and Comment External IDs

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.

Why external IDs matter in migration

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.

Submit migration files in CSV format only

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.

The critical sequence: parent modules first, then child entities

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:

  1. Accounts
  2. Contacts
  3. Tickets
  4. Knowledge Base

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.

If the ticket import is incomplete or incorrect

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.

Note: Reverting an import will erase any changes made after the initial upload, including status updates, reassignments or custom field changes. It is worth backing up the current state of your Zoho Desk instance before reverting, making sure the new import includes TicketExtId and CommentExtId, and testing with a small batch of data before running the full import.

Preparing your CSV files for migration

Mandatory fields for comments:

  • CommentExtId, which must be unique and consistent across every import
  • TicketExtId, which must match the external ID of an existing ticket
  • Content, the actual text of the comment

Optional fields with default behaviour:

  • Commenter Email, matched to an active agent if provided, otherwise the importer's user becomes the owner
  • Commented Time, defaulting to the current timestamp if omitted
  • isPublic, defaulting to False unless set to True to make the comment visible to customers

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.

Final checklist

  • Confirm all parent modules, especially Tickets, have been imported with external IDs
  • Convert backup files to CSV format
  • Reimport tickets with proper TicketExtId mapping if needed
  • Update your comments CSV with CommentExtId and TicketExtId fields
  • Confirm completion with your support contact once the updated files are in place
Need help? Ticket and comment migrations with external ID mapping are exactly where an experienced Zoho partner earns its keep. Book a discovery call with 1 Cloud Consultants.