Data Prep Tips for Migrating Threads and Conversations into Zoho Desk

Data Prep Tips for Smooth Migration of Critical Modules: Threads and Conversations

Moving your customer support data from a legacy system into Zoho Desk is a strategic step towards better efficiency, scalability and customer experience. How well it goes depends heavily on the completeness and accuracy of the data being transferred, particularly for critical modules like Threads, which hold the actual communication history between agents and customers. This guide covers the most common issues seen with missing or badly formatted Threads data, along with clear steps to keep your migration on track.

Threads module requirements

The Threads module in Zoho Desk captures every piece of communication tied to a ticket, including emails, internal notes and other messages. For migration to succeed, this data needs to be structured correctly in a CSV file with the following mandatory fields:

  • ThreadExtId, a unique identifier for each thread
  • TicketExtId, the external ID of the associated ticket
  • Content, the actual message body
  • SendDateTime, the timestamp the message was sent, formatted as YYYY-MM-DDTHH:MM.000Z
  • ReceivedTime, the timestamp it was received, in the same format
  • Sender Email, the sender's email address
  • Direction, either In or Out
  • isPrivate, True or False depending on whether the thread is private
  • FromEmailAddress, the sender's address as it appeared in the original message
  • To, the recipient or recipients of the message

None of these fields are optional. Leaving any out can cause migration errors or lost data.

Handling missing or incomplete content

A frequent problem is blank content in the Threads module. Since Content is mandatory, empty values need attention rather than being left as-is. Replace any empty entry in the Content column with the literal text NULL, without quotation marks, so Zoho Desk recognises the field as intentionally empty rather than missing. This small adjustment stops migration failures and ensures every thread is accounted for, even where there is no message body.

Populating the Channel field

Zoho Desk expects a Channel field describing how the communication took place, such as Email, Phone or Chat. If it is left blank, Zoho Desk defaults to Email, which can misclassify communications that actually came through live chat, phone, or another channel. It is worth populating this field correctly using one of: Email, Phone, Chat, Social Media, Web Form, or Other. Check your legacy system's export settings or documentation if you are unsure of the original channel; defaulting to Email is an acceptable fallback, but bear in mind it may skew reporting and analytics later on.

Keeping Ticket ID references consistent

Zoho Desk uses TicketExtId to link threads back to their tickets, so this needs a consistent format throughout. If the same ticket ID series used during the initial ticket import is not carried through, threads will fail to link to the correct tickets, producing orphaned or mismatched data. Before submitting, confirm that the TicketExtId values in your CSV exactly match the external IDs assigned during the initial ticket import, that there are no duplicates or gaps in the sequence, and that the format, whether TKT1001, 1001 or a custom prefix, is consistent across both systems.

Confirming the Zwitch form submission

The Zwitch form authenticates the migration request and gives Zoho Desk permission to access your data, so it is easy to overlook but essential. To check whether it has been submitted, log in to Zoho Desk, go to Setup, then Data Administration, then Zwitch, then New Migration, and check whether a migration request is listed as Submitted or Pending. Migration cannot proceed without this form, even with a perfectly formatted CSV.

Final checklist before resubmitting

  • All mandatory fields are present
  • Empty Content fields are replaced with NULL
  • The Channel field is populated, defaulting to Email only if unsure
  • TicketExtId values match those used in the initial ticket import
  • The Zwitch form has been submitted
  • The file is saved as CSV with UTF-8 encoding
  • The file has been uploaded to the agreed location, such as Zoho WorkDrive

Tips for future migrations

Review the sample CSV format Zoho Desk provides before exporting, use a validation tool or script to catch missing fields, incorrect formats or empty values ahead of time, keep a log of migration steps including form submissions and file versions, and test with a small subset of data before running the full migration.

Need help? Preparing Threads and Conversations data correctly before migration saves a great deal of back-and-forth later. Book a discovery call with 1 Cloud Consultants.