Stuck on a Data Action that calls an external REST API to fetch customer tier info. The API call succeeds, returning a 200 OK with the expected JSON payload, but the variable mapping in Architect seems to drop the data. No error thrown, just null values downstream.
Here’s the Data Action JSON config for the response mapping:
{
"request": {
"method": "GET",
"url": "https://internal-api.company.com/v1/tier?customerId={{contact.attributes.customerId}}",
"headers": {
"Authorization": "Bearer {{env.API_KEY}}"
}
},
"response": {
"mapping": {
"customerTier": "$.data.tier",
"tierLevel": "$.data.level"
}
}
}
The external API returns this structure:
{
"status": "success",
"data": {
"tier": "Gold",
"level": 3
}
}
Debug logs show the Data Action receives the full payload. The $.data.tier path looks correct according to standard JSONPath specs. Yet, when I try to reference {{dataAction.customerTier}} in a subsequent Architect block, it’s empty.
I’ve tried changing the JSONPath to $.data[0].tier thinking it might be an array, but the API clearly returns an object. Also verified the API key is valid and the endpoint isn’t rate-limiting.
Is there a known issue with nested object mapping in Architect Data Actions? Or am I missing a specific flag in the response configuration? The SDK docs are thin on this specific mapping behavior. Any pointers would be appreciated.