Architect Data Action: Set Participant Data not persisting to outbound leg

Hey folks,

Running into a weird behavior with the Set Participant Data action in Architect. We’re trying to pass a custom variable from the inbound IVR leg to an outbound API call via a Data Action.

The setup is pretty standard. We collect an order number in the IVR, then use the Set Participant Data block to assign it to a key called order_id. Immediately after, we trigger a Data Action to call our internal CRM. The CRM endpoint expects that value in the request body.

Here’s the kicker. The Data Action logs show the variable is empty when it hits the external API. If I add a Say block right before the Data Action using the same variable expression ${participant_data.order_id}, it speaks the number correctly. So the variable exists in the flow context, but it’s not making it into the outbound HTTP request payload.

The Data Action JSON looks like this:

{
 "method": "POST",
 "url": "https://crm.example.com/api/v1/orders",
 "headers": {
 "Content-Type": "application/json"
 },
 "body": {
 "orderId": "${participant_data.order_id}"
 }
}

I’ve tried using ${context_data.order_id} as well, same result. The Set Participant Data block is configured to update the current participant. Am I missing a step to flush or sync that data before the Data Action fires? Or is there a scope issue I’m not seeing?

Thanks,