GetExternalContactAction failing with 400 when passing phone_number variable

We are attempting to enrich inbound calls using the GetExternalContactAction in Genesys Cloud Architect. The goal is to look up customer details from our external CRM via a custom endpoint. The configuration looks correct on the surface, but the action consistently fails with a 400 Bad Request.

Here is the JSON payload we are sending:

{
 "method": "GET",
 "url": "https://api.crm.example.com/v1/contacts?phone={{contact.phoneNumber}}"
}

The variable contact.phoneNumber is definitely populated. We have verified this by logging it in a previous step. The external endpoint works fine when tested via Postman.

Environment details:

  • Genesys Cloud Region: eu-west-1
  • Architect Version: Latest
  • Terraform Provider: 1.32.0
  • External Endpoint: HTTP GET with Bearer token in header

We have tried:

  • Hardcoding the phone number in the URL (works)
  • Using {{contact.phoneNumber}} (fails)
  • Checking for extra spaces or formatting issues in the variable (none found)

It seems like the variable substitution is not working as expected within the GetExternalContactAction. The error response from the external system indicates that the phone query parameter is empty or missing.

Has anyone encountered this issue with variable substitution in external data actions? We are unsure if this is a known limitation or a configuration error on our end.

Check your URL encoding. The Architect expression for the phone number probably isn’t stripping the ‘+’ sign, and most CRMs barf on that in a GET query string. Try wrapping it in replace to swap ‘+’ for ‘%2B’ or just drop it entirely.