Slack webhook payload parsing fails on queue SLA breach event

Struggling to understand why the Genesys Cloud webhook for queue SLA breaches is delivering malformed JSON to our Slack integration. The event type is set to routing:queue:stats:updated, and I have filtered for currentWaitTime > slaThreshold. However, the payload arriving at the endpoint lacks the specific queueId and slaBreach boolean fields expected in the documentation.

The HTTP 200 response is sent back, but the Slack message block kit parser throws an error because the data structure is flat instead of nested. I am using a simple Node.js Express handler to transform the data before forwarding it.

app.post('/webhook', (req, res) => {
 const data = req.body;
 console.log(data); // Logs: { event: 'routing:queue:stats:updated', timestamp: '...' }
 // Missing queueId and breach details
 res.status(200).send();
});

The webhook configuration in Genesys Cloud shows the last successful delivery, but the payload size is minimal. Is there a specific subscription filter or event version I need to enable to get the full SLA breach context in the webhook body?

The official documentation states the routing:queue:stats:updated webhook doesn’t include SLA breach flags.

You need to calculate the breach in your webhook handler by comparing currentWaitTime against the queue’s slaThreshold.

{
 "queueId": "{{$.queueId}}",
 "isBreaching": {{$.currentWaitTime > $.slaThreshold}}
}

The payload arriving at the endpoint lacks the specific queueId and slaBreach boolean fields

You might want to look at the webhook configuration in Architect. The routing:queue:stats:updated event doesn’t ship SLA flags by default, so you’ll need to fetch the threshold via /api/v2/routing/queues/{queueId} in your handler to compute the breach yourself.