AppStatus Documentation Hub for Production Operations

Docs > Getting Started > Getting Started with Alerts

Getting Started with Alerts

Overview

This guide introduces AppStatus Alerts and covers:

  • 12 notification channel types (Email, Slack, Teams, Discord, Webhook, SMS, WhatsApp, Telegram, Pushover, Phone, Web, Chat)
  • Alert rules with condition-based triggers
  • Multi-level escalation policies with quiet hours and on-call rotation
  • Alert lifecycle: firing → acknowledged → resolved
  • Delivery tracking with full event history
  • Test dispatch to verify channels before incidents

What are AppStatus Alerts?

Alerts transform monitor and incident signals into actionable notifications delivered through your team's preferred channels. When a monitor goes down, an SSL certificate nears expiry, or latency spikes, alert rules evaluate the event against configured conditions and dispatch notifications through bound channels with priority, severity, and escalation logic.

The alert system supports 12 notification channel types — from email and Slack to phone calls and custom webhooks — each with type-specific configuration validation. Escalation policies define multi-level notification chains with configurable delays, repeat intervals, quiet hours, and on-call schedules so critical alerts always reach the right person.

Key capabilities:

  • 12 channel types: Email, SMS, Slack, Teams, WhatsApp, Webhook, Web Push, Pushover, Telegram, Discord, Phone, Google Chat
  • 5 condition types: monitor_issue, uptime_down, latency_spike, ssl_expiry, response_error
  • 4 severity levels: critical, error, warning, info
  • 4 priority levels: critical, high, medium, low
  • Up to 5 escalation levels per policy with independent delay and retry config
  • Quiet hours with timezone-aware scheduling
  • On-call rotation support
  • Priority-based routing (different escalation chains per severity)
  • Full delivery tracking: queued → sent → delivered → failed

Alert Workflows

Each workflow maps to real AppStatus features and API endpoints used in the main app.

Notification Channels

Channel setup is managed in Notification Channel Setup modal and requires type-specific config validation before channel creation.

  1. Pick channel type: email, slack, teams, webhook, sms, whatsapp, web push, pushover, or telegram.
  2. Email channels require recipient email; endpoint channels require valid http/https webhook URL.
  3. Pushover requires app token + user key; telegram supports bot token/chat ID.
  4. Enable channel only after connectivity and credential validation.

Troubleshooting

Notifications not being delivered

Check the channel is_enabled flag. Verify credentials — Slack webhook URLs expire when the app is reinstalled. Use the test dispatch endpoint to verify connectivity. Check delivery history for failed status events.

Too many alerts (alert fatigue)

Separate critical and informational channels. Use escalation policies to group alerts by severity. Configure quiet hours for non-critical alerts. Increase escalate_after_minutes to batch rapid-fire alerts.

Escalation policy not working

Verify each level has valid channel_ids. Check delay_minutes between levels. Ensure the policy is_enabled and monitor_scope matches the target monitors. Review priority_routing — the severity must map to the escalation levels.

Telegram/Pushover not receiving messages

For Telegram, verify bot_token and chat_id. The bot must be added to the chat. For Pushover, verify both token (application) and user (recipient) keys. Use the test endpoint to debug.

Operational Guidance

  • Keep critical and informational channels separate.
  • Revalidate credentials after any channel provider update.
  • Use explicit escalation ownership for every severity tier.

Step-by-Step Setup

Alerts turn raw monitor failures into useful notifications on the channels your team actually watches. You set up channels once (Slack, Email, SMS, etc.), then create rules that decide which channel gets which kind of alert and when to escalate. Most teams need 5 minutes to set up their first end-to-end alert.

Before you start

  • A monitor (so the rule has something to evaluate)
  • Credentials or destination for at least one channel — e.g. a Slack webhook URL, a verified email, or an SMS-capable phone number
  1. 1

    Open Alerts → Channels

    A channel is a reusable delivery target — one email distribution list, one Slack webhook, one SMS number, etc. You build them once and then attach them to as many monitors and rules as you want.

    WhereSidebar → Alerts → Channels tab
  2. 2

    Click "+ New channel" and pick the type

    A dropdown lists all twelve channel types. Email and Slack are the most common starting points — see the channels table below for what each one needs from you.

    WhereChannels → + New channel
  3. 3

    Fill in the channel form

    Each channel type asks for what it needs — recipients for Email, webhook URL for Slack, phone number for SMS, etc. Give the channel a clear name (e.g. "On-call Slack", "Billing email list") so future-you knows which is which.

    WhereChannel form → Name, Type, Type-specific config, Enabled
  4. 4

    Test the channel before you trust it

    Click "Send test" on the channel detail page. AppStatus dispatches a sample alert payload immediately and shows whether delivery succeeded. Fix the credentials before moving on — you do not want to discover a broken webhook during a real outage.

    WhereChannel detail → Send test (top-right)
    Tip

    For Slack: the test message arrives in the same channel the webhook is bound to. For SMS: charges apply per test.

  5. 5

    Switch to the Rules tab and click "+ New rule"

    A rule binds three things together: which monitors it applies to, what condition triggers it, and which channels to notify. You can scope a rule to one monitor or to all monitors in the workspace.

    WhereAlerts → Rules → + New rule
  6. 6

    Configure the trigger condition

    Pick the condition type (most teams start with "Monitor goes DOWN" with 2 consecutive failures to avoid flapping). Add the severity (low / medium / high / critical), then choose the channels that should be notified.

    WhereRule form → Condition type, Consecutive failures, Severity, Channels
  7. 7

    Add escalation (optional but recommended)

    Tell the rule what to do if the first responder does not acknowledge within a time window. A common pattern is: page Slack first → escalate to SMS after 10 min → escalate to manager email after 30 min.

    WhereRule form → Escalation → Escalate after, Repeat every, Then notify
  8. 8

    Set quiet hours (optional)

    For non-critical rules, suppress notifications during night-time hours so you do not get paged for a flaky job at 3am. Critical-severity rules ignore quiet hours by design.

    WhereRule form → Quiet hours → Start, End, Timezone
  9. 9

    Save and verify

    After saving, the rule is live immediately. On the rule detail page, the Delivery tab shows every alert that has been sent, when it was acknowledged, and which channel delivered it.

    WhereSave → Rules list → click the rule → Delivery tab

Configuration Options

Every option you can set, what each choice means, and what to pick. Use this as a reference while you fill in the form.

Channel types

Every channel type, what it needs from you, and when to use it.

FieldOptionsWhat it doesRecommended
EmailOne or more recipient addressesPlain email alert. Reliable, free, but slow for on-call.Use for non-critical and after-hours summary alerts.
SlackIncoming webhook URL + channelRich incident card in your Slack channel with ack/resolve buttons.Primary channel for engineering teams.
Microsoft TeamsConnector webhook URLSame rich card format as Slack but in Teams.When the team is on Microsoft 365.
SMSCountry code + phone numberText message — the right channel for true paging.For Critical severity only (costs per message).
WhatsAppCountry code + phone numberWhatsApp message — cheaper than SMS in many countries.For teams already living in WhatsApp groups.
WebhookAny HTTPS URLPOSTs a JSON payload to the URL — connect to PagerDuty, Opsgenie, your own router.For custom integrations or third-party paging tools.
TelegramBot token + chat IDSends to a Telegram chat via a bot you create with @BotFather.For indie / community teams on Telegram.
DiscordServer webhook URLSame rich format as Slack but in a Discord channel.For gaming / community / open-source teams.
PushoverApp token + user keyNative mobile push notification on iOS/Android via the Pushover app.For solo founders / small on-call rotations.
Web pushBrowser permission (in-app)Browser push notification — appears even when the AppStatus tab is closed.For team members at a desk during business hours.

Rule trigger conditions

FieldOptionsWhat it doesRecommended
Monitor goes DOWNConsecutive failures: 1 / 2 / 3 / 5Fires when the monitor fails N checks in a row.2 consecutive failures — protects against flapping.
Latency spikeThreshold (ms): 500 / 1000 / 2000 / customFires when response time exceeds the threshold for N checks.2× your normal p95 for the endpoint.
SSL expiringDays before expiry: 7 / 14 / 30 / 60Fires when an SSL-enabled monitor's certificate is within N days of expiry.30 days for renewable certs; 7 days as a last warning.
Response errorFree-text pattern (e.g. "DB timeout")Fires when the response body matches a substring you specify.For services that return 200 on partial failure.
Heartbeat missingAuto (uses heartbeat's grace period)Fires when a heartbeat ping is overdue past its grace period.Pair with every heartbeat you create.

Severity & escalation

FieldOptionsWhat it doesRecommended
SeverityLow / Medium / High / CriticalDrives channel routing, status page color and quiet-hours behaviour.Critical = paging; High = chat; Medium = email; Low = digest.
Escalate after5 min / 10 min / 30 min / 1hIf no human acknowledges within this window, AppStatus notifies the next tier.10 min for High/Critical; off for Low/Medium.
Repeat everyNever / 15 min / 30 min / 1hRe-sends the alert on this interval until someone acknowledges.30 min for Critical only.
Quiet hoursStart time, end time, timezoneSuppresses non-Critical alerts during the window.22:00 → 07:00 in your team's timezone.

Feature Reference

Every feature, where to find it in the app, and what it does. Use this when you know what you want to do but not where it lives.

FeatureWhere in appDescription
Create channelSidebar → Alerts → Channels → + New channelReusable delivery target (Slack webhook, email list, SMS number, etc.).
Test channelChannel detail → Send testFires a sample alert immediately to validate credentials.
Disable channelChannel detail → Enabled toggleStops delivery without deleting — useful during a noisy incident.
Create alert ruleSidebar → Alerts → Rules → + New ruleBinds monitors + condition + severity + channels + escalation.
Acknowledge alertAlert card in Slack/Email / Alerts → ActiveStops repeat and escalation; records who acked in the incident timeline.
Escalation chainRule form → EscalationTiered fallback if no one acks within the configured window.
Quiet hoursRule form → Quiet hoursSuppress non-critical alerts during off-hours.
Delivery logRule detail → Delivery tabEvery alert sent, ack status, which channel delivered, any failure reason.

Next Steps

Continue building your monitoring stack: