I’m trying to push structured messages via the Open Messaging API to inject trace IDs into the guest context. The goal is to capture the trace_id when the user clicks a Quick Reply button, which then triggers a Data Action to update our OTel spans.
The problem is the payload structure for the quick_reply action. The docs are vague on what gets passed back to the webhook when the user interacts. I’ve tried nesting the trace ID in the text field and also in a custom metadata object, but nothing seems to persist to the subsequent API call.
Here’s the JSON I’m sending to POST /api/v2/conversations/messaging/messages:
{
"to": { "id": "guest-id-123" },
"text": "Select an option",
"actions": [
{
"type": "quick_reply",
"text": "Support",
"payload": {
"trace_id": "otel-span-abc-123",
"action": "route_to_support"
}
}
]
}
When the webhook fires, I only see text: "Support". The payload object is missing entirely. Am I supposed to use the text field as the only reliable carrier for this data? Or is there a specific field name in the actions array that Genesys Cloud expects for custom data?
I need the trace_id to survive the click event so I can correlate the web message with the backend Data Action execution.