Skip to content

Slack

Slack notifications are delivered through an Incoming Webhook, which is a URL that Slack generates for a specific channel in your workspace. ChannelWatch uses Apprise to send messages, and it expects the three token segments from that webhook URL.

Slack’s Incoming Webhooks are managed through the Slack API app directory.

  1. Go to api.slack.com/apps and sign in to your workspace.
  2. Click Create New App, then choose From scratch.
  3. Give the app a name (e.g. ChannelWatch) and select your workspace.
  4. Click Create App.
  1. In the left sidebar of your app settings, click Incoming Webhooks.
  2. Toggle Activate Incoming Webhooks to On.
  3. Scroll down and click Add New Webhook to Workspace.
  4. Choose the channel where ChannelWatch should post alerts (e.g. #channelwatch or #home-alerts).
  5. Click Allow.

Slack generates a webhook URL in this format:

https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

The three path segments after /services/ are your tokens: T00000000, B00000000, and XXXXXXXXXXXXXXXXXXXXXXXX.

ChannelWatch needs the three token segments joined with slashes, not the full webhook URL.

  1. Open the ChannelWatch web UI and go to Settings > Notifications.

  2. Enable the Slack toggle.

  3. In the Slack Webhook field, enter the three tokens from your webhook URL:

    T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX

    Using the example URL above, you would enter exactly the part after /services/.

  4. Click Save.

ChannelWatch wraps your input with the slack:// prefix internally. You do not need to add it yourself.

To configure Slack without the web UI, set this variable in your docker-compose.yml:

environment:
CW_APPRISE_SLACK: "T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"

Replace the token segments with your actual values from the webhook URL.

Go to Diagnostics > Alert Tests and run any alert test. The message should appear in your chosen Slack channel within a few seconds.

From the command line:

Terminal window
docker exec -it channelwatch python -m channelwatch.main --test-alert ALERT_CHANNEL_WATCHING

“Invalid token” or 403 error in logs

The token segments are wrong or in the wrong order. Copy the webhook URL from the Slack app settings page again and extract the three segments carefully. The URL format is always /services/T.../B.../X... and the tokens go in that order.

“Channel not found” or messages not appearing

The webhook is tied to a specific channel. If you archived or deleted that channel, the webhook stops working. Create a new webhook pointing to an active channel.

“No permission to post” error

The app may have been removed from the workspace or the webhook was revoked. Go to api.slack.com/apps, open your app, and check that the webhook is still listed under Incoming Webhooks. If it was deleted, click Add New Webhook to Workspace to generate a new one, then update ChannelWatch with the new tokens.

Messages arrive but formatting looks wrong

Apprise sends Slack messages as plain text with emoji. Slack’s message formatting (bold, links) is not used. This is expected behavior.

Webhook was working, then stopped

Slack webhooks can be revoked if a workspace admin removes the app or if the app’s OAuth token expires. Check the app status at api.slack.com/apps. If the webhook is gone, generate a new one and update ChannelWatch.

  • Telegram — send alerts to a Telegram chat via bot
  • Discord — webhook-based notifications for Discord servers
  • Delivery Log — view per-notification delivery history and retry status
  • Notification Examples — see what each alert type looks like when delivered