When a production site goes down, the worst thing that can happen is nobody noticing. Email alerts are fine, but most teams do not live in their inbox. They live in Slack. If your downtime alerts are not landing in the same place your team communicates, you are adding unnecessary delay between "something broke" and "someone is looking at it."

CronAlert sends Slack alerts through incoming webhooks. The setup takes about five minutes: create a webhook in Slack, paste the URL into CronAlert, and you are done. Alerts show up as richly formatted messages with everything you need to start investigating. Here is how to wire it up.

Step 1: Create a Slack incoming webhook

Slack incoming webhooks let external services post messages to a channel using a simple URL. You do not need to build or install a Slack app from the App Directory -- you just generate a webhook URL and hand it to whatever service needs to send messages.

1

Go to the Slack API dashboard

Open api.slack.com/apps and click Create New App. Choose From scratch, give it a name like "CronAlert" and select the workspace where you want to receive alerts.

2

Enable incoming webhooks

In the left sidebar under Features, click Incoming Webhooks. Toggle the switch to On.

3

Add a webhook to a channel

Scroll down and click Add New Webhook to Workspace. Slack will ask you to pick a channel -- choose whichever channel you want alerts to land in, like #production-alerts or #ops. Click Allow.

4

Copy the webhook URL

You will see a new webhook URL that looks like this:

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

Copy it. You will paste it into CronAlert in the next step. Treat this URL like a secret -- anyone with it can post messages to your channel.

Step 2: Add the webhook to CronAlert

Now that you have a webhook URL, tell CronAlert to use it.

1

Open Alert Channels

Log in to CronAlert and navigate to Alert Channels in the sidebar. Click Add Alert Channel.

2

Select Slack and paste the URL

Choose Slack as the channel type. Give it a descriptive name -- something like "Production Slack" or "#ops-alerts" so you can tell your channels apart later. Paste the webhook URL you copied from Slack.

3

Save and test

Click Save. CronAlert will send a test message to your Slack channel to confirm the webhook is working. If it arrives, you are all set. If not, double-check that the webhook URL is correct and that the Slack app still has permission to post to the channel.

That is the entire setup. Any monitor you create or edit can now be assigned to this Slack alert channel. When CronAlert detects downtime, Slack will light up.

What the alerts look like

CronAlert does not just dump a plain text string into Slack. Alerts use Slack Block Kit, which means structured, readable messages with clear visual hierarchy. Here is what each type looks like.

DOWN alerts

When a monitor detects a failure, the Slack message includes:

  • Header -- a bold line with a red circle indicator, the word "DOWN", and the monitor name
  • URL -- the full URL that was checked
  • Status code -- the HTTP status code returned (e.g., 502, 503, 0 for connection timeouts)
  • Error message -- a human-readable description of what went wrong
  • Failing regions -- if you are on a plan with multi-region checks, the alert lists which regions detected the failure
  • Timestamp -- when the check was performed, shown in the context footer

The Block Kit structure looks like this under the hood:

{
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": ":red_circle: DOWN: Production API"
      }
    },
    {
      "type": "section",
      "fields": [
        { "type": "mrkdwn", "text": "*URL:*\nhttps://api.example.com/health" },
        { "type": "mrkdwn", "text": "*Status:*\n502" },
        { "type": "mrkdwn", "text": "*Error:*\nBad Gateway" }
      ]
    },
    {
      "type": "context",
      "elements": [
        { "type": "mrkdwn", "text": "CronAlert | 2026-03-10T14:32:01.000Z" }
      ]
    }
  ]
}

RECOVERED alerts

When the monitor detects that the site is back up, you get a recovery message. The header swaps to a green circle with "RECOVERED", and instead of error details, it shows the total downtime duration:

  • Header -- green circle indicator, "RECOVERED", and the monitor name
  • URL -- the URL that recovered
  • Downtime -- how long the outage lasted (e.g., "4m 32s" or "1h 15m")
  • Timestamp -- when recovery was detected

The green/red distinction makes it easy to scan a busy Slack channel and immediately tell whether something is still broken or has been resolved.

Tips for getting the most out of Slack alerts

Use separate webhooks for different environments

Create one webhook that posts to #production-alerts and another that posts to #staging-alerts. In CronAlert, add both as separate alert channels, then assign your production monitors to the production channel and staging monitors to the staging channel. This keeps noise out of the channels that matter most.

Pair with maintenance windows to reduce noise

If you have a scheduled deploy or maintenance that you know will cause brief downtime, use CronAlert's maintenance windows (available on Pro and above) to pause alerting during that period. This prevents your team from getting paged for expected downtime and keeps the signal-to-noise ratio in your Slack channel high.

Set the channel notification level

In Slack, you can configure a channel's notification behavior independently from your global settings. For a channel like #production-alerts, consider setting it to notify on every message so that downtime alerts always surface -- even if your other channels are set to a quieter mode.

Combine with other alert channels

Slack alerts do not have to be your only notification method. You can assign multiple alert channels to a single monitor. A common setup is Slack for the team plus email for on-call engineers, or Slack plus a webhook that triggers a PagerDuty incident. CronAlert sends to all assigned channels simultaneously when downtime is detected.

Frequently asked questions

Are Slack alerts available on the free plan?

Yes. Slack alerts are included on every CronAlert plan, including the free tier. The free plan gives you 25 monitors with 3-minute check intervals and alerts via Slack, Discord, email, and webhooks. You do not need to upgrade to use Slack integration.

Can I send alerts to multiple Slack channels?

Yes. Create a separate incoming webhook for each Slack channel you want to receive alerts, then add each one as a distinct alert channel in CronAlert. You can assign different monitors to different channels -- for example, production monitors to #production-alerts and staging monitors to #staging-alerts.

What information is included in a downtime alert?

DOWN alerts include the monitor name, the checked URL, the HTTP status code, an error message, and the failing regions if you are using multi-region checks. RECOVERED alerts include the monitor name, URL, and total downtime duration. Both use Slack Block Kit formatting with a color-coded header so you can tell the status at a glance.

Do I need to install a Slack app from the App Directory?

No. CronAlert uses standard Slack incoming webhooks, not an installable Slack app. You create the webhook URL yourself in your Slack workspace settings, which means there is nothing to approve through your workspace admin and no third-party app with access to your Slack data.

Wrapping up

Getting downtime alerts into Slack takes five minutes and puts critical information where your team is already paying attention. Create a webhook, paste it into CronAlert, and the next time something goes down, your team will know about it in seconds -- with all the context they need to start investigating.

If you do not have a CronAlert account yet, sign up for free -- 25 monitors, 3-minute checks, and Slack alerts included. No credit card required.