Filtering EventBridge conversation.end by queue ID

Setting up an EventBridge rule to catch conversation.end events, but I need it to trigger only for a specific queue. The docs suggest using detail.queuename or similar fields in the pattern, but the actual JSON payload structure is messy. I tried matching on detail.queues[0].id with a static value, but the rule never fires. The event payload seems to vary depending on whether it’s a chat or voice channel. Here is the pattern I am testing: {"detail": {"type": "conversation.end", "queues": [{"id": "12345678-1234-1234-1234-123456789012"}]}}. It feels like I’m guessing at the schema since the docs are vague on nested array indexing.

Is there a reliable way to filter by queueId directly in the EventBridge pattern without using a Lambda for post-processing? I’ve checked the detail object and see queueName strings, but those change if we rename queues, which breaks things. I need a stable ID match. If the queues array isn’t guaranteed to be flat or consistent, how are others handling this? I’m stuck on whether to widen the scope and filter in code or if there’s a specific attribute path I’m missing.