Bedingungen
Verstehen, wie Kanalbedingungen in Echobell funktionieren
Channel-Bedingungen
Channel-Bedingungen sind leistungsstarke Ausdrücke, die bestimmen, wann Benachrichtigungen gesendet werden sollen. Durch die Festlegung von Bedingungen für Ihren Channel können Sie Benachrichtigungen basierend auf dem Inhalt von Variablen oder HTTP-Headern filtern und sicherstellen, dass Abonnenten nur relevante Warnungen erhalten.
Bedingungen verstehen
Bedingungen sind Ausdrücke, die entweder zu true oder false ausgewertet werden. Wenn ein Channel ausgelöst wird:
- Wenn Bedingungen nicht festgelegt sind (leer), werden Benachrichtigungen an alle Abonnenten gesendet.
- Wenn Bedingungen festgelegt sind, werden Benachrichtigungen nur gesendet, wenn der Ausdruck zu
trueausgewertet wird.
Bedingungen schreiben
Bedingungen werden als Ausdrücke ohne die {{}} Klammerung geschrieben, die in Vorlagen verwendet werden. Zum Beispiel:
status == "active"Diese Bedingung erlaubt das Senden von Benachrichtigungen nur, wenn die Variable status den Wert "active" hat.
Häufige Anwendungsfälle
Hier sind einige praktische Beispiele, wie Sie Bedingungen verwenden können:
Grundlegende Variablenprüfungen
amount > 100Benachrichtigen Sie nur, wenn die Variable "amount" größer als 100 ist.
message != ""Benachrichtigen Sie nur, wenn die Variable "message" nicht leer ist.
isUrgent == trueBenachrichtigen Sie nur, wenn die Variable "isUrgent" wahr ist.
Überprüfung von HTTP-Headern
Sie können auf HTTP-Header über die spezielle Variable header zugreifen:
header["user-agent"].includes("Mozilla")Benachrichtigen Sie nur, wenn die Anfrage von einem Mozilla-Browser stammt.
header["content-type"] == "application/json"Benachrichtigen Sie nur, wenn der Inhaltstyp JSON ist.
header["x-priority"] == "high"Benachrichtigen Sie nur, wenn ein benutzerdefinierter Prioritäts-Header auf "high" gesetzt ist.
Komplexe Bedingungen
Sie können mehrere Bedingungen mit logischen Operatoren kombinieren:
(temperature > 30 || pressure > 100) && status == "monitoring"Benachrichtigen Sie nur, wenn entweder die Temperatur 30 überschreitet oder der Druck 100 überschreitet, und der Status "monitoring" ist.
environment == "production" && (errorLevel == "critical" || errorLevel == "high")Benachrichtigen Sie nur bei kritischen oder schwerwiegenden Fehlern in der Produktionsumgebung.
Unterstützte Operatoren
Die folgenden Operatoren werden in Bedingungsausdrücken unterstützt:
| Operator | Beschreibung | Beispiel |
|---|---|---|
== | Gleich | status == "active" |
!= | Ungleich | status != "inactive" |
! | Logisches NICHT | !isCompleted |
< | Kleiner als | count < 10 |
> | Größer als | price > 99.99 |
<= | Kleiner oder gleich | battery <= 20 |
>= | Größer oder gleich | confidence >= 0.95 |
&& | Logisches UND | isAdmin && isActive |
|| | Logisches ODER | isError || isWarning |
Bedingungsvariablen
Wenn ein Channel über Webhook ausgelöst wird, können Sie auf Folgendes zugreifen:
- Abfrageparameter aus der URL
- JSON-Body aus POST-Anfragen
- HTTP-Header über das Objekt
header
Bei E-Mail-Triggern können Sie auf Folgendes zugreifen:
from: Die E-Mail-Absenderadresseto: Die Empfängeradressesubject: Die Betreffzeile der E-Mailtext: Der Klartext-Inhalthtml: Der HTML-Inhalt
Systemzeit‑Variablen (UTC)
Diese schreibgeschützten Variablen stehen in Bedingungen und Templates immer zur Verfügung. Alle Werte sind in UTC berechnet.
timezone: Der konstante String"UTC"now/iso: Aktuelle Zeit als ISO‑8601‑String (z. B.2025-05-06T12:34:56.789Z)epochMs: Millisekunden seit Unix‑Epoch (Zahl)epochSeconds: Sekunden seit Unix‑Epoch (Zahl)year: Vierstellige Jahreszahlmonth: Monatszahl1–12monthName: MonatsnameJanuary–DecemberdayOfMonth: Tag im Monat1–31dayOfWeek: Wochentag0–6(Sonntag = 0)dayOfWeekName: WochentagsnameSunday–Saturdayhour: Stunde0–23minute: Minute0–59second: Sekunde0–59date: Datum alsYYYY-MM-DDtime: Zeit alsHH:mm:ss
Beispiele:
// Werktage zwischen 09:00–17:00 UTC
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5
// Nur am Wochenende
dayOfWeek == 0 || dayOfWeek == 6
// Erster Tag des Monats zur vollen Stunde
dayOfMonth == 1 && minute == 0Best Practices
- Einfach beginnen - Beginnen Sie mit einfachen Bedingungen und erhöhen Sie bei Bedarf die Komplexität
- Gründlich testen - Testen Sie Ihre Bedingungen mit verschiedenen Eingaben, um sicherzustellen, dass sie wie erwartet funktionieren
- Dokumentieren Sie Ihre Bedingungen - Fügen Sie im Notizfeld Ihres Channels Kommentare hinzu, um komplexe Bedingungen zu erklären
- Berücksichtigen Sie Randfälle - Berücksichtigen Sie fehlende Variablen oder unerwartete Werte
Beispiele
Nur bei bestimmten Fehlern alarmieren
errorType == "database" && severity == "high"Nur während der Geschäftszeiten benachrichtigen
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5Nach Benutzertyp filtern
userType == "admin" || userRole == "supervisor"Anfrageursprung überprüfen
header["origin"] == "https://trusted-site.com" || header["referer"].includes("trusted-domain.com")Schwellenwertüberschreitungen überwachen
metricValue > threshold && isMonitoring == trueDurch den effektiven Einsatz von Bedingungen können Sie den Benachrichtigungslärm reduzieren und sicherstellen, dass Abonnenten nur Warnungen erhalten, die für sie relevant und umsetzbar sind.