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?