GetExternalContactAction returning 500 when passing phone number to lookup endpoint

Problem

I’m trying to use the GetExternalContactAction in Genesys Cloud Architect to fetch customer details before routing a call. The goal is to pass the caller’s phone number to an internal endpoint and use the response to update the interaction attributes.

The action is configured to call https://internal-api.example.com/customers/lookup, but I’m getting a 500 Internal Server Error from the Genesys side, not my backend. My backend logs show the request never arrives.

Here is the configuration JSON for the action:

{
 "actionType": "GetExternalContact",
 "settings": {
 "endpoint": "https://internal-api.example.com/customers/lookup",
 "method": "GET",
 "headers": {
 "Authorization": "Bearer {{auth.token}}"
 },
 "queryParameters": {
 "phone": "{{interaction.telephony.caller.phoneNumber}}"
 }
 }
}

I’ve verified that {{interaction.telephony.caller.phoneNumber}} contains a valid E.164 string like +15551234567. The internal API works fine when called directly via curl with the same query param.

Is there a specific format required for the phone number in the queryParameters map? Or does GetExternalContactAction expect a different field name than phone?

Also, I noticed the documentation mentions a contactId field. Do I need to pre-create the contact in Genesys first, or can this action purely fetch external data?

I’ve tried changing the method to POST with a JSON body, but the behavior is identical. The Genesys logs just show ExternalContactAction failed: HTTP 500.

Any ideas on what’s blocking the outbound request?