Hey folks,
I’m wrestling with the GetExternalContactAction in Architect. The goal is simple: look up a customer by their phone number using our internal CRM endpoint and populate some custom attributes. The flow hits the action, the logs show a 200 OK response from the backend, but the contact data never actually sticks. The attributes remain null downstream.
Here’s the config I’m using in the JSON definition for the action:
{
"name": "Lookup Customer",
"type": "GetExternalContactAction",
"settings": {
"url": "https://api.internal-crm.com/v1/customers/lookup",
"method": "GET",
"headers": {
"Authorization": "Bearer {{system.token}}",
"Content-Type": "application/json"
},
"parameters": {
"phone": "{{contact.telephony.phoneNumber}}"
},
"responseMapping": {
"firstName": ".data.firstName",
"loyaltyTier": ".data.tier"
}
}
}
When I curl that endpoint directly with a valid token and a real phone number, I get back exactly what I expect:
{
"data": {
"firstName": "Sarah",
"tier": "Gold"
}
}
But in Architect, the responseMapping paths don’t seem to resolve. I’ve tried changing the JSON path syntax to $.data.firstName or just data.firstName, but nothing works. The action completes successfully, but the contact object is untouched. I’m using GetRESTProxy in a Studio snippet to debug the raw response, and it’s definitely returning the JSON structure above.
Is there something specific about how GetExternalContactAction parses the response body? Or am I missing a header that tells Architect to treat the response as JSON? I’ve checked the standard docs but they’re pretty light on the mapping syntax for this specific action.