We need to subscribe to conversation.end events but only for a specific support queue. The Genesys Cloud EventBridge integration sends all events to our bus, which is inefficient. Is there a way to define a filter policy on the EventBridge rule or in the Genesys webhook configuration to match a specific queue ID? We tried adding a JSON filter in the rule target but it didn’t reduce the volume. We are seeing 400 errors when trying to nest the queue ID in the filter.
Is the queue ID in the event payload a string or an object? EventBridge filters are strict about types. If it’s a string, use Equals. If it’s nested, you’ll need a different path. Here’s the correct JSON filter structure for a standard conversation.end event:
{
"routing.queueId": ["QUEUE_ID_HERE"]
}
Check the exact path in the raw event body first.
That filter structure looks mostly right, but EventBridge can be picky about nested object paths. If routing.queueId isn’t matching, it’s likely because the event payload nests that ID deeper or wraps it differently.
I ran into this exact issue last month. The raw conversation.end event usually puts the queue info under routing.queues. You might need to check if the ID is actually an array of strings in the payload.
Try this filter instead. It handles the case where queueId is nested under routing.queues as an array element.
{
"routing.queues": [
{
"queueId": ["YOUR_QUEUE_ID_HERE"]
}
]
}
Double-check the raw event payload in the EventBridge console. Look for the exact JSON path. If it’s a string array at the top level of routing, the first suggestion works. If it’s nested inside a queues array, you need the deeper path. Don’t forget to validate the JSON syntax carefully. Missing a bracket or comma causes silent failures in EventBridge.