> ## Documentation Index
> Fetch the complete documentation index at: https://docs.statusstack.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Notifications

> Understanding StatusStack's multi-channel notification system

## What are Notifications?

**Notifications** alert your team when component or Stack status changes. StatusStack's notification system supports multiple channels and flexible rules to ensure the right people get alerted at the right time through their preferred communication method.

## Why Use Notifications?

<CardGroup cols={2}>
  <Card title="Stay Informed" icon="bell">
    Get instant alerts when services experience issues
  </Card>

  <Card title="Multi-Channel Delivery" icon="paper-plane">
    16+ channels including Slack, Teams, Discord, PagerDuty, Opsgenie, and more
  </Card>

  <Card title="Flexible Rules" icon="sliders">
    Configure what triggers alerts and where they're sent
  </Card>

  <Card title="Reduce Noise" icon="volume-off">
    Filter by severity level to avoid alert fatigue
  </Card>
</CardGroup>

***

## Notification Channels

StatusStack supports 16+ notification channels across multiple categories:

### Discord

Send notifications to Discord channels via webhooks.

**Setup:**

1. Create a webhook in your Discord server settings
2. Copy the webhook URL
3. Paste into StatusStack notification rule configuration

**Example Webhook URL:**

```
https://discord.com/api/webhooks/123456789/abcdefghijklmnop
```

**What You'll Receive:**

* Embedded message with Stack name
* Component status and description
* Color-coded by severity (red = outage, yellow = degraded, etc.)
* Timestamp of status change

***

### Slack

Post notifications to Slack channels via incoming webhooks.

**Setup:**

1. Create an incoming webhook in your Slack workspace
2. Select the channel to post to
3. Copy the webhook URL
4. Add to StatusStack notification rule

**Example Webhook URL:**

```
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXX
```

**What You'll Receive:**

* Formatted message with Stack and component details
* Status emoji (🟢 🟡 🔴 🔵)
* Link to Stack status page
* Timestamp

***

### Microsoft Teams

Send alerts to Teams channels via webhooks.

**Setup:**

1. In Teams, go to channel settings → Connectors
2. Add "Incoming Webhook" connector
3. Copy the webhook URL
4. Configure in StatusStack

**Example Webhook URL:**

```
https://outlook.office.com/webhook/abc123.../IncomingWebhook/xyz789...
```

**What You'll Receive:**

* Adaptive card with Stack information
* Status indicators
* Component details
* Action buttons (view Stack, view component)

***

### Email

Send notification emails to specified addresses.

**Setup:**

1. Enter email addresses (comma-separated for multiple)
2. Configure which alert levels to send
3. Save notification rule

**Email Format:**

* **Subject**: `[StatusStack] {Stack Name} - {Status Change}`
* **Body**: Formatted HTML with Stack details, component information, and status history
* **Attachments**: None
* **Frequency**: Instant (on status change)

**Enriched Incident Context:**

Status change emails now include detailed incident information when available:

* **Incident severity** and title
* **Permalink** to the incident detail page
* **Start time** and current duration
* **Affected components** — all components impacted by the incident

This enrichment gives recipients immediate context about what's happening without needing to open the dashboard.

**Example Recipients:**

```
team@company.com, alerts@company.com, ops@company.com
```

***

### SMS (via Twilio)

Send text message alerts for critical issues.

**Setup:**

1. Connect your Twilio account in StatusStack settings
2. Verify phone numbers to receive alerts
3. Add phone numbers to notification rule

**Requirements:**

* Active Twilio account with credits
* Verified Twilio phone number
* Recipient numbers verified (Twilio trial) or any number (paid account)

**SMS Format:**

```
[StatusStack Alert]
Stack: Production Infrastructure
Status: OUTAGE
Component: Production API
Time: 2025-01-19 10:30 UTC
```

**Important:** SMS notifications are sent only for `alert` level (outages). Use email/chat for lower severity.

***

### Webhooks

Send HTTP POST requests to custom endpoints for integration with other systems.

**Setup:**

1. Provide your webhook endpoint URL
2. Optionally configure custom headers
3. Select alert levels to trigger webhook

**Payload Format:**

```json theme={null}
{
  "event": "component.status_changed",
  "timestamp": "2025-01-19T10:30:00Z",
  "stack": {
    "id": "uuid",
    "name": "Production Infrastructure",
    "slug": "production-infra",
    "status": "degraded"
  },
  "component": {
    "id": "uuid",
    "name": "Production API",
    "status": "degraded",
    "previous_status": "operational",
    "description": "Increased response times detected"
  },
  "organization": {
    "id": "uuid",
    "name": "Your Company"
  }
}
```

**Use Cases:**

* Trigger PagerDuty incidents
* Update status in other monitoring tools
* Log to SIEM systems
* Trigger automated remediation workflows

***

### Incident Management Platforms

StatusStack integrates with popular incident management and alerting platforms:

#### PagerDuty

Automatically create PagerDuty incidents when outages occur.

**Setup:**

1. Create an Events API v2 integration in PagerDuty
2. Copy your Integration Key
3. Add PagerDuty as a notification channel in StatusStack

#### Opsgenie

Route alerts to Opsgenie for on-call scheduling and escalation.

**Setup:**

1. Create an API integration in Opsgenie
2. Copy the API Key
3. Configure in StatusStack notification rules

#### BetterStack (formerly Better Uptime)

Forward incidents to BetterStack for unified incident management.

#### Datadog

Send status events to Datadog for correlation with your metrics and logs.

***

### Additional Chat Platforms

#### Telegram

Send alerts to Telegram channels or groups via bot.

**Setup:**

1. Create a Telegram bot via @BotFather
2. Get your bot token
3. Add the bot to your channel/group
4. Configure in StatusStack

#### Google Chat

Post notifications to Google Chat spaces.

**Setup:**

1. Create a webhook in your Google Chat space
2. Copy the webhook URL
3. Add to StatusStack notification rules

#### Pushover

Send push notifications to mobile devices via Pushover.

***

### Ticketing & Helpdesk

Automatically create tickets when incidents occur:

#### Jira

Create Jira issues for incident tracking and post-mortem workflows.

#### Zendesk

Create Zendesk tickets to track customer-impacting incidents.

#### Freshdesk

Integrate with Freshdesk for customer support ticket creation.

#### Freshservice

Connect with Freshservice for IT service management workflows.

***

## Notification Rules

### What is a Notification Rule?

A **notification rule** defines:

1. **When** to send notifications (alert levels)
2. **What** to monitor (Stacks, components, or all)
3. **Where** to send alerts (channels and destinations)
4. **Who** receives them (email addresses, phone numbers)

### Creating a Notification Rule

<Steps>
  <Step title="Navigate to Notifications">
    Go to **Settings** → **Notifications** in the customer dashboard
  </Step>

  <Step title="Create Rule">
    Click **"Create Notification Rule"** button
  </Step>

  <Step title="Configure Basics">
    * **Name**: Descriptive rule name (e.g., "Production Outage Alerts")
    * **Enabled**: Toggle to activate/deactivate rule
  </Step>

  <Step title="Select Alert Levels">
    Choose which severity levels trigger this rule:

    * **Info**: Status improvements (degraded → operational)
    * **Warning**: Degraded performance detected
    * **Alert**: Outages and critical failures
  </Step>

  <Step title="Choose Scope">
    Select what to monitor:

    * **All Stacks**: Monitor all Stacks in your organization
    * **Specific Stacks**: Select individual Stacks
    * **Specific Components**: Target individual components (advanced)
  </Step>

  <Step title="Configure Channels">
    Add notification channels:

    * Discord webhook URL
    * Slack webhook URL
    * Microsoft Teams webhook URL
    * Email addresses
    * Phone numbers (for SMS)
    * Custom webhook endpoint
  </Step>

  <Step title="Save Rule">
    Click **Create** to activate the notification rule
  </Step>
</Steps>

***

## Alert Levels

Notifications are triggered based on three alert levels:

### 🔵 Info

**When Triggered:**

* Component status improves (degraded → operational, maintenance → operational)
* Outage resolved
* Service restored

**Recommended Channels:**

* Email (for record keeping)
* Slack/Discord (for team awareness)

**Example Use Case:**
"Notify the team when production services return to operational status"

***

### 🟡 Warning

**When Triggered:**

* Component status degrades (operational → degraded)
* Performance issues detected
* Partial outage

**Recommended Channels:**

* Slack/Discord (immediate awareness)
* Email (for on-call team)

**Example Use Case:**
"Alert DevOps team when any production component shows degraded performance"

***

### 🔴 Alert

**When Triggered:**

* Complete outage (operational → outage, degraded → outage)
* Critical failure detected
* Service completely unavailable

**Recommended Channels:**

* SMS (critical alerts)
* Slack/Discord (immediate team notification)
* Email (for documentation)
* Webhooks (for PagerDuty integration)

**Example Use Case:**
"Send SMS to on-call engineer when production API goes down"

***

## Notification Rule Examples

### Example 1: Production Outage Alerts

```javascript theme={null}
{
  "name": "Production Critical Alerts",
  "enabled": true,
  "alert_levels": ["alert"], // Only outages
  "scope": {
    "type": "stacks",
    "stack_ids": ["prod-stack-uuid"]
  },
  "channels": {
    "slack": "https://hooks.slack.com/services/...",
    "email": "oncall@company.com",
    "sms": ["+1234567890"]
  }
}
```

**Behavior:**

* Monitors only the Production Stack
* Sends notifications ONLY for outages (not degraded)
* Alerts via Slack, email, AND SMS
* Critical issues get maximum visibility

***

### Example 2: Team Awareness for All Changes

```javascript theme={null}
{
  "name": "Team Status Updates",
  "enabled": true,
  "alert_levels": ["info", "warning", "alert"], // All changes
  "scope": {
    "type": "all_stacks"
  },
  "channels": {
    "slack": "https://hooks.slack.com/services/...",
    "email": "team@company.com"
  }
}
```

**Behavior:**

* Monitors ALL Stacks in organization
* Sends notifications for all status changes
* Alerts via Slack and email
* Keeps team informed of everything

***

### Example 3: Client-Specific Alerts (MSP Mode)

```javascript theme={null}
{
  "name": "Client ABC Production Alerts",
  "enabled": true,
  "alert_levels": ["warning", "alert"],
  "scope": {
    "type": "stacks",
    "stack_ids": ["client-abc-prod-uuid"]
  },
  "channels": {
    "email": "support@clientabc.com",
    "webhook": "https://clientabc.com/api/status-webhook"
  }
}
```

**Behavior:**

* Monitors only Client ABC's production Stack
* Alerts on degraded and outage status
* Sends to client's email and custom webhook
* Client gets notifications about their services

***

### Example 4: Custom Webhook Integration

```javascript theme={null}
{
  "name": "PagerDuty Integration",
  "enabled": true,
  "alert_levels": ["alert"], // Critical only
  "scope": {
    "type": "stacks",
    "stack_ids": ["prod-stack-uuid", "staging-stack-uuid"]
  },
  "channels": {
    "webhook": {
      "url": "https://events.pagerduty.com/v2/enqueue",
      "headers": {
        "Authorization": "Token token=your-pd-integration-key",
        "Content-Type": "application/json"
      }
    }
  }
}
```

**Behavior:**

* Monitors production and staging Stacks
* Triggers PagerDuty incidents for outages
* Custom headers for authentication
* Automates incident escalation

***

## Best Practices

### Rule Organization

<Checklist>
  * [ ] Create separate rules for different severity levels
  * [ ] Use descriptive rule names
  * [ ] Keep critical alerts (SMS) limited to outages only
  * [ ] Send info/warning to team channels (Slack/Discord)
  * [ ] Test each rule after creation
  * [ ] Review and update rules quarterly
</Checklist>

### Reducing Alert Fatigue

**DO:**

* ✅ Use different channels for different severity levels
* ✅ Send SMS only for critical outages
* ✅ Group related components in Stacks to reduce duplicate alerts
* ✅ Set appropriate alert thresholds for custom monitors
* ✅ Use "info" level sparingly (only for important resolutions)

**DON'T:**

* ❌ Send all alerts to SMS (expensive and annoying)
* ❌ Alert on every status change (causes alert fatigue)
* ❌ Use generic rule names like "Rule 1"
* ❌ Send production alerts to personal emails
* ❌ Forget to test rules after creation

### Channel Selection Guide

| Severity | Recommended Channels       | Why                                      |
| -------- | -------------------------- | ---------------------------------------- |
| Info     | Email, Slack               | Non-urgent, informational                |
| Warning  | Slack, Discord, Email      | Requires awareness, not immediate action |
| Alert    | SMS, Slack, Email, Webhook | Critical - requires immediate action     |

***

## Notification Delivery

### Timing

* **Instant**: Notifications sent within 30 seconds of status change
* **No Batching**: Each status change triggers immediately
* **No Delays**: Real-time alerting for all channels

### Retry Logic

If notification delivery fails:

1. **Immediate Retry**: 30 seconds after initial failure
2. **Second Retry**: 2 minutes after first retry
3. **Third Retry**: 5 minutes after second retry
4. **Final Attempt**: 15 minutes after third retry

After 4 failed attempts, notification is marked as failed and logged.

### Delivery Confirmation

Check notification delivery status in the dashboard:

1. Go to **Settings** → **Notifications**
2. View notification history
3. See delivery status for each alert:
   * ✅ **Delivered**: Successfully sent
   * ⏳ **Pending**: Queued for delivery
   * ❌ **Failed**: Delivery failed after retries

***

## Troubleshooting

### Notifications Not Received

<AccordionGroup>
  <Accordion title="Check Webhook URLs">
    **Discord/Slack/Teams:**

    * Verify webhook URL is correct
    * Check webhook hasn't been deleted in channel settings
    * Test webhook manually using curl or Postman
    * Ensure webhook has permission to post to channel
  </Accordion>

  <Accordion title="Email Issues">
    **Email not arriving:**

    * Check spam/junk folders
    * Verify email addresses are correct
    * Ensure email domain isn't blocking statusstack.com
    * Check notification delivery status in dashboard
  </Accordion>

  <Accordion title="SMS Problems">
    **SMS not received:**

    * Verify Twilio account is active and funded
    * Check phone numbers are in E.164 format (+1234567890)
    * Verify numbers in Twilio trial account (if applicable)
    * Check Twilio console for delivery errors
  </Accordion>

  <Accordion title="Webhook Failures">
    **Custom webhooks failing:**

    * Verify endpoint URL is accessible
    * Check for SSL certificate issues
    * Ensure endpoint accepts POST requests
    * Review endpoint logs for errors
    * Test with curl: `curl -X POST -H "Content-Type: application/json" -d '{}' https://your-endpoint.com`
  </Accordion>
</AccordionGroup>

### Rule Not Triggering

**Check:**

1. Rule is enabled (toggle switched on)
2. Alert level matches status change (e.g., rule set to "alert" but status changed to "degraded")
3. Scope includes the affected Stack/component
4. Stack belongs to your organization/team

### Too Many Notifications

**Solutions:**

1. Adjust alert levels (remove "info" if too noisy)
2. Narrow scope to specific Stacks instead of "all"
3. Increase alert threshold for custom monitors
4. Consolidate similar components into groups
5. Disable rules temporarily during maintenance windows

***

## Notification Limits

Current limits per organization tier:

| Plan         | Notification Rules | Channels per Rule | Monthly Notifications |
| ------------ | ------------------ | ----------------- | --------------------- |
| Free         | 3                  | 2                 | 500                   |
| Starter      | 10                 | 5                 | 5,000                 |
| Professional | 50                 | 10                | 50,000                |
| Enterprise   | Unlimited          | Unlimited         | Unlimited             |

**Note:** SMS notifications have separate limits based on Twilio account funding.

***

## Related Documentation

<CardGroup cols={2}>
  <Card title="Stacks" icon="layer-group" href="/concepts/stacks">
    Understanding Stack organization
  </Card>

  <Card title="Components" icon="cube" href="/concepts/components">
    Component types and monitoring
  </Card>

  <Card title="Customer Dashboard" icon="gauge" href="/guides/customer-dashboard">
    Managing notification rules
  </Card>

  <Card title="MSP Setup" icon="building" href="/guides/msp-setup">
    Client-specific notifications
  </Card>
</CardGroup>

***

**Notifications ensure your team stays informed about service status changes.** Configure multi-channel rules with appropriate severity levels to balance awareness with alert fatigue, keeping your team responsive without overwhelming them.
