GetExternalContactAction returning empty payload despite 200 OK

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.