Smooth Migration of Critical Modules: Threads and Conversations | Troubleshooting Tips - Zoho Desk

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

Migrating your customer support data from a legacy system to Zoho Desk is a strategic step toward enhancing efficiency, scalability, and customer experience. However, the success of the transition relies on the completeness and accuracy of the data that is being transferred. This is especially important when it comes to critical modules like Threads, which store the actual communication history between agents and customers.

This guide addresses common challenges faced during migration, particularly around missing or improperly formatted data in the Threads module, and provides clear, actionable steps to ensure your migration proceeds without delays or failures.


Understanding the Threads module requirements

The Threads module in Zoho Desk captures all communication related to a ticket—emails, internal notes, and other messages. For a successful migration, this data must be structured correctly in a CSV file, with specific mandatory fields included. Without these, the migration process will either fail or result in incomplete records.

From the initial request, it was emphasized that the CSV must include 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 when the message was sent (format: YYYY-MM-DDTHH:MM.000Z).
  • ReceivedTime – The timestamp when the message was received (same format).
  • Sender Email – The email address of the sender.
  • Direction – Either In or Out, indicating the flow of communication.
  • isPrivate – Set to True or False depending on whether the thread is private.
  • FromEmailAddress – The sender’s email address as it appears in the original message.
  • To – The recipient(s) of the message.

Alert
These fields are non-negotiable. Any omission can lead to migration errors or data loss.


Addressing missing or incomplete data

One of the most frequent issues encountered during migration is missing or blank content in the Threads module. In the case discussed, the majority of records had no content, which poses a serious problem because Content is a mandatory field.

What to do when content is Mmissing?

If your CSV contains empty or null values in the Content column, do not leave them blank. Instead, replace all empty entries with the literal string NULL (without quotes). This ensures that Zoho Desk recognizes the field as intentionally empty and processes it correctly during migration.

For example:

ThreadExtId,TicketExtId,Content,SendDateTime,ReceivedTime,Sender Email,Direction,isPrivate,FromEmailAddress,To
1001,TKT1001,NULL,2024-05-10T10:30.000Z,2024-05-10T10:31.000Z,agent@company.com,Out,True,agent@company.com,customer@client.com

This small but crucial adjustment prevents migration failures and ensures that all threads are accounted for—even if they contain no message body.


Handling the channel field

Another missing piece is the Channel field. While not always required in every CRM, Zoho Desk expects this field to define how the communication occurred (e.g., Email, Phone, Chat).

When the Channel field is absent, Zoho Desk defaults to Email. While this may seem acceptable, it can lead to misclassification of communication channels, especially if your data includes messages from other sources like live chat or phone calls.

To avoid this, ensure that the Channel field is populated with the correct value for each thread:

  • Email
  • Phone
  • Chat
  • Social Media
  • Web Form
  • Other

If you're unsure of the original channel, refer to the export settings or internal documentation of the tool you are using. If no channel information is available, you may safely use Email as the default, but be aware that this may affect reporting and analytics later.


Validating Ticket ID consistency

Zoho Desk uses the TicketExtId as the unique identifier to link threads to their respective tickets. It is important to maintain consistent format for all tickets. 

Warning
  1. If the same ticket ID series was not used during the initial import of tickets into Zoho Desk, the migration will fail to associate threads with the correct tickets.
  2. This results in orphaned threads or mismatched data.

Before proceeding, confirm the following:

  • The TicketExtId values in your CSV match exactly with the external IDs assigned during the initial ticket import.
  • There are no duplicates or gaps in the ID sequence.
  • The format (e.g., TKT1001, 1001, or custom prefixes) is consistent across both systems.

Confirming Zwitch form submission

An often-overlooked but essential step is the Zwitch form submission. This form is required to authenticate the migration request and grant Zoho Desk the necessary permissions to access your data.

To verify if the form has been submitted:

  1. Log in to your Zoho Desk account.
  2. Navigate to Setup > Data Administration > Zwitch > New Migration.
  3. Check if a migration request is listed and marked as “Submitted” or “Pending.”

If the form is not submitted, the migration cannot proceed—even if the CSV file is perfect. Submitting the form ensures that your data is securely transferred and that the migration process is initiated on Zoho’s end.


Final steps to ensure a successful migration

Once all data corrections are made, follow this checklist before resubmitting your file:

  • ✅ All mandatory fields are present.
  • ✅ Empty Content fields are replaced with NULL.
  • Channel field is populated (default to Email if unsure).
  • TicketExtId values match those used during the initial ticket import.
  • ✅ The Zwitch form has been submitted.
  • ✅ The file is saved in CSV format with UTF-8 encoding.
  • ✅ The file is uploaded to the designated location (e.g., Zoho WorkDrive) as instructed.

After confirming these points, share the updated file with Zoho Desk support team at support@zohodesk.com. They will validate the file again and initiate the migration process.


Proactive tips for future migrations

To avoid similar issues in future data transfers:

  • Always review the sample CSV format provided by Zoho Desk before exporting.
  • Use a data validation tool or script to check for missing fields, incorrect formats, or empty values.
  • Maintain a log of all migration steps, including form submissions and file versions.
  • Test the migration with a small subset of data first to catch issues early.