Hey team.
I’m running into a wall with our outbound webhook integration. We have a flow that triggers a webhook to our WFM scheduling system whenever an agent’s status changes to ‘Not Ready’. Most of the time it works fine. But when our internal server hiccups and returns a 502 Bad Gateway, Genesys Cloud seems to just give up after a couple of attempts. The events drop off the face of the earth.
I need to capture these failed events so we can retry them manually or push them to a queue later. I’ve looked at the API docs for /api/v2/webhooks, but I don’t see a clear way to configure a Dead Letter Queue (DLQ) or a specific retry policy in the JSON body.
Here is the payload I’m using to create the webhook:
{
"name": "WFM Status Change Hook",
"description": "Sends agent status to WFM",
"url": "https://wfm.ourcompany.com/api/status/update",
"method": "POST",
"requestType": "REST",
"enabled": true,
"events": [
"routing.agent.state.updated"
],
"retryPolicy": {
"maxRetries": 3,
"retryDelay": "PT10S"
}
}
The retryPolicy object is something I added based on a forum post from 2021, but the API accepts it without error. The problem is that after the 3rd 502, the webhook is disabled or the event is lost. I need to know if there’s a standard way to pipe these failures to an S3 bucket or another endpoint for logging.
Is there a specific header I need to set on my receiving server to tell Genesys to keep trying? Or do I have to build a custom listener for the EventBridge stream instead? I’m not seeing a dlqEndpoint field in the schema.
Any pointers would be appreciated.