Set Participant Data action dropping custom variables in Architect

Stuck on passing custom metadata through an IVR flow. I need to capture a session ID from a webhook and push it into the conversation so downstream skills can see it.

The docs state: “Use the Set Participant Data action to add, update, or remove data for a participant in a conversation.” Seems straightforward.

I’ve wired up a Data Action to call an external service, get the JSON payload, and then use a Set Participant Data action. Here’s the JSON configuration I’m using for the action:

{
 "action": "setParticipantData",
 "data": {
 "custom.sessionId": "{{sessionId}}"
 }
}

The sessionId variable is populated correctly from the previous step. I can see it in the debug logs. But when the conversation reaches the next step, the custom data is gone. Nothing shows up in the participant data view.

Tried using custom:sessionId as the key. Same result. Tried just sessionId. Still nothing.

Checked the API docs for /api/v2/conversations. The endpoint supports custom data, but Architect actions are supposed to handle this automatically.

Is there a specific format required for the key? The docs don’t mention it. Just says “key-value pairs.”

Also, does the action require the conversation to be in a specific state? I’m doing this right after the call connects, before any skill group transfer.

Here’s the full flow snippet:

  1. Call starts
  2. Data Action: GET external service
  3. Set Participant Data: custom.sessionId = {{sessionId}}
  4. Transfer to skill group

Step 3 completes without error. No red flags in the Architect logs. But the data doesn’t persist.

Anyone else hit this? Need to know if I’m missing a step or if this action is broken for custom keys.