Notifications
Configure how your team receives alerts when monitors fail or incidents occur.
Alert Rules
Alert rules determine when and how notifications are sent:
- Go to Settings β Notifications β Alert Rules
- Create a rule with:
- Name: Descriptive name for the rule
- Triggers: Which events trigger the alert (monitor down, incident created, etc.)
- Channels: Which notification channels to use
- Cooldown: Minimum time between repeated alerts (prevents alert fatigue)
Supported Events
| Event | Description |
|---|---|
monitor.down | Monitor fails from multiple regions |
monitor.up | Monitor recovers after being down |
monitor.degraded | Monitor reports slow responses |
incident.created | New incident is created |
incident.updated | Incident status is updated |
incident.resolved | Incident is resolved |
maintenance.scheduled | Maintenance window is scheduled |
maintenance.started | Maintenance window begins |
maintenance.completed | Maintenance window ends |
Alerts are automatically suppressed during active maintenance windows.
Send alerts to team members or custom email addresses.
Setup
- Go to Settings β Notifications β Email
- Add recipient email addresses
- Configure which events to notify
Features
- HTML formatted emails with status badges
- One-click acknowledge links
- Subscriber notifications for public incidents
Webhook
Send HTTP POST requests to your own endpoints.
Setup
- Go to Settings β Integrations β Webhooks
- Enter your endpoint URL
- Save to generate a signing secret
- Use the secret to verify incoming webhooks
Signature Verification
All webhooks include a X-Statly-Signature header:
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(`sha256=${expected}`)
);
}
// Express middleware
app.post('/webhook', express.raw({ type: 'application/json' }), (req, res) => {
const signature = req.headers['x-statly-signature'];
if (!verifyWebhook(req.body, signature, process.env.WEBHOOK_SECRET)) {
return res.status(401).send('Invalid signature');
}
const event = JSON.parse(req.body);
// Handle event...
res.status(200).send('OK');
});Slack
Post alerts to Slack channels using incoming webhooks.
Setup
- Create a Slack app at api.slack.com/apps (opens in a new tab)
- Enable Incoming Webhooks
- Add a webhook to your workspace and select a channel
- Copy the webhook URL
- In Statly: Settings β Integrations β Slack
- Paste the webhook URL and save
Message Format
Alerts are formatted with:
- Color-coded attachments (red for down, green for up)
- Monitor/incident details
- Direct links to Statly dashboard
Discord
Send alerts to Discord channels.
Setup
- In Discord, go to Server Settings β Integrations β Webhooks
- Create a new webhook and select a channel
- Copy the webhook URL
- In Statly: Settings β Integrations β Discord
- Paste the webhook URL and save
Message Format
Alerts use Discord embeds with:
- Color-coded borders
- Timestamp
- Monitor/incident details
PagerDuty
Trigger and resolve PagerDuty incidents automatically.
Setup
- In PagerDuty, create a new Events API v2 integration
- Copy the Integration Key
- In Statly: Settings β Integrations β PagerDuty
- Paste the integration key and save
Features
- Auto-trigger: Creates PagerDuty incidents when monitors go down
- Auto-resolve: Resolves PagerDuty incidents when monitors recover
- Deduplication: Uses monitor ID as dedup key to prevent duplicates
- Severity mapping: Maps Statly severity to PagerDuty urgency
Microsoft Teams
Post alerts to Microsoft Teams channels.
Setup
- In Teams, go to the channel β Connectors
- Add Incoming Webhook
- Configure the webhook name and copy the URL
- In Statly: Settings β Integrations β Teams
- Paste the webhook URL and save
Message Format
Alerts use Adaptive Cards with:
- Color-coded themes
- Action buttons
- Structured facts
Opsgenie
Create and manage Opsgenie alerts.
Setup
- In Opsgenie, go to Settings β Integrations
- Add a new API integration
- Copy the API Key
- In Statly: Settings β Integrations β Opsgenie
- Enter:
- API Key
- Region (US or EU)
- Team ID (optional)
- Priority (P1-P5)
Features
- Auto-close: Closes alerts when monitors recover
- Deduplication: Uses alias to prevent duplicate alerts
- Team routing: Route alerts to specific Opsgenie teams
- Priority mapping: Set alert priority based on monitor severity
SMS (Twilio)
Send text message alerts via Twilio.
Setup
- Create a Twilio account (opens in a new tab)
- Get a phone number with SMS capability
- Find your Account SID and Auth Token in the Twilio console
- In Statly: Settings β Integrations β SMS
- Enter:
- Account SID
- Auth Token
- From Number (your Twilio number)
- Phone Numbers (recipients, comma-separated)
Message Format
SMS messages are concise (under 160 characters):
[DOWN] Production API - Connection timeout from 3 regionsSMS messages incur Twilio charges. Configure alert rules carefully to avoid unexpected costs.
Alert Cooldowns
Prevent alert fatigue with cooldown periods:
| Setting | Description |
|---|---|
| Cooldown Period | Minimum time between repeated alerts for the same monitor |
| Recovery Delay | Wait for X consecutive successes before sending "up" alert |
Example: A 5-minute cooldown with 2-success recovery delay means:
- Monitor fails β Alert sent immediately
- Monitor fails again 2 minutes later β No alert (cooldown active)
- Monitor recovers β Wait for 2 more successful checks
- 2 consecutive successes β "Up" alert sent
Testing Notifications
Test your notification setup:
- Go to Settings β Integrations
- Click Test next to any configured channel
- A test alert will be sent immediately
This helps verify:
- Webhook URLs are correct
- API keys are valid
- Messages are formatted correctly