Bedingungen
Die Bedingung ist optional. Sie ist ein JavaScript-Ausdruck, der zu true oder false ausgewertet wird.
- true: Die Automation führt die Aktion aus.
- false: Für diesen Lauf wird nicht weiter gemacht.
- leer: Es gibt keinen Zusatzfilter: bei passendem Trigger läuft die Automation.
Die Felder des auslösenden Ereignisses erreichst du typischerweise über event.data.*.
Im Ausdrucksfeld arbeitest du direkt inline in der Oberfläche. Der Editor unterstützt dich dabei mit:
- Syntaxhervorhebung für JavaScript-Ausdrücke
- Autovervollständigung für
event, verschachtelte Event-Daten, Helper und gängige JavaScript-Built-ins - einer kompakten Inline-Darstellung mit automatischer Höhe
So erkennst du verschachtelte Felder und Tippfehler meist schon beim Schreiben schneller.
Wenn ein Ausdruck trotzdem fehlschlägt, zeigt die Oberfläche Fehler jetzt näher am eigentlichen Ausdruck im Editor an. Interne Hinweise auf Sandbox-Dateien oder Host-Zeilen werden dabei vermieden, sodass du die relevante Stelle im eigenen Code schneller findest. Bei Zeitüberschreitungen erscheint außerdem eine klarere Skript-Timeout-Meldung mit Hinweis auf das Zeitlimit. Bereits vorhandene Ergebnisse oder echte Ausdrucksfehler werden dabei nicht mehr nachträglich von einem internen QuickJS-Dispose-Abbruch verdrängt.
Beispiele (Conditions, typische Muster)
Zahlen, Schwellenwerte, Währung
event.data.amount >= 1000 && event.data.currency == "EUR"
Status / Enum-Felder
event.data.status == "open" || event.data.status == "needs_review"
Strings: enthält / beginnt mit
String(event.data.email ?? "").includes("@example.com")
String(event.data.subject ?? "").startsWith("Re:")
Optional-Felder sicher prüfen
event.data.customer != null && event.data.customer.tier == "enterprise"
Arrays: mindestens ein Element erfüllt eine Bedingung
Array.isArray(event.data.items) && event.data.items.some((item) => item.price > 100)
Kombinationen
event.data.source == "sharepoint" && event.data.priority == "high"
HTTP-Trigger für Auth absichern
Bei HTTP-Triggern ist die Condition oft die einfachste zusätzliche Schutzschicht. Die Trigger-URL selbst enthält zwar schon einen nicht erratbaren Token, du kannst aber zusätzlich prüfen, ob ein erwarteter Header, Query-Parameter oder Body-Wert vorhanden ist.
Typische Muster:
API-Key im Header
event.data.headers["x-api-key"] == "MEIN_GEHEIMER_KEY"
Bearer-Token im Authorization-Header
event.data.headers.authorization == "Bearer MEIN_SHARED_SECRET"
Geheimer Query-Parameter
event.data.query.secret == "MEIN_SHARED_SECRET"
Kombination aus Methode und Header
event.data.method == "POST" && event.data.headers.authorization == "Bearer MEIN_SHARED_SECRET"
Signatur oder Absender prüfen
event.data.headers["x-system"] == "shop" && event.data.body != null && event.data.body.orderId != null
Wichtig:
- Header-Namen liegen typischerweise in Kleinbuchstaben vor, also eher
authorizationoderx-api-key. - Wenn eine Condition
falseergibt oder fehlschlägt, läuft die Automation nicht weiter. - Die Condition ist gut für einfache Shared-Secret-Prüfungen. Für komplexere Sicherheitsanforderungen ist ein eigenes vorgeschaltetes Backend meist sauberer.
HTTP-Trigger: typische Prüfungen
Diese Ausdrücke sind im Alltag oft nützlich:
Nur JSON-POSTs akzeptieren
event.data.method == "POST" && String(event.data.headers["content-type"] ?? "").includes("application/json")
Pflichtfeld im Body verlangen
event.data.body != null && typeof event.data.body.customerId == "string" && event.data.body.customerId.length > 0
Nur bestimmten Absender durchlassen
event.data.query.source == "portal" || event.data.headers["x-source"] == "portal"
Beispiele (Abläufe in Klartext)
- WHEN: „Wenn eine Aufgabe erstellt wird“ — IF: „Priorität ist hoch“ — THEN: „Benachrichtige das Team und lege eine Folgeaufgabe an“
- WHEN: „Jeden Werktag um 08:00“ — IF: „(leer)“ — THEN: „Sende eine Tageszusammenfassung“
- WHEN: „Externes System ruft die HTTP-URL auf“ — IF: „Bearer-Header stimmt und
customerIdist gesetzt“ — THEN: „Starte Onboarding oder schicke die Anfrage an einen Assistenten weiter“
Weiter: Aktionen