The integration keeps throwing a 400 error with a payload that just says “invalid request structure” when the Architect flow hits the custom data action. We spun this up last Tuesday to pull customer balances from our legacy billing system. The org runs on the latest release that rolled out in the Berlin region last week. I inherited the console about six months ago and the documentation on data actions versus webhooks is doing jack all for me right now.
I think the problem sits in the request mapping. The external endpoint expects a JSON body with a nested account object, but the Genesys mapping interface only shows flat key-value pairs. I tried wrapping it in a script step before the data action fires, yet the logs still show the raw string instead of proper JSON. The response header comes back with a trace ID and a 400 status. Nothing useful in the architect trace besides “external call failed”.
Divisions are making this worse. I think I might have deployed the data action to the wrong division scope, or maybe it’s an org-level setting. The console keeps asking for a target environment but it’s unclear whether that means the sandbox or the production cluster. We’ve been bouncing between the two trying to get a successful 200 back. The timeout is set to 5000ms, which should be plenty for a simple balance check.
Here is the exact response body coming back from the external service:
{
“status”: 400,
“message”: “invalid request structure”,
“trace”: “req_7782b9”
}
I think the payload formatter inside the data action is stripping the quotes or messing with the encoding. The request headers show Content-Type: application/json but the actual body arriving at the target looks malformed. We’ve tried toggling the strict validation switch in the integration settings. Nothing changed. The flow just hangs on the error handler node and the mic stays hot on the agent side because the fallback never triggers.