EventBridge Rule fires but Event Pattern matches nothing

Set up the EventBridge integration via the Genesys console and confirmed the AWS rule triggers on test events. The issue is the live stream. The Event Pattern for conversation:state isn’t matching the actual payload structure coming from Genesys. Here’s the rule pattern:

{
 "source": ["genesys.cloud"],
 "detail-type": ["Conversation Event"],
 "detail": {
 "eventSubtype": ["state"]
 }
}

The rule logs show a match failure on detail.eventSubtype. The actual event has detail.type as conversation-state instead. What’s the correct JSON path for the event subtype in the new EventBridge format?

The pattern looks correct on the surface, but Genesys Cloud EventBridge payloads often include extra nesting or specific event subtypes that aren’t just “state”. The detail.eventSubtype might need to be more specific, like conversation:state:answered or similar, depending on what you’re tracking.

Check the actual raw payload in CloudWatch Logs. If you see "eventSubtype": "state:answered", your rule won’t match ["state"]. You might need to use a wildcard or list all relevant subtypes.

Also, verify the source ARN. Sometimes the console creates the rule with a generic source, but the actual events come from a specific region or account ID that doesn’t match "genesys.cloud" exactly if there’s a prefix.

Try this pattern to debug:

{
 "source": ["genesys.cloud"],
 "detail-type": ["Conversation Event"],
 "detail": {
 "eventSubtype": ["state*"]
 }
}

Wait, EventBridge doesn’t support wildcards in the detail object values directly like that. You have to list them or use anything-but.

Better yet, disable the rule, create a new one, and use the “Event Pattern” builder to select “Custom pattern” and paste a raw event from CloudWatch into it. It auto-fills the exact keys.