Zum Hauptinhalt springen

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 authorization oder x-api-key.
  • Wenn eine Condition false ergibt 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 customerId ist gesetzt“ — THEN: „Starte Onboarding oder schicke die Anfrage an einen Assistenten weiter“

Weiter: Aktionen