Running into a weird state issue with the Set Participant Data action in Architect. I’m trying to pass a custom variable, specifically ivr_context_step, through an IVR flow so that if the caller drops and redials, the flow picks up where it left off. The logic seems sound, but the variable isn’t persisting across the session boundary like the docs imply.
Here is the JSON config for the Set Participant Data node:
{
"name": "Save IVR Context",
"settings": {
"data": {
"ivr_context_step": {
"value": "{{flow.ivr_step_counter}}"
}
}
}
}
The flow variable flow.ivr_step_counter is definitely populated at this point. I’ve verified this by logging it to a debug webhook right before the Set Participant Data action fires. The webhook payload shows the correct integer value. But when the caller hangs up and comes back, the participant.custom.ivr_context_step is null.
I’m using the Genesys Cloud API to inspect the participant data in real-time during the call. The GET request to /api/v2/interactions/participants/{participantId} shows the custom data object is empty. No errors in the Architect logs, just silence. It’s like the Set Participant Data action is firing but writing to a ghost session.
Is there a delay in the propagation of custom participant data? Or am I missing a specific flag in the JSON to force persistence? I’ve tried adding a small delay after the set action, but that didn’t change anything. The standard built-in variables like callerNumber persist fine, so it’s not a session timeout issue. Just the custom ones.
Any ideas on why the custom data isn’t sticking? I’ve been staring at this for hours and it feels like I’m missing something obvious about how the data action handles custom keys versus system keys.