Looking for advice on a specific mapping issue we are hitting during our migration from Zendesk to Genesys Cloud. We are trying to backfill historical ticket data using the Interactions API, specifically POST /api/v2/interactions. The goal is to create a unified view where legacy Zendesk tickets appear as historical interactions in the Genesys Cloud interface, similar to how Zendesk handles ticket history natively.
When we send the payload, the API returns a 400 Bad Request error. The response body contains the following error message:
"Invalid field mapping for externalReferenceId. The provided value does not match the expected format for cross-platform correlation."
We are using the Genesys Cloud REST API (version v2) and our migration script is running in a Python 3.10 environment. The externalReferenceId field is being populated with the Zendesk Ticket ID (e.g., 12345678), which is a standard integer. In Zendesk, this ID is the primary key for all ticket operations. In Genesys Cloud, we assumed this field would accept the same integer format to link the interaction to our internal CRM records.
However, the documentation is vague about whether this field requires a specific prefix (like zendesk_ticket_) or if it must be a UUID. We have tried:
- Sending the raw integer:
12345678 - Sending it as a string:
"12345678" - Adding a prefix:
"zendesk_ticket_12345678"
All attempts result in the same 400 error. We suspect there might be a schema validation rule in Genesys Cloud that differs significantly from Zendesk’s flexible API structure. In Zendesk, we could often push data with minimal validation, but Genesys Cloud seems much stricter.
Is there a specific format required for the externalReferenceId when migrating from Zendesk? We need to ensure that agents can see the full history of customer issues, just like they did in Zendesk. Any insights on the correct payload structure would be greatly appreciated. We are currently blocked on this step and need to resolve it before proceeding with the full data migration.