I’m trying to set up an EventBridge rule to catch specific conversation events in NICE CXone. The goal is to trigger a lambda when a voice conversation enters the wrapup state.
I’ve created the rule in the AWS console with the following event pattern:
{
"source": [
"nice.cxone.events"
],
"detail-type": [
"Conversation Event"
],
"detail": {
"event_type": [
"conversation.updated"
],
"data": {
"state": [
"wrapup"
]
}
}
}
The problem is the rule never fires. I’ve verified that the EventBridge bus is connected and receiving events from CXone. I can see other events hitting the bus, like queue.member.updated, but nothing for conversations.
I tried broadening the pattern to just match source: ["nice.cxone.events"] and detail-type: ["Conversation Event"]. That also resulted in zero matches.
I checked the raw event structure by putting a test rule that matches everything and sending a sample event. The structure looks like this:
{
"id": "abc-123",
"source": "nice.cxone.events",
"account": "my-account-id",
"time": "2023-10-27T15:00:00Z",
"region": "us-east-1",
"detail-type": "Conversation Event",
"resources": [],
"detail": {
"event_id": "evt-456",
"event_type": "conversation.updated",
"data": {
"conversation_id": "conv-789",
"media_type": "voice",
"state": "wrapup",
"direction": "inbound"
}
}
}
The JSON structure matches my pattern exactly. I’ve double-checked the spelling of wrapup and conversation.updated.
Is there something specific about how CXone pushes these events to EventBridge that requires a different pattern structure? I’ve looked at the docs but they don’t mention any quirks with nested data objects.
Any ideas on how to debug this? I’m out of options.