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.
Step 1: Create an Incoming Webhooks app
Section titled “Step 1: Create an Incoming Webhooks app”Slack’s Incoming Webhooks are managed through the Slack API app directory.
- Go to api.slack.com/apps and sign in to your workspace.
- Click Create New App, then choose From scratch.
- Give the app a name (e.g.
ChannelWatch) and select your workspace. - Click Create App.
Step 2: Enable Incoming Webhooks
Section titled “Step 2: Enable Incoming Webhooks”- In the left sidebar of your app settings, click Incoming Webhooks.
- Toggle Activate Incoming Webhooks to On.
- Scroll down and click Add New Webhook to Workspace.
- Choose the channel where ChannelWatch should post alerts (e.g.
#channelwatchor#home-alerts). - Click Allow.
Slack generates a webhook URL in this format:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXXThe three path segments after /services/ are your tokens: T00000000, B00000000, and XXXXXXXXXXXXXXXXXXXXXXXX.
Step 3: Enter credentials in ChannelWatch
Section titled “Step 3: Enter credentials in ChannelWatch”ChannelWatch needs the three token segments joined with slashes, not the full webhook URL.
-
Open the ChannelWatch web UI and go to Settings > Notifications.
-
Enable the Slack toggle.
-
In the Slack Webhook field, enter the three tokens from your webhook URL:
T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXXUsing the example URL above, you would enter exactly the part after
/services/. -
Click Save.
ChannelWatch wraps your input with the slack:// prefix internally. You do not need to add it yourself.
Environment variable
Section titled “Environment variable”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.
Step 4: Send a test notification
Section titled “Step 4: Send a test notification”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:
docker exec -it channelwatch python -m channelwatch.main --test-alert ALERT_CHANNEL_WATCHINGTroubleshooting
Section titled “Troubleshooting”“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.
Related pages
Section titled “Related pages”- 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