Hey folks,
I’m trying to set up an EventBridge rule to capture conversation.end events, but only for a specific support queue. The goal is to trigger a lambda that updates our WFM dashboard when a rep finishes a call in that queue.
The problem is the event payload seems to contain a lot of nested data, and I can’t figure out the right JSON path to filter on the queue ID. I’ve tried filtering on detail.queuedFor, but that field is often null or an empty array by the time the conversation actually ends.
Here is the event structure I’m seeing in the EventBridge console for a test call:
{
"version": "0",
"id": "abc-123-def",
"detail-type": "Conversation End",
"source": "genesys.cloud",
"account": "123456789012",
"time": "2023-10-27T14:30:00Z",
"region": "us-east-1",
"resources": [],
"detail": {
"id": "conv-12345",
"type": "call",
"state": "closed",
"participants": [
{
"id": "user-67890",
"role": "agent",
"routing": {
"queueId": "q-98765",
"skill": "Support"
}
}
]
}
}
I’ve tried this filter pattern in the EventBridge rule:
{
"detail": {
"participants": [
{
"routing": {
"queueId": [ "q-98765" ]
}
}
]
}
}
But it doesn’t seem to match. The lambda never fires. I’ve also tried using detail-type as Conversation End but that still sends every ended conversation.
Is there a specific field I should be checking for the queue? Or is the participant structure different in the actual webhook payload versus what I see in the console? I’m using the Genesys Cloud integration with AWS EventBridge.
Any help would be appreciated. I’m stuck on the JSON path syntax.