Hey everyone, I’ve run into a really strange issue with a Data Action webhook configured to create a ServiceNow incident from a Genesys Cloud Architect flow. The flow triggers on a specific IVR menu selection, capturing conversation.id, participant.id, and custom attributes like customer.tier and issue.category.
The webhook endpoint points to our ServiceNow MID Server REST API. When tested via Postman with the exact same JSON structure, the request succeeds with a 201 Created. However, when Genesys Cloud executes the Data Action, the MID Server logs show a 400 Bad Request. The error response from ServiceNow indicates: Invalid JSON structure: expected object at path $.payload.customer.tier.
Here is the JSON payload being sent by Genesys:
{
"sysparm_value": {
"short_description": "IVR Issue: {{conversation.summary}}",
"caller_id": "{{participant.id}}",
"u_customer_tier": "{{customer.tier}}",
"u_issue_category": "{{issue.category}}"
}
}
I have verified that customer.tier is populated correctly in the Genesys conversation context using the Debug tool in Architect. The value is a string, e.g., “Gold”. The ServiceNow table schema expects a string for u_customer_tier.
Cross-referencing the Genesys Docs, it suggests that custom attributes should be passed as key-value pairs. I have also tried wrapping the values in quotes explicitly within the Architect expression editor, but the behavior remains identical.
Is there a known issue with how Genesys Cloud serializes custom attributes in Data Action webhooks? Or is the MID Server parsing the sysparm_value wrapper incorrectly? The MID Server version is 9.36, and the Genesys Cloud instance is on the latest release.
Any insights into why the nested object structure fails here would be appreciated. I am considering flattening the payload, but I would prefer to understand the root cause first.