Monitorion supports nine alert channels so you can be notified wherever your team already works. Email is available on all plans; every other channel requires a Pro or higher subscription.
Email alerts are built into every Monitorion account with no external service required. Alerts are sent via Monitorion's own transactional email infrastructure and arrive within seconds of an incident being confirmed.
SMS alerts are delivered via Twilio — one of the world's largest SMS carriers, with coverage in 180+ countries. International numbers in E.164 format (e.g. +447911123456) are fully supported. You do not need your own Twilio account.
+306981234567).🚨 Monitorion: api.acme.com is DOWN — Connection timeout after 30s✅ Monitorion: api.acme.com is back UP| Plan | SMS included/month | Extra credits |
|---|---|---|
| Free | — | — |
| Pro | 50 SMS/month | Yes — buy credit packs |
| Business | 200 SMS/month | Yes — buy credit packs |
| Agency | 500 SMS/month | Yes — buy credit packs |
SMS credits are additional messages you can purchase on top of your monthly plan allocation. Credits never expire and are used automatically when your monthly allocation runs out.
rate_limited in your alert logs.Your current credit balance and monthly usage are shown in Settings → Notifications → SMS Alerts. The usage bar shows plan SMS used this month; the blue card shows remaining purchased credits.
SMS is powered by Twilio. International rates vary by country. You do not pay per-message directly — Monitorion absorbs the cost within your plan allocation and credit purchases.
Slack alerts post rich-formatted messages to any channel. The message includes the monitor name, current status, error detail, and a button linking directly to the monitor detail page.
https://hooks.slack.com/services/).{
"text": "🔴 Monitor alert from Monitorion",
"attachments": [
{
"color": "#e53e3e",
"fields": [
{ "title": "Monitor", "value": "api.acme.com", "short": true },
{ "title": "Status", "value": "DOWN", "short": true },
{ "title": "Error", "value": "503 Service Unavailable","short": false },
{ "title": "Since", "value": "2026-06-25 14:32 UTC", "short": true }
],
"actions": [
{
"type": "button",
"text": "View Monitor",
"url": "https://app.monitorion.com/monitors/abc123"
}
]
}
]
}Discord alerts use Discord's native webhook API to post rich embeds with colour-coded status (red for down, green for recovered) to any server channel.
{
"username": "Monitorion",
"avatar_url": "https://app.monitorion.com/logo-square.png",
"embeds": [
{
"title": "🔴 Monitor Down: api.acme.com",
"color": 15158332,
"fields": [
{ "name": "Status", "value": "DOWN", "inline": true },
{ "name": "Error", "value": "503 Service Unavailable", "inline": true },
{ "name": "Triggered at", "value": "2026-06-25 14:32 UTC", "inline": false },
{ "name": "Monitor URL", "value": "https://api.acme.com", "inline": false }
],
"footer": { "text": "Monitorion" },
"timestamp": "2026-06-25T14:32:00Z",
"url": "https://app.monitorion.com/monitors/abc123"
}
]
}3066993 (green). Degraded (high response time) uses 16776960 (yellow).Monitorion can send alerts to any Telegram user, group, or channel via a custom bot. The bot only needs to be a member of the target chat — it does not require admin rights.
/newbot, follow the prompts, and copy the Bot API token (looks like 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw).https://api.telegram.org/bot<TOKEN>/getUpdates and look for chat.id. Channel IDs start with -100.🔴 *ALERT — Monitor Down*
*Monitor:* api.acme.com
*Status:* DOWN
*Error:* 503 Service Unavailable
*Since:* 2026-06-25 14:32 UTC
[View Monitor](https://app.monitorion.com/monitors/abc123)Teams alerts use Adaptive Cards posted via an incoming webhook connector. The card includes the monitor name, status, error, and a button to open the monitor.
{
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": {
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.4",
"body": [
{
"type": "TextBlock",
"text": "🔴 Monitor Down: api.acme.com",
"weight": "Bolder",
"size": "Medium",
"color": "Attention"
},
{
"type": "FactSet",
"facts": [
{ "title": "Status", "value": "DOWN" },
{ "title": "Error", "value": "503 Service Unavailable" },
{ "title": "Since", "value": "2026-06-25 14:32 UTC" },
{ "title": "Project", "value": "Acme Corp" }
]
}
],
"actions": [
{
"type": "Action.OpenUrl",
"title": "View Monitor",
"url": "https://app.monitorion.com/monitors/abc123"
}
]
}
}
]
}Google Chat (formerly Hangouts Chat) alerts post card messages to any Google Chat space, making them ideal for Google Workspace teams.
{
"cardsV2": [
{
"cardId": "monitorion-alert",
"card": {
"header": {
"title": "Monitorion Alert",
"subtitle": "api.acme.com is DOWN",
"imageUrl": "https://app.monitorion.com/logo-square.png",
"imageType": "CIRCLE"
},
"sections": [
{
"widgets": [
{
"decoratedText": {
"topLabel": "Status",
"text": "DOWN",
"startIcon": { "knownIcon": "DESCRIPTION" }
}
},
{
"decoratedText": {
"topLabel": "Error",
"text": "503 Service Unavailable",
"startIcon": { "knownIcon": "BOOKMARK" }
}
},
{
"decoratedText": {
"topLabel": "Since",
"text": "2026-06-25 14:32 UTC",
"startIcon": { "knownIcon": "CLOCK" }
}
},
{
"buttonList": {
"buttons": [
{
"text": "View Monitor",
"onClick": {
"openLink": {
"url": "https://app.monitorion.com/monitors/abc123"
}
}
}
]
}
}
]
}
]
}
}
]
}The custom webhook channel POSTs a JSON payload to any URL you specify. It supports custom HTTP headers so you can authenticate with an API key, HMAC signature, or bearer token. Use it to integrate with any system that accepts HTTP callbacks — PagerDuty alternatives, internal ticketing systems, serverless functions, Zapier, Make, n8n, and more.
Authorization: Bearer <token>X-API-Key: <key>X-Webhook-Secret: <shared-secret>{
"event": "monitor.down",
"triggered_at": "2026-06-25T14:32:00Z",
"monitor": {
"id": "abc123",
"name": "api.acme.com",
"monitor_type": "http",
"url": "https://api.acme.com/health",
"project_id": "proj_xyz"
},
"check": {
"status": "down",
"status_code": 503,
"response_time": null,
"error": "503 Service Unavailable",
"region": "eu-west",
"checked_at": "2026-06-25T14:32:00Z"
},
"incident": {
"id": "inc_789",
"started_at": "2026-06-25T14:32:00Z",
"duration_s": 0
}
}| Event | When it fires |
|---|---|
| monitor.down | Monitor transitions from up to down |
| monitor.recovered | Monitor transitions from down to up |
| monitor.degraded | Response time exceeds threshold |
| monitor.ssl_expiring | SSL certificate expires within warning window |
| monitor.domain_expiring | Domain expires within warning window |
| incident.created | New incident opened |
| incident.resolved | Incident marked resolved |
The PagerDuty integration uses the Events API v2 to create and auto-resolve incidents in your PagerDuty service. On-call schedules, escalation policies, and suppression rules configured in PagerDuty all apply automatically.
{
"routing_key": "YOUR_INTEGRATION_KEY",
"event_action": "trigger",
"dedup_key": "monitorion-abc123",
"payload": {
"summary": "[Monitorion] api.acme.com is DOWN — 503 Service Unavailable",
"severity": "critical",
"source": "api.acme.com",
"timestamp": "2026-06-25T14:32:00Z",
"custom_details": {
"monitor_id": "abc123",
"monitor_type": "http",
"url": "https://api.acme.com/health",
"status_code": 503,
"region": "eu-west",
"project": "Acme Corp"
}
},
"links": [
{
"href": "https://app.monitorion.com/monitors/abc123",
"text": "View in Monitorion"
}
]
}{
"routing_key": "YOUR_INTEGRATION_KEY",
"event_action": "resolve",
"dedup_key": "monitorion-abc123"
}dedup_key is derived from the monitor ID, ensuring that all check failures for a single monitor roll up into one PagerDuty incident rather than generating duplicate alerts. When the monitor recovers, Monitorion sends the resolve event automatically.Instead of alerting on the very first failed check — which can produce noisy false positives from transient network hiccups — Monitorion waits for N consecutive failures before opening an incident and sending alerts.
Go to Monitor Settings > Alert Behavior > Failures before alert. Allowed values are 1–10.
| Threshold | Best for | Latency to alert (at 1-min interval) |
|---|---|---|
| 1 | Critical infrastructure (payments, auth) | ~1 min |
| 2 (default) | Most production services | ~2 min |
| 3 | Services with known intermittent checks | ~3 min |
| 5+ | Non-critical or informational monitors | ~5+ min |
By default, Monitorion sends one alert when a monitor goes down and one when it recovers. For long-running outages you can configure a re-alert interval to receive follow-up reminders until the monitor recovers.
When a monitor that was previously down passes a check, Monitorion automatically sends a recovery notification across all the same channels that received the initial down alert.
{
"attachments": [
{
"color": "#38a169",
"fields": [
{ "title": "Monitor", "value": "api.acme.com", "short": true },
{ "title": "Status", "value": "RECOVERED", "short": true },
{ "title": "Downtime", "value": "14 min 32 sec", "short": true },
{ "title": "Recovered", "value": "2026-06-25 14:47 UTC","short": true }
]
}
]
}Schedule a maintenance window to suppress all alerts for one or more monitors during planned downtime — deployments, infrastructure changes, or scheduled maintenance. Checks still run and results are recorded; only alert delivery is paused.
Every alert dispatch — whether successful or failed — is recorded in the alert log. Use it to audit delivery, troubleshoot missing notifications, or verify that integrations are working correctly.
| Field | Description |
|---|---|
| Timestamp | When the alert was dispatched (UTC) |
| Channel | The alert channel type (email, Slack, webhook, etc.) |
| Event | monitor.down, monitor.recovered, etc. |
| Status | Delivered, Failed, or Retrying |
| Response | HTTP status returned by the channel endpoint |
| Retries | Number of delivery attempts made |
Our support team can walk you through any integration.