Architect GetExternalContactAction returning 404 despite valid phone number

I’m trying to look up customer details in our external system before the agent takes the call. I’ve set up a Data Action in Architect that calls our internal API, and I’m using the GetExternalContactAction block to trigger it. The goal is simple: pass the caller’s phone number and get back their account status.

The issue is that the action consistently fails with a 404 Not Found error, even when I know the phone number exists in the database. I’ve double-checked the endpoint URL in the Data Action configuration. It looks like this:

https://api.internal.company.com/v1/customers/lookup?phone={{trigger.phoneNumber}}

Here is the JSON payload I’m expecting back:

{
 "customerId": "12345",
 "status": "active",
 "lastInteraction": "2023-10-01T12:00:00Z"
}

I’ve tested the endpoint directly in Postman with the same phone number, and it works fine. I’m getting a 200 OK. But inside Architect, it’s always a 404. I’m wondering if there’s something specific about how GetExternalContactAction handles the request headers or if I need to encode the phone number differently. The trigger variable trigger.phoneNumber definitely has a value.

Has anyone run into this? I’ve checked the logs, but they just show the 404 without much detail. I’m stuck on this one.

The 404 usually isn’t about the phone number itself, but how you’re passing it to the external endpoint. Architect strips formatting, so if your API expects +44... and you’re sending 44..., it’ll fail. Also, check the GetExternalContactAction configuration. You need to map the phoneNumber variable explicitly in the “Input” section of the action block.

Here’s how I structured it in my flow:

{
 "actionName": "GetCustomerData",
 "input": {
 "phone": "{{flowData.phoneNumber}}"
 }
}

Make sure your external API logs the incoming request. If it’s receiving an empty string or a malformed number, that’s your culprit. I had this exact issue last week. Turned out the phoneNumber variable was null because I hadn’t enabled CTI integration for that specific routing queue. Check the queue settings under Integrations. If CTI is off, Architect can’t see the caller ID.