Genesys Cloud EventBridge integration: Events trigger but payload is empty JSON

We’ve set up the AWS EventBridge integration in Genesys Cloud to capture real-time queue status changes. The connection test passes with a 200 OK, and the rules in EventBridge are firing. The Lambda function gets invoked. But the event detail is always just {}. No data.

Here is the setup:

  • Genesys Cloud Environment: US1
  • Integration Type: AWS EventBridge
  • Event Source: genesyscloud > routing.queueStatus
  • Lambda Handler: Node.js 18
  • Permissions: Full trust policy for EventBridge to invoke Lambda

The Lambda code is super basic right now, just logging the event:

exports.handler = async (event) => {
 console.log("Received event:", JSON.stringify(event));
 return {
 statusCode: 200,
 body: JSON.stringify({ message: "Event received" })
 };
};

The CloudWatch logs show:

Received event: {
 "version": "0",
 "id": "abc123-def456",
 "detail-type": "Queue Status Change",
 "source": "genesyscloud",
 "account": "123456789012",
 "time": "2023-10-27T18:30:00Z",
 "region": "us-west-2",
 "resources": [],
 "detail": {}
}

I checked the Genesys Cloud integration settings. The “Event Filter” is set to ALL. I tried adding a specific queue ID to the filter, but that just stops the events from firing entirely.

Is there a specific configuration in the Genesys Cloud Admin UI that needs to be toggled to populate the detail object? Or is this a known issue with the current version of the EventBridge connector? We’re using the standard REST API to create the integration via the /api/v2/integrations endpoint, but I don’t see any fields for payload mapping there.

Any ideas on how to get the actual queue data (like queueId, waitCount) into that detail block?