Filtering EventBridge events for specific queue conversation.end

We are trying to set up an EventBridge rule to capture only the conversation.end events for a specific support queue. The goal is to reduce the load on our consumer by filtering at the source rather than in the application logic. I have verified that the Genesys Cloud EventBridge integration is active and sending events to our AWS account. The events are arriving, but they contain all conversation types and queues.

I attempted to use an EventBridge rule with an event-pattern JSON filter. Here is the configuration I am using:

{
 "detail-type": ["Conversation Event"],
 "source": ["genesys.cloud"],
 "detail": {
 "event": ["conversation.end"],
 "data": {
 "queueId": ["12345678-1234-1234-1234-123456789012"]
 }
 }
}

The problem is that the queueId field seems to be missing or null in the payload when the conversation ends, even though the conversation was routed through that queue. I am seeing the conversation.id and routing.type as queue, but no queueId in the data object. The rule matches nothing. If I remove the queueId filter, I get all conversation.end events. Is the queueId not available in the conversation.end event payload? Or is there a different field I should be filtering on to target a specific queue?

The docs say you can filter by detail-type and source, but they don’t explicitly show how to filter by the specific queue ID inside the detail object. I’m hitting the same wall.

Here is what the documentation says about the payload structure:

“The detail object contains the full event payload, including the queueId if the conversation was associated with a queue.”

I tried this rule pattern in the console, but it still lets everything through:

{
 "detail-type": ["genesys.cloud.conversation.end"],
 "source": ["genesys.cloud"],
 "detail": {
 "queueId": ["YOUR_QUEUE_ID_HERE"]
 }
}

Is the queueId actually present in the root of the detail object? Or is it nested deeper? The schema viewer is confusing. My C# consumer is just getting flooded.

Also, does EventBridge support nested JSON path filtering like $.detail.queueId? AWS usually supports it, but Genesys docs are silent on this. Anyone got this working?