Just noticed that the initial bulk import of our legacy Zendesk macros into the Genesys Cloud Bot training data is failing consistently. We are trying to migrate our top 500 most-used macros to serve as initial intents for the new conversational bot. The process works fine for the first 10-15 items, but then the API starts rejecting subsequent requests.
The environment is Genesys Cloud v2024.03 running in eu-west-1. The migration script is a custom Python utility using genesys-cloud-python-sdk version 1.6.0. We are mapping Zendesk macro actions directly to Bot intents, assuming a 1:1 relationship for simplicity, similar to how we mapped ticket forms to routing rules earlier this week.
The error response from the POST /api/v2/conversation/bots/trainingdata endpoint is a 400 Bad Request. The response body contains:
{
"errors": [
{
"code": "invalid_argument",
"message": "Training data item 'intent_name' contains invalid characters or exceeds length constraints."
}
]
}
This is confusing because the intent names are derived directly from Zendesk macro names, which are alphanumeric with underscores. For example, password_reset_request works, but billing_dispute_escalation fails. In Zendesk, these macro names were perfectly valid identifiers. Is Genesys Cloud enforcing stricter naming conventions for training data intents than for standard routing labels?
We have verified that the JSON payload structure matches the schema exactly, including the required language field set to en-US. The issue seems to trigger specifically when the intent name length exceeds 25 characters, but the documentation does not explicitly state a hard limit for intent names in the training data API.
Has anyone encountered similar restrictions during a Zendesk-to-GC bot migration? Are we missing a normalization step for the intent names before pushing them to the training data API? We need to resolve this to proceed with the bot certification process.