Architect Data Action: Mapping nested JSON response to flow variables

Here is the JSON payload I get back from the external CRM API:

{
 "success": true,
 "data": {
 "agent_id": "10293",
 "current_skill": "billing",
 "queue_status": "available"
 }
}

I’m building a Data Action in Architect to fetch this status before routing. The HTTP call works fine. I see the 200 OK in the debug log. But the variables aren’t populating.

I have defined two text variables in the flow: vAgentId and vCurrentSkill.

In the Data Action settings, under the Response Mapping section, I’m trying to map the nested fields. I’ve tried these paths:

  1. data.agent_idvAgentId
  2. data.current_skillvCurrentSkill

When I run the flow, the variables remain null or empty. I checked the raw response in the debug tab. It looks valid. No truncation. The Content-Type header is application/json.

I read somewhere that Architect might struggle with nested objects in the mapping step. Is that true? Do I need to flatten the JSON on the server side first? Or is there a specific syntax for accessing nested keys?

I’ve also tried using the root key data and then splitting it later in the flow, but I can’t even get the whole object into a single variable reliably. Sometimes it comes in as a string, sometimes as null.

Here is the relevant part of my Data Action configuration:

  • Endpoint: https://api.internal-crm.com/v1/agent/status
  • Method: GET
  • Headers: Authorization: Bearer {{vAuthToken}}
  • Query Params: agent_id={{vInputAgentId}}

The token is valid. I tested the same endpoint in Postman with the same token and params. It returns the JSON above instantly.

Why does Architect ignore the mapping? I’ve restarted the flow. I’ve cleared the cache. Nothing works. The debug log shows “Response processed successfully” but the variables are blank.

Am I missing a step in the mapping UI? Is there a limit on how deep the JSON can go?

I need this data to decide which queue to route to next. If the skill is ‘billing’, it goes to Queue A. If it’s ‘support’, it goes to Queue B. Right now, it’s defaulting to the fallback path because the variable is empty.

Any help with the mapping syntax would be great. I’m stuck on this for two days. It feels like a simple thing but I can’t get it to stick.