Architect Data Action 403 Forbidden when invoking AWS Lambda via API Gateway

I’ve been wrestling with an IAM permissions issue for the past few days and I’m out of ideas. The goal is to call an AWS Lambda function from a Genesys Cloud Architect Data Action to process some PII before it hits our CRM. We’re using an API Gateway (REST API) as the entry point.

The setup looks solid. I’ve got the Lambda function deployed and it works fine when I test it in the AWS console with a JSON payload. The API Gateway endpoint is public for testing purposes right now, just to rule out network issues. When I hit the endpoint directly from Postman, it returns a 200 OK with the expected response.

The problem happens when Architect tries to make the call. The Data Action fails with a 403 Forbidden error. I’ve checked the logs in CloudWatch and the Lambda function isn’t even being invoked. The request is getting blocked by API Gateway before it reaches the function. This tells me the issue is likely with the IAM role or the API Gateway method settings, but I’ve verified the role attached to the Lambda has apigateway:Invoke permissions. Wait, no, that’s not how it works. The Lambda doesn’t need invoke permissions; the caller needs permission to invoke the API Gateway method.

Here’s the JSON payload I’m sending from Architect:

{
 "httpMethod": "POST",
 "url": "https://abc123.execute-api.us-east-1.amazonaws.com/prod/process",
 "headers": {
 "Content-Type": "application/json"
 },
 "body": "{\"userId\": \"12345\"}"
}

I’ve also tried adding an Authorization header with a static API key, but that didn’t help. The error response from the Data Action just says Status Code: 403.

I’ve checked the IAM role for the Genesys Cloud service account, but we aren’t using AWS IAM for authentication here. We’re using a public API Gateway endpoint. Is there a specific CORS setting or a resource policy on the API Gateway that I’m missing? I’ve enabled CORS on the method, but that usually affects the browser, not a server-to-server call.

Anyone else run into this specific 403 when calling API Gateway from Genesys Architect? I’m starting to think it might be an IP whitelist issue, but we haven’t configured any. Just a barebones setup. I’ve double-checked the URL and the HTTP method. Everything matches. I’m stuck.