Genesys Cloud webhook 5xx retry exhaustion and dead letter queue implementation

We have a Node.js service consuming Genesys Cloud webhooks for interaction events. The endpoint is solid, but when the downstream database locks up, the service returns a 503. Genesys retries the delivery, which is fine. The problem is when the failure persists. The webhook stops trying after a while, and we lose those events. We need to capture these failed deliveries and put them in a dead letter queue for manual retry.

I’m looking at the POST /api/v2/webhooks endpoint documentation. There’s no obvious field for a “dead letter endpoint” or “retry policy” in the JSON body. The deliveryPolicy object seems to control rate limiting and retry intervals, but not final failure handling. Here’s the config we’re using:

{
 "name": "Interaction DLQ Handler",
 "enabled": true,
 "deliveryPolicy": {
 "retryCount": 5,
 "retryInterval": "PT10S"
 },
 "deliveryMode": "PUSH",
 "address": "https://our-service.com/webhooks/gc",
 "method": "POST",
 "headers": {
 "Content-Type": "application/json"
 }
}

The docs mention that if the target returns a 5xx, Genesys will retry. But if it keeps failing, the event is dropped. I can’t find a way to tell Genesys “if this fails 5 times, send it to this other URL”.

Is there a workaround? Should we be handling the retry logic entirely on our side by always returning a 200 and managing the queue internally? That feels like it defeats the purpose of the webhook reliability features. Or is there a hidden field in the SDK model that I’m missing? The TypeScript definitions for Webhook don’t show anything for DLQ.

Any insight on how to handle this without losing data? We’re using the @genesyscloud/api-client SDK to manage these webhooks programmatically. The updateWebhook method doesn’t expose any DLQ parameters either.