Trying to push custom metadata from a Genesys Cloud IVR into a downstream Data Action. The goal is to capture user_id and session_token early in the flow so they persist for the outbound API call.
Added a Set Participant Data action right after the initial Greeting. Configured it to set user_id to {{fn:getValue(inboundData, "userId")}} and session_token to a generated UUID.
The issue is that when the flow hits the subsequent Data Action (POST to internal endpoint), the user_id field is null. Checked the raw JSON payload in the Data Action response logs. The custom attributes object is empty {}.
Here is the JSON structure I’m expecting the Data Action to send:
{
"externalId": "12345",
"customAttributes": {
"user_id": "abc-123",
"session_token": "def-456"
}
}
But the actual payload looks like this:
{
"externalId": "12345",
"customAttributes": {}
}
I’ve verified the inboundData source contains the correct userId. The Set Participant Data action shows “Success” in the flow execution log. Is there a specific scope issue with Set Participant Data in IVR flows? Or does the Data Action require a different syntax to read these participant-level attributes?
Also tried mapping the variable directly in the Data Action field configuration using {{participant.customAttributes.userId}} but that just passes the literal string instead of the value.