KlusterAlert
Notification Channels
Route alerts to the right people through Slack, Microsoft Teams, PagerDuty, email, or any custom webhook. Multiple channels can be configured per alert rule.
Supported channels
Slack
1. Go to KlusterAlert → Notification Channels → Add channel → Slack. 2. Click "Connect to Slack" and complete the OAuth flow. 3. Select the workspace channels you want to send alerts to. 4. In your alert rules, reference the channel name: target: '#incidents'
Alert rule — Slack
notify:
- channel: slack
target: '#incidents' # Route critical alerts here
# Route by severity
notify:
- channel: slack
target: '#incidents'
filter:
severity: [critical]
- channel: slack
target: '#k8s-warnings'
filter:
severity: [warning, info]Microsoft Teams
1. In Microsoft Teams, go to the channel you want alerts in. 2. Click ··· → Connectors → Incoming Webhook → Configure. 3. Name it "KlusterAlert" and copy the webhook URL. 4. In SpecLayer, go to Notification Channels → Add channel → Teams. 5. Paste the webhook URL and save.
Alert rule — Microsoft Teams
notify:
- channel: teams
target: platform-alerts # Name you gave the channel in SpecLayerPagerDuty
1. In PagerDuty, go to Services → your service → Integrations → Add integration. 2. Select "Events API v2" and copy the Integration Key. 3. In SpecLayer, go to Notification Channels → Add channel → PagerDuty. 4. Paste the Integration Key. Severity mapping: critical → P1, warning → P2, info → P3.
Alert rule — PagerDuty
notify:
- channel: pagerduty
target: platform-oncall # Name you gave the PagerDuty integration in SpecLayer1. Go to Notification Channels → Add channel → Email. 2. Enter one or more email addresses. 3. A verification email is sent to each address — click the link to confirm.
Alert rule — Email
notify:
- channel: email
target: sre-team # Name you gave the email group in SpecLayerCustom Webhook
1. Go to Notification Channels → Add channel → Webhook. 2. Enter the URL of your endpoint. 3. Optionally add custom headers (e.g. Authorization: Bearer ...). 4. KlusterAlert sends an HTTP POST with the alert payload as JSON.
Alert rule — Custom Webhook
notify:
- channel: webhook
target: my-ops-webhook # Name you gave the webhook in SpecLayerWebhook payload format
Custom webhooks receive an HTTP POST with this JSON body:
Webhook POST body
{
"alertId": "01J8X4Q...",
"ruleName": "crash-loop-detect",
"severity": "critical",
"cluster": "production",
"namespace": "default",
"resource": {
"kind": "Pod",
"name": "payments-service-7d9f4b-xk2",
"namespace": "default"
},
"condition": {
"type": "pod.status",
"value": "CrashLoopBackOff"
},
"firedAt": "2026-05-07T14:32:00Z",
"runbook": "https://runbooks.acme.com/crashloop",
"description": "Pod entered CrashLoopBackOff",
"dashboardUrl": "https://app.speclayer.net/klusteralert/alerts/01J8X4Q..."
}Routing by severity
Send critical alerts to PagerDuty and all alerts to Slack for visibility:
notify:
- channel: pagerduty
target: platform-oncall
filter:
severity: [critical]
- channel: slack
target: '#k8s-alerts'
filter:
severity: [critical, warning]
- channel: slack
target: '#k8s-info'
filter:
severity: [info]You can test any configured channel from the Notification Channels settings page using the Send test alert button — without waiting for a real alert to fire.