EventBridge deduplication for Genesys Cloud interaction events

Hey folks,

Running into a classic duplicate event issue with the Genesys Cloud EventBridge integration. We’ve got a Lambda function subscribed to the genesys-cloud:interaction event type, specifically tracking call wrap-up codes and disposition data. The setup is standard: EventBridge pipe pushes to a SQS queue, Lambda polls the queue, and we write the payload to our data warehouse.

The problem is that we’re seeing duplicate events for the same interaction ID. Sometimes it’s just a double post, other times it’s a burst of three identical payloads within a two-second window. I’ve checked the EventBridge console settings, and there’s no obvious “retry” or “dedup” toggle I’m missing. The event-id field in the payload is unique per message, but the interaction-id inside the body is what matters to us.

Here’s a snippet of the payload structure we’re dealing with:

{
 "event-id": "a1b2c3d4-...
 "source": "genesys.cloud",
 "detail": {
 "interaction-id": "inter-12345",
 "type": "call",
 "state": "closed",
 "wrapup": {
 "code": "Survey_Completed"
 }
 }
}

My current thought is to handle deduplication in the Lambda function itself using a DynamoDB table to track seen interaction-ids with a TTL of 24 hours. But that feels like a lot of overhead for every single event, and I’m worried about race conditions if two identical events hit the Lambda concurrently.

Has anyone else dealt with this? Is there a header or a specific EventBridge setting I’m overlooking that can filter these at the source? Or is a DynamoDB deduplication layer the standard approach here? We’re processing about 50k events a day, so cost and latency are a concern.

Any pointers would be appreciated.