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.

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

Microsoft Teams

Adaptive Card notifications via Power Automate workflows

Setting Up Providers

  1. Go to Alerts → Notification Channels
  2. Click Add Provider
  3. Select the provider type and enter credentials
  4. Click Test 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 timeError

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 •••WorkflowsCreate 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)
  • Body Template: Optional custom JSON body with template variables (used for POST and PUT requests)

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": "5200ms", "short": true }
  ],
  "color": "#dc2626",
  "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/...

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": "trigger",
  "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 expects severity to be one of critical, error, warning, or info. Use {{normalizedSeverity}} in PagerDuty payloads because Supercheck maps success alerts to info for services that do not accept success.

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
    • Body Template:
{
  "message": "{{title}}",
  "description": "{{message}}",
  "priority": "P2",
  "source": "supercheck",
  "tags": ["supercheck", "{{monitorType}}"],
  "details": {
    "monitor": "{{monitorName}}",
    "status": "{{status}}",
    "target_url": "{{targetUrl}}",
    "response_time": "{{responseTime}}"
  }
}

For OpsGenie, you must also add an Authorization header with your API key. Since the webhook UI does not currently support custom headers, you can use OpsGenie's email integration as an alternative, or set the API key via your API endpoint proxy.

Alert History

Track all alerts from Alerts → History:

  • Alert type and severity
  • Target (monitor or job name)
  • Notification channels used
  • Delivery status
  • Timestamp

Alert Samples

Job Failure Email

Monitor Alert Email

Slack Alert

Discord Alert

Teams Job Notification

Teams Monitor Notification

On this page