How do I send updates to Discord or Slack with a webhook?
Last verified October 18, 2026
Go to Settings → Notification defaults, scroll to Chat & webhooks, pick Discord, Slack or Custom JSON, paste the webhook URL, tick the events you want and press Add webhook.
You need: Manage settings permission
A webhook posts team events into one chat channel. It needs no bot and no member linking, which makes it the quickest way to get updates into Slack or a Discord server you don't control.
Get a webhook URL
- Discord: Server Settings → Integrations → Webhooks → Copy Webhook URL. Posts go to whichever channel that webhook belongs to.
- Slack: Slack app → Incoming Webhooks → Add New Webhook to Workspace, then pick a channel. The URL must be on
hooks.slack.com. - Custom JSON: any
https://endpoint on the public internet. It receives a flat JSON body withevent,title,description,url,toneandfields.
Add it
- Open Notification defaults and find the Chat & webhooks panel.
- Pick Discord, Slack or Custom JSON.
- Paste the URL.
- Under Ping on every post, choose No ping, @everyone (Slack shows @channel), @here, or type a role ID (Discord) or user-group ID (Slack, starts with S). Custom JSON has no ping.
- Tick at least one event.
- Press Add webhook.
Discord webhooks name themselves from Discord's own channel and webhook name, so there's no label to type.
One webhook per channel works well: tasks to #tasks, competition alerts to #comp-day.
Which events can go to a webhook
Only team-level events are offered, grouped as Tasks, Members, Announcements, Competition, Scouting, Schedule, Checklists, Finance, Shared inbox and Bolts. Events that belong to one person, like a reimbursement being paid, never post to a team channel. Events for a feature your team switched off don't appear in the list.
When an event was aimed at specific people (for example, something only one role can act on), the post goes out without a ping.
Test, edit and remove
Each webhook row has three buttons: the send icon posts a test message, the pencil lets you change the ping and events, and the bin deletes it. The row also shows when it last delivered and the most recent error.
Find your cause fast
- Shows "Disabled": the far side rejected the webhook (Discord and Slack answering 401, 403, 404 or 410, or a Custom JSON endpoint answering 410). It was probably deleted or its token rotated. Make a new URL, or press Turn back on if you fixed it on the other side.
- Discord webhook went quiet after connecting the bot: once the Robolyst Discord bot is connected, Discord-type webhooks stop firing so you don't get every post twice. Slack and Custom JSON webhooks keep working.
- "That is not a Discord webhook URL." You picked Discord but pasted something else. Check the type button.
- "That address is on a private network." Custom JSON endpoints must be reachable from the public internet.