Genesys Webhook to Slack failing on SLA breach payload

I’m building a webhook to push Genesys Cloud queue SLA breaches to Slack. The trigger is set to fire when waitTime > sla. I’m using a simple Node.js Express app to consume the POST from Genesys and then call the Slack Webhook API. The issue is the payload structure. Genesys sends a nested object, but I’m flattening it incorrectly for Slack’s blocks format. Here’s the handler:

app.post('/webhook', (req, res) => {
 const { queue, waitTime } = req.body;
 const slackPayload = {
 blocks: [
 { type: 'section', text: { type: 'mrkdwn', text: `Queue: ${queue.name}\nWait: ${waitTime}` } }
 ]
 };
 axios.post(slackUrl, slackPayload).then(() => res.status(200).send('OK'));
});

When the webhook fires, Slack returns a 400 Bad Request with invalid_blocks. I’ve checked the Slack API docs, but the text field seems fine. Is there a specific attribute in the Genesys SLA event payload that’s causing the JSON serialization to break? I’m also seeing intermittent 500s from my Express server when the queue is high volume. Not sure if that’s related or just a timeout issue. The waitTime comes as milliseconds, which might be too large for the string interpolation. Can’t figure out the exact schema mismatch.