---
title: "Connecting Slack"
category: "Integrations"
source: "https://getbloggable.com/help/connect-slack"
updated: 2026-09-10T18:45:45.372Z
---

# Connecting Slack

Post a message into a Slack channel when something happens on your blog — a post goes live, autopilot finishes a batch of drafts, credits run low.

Setup is one URL. Bloggable uses Slack's **incoming webhooks**, so there's no app to install into your workspace and no permissions review to get through.

## Step 1 — create an incoming webhook in Slack

You need permission to add apps to the workspace. If you don't have it, ask whoever does — this is the only step that needs it.

1. Go to **[api.slack.com/apps](https://api.slack.com/apps)** and click **Create New App → From scratch**.
2. Name it (Bloggable is a reasonable choice) and pick your workspace.
3. In the sidebar, open **Incoming Webhooks** and turn the toggle **On**.
4. Click **Add New Webhook to Workspace** at the bottom, choose the channel the messages should land in, and **Allow**.
5. Copy the **Webhook URL**. It starts `https://hooks.slack.com/services/`.

That URL is tied to the one channel you picked. To post into a second channel, add a second webhook and a second Bloggable endpoint.

## Step 2 — add it to Bloggable

1. **Integrations → Webhooks** in the main nav.
2. Press **Connect** on the **Slack** row.
3. Paste the webhook URL.
4. Give it a name — the channel is a good one, e.g. `#content`. Optional; we'll default it to "Slack".
5. Tick the events you want (see below).
6. **Connect**.

Then press **Test** on the new row. A sample message should appear in the channel within a second or two.

## Step 3 — choose the events

| Event | When it fires |
|---|---|
| **Post published** | A post goes live. On by default. |
| **Post updated** | A live post is re-published after an edit. Not the same as autosave — this is you pressing Update. |
| **Post unpublished** | A live post is taken down. |
| **Post scheduled** | A post is queued for a future time. |
| **Drafts ready for review** | An autopilot run produced drafts waiting for approval. On by default. |
| **Topics planned** | Autopilot added topics to the calendar. |
| **Autopilot run failed** | A scheduled run couldn't complete. On by default. |
| **Credit balance low** | The account balance dropped below the warning threshold. On by default. |

You can change these any time from the endpoint's row.

**Autopilot events report a run, not a post.** One run drafts several posts and sends one message — "Autopilot wrote 3 new drafts" — rather than three near-identical notifications.

## Account-wide or one blog?

Where you add the endpoint decides what it hears:

- **Integrations → Webhooks** (main nav) — the endpoint covers **every blog** on the account, including blogs you create later.
- **A blog's own settings → Notifications for this blog** — the endpoint covers **only that blog**.

On a blog's settings page, account-wide endpoints are listed too, marked **All blogs** and read-only. That's deliberate: without it you'd look at one blog, see nothing connected, and add a second Slack endpoint that duplicates every message.

## Slack notifications and email notifications are separate

Muting autopilot emails does **not** mute Slack, and vice versa. They're different channels with different audiences — "stop emailing me about routine activity" is a statement about your inbox, not about the channel your team watches.

Email preferences live in **Settings → Notifications**. Slack events live on the endpoint.

## Troubleshooting

**"That is not a Slack incoming-webhook URL."** Bloggable only accepts URLs on `hooks.slack.com`. A Slack channel link, a workflow URL or a bot token won't work. Re-copy it from the Incoming Webhooks page.

**The test fails with 404.** The webhook was deleted or the app was removed from the workspace. Create a new webhook and add it again — a webhook URL can't be edited in place, for the same reason a password can't.

**"Stopped after 20 failures."** The endpoint failed twenty deliveries in a row and Bloggable stopped trying. Fix the URL, then flip the row's switch off and on again — re-enabling resets the counter and starts retrying.

**Messages arrive in the wrong channel.** The channel is baked into the webhook URL, not chosen in Bloggable. Create a new webhook against the right channel and swap the endpoint.

## Removing it

Delete the endpoint's row in Bloggable and messages stop immediately. To revoke it properly, also delete the webhook in Slack — anyone holding that URL can post into the channel, which is why Bloggable encrypts it and never shows it back to you.
