EventBridge rule dead on Genesys Cloud conversation:started events — pattern mismatch?

We’ve got an EventBridge rule in the us-east-1 region wired up to consume Genesys Cloud events. The goal is to trigger a Lambda whenever a new conversation starts. The rule is created, the IAM role has events:PutTargets and events:DescribeRule permissions, and the target Lambda is attached. But nothing happens. The Lambda never invokes.

I’m using the Genesys Cloud Kotlin SDK to manage the webhook configuration on the Genesys side. The webhook endpoint is the EventBridge API endpoint, and it’s returning 200 OK for the test events. So the connection between Genesys and AWS is technically working. The issue seems to be the EventBridge event pattern itself.

Here is the pattern I’m using in the rule:

{
 "source": ["genesys.cloud"],
 "detail-type": ["Genesys Cloud Event"],
 "detail": {
 "eventType": ["conversation:started"]
 }
}

I’ve also tried adding "detail": { "conversation": { "type": ["voice", "webchat"] } } to be more specific, but that didn’t help. The rule state is ENABLED. I checked the CloudWatch logs for the rule, but there are no entries showing matches or failures. It’s just silent.

Is there a way to debug why the pattern isn’t matching? I know EventBridge doesn’t give you a “test match” API like some other tools. I’m assuming the eventType might be wrong or nested differently. In the Genesys SDK, the event model shows conversation:started as the string value for the type. But maybe the raw JSON payload from Genesys structures it differently before EventBridge sees it?

Here’s a sample of what I think the payload looks like based on the Genesys docs:

{
 "id": "abc-123",
 "eventType": "conversation:started",
 "timestamp": "2023-10-27T10:00:00Z",
 "conversation": {
 "id": "xyz-789",
 "type": "webchat"
 }
}

If I use * for the detail section, the rule matches everything from genesys.cloud, which confirms the source and detail-type are correct. But as soon as I restrict it to conversation:started, it drops off. What am I missing in the pattern syntax?