Architect GetExternalContactAction failing to resolve by phone number

Trying to wire up a lookup in Architect using the GetExternalContactAction. The docs say you can pass a phone number in the contactId field to hit an external CRM endpoint. I’ve got the expression set to pull the caller’s phone number and map it to the request body.

The action returns a 404 every time, even though the CRM API works fine in Postman. Here is the JSON config I’m using for the data action. Am I missing a required header or is the endpoint format wrong?

GetExternalContactAction is a bit finicky with how it maps the contactId to the request payload. It doesn’t just dump it into the JSON body by default. You usually have to explicitly map it in the request template.

Try this structure. Note the {{contactId}} token in the body. That’s where the phone number gets injected.

{
 "id": "lookup-crm-by-phone",
 "name": "Lookup CRM by Phone",
 "type": "GetExternalContactAction",
 "configuration": {
 "url": "https://your-crm-api.com/contacts/lookup",
 "method": "POST",
 "headers": {
 "Content-Type": "application/json",
 "Authorization": "Bearer {{system.authToken}}"
 },
 "requestTemplate": {
 "phoneNumber": "{{contactId}}"
 }
 "responseMapping": {
 "customerId": "$.id",
 "customerName": "$.name"
 }
 }
}

If you’re still getting 404s, check if your CRM expects the number in E.164 format or just the raw digits. Architect sometimes strips the + depending on the source. Also, make sure the endpoint isn’t returning a 404 because it’s looking for a specific header that’s missing. The default timeout is pretty short too, so if the CRM is slow, it might look like a failure.