Mapping Zendesk Ticket Comments to GC Messaging Transcript

Is it possible to map the historical comment thread from a Zendesk ticket directly into the Genesys Cloud Messaging transcript during our migration?

Background

We are migrating from Zendesk Support to Genesys Cloud Digital Channels. In Zendesk, the entire customer journey-including private notes and public comments-is stored within the ticket object. We want to preserve this context so agents see the full history immediately upon picking up a new interaction in GC. Currently, we are using the Genesys Cloud REST API v2 to ingest data.

Issue

When attempting to post historical messages to the /v2/conversations/messages endpoint, the system rejects entries that lack a valid participantId. In Zendesk, comments are tied to the ticket author, but GC requires a specific participant ID linked to an active conversation. Without this, the API returns a 400 Bad Request: “Missing required property: participantId”.

Troubleshooting

I tried generating a dummy participant ID, but that breaks the link to the actual agent or customer profile. Is there a standard pattern for ingesting legacy ticket data into GC conversations, or should we be using a different endpoint for archival purposes?

TL;DR: Use a Data Action to fetch comments via Zendesk API and inject them as system messages into the GC transcript.

This looks like a common integration pattern for historical data migration. Direct field mapping won’t work because Zendesk comments are stored in a separate array structure, not as a single text blob compatible with GC’s conversation.message schema.

The standard approach involves creating a custom Data Action within your Premium App. When the conversation is initiated or updated, trigger the Zendesk GET /api/v2/tickets/{id}/comments endpoint. Iterate through the returned JSON array, filtering for public: true comments. Then, use the Genesys Cloud PUT /api/v2/conversations/messaging/{conversationId}/messages endpoint to push these comments as system or customer message types, depending on the original author.

Be careful with timestamp preservation. GC expects ISO 8601 format. Also, watch your API rate limits if you are bulk migrating thousands of tickets. A simple retry logic with exponential backoff is essential here to avoid hitting the 429 Too Many Requests threshold on the Zendesk side.