Blog

How to create a Slack incoming webhook

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.

1. Create a Slack app

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.

2. Turn on Incoming Webhooks

In the app's settings sidebar, open Incoming Webhooks and switch the toggle at the top to On.

3. Add a webhook to a channel

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.

4. Copy the webhook URL

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.

5. Test 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.

Wiring it into QueueHawk

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.

← All articles Try QueueHawk free →

Find out before your client does

Free for one application, no card required.

Start free