Benachrichtigungskanal erstellen
Erstellt einen neuen Benachrichtigungskanal. Geheimnisse in config werden serverseitig verschlüsselt.
POST /api/notification-channels
Anfrage (Request Body)
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
type | string | Ja | — | Kanaltyp (vollständige Liste unten) |
name | string | Ja | — | Anzeigename |
config | object|string | Ja | — | Kanalkonfiguration (siehe Typtabelle). Als JSON-Objekt oder JSON-String übergeben. |
organizationId | number | Nein | aus Session | Organisations-Scope |
customerId | number | Nein | null | Kunden-Scope |
websiteId | number | Nein | null | Website-Scope. Erfordert sourceChannelId. |
sourceChannelId | number|string | Bedingt | null | Übergeordnete Kanal-ID für Website-Overrides |
category | string | Nein | direct | direct oder integration |
priority | number | Nein | 1 | Niedriger = höhere Priorität |
delaySeconds | number | Nein | 0 | Verzögerung vor dem Senden des Alerts |
conditions | object|string | Nein | null | Alert-Bedingungen (z. B. {"onlyFullService": true, "minIncidentDuration": 300}) |
isActive | boolean | Nein | true | Ob der Kanal aktiv ist |
Kanaltypen
Direkt (category: "direct"): email, sms, webhook.
Integrationen (category: "integration"): slack, discord, teams, pagerduty, opsgenie, allquiet, telegram, googlechat, mattermost, rocketchat, matrix, lark, dingtalk, wecom, ilert, grafanaoncall, squadcast, incidentio, pushover, ntfy, gotify, jira, github, gitlab, linear, servicenow.
Die config-Felder hängen vom Typ ab — siehe Integrationen, was jeder Kanal benötigt. Du kannst einen Kanal vor dem Speichern mit dem Endpunkt Benachrichtigungskanal testen validieren.
Beispiel (cURL) — E-Mail-Kanal
curl -X POST "$BASE_URL/api/notification-channels" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "email",
"name": "Ops Email",
"config": { "email": "ops@example.com", "to": "Ops Team" },
"organizationId": 1
}'Beispiel (cURL) — Slack-Kanal
curl -X POST "$BASE_URL/api/notification-channels" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "slack",
"name": "Alerts Slack Channel",
"config": { "secret": "https://hooks.slack.com/services/T00/B00/xxx" },
"organizationId": 1
}'Beispiel (cURL) — Webhook-Kanal
curl -X POST "$BASE_URL/api/notification-channels" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "webhook",
"name": "Custom Webhook",
"config": {
"url": "https://example.com/webhook",
"method": "POST",
"headers": { "X-Custom-Header": "value" },
"bodyTemplate": "{\"text\": \"{{websiteName}} is {{status}}\"}",
"timeout": 30,
"retryAttempts": 3,
"retryDelay": 60,
"expectedStatusCodes": "200,201,204"
},
"organizationId": 1
}'Häufige Fehler
401 Unauthorizedwenn du nicht authentifiziert bist403 Forbiddenwenn du Kanäle für eine Organisation erstellst, für die du keine Schreibrechte hast409 Conflictwenn bereits ein doppelter Website-Override existiert
Antwort (Response)
Gibt das erstellte Benachrichtigungskanal-Objekt zurück. Siehe Fehlercodes für Fehlerantworten.
Benachrichtigungskanäle
Verwalte, wie und wohin Alerts zugestellt werden. Kanäle können auf Organisationsebene (Standard für alle Kunden), auf Kundenebene (Override für einen bestimmten Kunden) oder auf Website-Ebene (Override für einen bestimmten Monitor) liegen.
Benachrichtigungskanal löschen
Löscht einen Benachrichtigungskanal. War der Kanal ein Standard auf Organisationsebene, werden die Organisations-Standards automatisch synchronisiert.