Supercheck LogoSupercheck

Alerts

Multi-channel notifications for failures and recoveriesEdit

Alerts notify you when monitors fail, tests break, or services recover. Configure multiple notification channels and use smart thresholds to avoid alert fatigue.

Loading diagram...

Notification Providers

Email

Professional HTML emails via SMTP with detailed status information

Slack

Rich formatted messages to channels or DMs with status badges

Webhook

JSON payloads to any HTTP endpoint for custom integrations

Telegram

Bot messages to chats or groups with Markdown formatting

Discord

Embedded messages to server channels with color-coded status

Teams

Adaptive Card notifications via Power Automate workflows

Setting Up Providers

  1. Go to Alerts → Channels
  2. Click Add Channel
  3. Select the provider type and enter credentials
  4. Click Test Connection to verify the connection
  5. Save the provider

After creating providers, attach them to monitors or jobs in their Alerts settings.

Alert Types

AlertTriggerSeverity
FailureConsecutive failures reach thresholdError
RecoveryConsecutive successes reach threshold after being downSuccess
SSL ExpiringCertificate expires within configured daysWarning
AlertTriggerSeverity
FailureOne or more tests in the job failedError
SuccessAll tests passed (optional)Success
TimeoutJob exceeded maximum execution timeWarning

Threshold Configuration

Thresholds prevent alert noise from transient issues like network blips or brief service hiccups.

Failure Threshold

The number of consecutive failures required before sending the first failure alert. This prevents alerts from single network blips.

Recovery Threshold

The number of consecutive successes required before sending a recovery alert. This ensures the service is truly stable before confirming recovery.

Alert Limiting

To prevent notification spam during extended outages:

  • Maximum 3 alerts per failure or recovery sequence
  • First alert sent when threshold is reached
  • Counter resets when status changes (from up→down or down→up)

Configuration: Failure Threshold = 3, Recovery Threshold = 2

CheckResultConsecutive CountAlert Sent
1❌ Fail1 failure—
2❌ Fail2 failures—
3❌ Fail3 failures ✓Failure Alert
4❌ Fail4 failures—
5✅ Pass1 success—
6✅ Pass2 successes ✓Recovery Alert

Notes:

  • Check 3: Failure threshold (3) reached → first failure alert sent
  • Check 4: Already alerted, no new alert until exponential interval
  • Check 5: Status changed to passing, failure counter resets, recovery counter starts
  • Check 6: Recovery threshold (2) reached → recovery alert sent

Provider Configuration

SMTP environment variables:

SMTP_HOST=smtp.resend.com
SMTP_PORT=587
SMTP_FROM_EMAIL=alerts@yourdomain.com

# Optional: set BOTH only when SMTP authentication is required
SMTP_USER=resend
SMTP_PASSWORD=your-api-key

If your SMTP server does not require auth, leave SMTP_USER and SMTP_PASSWORD empty, but keep SMTP_FROM_EMAIL set.

Supported providers: Resend, SendGrid, Mailgun, Amazon SES, Gmail, Office 365

  1. Go to Slack API and create an Incoming Webhook
  2. Select the channel to post to
  3. Copy the webhook URL
  4. Add the URL in Supercheck

Example: https://hooks.slack.com/services/T00000000/B00000000/XXXX

  1. In Discord, go to Server Settings → Integrations → Webhooks
  2. Create a new webhook and select the channel
  3. Copy the webhook URL
  4. Add the URL in Supercheck

Example: https://discord.com/api/webhooks/000000000000000000/XXXX

  1. Create a bot with @BotFather
  2. Get your bot token
  3. Get your chat ID (use @userinfobot)
  4. Add both in Supercheck

Teams uses Power Automate Workflows to receive webhook notifications.

  1. Go to the Teams channel where you want notifications
  2. Click ••• → Workflows → Create a workflow
  3. Choose a template:
    • Send webhook alerts to a channel — posts to a Teams channel
  4. Follow the prompts to select the destination channel
  5. Copy the generated webhook URL
  6. Add the URL in Supercheck Notification Channel

Example: https://prod-00.westus.environment.api.powerplatform.com:443/powerautomate/...

Configuration:

  • URL: Your endpoint
  • Method: GET, POST, or PUT (default: POST)
  • Headers JSON: Optional string-valued headers for provider authentication such as Authorization
  • Body Template: Optional custom JSON body with template variables (used for POST and PUT requests)
  • Rendered sample payload: Preview of the JSON body generated from sample alert values before you test or save
  • Test diagnostics: Redacted test results showing method, target host, sent header names, HTTP status, elapsed time, request hash, and response hash

Supercheck validates webhook URLs before sending outbound requests, blocks private/internal targets, encrypts provider config at rest, and masks sensitive webhook URL/header fields when returning providers to the UI.

Because webhook URLs and custom headers are treated as secrets, they are cleared when you reopen an existing channel for editing. Leave a cleared secret blank to keep its existing value, or enter a replacement to change it. The same behavior applies to masked Slack, Teams, Discord, and Telegram credentials. Use Test Connection after replacing a credential to confirm it works.

Webhook Presets

The webhook channel includes presets that fill the method, headers, and JSON body template for common SRE and incident-management tools. Selecting a preset does not merge credentials with AI SRE read-only connectors; outbound notification secrets remain scoped to the notification provider.

PresetUse caseSetup docs
Custom webhookDefault Supercheck payload or a custom JSON templateSupercheck alerts
PagerDuty Events API v2Trigger and resolve incidents using {{pagerDutyEventAction}} and {{dedupKey}}PagerDuty Events API v2
Opsgenie Alert APICreate alerts with an alias and API-key auth headerOpsgenie Alert API
Splunk On-Call REST endpointSend VictorOps/Splunk On-Call CRITICAL and RECOVERY eventsSplunk On-Call REST Endpoint
Better Stack webhookForward alert context into Better Stack workflowsBetter Stack webhooks
incident.io alert sourceSend alert-source events with deduplication contextincident.io alert sources

Preset payloads include placeholders such as REPLACE_WITH_PAGERDUTY_ROUTING_KEY and REPLACE_WITH_OPSGENIE_API_KEY. Replace them before testing, and verify the endpoint URL in the vendor documentation because some providers generate tenant-specific webhook URLs.

Default Payload

When no body template is provided, Supercheck sends a JSON payload similar to the following. fields and originalPayload.metadata vary by alert type and the metadata available for that event:

{
  "title": "Monitor Down - API Health",
  "message": "Monitor \"API Health\" is down. Connection timeout",
  "fields": [
    { "title": "Monitor", "value": "API Health", "short": true },
    { "title": "Type", "value": "http_request", "short": true },
    { "title": "Status", "value": "down", "short": true },
    { "title": "Response Time", "value": "5.20s", "short": true }
  ],
  "color": "#ef4444",
  "footer": "",
  "timestamp": 1735689600,
  "originalPayload": {
    "type": "monitor_failure",
    "title": "Monitor Down - API Health",
    "message": "Monitor \"API Health\" is down. Connection timeout",
    "targetName": "API Health",
    "targetId": "...",
    "severity": "error",
    "timestamp": "2025-01-01T00:00:00.000Z",
    "metadata": {
      "responseTime": 5200,
      "status": "down",
      "targetUrl": "https://api.example.com/health",
      "monitorType": "http_request",
      "dashboardUrl": "https://app.supercheck.io/notification-monitor/..."
    }
  },
  "provider": "webhook",
  "version": "1.0"
}

Body Template

Use a custom body template to match the format required by third-party services. Templates must be valid JSON, and template variables use {{variableName}} syntax. Supercheck safely escapes interpolated values before sending the final JSON payload, so keep placeholders inside JSON string values such as "summary": "{{title}}".

Available variables:

VariableDescriptionExample
{{title}}Alert titleMonitor Down - API Health
{{message}}Alert messageMonitor "API Health" is down. Connection timeout
{{severity}}Alert severityerror, warning, success, info
{{normalizedSeverity}}Normalized severity for APIs that do not accept successerror, warning, info
{{status}}Monitor or job statusdown, up, failed, passed
{{monitorName}}Monitor or target nameAPI Health
{{targetName}}Same as monitorNameAPI Health
{{targetUrl}}Monitored URLhttps://api.example.com/health
{{targetId}}Target IDuuid
{{timestamp}}ISO 8601 timestamp2025-01-15T10:30:00.000Z
{{type}}Alert typemonitor_failure, monitor_recovery, job_failed
{{projectName}}Project nameMy Project
{{projectId}}Project IDuuid
{{responseTime}}Response time in ms5200
{{errorMessage}}Error detailsConnection timeout
{{monitorType}}Monitor typehttp_request, website, ping_host, port_check
{{dashboardUrl}}Link to dashboardhttps://app.supercheck.io/...
{{alertAction}}Lifecycle action for event APIstrigger, resolve
{{eventAction}}Same as alertActiontrigger, resolve
{{pagerDutyEventAction}}PagerDuty Events API actiontrigger, resolve
{{victorOpsMessageType}}Splunk On-Call / VictorOps message_typeCRITICAL, RECOVERY
{{splunkOnCallMessageType}}Alias for victorOpsMessageTypeCRITICAL, RECOVERY
{{dedupKey}}Stable key for correlating related eventsmonitor:uuid, job:uuid, ssl:uuid

PagerDuty Integration

Use a webhook with a body template to send alerts to the PagerDuty Events API v2:

  1. In PagerDuty, go to Services → Service Directory → select your service
  2. Go to the Integrations tab and click Add Integration
  3. Search for Events API V2 and add it
  4. Copy the Integration Key (also called Routing Key)
  5. In Supercheck, create a Webhook notification channel with:
    • URL: https://events.pagerduty.com/v2/enqueue
    • Method: POST
    • Body Template:
{
  "routing_key": "YOUR_PAGERDUTY_INTEGRATION_KEY",
  "event_action": "{{pagerDutyEventAction}}",
  "dedup_key": "{{dedupKey}}",
  "payload": {
    "summary": "{{title}}",
    "severity": "{{normalizedSeverity}}",
    "source": "supercheck",
    "component": "{{monitorName}}",
    "custom_details": {
      "message": "{{message}}",
      "monitor_type": "{{monitorType}}",
      "target_url": "{{targetUrl}}",
      "response_time": "{{responseTime}}",
      "dashboard_url": "{{dashboardUrl}}"
    }
  }
}

PagerDuty resolves an alert only when the resolve event has the same dedup_key as the original trigger event. Use {{pagerDutyEventAction}} and {{dedupKey}} together so Supercheck sends trigger for failures and resolve for recoveries using the same key. PagerDuty expects severity to be one of critical, error, warning, or info; {{normalizedSeverity}} maps Supercheck success alerts to info.

Splunk On-Call / VictorOps Integration

Use a webhook with a body template to send alerts to the Splunk On-Call REST endpoint:

  1. In Splunk On-Call, create a REST Endpoint integration and copy the routing key.
  2. In Supercheck, create a Webhook notification channel and select the Splunk On-Call REST endpoint preset, or use:
    • URL: https://alert.victorops.com/integrations/generic/20131114/alert/<routing_key>/<entity_id>
    • Method: POST
    • Body Template:
{
  "message_type": "{{victorOpsMessageType}}",
  "entity_id": "{{dedupKey}}",
  "entity_display_name": "{{title}}",
  "state_message": "{{message}}",
  "monitoring_tool": "supercheck",
  "timestamp": "{{timestamp}}"
}

Splunk On-Call only treats CRITICAL as an incident-opening event and RECOVERY as a resolve event. {{victorOpsMessageType}} (or its {{splunkOnCallMessageType}} alias) maps Supercheck trigger alerts to CRITICAL and recoveries to RECOVERY. Use {{dedupKey}} as entity_id so the resolve event closes the same incident. Do not send trigger or resolve in message_type; those values are treated as INFO and will not auto-resolve.

OpsGenie Integration

Use a webhook with a body template to send alerts to OpsGenie's Alert API:

  1. In OpsGenie, go to Settings → Integration List → API
  2. Copy the API Key
  3. In Supercheck, create a Webhook notification channel with:
    • URL: https://api.opsgenie.com/v2/alerts
    • Method: POST
    • Headers JSON: { "Authorization": "GenieKey YOUR_OPSGENIE_API_KEY" }
    • Body Template:
{
  "message": "{{title}}",
  "description": "{{message}}",
  "priority": "P2",
  "source": "supercheck",
  "tags": ["supercheck", "{{monitorType}}"],
  "details": {
    "monitor": "{{monitorName}}",
    "status": "{{status}}",
    "target_url": "{{targetUrl}}",
    "response_time": "{{responseTime}}"
  }
}

The webhook UI supports custom JSON headers for provider API keys. Supercheck stores these headers in the encrypted provider config, masks them when the provider is loaded for editing, and never displays header values in the rendered payload preview or test diagnostics.

Alert Signals

Use Alerts → Signals for investigation-ready failure signals. Signals are derived from sent failure alerts only. Notification delivery failures, recoveries, and success notifications remain in History so they do not create false incident noise.

From Signals, responders can:

  • Search by target, service, or fingerprint.
  • Filter by severity or source.
  • Sort by signal, severity, source, or last seen time.
  • Create an SRE incident from a genuine failure signal and open it immediately for triage.
  • Page through larger signal sets with the same pagination pattern used by other Supercheck tables.

Alert History

Track all alerts from Alerts → History:

  • Alert type and severity
  • Target (monitor or job name)
  • Notification channels used
  • Delivery status
  • Timestamp
  • Delivery correlation metadata for AI SRE, including provider type/preset, dedup key, event action, response status, attempt count, and response hash when available

Supercheck stores delivery metadata for correlation, not provider response bodies. Webhook test diagnostics and production deliveries represent request/response payloads with SHA-256 hashes and HTTP metadata so AI SRE can link alerts without exposing secrets or raw third-party payloads.

Alert Samples

Job Failure Email

Monitor Alert Email

Slack Alert

Discord Alert

Teams Job Notification

Teams Monitor Notification

On this page