A Slack incoming webhook is a URL that posts a message into a specific channel whenever something sends it a JSON payload. No bot user, no OAuth dance — just a URL you can curl, call from a script, or hand to any monitoring tool that supports "generic webhook" as a Slack integration. Takes about two minutes to set up.
Go to api.slack.com/apps and click Create New App, then From scratch. Give it a name (something like "Alerts" or the name of the tool you're connecting) and pick the workspace it should post into. This "app" is really just a container for the webhook — you don't need to write any code or configure any bot behavior.
In the app's settings sidebar, open Incoming Webhooks and switch the toggle at the top to On.
Scroll down and click Add New Webhook to Workspace. Slack will ask which channel the messages should land in — pick one (or create a dedicated #alerts channel first, which is usually the right call so alert noise doesn't mix with normal conversation) — then click Allow.
You'll land back on the Incoming Webhooks page with a new entry under "Webhook URLs for Your Workspace" — a URL starting with https://hooks.slack.com/services/.... Treat this URL as a secret: anyone who has it can post messages into that channel, and Slack has no separate authentication on top of it.
Any HTTP POST with a JSON body containing a text field will show up as a message:
curl -X POST -H 'Content-Type: application/json' \
-d '{"text": "Hello from curl"}' \
https://hooks.slack.com/services/YOUR/WEBHOOK/URL
If that message shows up in the channel, the webhook works — and at this point it's a completely generic tool. Point it at any script, CI pipeline, or monitoring system that can make an HTTP request.
If the reason you're setting this up is to get notified when a Hangfire job fails or a server goes quiet: in the QueueHawk dashboard, go to Notifications → New Channel, pick Slack as the type, give it a name, and paste the webhook URL from step 4. Click Send test to confirm it's wired up correctly (a real message, not a simulated check), then attach the channel to whichever alert rules should notify it — error-rate alerts, heartbeat timeouts, or both.
See also: the two alert rule types and how notification channels fit together, and the Microsoft Teams equivalent of this guide.