Looking for advice on a persistent integration failure between Genesys Cloud Outbound Connectors and our ServiceNow instance via the Data Action framework. We are attempting to automate ticket creation for failed outbound dial attempts using the conversation.outbound.failed trigger, but the webhook delivery to ServiceNow is consistently failing with a 500 Internal Server Error from the NICE CXone platform side, despite the ServiceNow endpoint returning 200 OK for valid payloads.
Background
The environment involves Genesys Cloud (EU-West-1) connecting to a ServiceNow Madrid instance. The integration uses a custom Data Action configured with a POST method to /api/now/table/incident. The payload is constructed using the conversation object from the trigger. We have verified the ServiceNow MID server is reachable and the OAuth token rotation is functioning correctly.
Issue
When the Data Action executes, the Genesys Cloud logs show:
However, the actual JSON payload sent to ServiceNow (captured via Fiddler on the outbound proxy) clearly contains the caller_id field, populated from conversation.participants[0].address. The ServiceNow REST API logs confirm receipt of the request but reject it due to a malformed JSON structure that seems to be generated by the Genesys Cloud Data Action serializer, not our input.
Troubleshooting
- Verified the Data Action schema definition in Genesys Cloud matches the ServiceNow incident table fields exactly.
- Tested the ServiceNow endpoint directly with Postman using a static JSON payload; it succeeds without issue.
- Checked the Genesys Cloud Data Action debug logs; the input object shows
caller_idas a string, but the serialized output appears to be missing the key entirely or wrapping it in an unexpected nested object structure. - Reviewed the Genesys Cloud documentation for Data Action webhooks, specifically regarding how null values or missing optional fields are handled during serialization.
Has anyone encountered a scenario where the Data Action serializer drops specific keys despite them being present in the input object? Is there a known issue with the conversation.participants array handling in the current EU-West-1 release?
Error: Data Action execution failed. HTTP Status: 500.
Message: Payload validation error: Field 'caller_id' is required but not found in schema.