If-Else Bedingungen

If-Else Bedingungen

Mit der Funktion Bedingungen lassen sich If-Else Regeln für Bot-Antworten definieren. So kann man bspw. je nach Messenger unterschiedliche Nachrichten ausgeben.

Durch einen Klick auf den Button +Bedingung kann eine neue Bedingung für eine Bot-Antwort angelegt werden. Die erste Bedingung in unserem Beispiel lautet: „wenn Profilmessenger des/der Nutzer:in WhatsApp ist“. Wenn nicht zutreffend, prüft die zweite Bedingung, ob der/die Nutzer:in Facebook Messenger für die Kommunikation nutzt.

Bedingungen für von uns unterstützte Messenger:

  • Nachricht soll nur in WhatsApp Business versendet werden: $profile_messenger$ == "WB"
  • nur Facebook Messenger: $profile_messenger$ == "FB"
  • nur Telegram: $profile_messenger$ == "TG"
  • nur Apple Business Chat (iMessage): $profile_messenger$ == "IM"
  • nur Instagram: $profile_messenger$ == "IG"
  • nur Viber: $profile_messenger$ == "VI"
  • nur (Web) Live Chat: $profile_messenger$ == "LC"
  • nur Notify: $profile_messenger$ == "IN"

Bedingungen näher erklärt

 

1) Als Eingabemöglichkeiten für Bedingungen lassen sich Variablen und deren Werte eingeben.

Variablen werden mit dem Dollarzeichen $ vor und nach dem Variablennamen eingegeben, z. B. Systemvariable $profile_messenger$.

In den Bedingungen sind bereits einige Variablen vordefiniert, die beim Eintippen des Dollarzeichens $ zur Auswahl erscheinen. Wurden eigene Variablen angelegt, so erscheinen diese ebenfalls zur Auswahl.

2) Die Regeln für Bot-Antworten werden mit Operatoren und Funktionen definiert.

Mögliche Operatoren sind:

Rechen-Operatoren: + (plus), - (minus), * (mal), / (geteilt).

Vergleichsoperatoren: == (gleich), != (nicht gleich), >= (größer gleich), > (größer), <= (kleiner gleich), < (kleiner).

Logische Operatoren: and (einzusetzen, wenn zwei oder mehr Fälle erfüllt werden müssen), or (einzusetzen, wenn ein Fall zutreffen soll), not (einzusetzen, wenn ein Fall nicht zutreffen darf).

3) Mit Klammern () werden Bedingung strukturiert oder Funktionen aufgerufen.

Eine Strukturierung kann v. a. bei mehreren Bedingungen unter Einsatz der logischen Operatoren notwendig sein.

($profile_messenger$=="FB" or $profile_messenger$=="TG") and $kundennummer$!=""

Interpretation: wenn Messenger ist Facebook oder Telegram UND Kundennummer ist nicht leer.

4) Es stehen verschiedene Funktionen zur Verfügung, mit denen weitere Bedingungen gesetzt werden können (siehe Funktionsverzeichnis), z. B.:

  • Erkennung relativer Daten-Angaben wie today()
  • Erkennung von Wochentagen, weekday()
  • Berechnung und Vergleich von Datumswerten in Verbindung mit Rechen- und Vergleichsoperatoren
  • Die Aufzählung von Zeiteinheiten (in Sekunden) auf ein Datumswerte
  • Erkennung der Länge einer Zeichenkette length()
  • usw.

Beispiele für Bedingungen

 

  • Kombinationen von Bedingungen: $profile_messenger$ == "WB" and $Interesse$ == "Sport"
  • Noch keine Präferenzen gesetzt: $Interesse$ != ""
  • Mehrere verknüpfte Bedingungen: $profile_messenger$ == "WB" and ($Interesse$ == "Mountainbike" or $Interesse$ == "Rennrad"
  • Geburtsdatum wird für eine Altersgrenze geprüft und verglichen: ($Geburtsdatum$ < 21.12.2012) and $Geburtsdatum$ != today()

Dabei ist today() der Unix Zeitstempel von dem Moment in dem die Bedingung ausgewertet wird.

  • Abgleich eines gesetzten Datums mit dem aktuellen Datum: $datum$ < (today() + 86400) (sprich: $datum$ < heute + 1 Tag in Sekunden)
  • Abgleich des heutigen Datums mit absolutem Datum:  today() == 01.01.2018
  • Es is vor X Uhr: (now()-today()) < to_seconds("12:00")
  • Es ist X-Wochentag: weekday() == 1  (prüft ob heute Montag ist), weekday() == 2  (prüft ob heute Dienstag ist), usw.
  • Nur Wochenende: weekday() > 5
  • Es ist X-Tag des Y-Monats: zB.  day() == 24 and month() == 12 (prüft ob heute 24.12 ist).
  • Montag-Freitag von 8 bis 17 Uhr: today() < 6 and now()-today() > to_seconds(„08:00“) and now() – today() < to_seconds(„17:00“)
  • Montag-Freitag bis 8 und ab 17 Uhr (achtung: „or“ und Klammern in Bedingung): today() < 6 and (now()-today() < to_seconds(„08:00“) or now() – today() > to_seconds(„17:00“))
  • Weitere Beispiele für Bedingungen findest du hier.