We’re trying to instrument our outbound calling flow with OpenTelemetry. The goal is to propagate the trace context from the triggering Data Action into the Genesys Cloud conversation via the POST /api/v2/conversations/calls endpoint.
The setup involves a Studio flow that hits a Data Action to prepare the call details, then triggers an API call. I’m using the GetRESTProxy snippet to make the request. The trace ID is being captured correctly in the Data Action, but the Genesys API seems to reject the payload when I include the custom headers or specific attributes in the outboundCall object.
Here’s the JSON payload I’m sending:
{
"from": {
"phoneNumber": "+18005550199"
},
"to": [
{
"phoneNumber": "+15551234567"
}
],
"wrapUpCode": null,
"outboundCall": {
"traceId": "0af7651916cd43dd8448eb211c80319c",
"spanId": "b7ad6b7169203331"
}
}
The GetRESTProxy call returns a 403 Forbidden error. The response body is empty, which isn’t helpful. When I strip out the outboundCall object and just send a standard call payload, it works fine. The agent token used for the request has all the necessary permissions (call:write, conversation:write).
I’ve checked the documentation for POST /api/v2/conversations/calls and don’t see any explicit mention of custom attributes in the outboundCall object being restricted. Is there a specific schema validation that’s blocking this? Or is there a different way to inject trace context for outbound calls initiated via the API?
The error happens immediately, so it’s likely a validation issue on the Genesys side before the call is even attempted. I’ve tried using query parameters for the trace ID as well, but that didn’t work either.