# What is an incoming webhook?

> A Slack incoming webhook is a private address an app posts to, so a message appears in a channel. How it works, the rate limit and why posts can't be deleted.
- **Author**: Marxx
- **Published**: 2026-11-07
- **Category**: Slack
- **URL**: https://marxx.ai/library-glossary/incoming-webhook

---

An incoming webhook is a private web address that Slack gives an app, so the app can post a message into one channel. The app sends the message text to that address, and it appears in the channel a moment later.

## How it works

1. You create a Slack app and switch on incoming webhooks.
2. You pick a channel. Slack gives you a web address for it.
3. Your tool sends a small piece of text to that address.
4. The message appears in the channel, posted by your app.

```
POST https://hooks.slack.com/services/XXXX/YYYY/ZZZZ
Content-Type: application/json

{"text": "New lead for Northwind Escapes: Goa form, 11:02"}
```

Keep the address secret. Anyone who has it can post to your channel.

## Limits that matter

From Slack's developer docs at [docs.slack.dev](https://docs.slack.dev), checked 6 Nov 2026:

| Limit | What it means for you |
|---|---|
| About one message per second per channel | Short bursts are allowed, but a steady flood hits the limit |
| Over the limit, Slack returns HTTP 429 with Retry-After | Your tool must wait the number of seconds Slack gives, then try again |
| An incoming webhook can't delete a message once posted | A wrong message stays until someone removes it by hand |

## Worked example

Say a festive sale brings 90 leads to one client's lead form in a single minute, and your tool posts each one to #client-northwind-leads through an incoming webhook. At one message per second, posting all 90 takes at least 90 seconds. If the tool sends all 90 at once, Slack answers some with 429. A tool that waits and retries gets them all through. One that does not drops those leads from Slack, though they are still in Meta.

## Incoming webhook vs a Slack app with a bot

An incoming webhook only posts. Reading replies, buttons that act as a person and answering questions need a fuller Slack app. For a no-code route, see [the best tools to send Facebook leads to Slack](/best/best-tools-to-send-facebook-leads-to-slack) and [Facebook lead notifications in Slack](/guides/how-to-get-facebook-lead-notifications-in-slack).

We make Marxx. In a rush of leads, [Marxx in Slack](/features/slack) posts up to 20 lead messages per client every 10 minutes, and every lead is still in Marxx.

## FAQ

### Is an incoming webhook the same as a webhook?

It is one kind. A webhook is any message one app sends to another's web address. An incoming webhook is Slack's version for posting into a channel.

### Can an incoming webhook post to any channel?

Each address is tied to the channel you picked when you created it. Use a separate address per client channel.

---
- [More Slack articles](https://marxx.ai/library-glossary/category/slack)
- [All articles](https://marxx.ai/library-glossary)