Looking for advice on a specific integration issue between Genesys Cloud webhooks and ServiceNow via Data Actions. We have established a robust pipeline where incoming digital channel conversations trigger a webhook, which then invokes a ServiceNow Data Action to create a new ticket. The initial creation works flawlessly, returning a 200 OK and the sys_id. However, when we attempt to update the ticket status or add comments via a subsequent webhook triggered by a ‘conversation:updated’ event, the Data Action consistently returns a 400 Bad Request. The error payload from ServiceNow indicates a ‘JSON parsing error’ on the input parameters. The environment is Genesys Cloud v10.3.2 and ServiceNow Washington DC release. The webhook payload is minimal, containing only the conversation ID and the new disposition string. I have verified the ServiceNow REST API endpoint is valid and accessible via Postman with the same JWT token structure generated by the Genesys Cloud Data Action.
The Data Action configuration uses the ‘POST’ method to the ‘/api/now/table/incident’ endpoint. The body mapping includes fields for ‘state’ and ‘comments’. The error occurs specifically when the ‘state’ field is mapped to a Genesys Cloud disposition that contains special characters or non-standard encoding, such as ‘Resolved - Pending Approval’. I suspect the issue lies in how the Data Action encodes the JSON body or handles the character set before sending the HTTP request to ServiceNow. The logs show the request headers include ‘Content-Type: application/json’, but the body appears malformed in the ServiceNow audit log. Is there a known limitation with character encoding in Genesys Cloud Data Actions when sending to ServiceNow? Should I be using a different encoding method or preprocessing the disposition string within a Script Step before passing it to the Data Action? Any insights on debugging the exact JSON structure being sent would be appreciated, as the Genesys Cloud logs do not expose the full outbound HTTP body for security reasons.