← Blog

Slack alerts when your service goes down

Your API can look fine on your laptop and still be down for customers — deploy stuck, DNS wrong, TLS expired, region outage. External uptime monitoring hits your public health URL from the internet. Slack is where indie teams already live, so routing owner alerts there beats refreshing a dashboard.

StillOnline sends plain-text messages to a Slack Incoming Webhook you control. No Slack App review and no global bot token on our servers — only your webhook URL stored in account settings.

What you get in Slack

After a check is configured, StillOnline can post to your channel when:

EventWhen
Check downProbe fails twice in a row (degraded → down). Throttled to at most once every 15 minutes per owner (same as email).
Check recoveredStatus returns to operational after down/degraded.
24h stabilityCheck stays operational for 24 hours without an outage (milestone message).

Each message includes project name, check name, URL, and a link to your public status page.

StillOnline does not post every failed probe — only status transitions and the stability milestone.

Before you connect Slack

  1. A StillOnline accountsign in (Google or GitHub).
  2. A project with an HTTP check — URL that should return 2xx (see health check quickstart).
  3. Permission in Slack to add an app / incoming webhook to a channel (often #alerts, #incidents, or a private channel).

On Free, pick one owner alert channel: Email, Telegram, or Slack. On Pro / Ultimate, you can enable email, Telegram, and Slack together (Pricing).

Part A — Create a Slack Incoming Webhook

Step 1 — Open Slack API apps

Go to api.slack.com/apps and sign in to the workspace where you want alerts.

Step 2 — Create an app

  1. Click Create New App.
  2. Choose From scratch.
  3. App Name: e.g. StillOnline Alerts.
  4. Workspace: select your team → Create App.

Step 3 — Enable Incoming Webhooks

  1. In the left sidebar, open Incoming Webhooks.

  2. Turn Activate Incoming Webhooks to On.

  3. Click Add New Webhook to Workspace at the bottom.

  4. Choose the channel (e.g. #alerts or #devops) → Allow.

  5. Copy the webhook URL — it looks like:

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

Keep this URL secret. Anyone with it can post to that channel.

Step 4 — (Optional) Restrict the channel

Use a dedicated channel so uptime messages do not mix with product chat. Mute the channel if you only want @mentions on down events (Slack client settings).

Part B — Connect the webhook in StillOnline

Step 5 — Open owner notification settings

  1. Go to https://stillonline.tech/en/app/settings.
  2. Scroll to Owner notifications.

Step 6 — Paste the webhook and enable Slack

  1. In the Slack section, paste the Incoming Webhook URL into the field.
  2. Check Slack alerts.
  3. On Free, under Free: one channel, select Slack (if you use email today, switching to Slack disables email alerts until you change it back or upgrade).
  4. Click Save.

If the URL is invalid (not https://hooks.slack.com/services/...), the form will reject it.

Step 7 — Confirm a check exists

In Projects, open your project and ensure an HTTP check points at your live URL (e.g. https://api.example.com/health). The worker probes on your plan interval (5 minutes on Free).

Part C — Verify alerts work

Step 8 — Trigger a test down (carefully)

Pick a non-production check or a temporary URL:

  1. Edit the check URL to something that returns 500 or is unreachable, or pause your service briefly in a staging environment.
  2. Wait for two failed probe cycles (up to ~10 minutes on a 5-minute interval).
  3. You should see a Slack message like StillOnline — check down with project and URL.

Step 9 — Confirm recovery

Restore the correct URL or service. After the next successful probes, you should get StillOnline — check recovered.

Do not rely on Slack alone for compliance — keep your status page linked for customers.

Slack vs email vs Telegram

ChannelBest for
SlackTeams already in Slack; #alerts for on-call visibility
EmailFounders who live in inbox; works on Free as the single channel
TelegramMobile-first; link bot in settings, same down/recovery/24h events

Subscribers on the public status page still get email when they subscribe with Google — that is separate from owner Slack alerts.

Limits and troubleshooting

IssueWhat to check
No message on failureCheck enabled? Two failures needed for down? Free plan: Slack selected as the only channel?
Webhook saved but silentURL copied fully; channel not archived; Slack app not removed from workspace
Too many messagesDown alerts are throttled (15 min); recovery and 24h are separate
Message in wrong workspaceWebhook is per-workspace — create another app if you use multiple teams

StillOnline logs delivery in the database (NotificationLog, channel SLACK) for support debugging.

Related guides

FAQ

Do I need a paid Slack plan?

Incoming Webhooks work on free Slack workspaces. You need permission to install apps in the workspace.

Can I send alerts to a DM?

Some teams add the webhook to a private channel or use Slack workflows. The standard path is a channel webhook from Add New Webhook to Workspace.

Does StillOnline support Slack OAuth or slash commands?

Not yet. Owner alerts use Incoming Webhooks only — simpler setup, no Slack marketplace review.

Will I get an alert on every timeout?

No. Status must flip to down (after consecutive failures). Transient blips may show as degraded on the status page without a down alert.

Can I use Slack and email on Free?

No — one owner channel on Free. Pro allows email + Telegram + Slack together.

Is the webhook URL stored securely?

Treat it like a password. Rotate by creating a new webhook in Slack and updating settings. Leave the field blank on save to keep the previous URL unchanged.