What is the correct way to migrate Zendesk custom fields to Genesys Cloud via the Platform API?

What is the standard approach to map our legacy Zendesk ticket attributes to Genesys Cloud interaction attributes during a bulk migration? We are currently using the PUT /api/v2/conversations/{conversationId}/customattributes endpoint to update interaction attributes, but the custom attribute mapping seems to be ignored when the interaction is processed.

We have identified that Zendesk uses a flat key-value structure for custom fields, whereas Genesys Cloud expects a specific type definition within the schema. When we attempt to push the configuration using our migration script (Python 3.9, genesys-cloud-sdk-python v2.1.0), the API returns a 200 OK but the attributes do not appear in the UI or subsequent webhooks.

Steps to reproduce:

  1. Create a new Zendesk custom field named customer_tier.
  2. Map this field to a Genesys Cloud custom attribute of type String in the schema.
  3. Execute the PUT /api/v2/conversations/{conversationId}/customattributes request with the updated data.
  4. Trigger a test interaction and inspect the payload in the Interaction Debugger.

The attribute is missing from the context. Is there a separate API call required to register the attribute definition before referencing it in the interaction? Our timezone is Europe/Paris, and we are seeing this behavior in the eu-west-1 region.

1 Like