We’re porting over a complex IVR from Twilio to Genesys Cloud. In Twilio we’d just stash values in the session context and pull them later. Here we’re trying to use the Set Participant Data action to push custom variables onto the conversation for a subsequent Data Action call.
The flow is simple. Collect input. Set participant data. Call external API. But the external Data Action is receiving empty values for the keys I just set.
Here’s the JSON payload I’m sending in the Set Participant Data action:
{
"attributes": {
"custom_order_id": "{{CollectInput.Value}}",
"customer_tier": "gold"
}
}
I’ve verified the CollectInput.Value is correct by logging it right after collection. It’s there. The Set Participant Data action completes with status 200. No errors in the flow log.
Then I have a Data Action that calls a mock endpoint. I’m mapping the input to {{ConversationData.ParticipantAttributes.custom_order_id}}. The result is always empty string.
I’ve tried waiting 1 second after the set action. Didn’t help. I’ve tried using the Update Conversation action instead, but that requires more scopes and feels like overkill for just setting a couple of vars. Also, the docs say Set Participant Data is the way to go for this.
Is there a delay in propagation? Or am I referencing the wrong path in the Data Action input mapping? The docs mention ParticipantAttributes but don’t specify if it’s immediate or eventual.
Also, I noticed in the Genesys UI under the active conversation, the attributes show up under the participant node, but only after the flow has fully completed. This suggests it might be a timing issue with how the Data Action reads the state.
Any ideas on how to force the read to see the written data? Or is there a different action I should be using to pass data between steps in the same flow?
We’re on the latest Architect version. The flow is published. No draft issues.