Set Participant Data action not persisting custom variables for subsequent IVR steps

Running into a weird issue with the Genesys Cloud Architect Data Actions. I need to pass a custom variable, customerTier, from an initial IVR menu to a downstream queue routing logic.

I’m using the Set Participant Data action. According to the docs:

“Use this action to set custom data on the participant. This data is available for use in subsequent actions in the flow.”

Here is my JSON configuration for the action:

{
 "actionType": "SetParticipantData",
 "parameters": {
 "data": {
 "customerTier": "{{system.userInput.lastInput}}"
 }
 }
}

The system.userInput.lastInput correctly captures ‘GOLD’ or ‘SILVER’ when I test it in the simulator. The action completes with a 200 OK status (or whatever the internal equivalent is in Architect).

However, when I hit the next action, a Get Participant Data call to retrieve customerTier, it returns null.

{
 "actionType": "GetParticipantData",
 "parameters": {
 "key": "customerTier"
 }
}

I’ve checked the scope. I’m not using any external API calls in between. It’s just a simple IVR → Set Data → Get Data → Route.

Is there a delay in propagation? Or do I need to specify a specific scope like conversation vs participant in the JSON? The docs don’t mention a scope parameter for SetParticipantData like they do for some other actions.

Also, I’m triggering this flow via the API for testing using a service account. Could that affect how participant data is stored? The service account has conversation:view and conversation:write scopes.

Any ideas why the data isn’t sticking?