Flows

Innerhalb des Flow-Builders können Sie aus verschiedenen Auslöser und Funktionen wählen, um benutzerdefinierte Prozesse und Abläufe abzubilden. So können Sie zum Beispiel immer bei einem Probealarm eine bestimmte Aktion automatisch ausführen lassen.

Auslöser / Trigger

In seiner aktuellen Fassung beinhaltet der Flow-Builder folgende Auslöser, also Ereignisse, die einen Flow starten können:

Icon Name Beschreibung
whatshot Alarm ausgelöst Mit diesem Trigger wird ein Flow gestartet, wenn ein Alarm in der Organisation ausgelöst wurde
whatshot Alarm geschlossen Mit diesem Trigger wird ein Flow gestartet, wenn ein Alarm in der Organisation geschlossen wurde
email E-Mail empfangen Mit diesem Trigger wird ein Flow gestartet, wenn eine E-Mail empfangen wurde
report Ereignis ausgelöst Mit diesem Trigger wird ein Flow gestartet, wenn ein Ereignis in der Organisation ausgelöst wurde
report Ereignis geschlossen Mit diesem Trigger wird ein Flow gestartet, wenn ein Ereignis in der Organisation geschlossen wurde
http HTTP Trigger Mit diesem Trigger wird ein Flow gestartet, wenn ein HTTP-Aufruf auf die hinterlegte URL getätigt wurde

Funktionen

Aktuell sind folgende Funktionen innerhalb eines Flows verfügbar:

Icon Name Beschreibung
whatshot Alarm auslösen Löse einen Alarm mit den konfigurierten Ressourcen aus
email E-Mail senden Sende eine E-Mail an die hinterlegten Empfänger
http HTTP Client Sende einen HTTP-Aufruf an die hinterlegte URL
settings_ethernet JSON Parser Verarbeitet JSON-Input in konfigurierte Variablen
search Prüfen auf Zeichenkette Überprüfe, ob eine angegebene Zeichenkette in einem Funktions-Ergebnis enthalten ist (z.B. 'PROBEALARM' im Alarmtext des Ausgelösten Alarms)
search Prüfen auf eine oder mehrere Zeichenketten Überprüfe, ob eine oder mehrere angegebene Zeichenkette in einem Funktions-Ergebnis enthalten ist
call_split Tag auslösen Löst einen Tag und die damit verbundenen Alarme in Unterorganisationen aus
settings_ethernet Text Parser Verarbeitet Text-Input in konfigurierte Variablen
timer Warten Diese Funktion verzögert die Ausführung der nächsten Funktion um die angegebenen Sekunden
format_align_left Zusammenfügen von Zeichenketten Fügt mehrere Zeichenketten mithilfe von eigenen Variablen dynamisch aneinander

Erstellen / Bearbeiten

Für das Erstellen eines Flows wird der Flow-Builder verwendet. Diesen können Sie öffnen, indem Sie entweder einen neuen Flow erstellen oder einen schon vorhandenen Flow bearbeiten.

Wenn Sie einen neuen Flow erstellen, landen Sie auf der folgenden Seite:

Hier sehen Sie oben nur einen gestrichelten Kreis, der ein Platzhalter für einen Trigger darstellt. Ein Flow benötigt zwingend einen Trigger oder Auslöser, da er sonst nicht gestartet werden kann. Ziehen Sie dazu einen beliebigen Trigger aus dem Funktionskasten unten rechts auf diesen Platzhalter.

Sobald ein Trigger zum Flow hinzugefügt wurde, werden die anderen Funktionen im Funktionskasten freigegeben und können mithilfe von Drag-and-Drop in den Flow hineingezogen werden.

Sollten Sie eine Abzweigung dem Flow hinzufügen – z.B. durch das Prüfen einer Zeichenkette – so ziehen Sie links die Funktionen hinein, die ausgeführt werden sollen, wenn die Bedingung zutrifft, und rechts, wenn die Bedingung nicht zutrifft.

Mit jeder Aktion im Flow wird überprüft, ob der Flow valide ist, also ob es Funktionen gibt, die noch nicht konfiguriert wurden. Ein Ausrufezeichen rechts neben der Funktion signalisiert, dass die Funktion noch nicht konfiguriert wurde.

Um eine Funktion zu konfigurieren, klicken Sie auf das Icon der Funktion im Flow.

Im Dialog, der sich nun öffnet, können Sie den Namen der Funktion ändern, um einen besseren Überblick zu behalten. Unter dem Punkt Konfiguration können Sie nun die Parameter der Funktion bearbeiten. Im oben gezeigten Beispiel ist das die zu überprüfende Zeichenkette aus einem Ergebnis einer schon gelaufenden Funktion und natürlich die Zeichenkette, die darin enthalten sein soll. Zusätzlich können Sie die Groß- und Kleinschreibung der einzelnen Zeichenketten beachten lassen.

In der Auswahlliste Input-Funktion wählen Sie eine schon gelaufene Funktion aus, deren Ergebnis für diese Funktion genutzt werden soll. Hier kann zum Beispiel der Trigger "Ausgelöster Alarm" und der enthaltene "Alarmtext" verwendet werden.

Organisationsvariablen

Innerhalb der Auswahlliste der Input-Funktionen, können Sie ebenfalls den Punkt Organisationsvariablen verwenden. Die dort enthaltenen Entitäten werden zur Laufzeit des Flows gesetzt. Aktuell können Sie aus Organisations-ID, Flow-ID und API-Token der Organisation wählen. Sollte der Flow vererbt werden, so werden zur Laufzeit in einer erbenden Organisation die jeweiligen Werte dieser Organisation genommen.

Wenn alle Funktionen und Felder des Flows konfiguriert sind, wird Ihnen oben rechts angezeigt, ob der Flow valide ist. Nur wenn der Flow valide ist, wird er vom Trigger ausgelöst.

Liste der Flows

Innerhalb der Flow Liste können haben Sie einen direkten Überblick über die konfigurierten Flows der Organisation. In der linken Spalte mit dem Titel "Valide" können Sie erkennen, ob der jeweilige Flow valide ist. Nur ein valider Flow wird ausgeführt. In der Spalte mit dem Trigger-Icon können Sie den jeweiligen Auslöser des Flows einsehen. Rechts können Sie mithilfe des Kontext-Menüs den Flow bearbeiten, löschen oder die Insights des Flows erreichen.

Insights

Die Insights eines Flows beinhaltet alle ausgelösten Ereignisse eines Flows. Diese werden jeweils mit Start- und Endzeitpunkt gespeichert und ob die Ausführung des Flows erfolgreich war. Mithilfe des rechten Buttons erreichen Sie die Live-View des Eintrags.

Innerhalb der Live-View sehen Sie, welche Funktionen der Flow wann ausführt und ausgeführt hat. Zusätzlich können Sie die jeweiligen Ergebnisse der jeweiligen Funktion über das info_outline-Icon auf der rechten Seite einsehen.

Ein alarm-Icon in der Tabelle zeigt eine geplante Funktion, die durch eine "Warten"-Funktion verzögert wurde. Der Startzeitpunkt zeigt dann die geplante Startzeit für diese Funktion.

Fehler bei der Ausführung

Tritt während der Ausführung eines Flows ein Fehler auf, so wird dieser ebenfalls in den Insights dargestellt.

Zusätzlich können Sie sich per E-Mail benachrichtigen lassen.
Öffnen Sie dazu die Organisationseinstellungen und gehen Sie zu den "Flow-Benachrichtigungen". Dort können Sie beliebige Teilnehmer oder E-Mail-Adressen eintragen, die dann im Falle eines Fehlers benachrichtigt werden und einen Link zu den passenden Insights erhalten.

Flows vererben

Sollte Ihre Organisation weitere Unterorganisationen besitzen, so können Sie konfigurierte Flows an diese vererben. Die von Ihnen vorgenommene Konfiguration in der vererbenden Organisation bleibt dazu erhalten und kann nicht durch eine erbende Organisation überschrieben werden. Jedoch können Administratoren der erbenden Organisationen eine Vorschau des Flows einsehen. Um einen Flow an Unterorganisationen zu vererben, wählen Sie innerhalb der Bearbeiten-Maske rechts den Schalter Vererben und klicken Sie abschließend auf SPEICHERN.

Da die Ressourcen – z.B. Labels oder Einheiten – der einzelnen Organisationen unterschiedlich sind, können Funktionen, die diese Ressourcen verwenden, nicht innerhalb eines vererbbaren Flows verwendet werden. Sollten Sie einen Web- oder E-Mail-Trigger in Ihrem vererbten Flow verwenden, so erhält jede erbende Organisation eine eigene E-Mail- oder HTTP-Trigger-Adresse.

Als vererbende Organisation haben Sie zudem Zugriff auf die Flow-Insights aller erbenden Organisationen. So können Sie auf einem Blick einsehen, ob die vererbten Flows die gewünschten Ergebnisse liefern.

Konfiguration von Parametern erlauben

Wenn Sie einen vererbten Flow bearbeiten, können Sie rechts unter dem Schalter Vererben einzelne Parameter Ihrer Funktionen im Flow zur Konfiguration durch die erbenden Organisationen freigeben. Die Liste enthält nur Parameter, die nicht einen dynamischen Wert aus einer Input-Funktion verwenden und schon durch Sie selbst konfiguriert wurden. Falls die erbende Organisation keine Konfiguration der Parameter vornimmt, so wird der von Ihnen gewählte Wert verwendet.

Hinweis

Ihr Flow muss zur Ausführung nur in der jeweiligen Organisation valide sein. Sollte der Flow also in der vererbenden Organisation invalide sein, ist aber in einer erbenden Organisation valide, so kann er in letzterer getriggert werden und ist aktiv.

Konfiguration der Funktionen

Prüfen auf Zeichenkette

Mit der "Prüfen auf Zeichenkette"-Funktion können Sie überprüfen, ob eine Zeichenkette innerhalb einer Entität einer schon gelaufenen Funktion enthalten ist. So können Sie zum Beispiel überprüfen, ob die Alarmnachricht eines ausgelösten Alarms die Zeichenkette "PROBEALARM" enthält oder ob der Alarm durch einen definierten Tag ausgelöst wurde.

Prüfen auf eine oder mehrere Zeichenketten

Diese Funktion verbindet mehrere "Prüfen auf Zeichenkette"-Bedingungen in einer ODER-Verknüpfung. Damit können Sie zum Beispiel überprüfen, ob ein Alarm durch einen Tag mit der ID 3 oder mit der ID 7 ausgelöst wurde, ohne unübersichtliche Verschachtelungen zu bilden.

Überprüfen, ob ein Alarm durch einen Tag ausgelöst wurde

Um zu Überprüfen, ob ein Alarm durch einen Tag ausgelöst wurde, können Sie die Entität "Typ der Auslöseressource" und "ID der Auslöseressource" eines Alarms als Input verwenden. Dies ist möglich, wenn Sie als Trigger entweder "Alarm ausgelöst" oder "Alarm geschlossen" verwenden.

Ein Alarm, der durch einen Tag ausgelöst wurde, enthält als Auslöseressourcen folgende Werte: Die ID enthält die ID des auszulösenden Tags, der Name ist der Name des Tags und der Typ enthält den Wert tag.

E-Mails senden

Um E-Mails durch einen Flow zu versenden können Sie die "E-Mail senden"-Funktion verwenden.

Hier können Sie sowohl die E-Mail-Adressen der Teilnehmer oder eigene Adressen als Empfänger nutzen. Für die schon vorhandenen Teilnehmer nutzen Sie die vorgeschlagenen Einträge, wenn Sie anfangen zu tippen. Für eigene E-Mail-Adressen, geben Sie diese komplett ein und bestätigen diese mithilfe der Enter-Taste.

Um einen Anhang aus einer URL der E-Mail anzuhängen, wählen Sie zunächst die Option "Anhang einfügen" an. In die nachfolgenden Felder können Sie die URL zum Anhang und einen eigenen Dateinamen wählen.

JSON-Parser

Um JSON-Werte innerhalb des Flows zu verwenden, können Sie mithilfe des JSON-Parsers eigene Variablen vorgeben, die im übergebenen JSON-Payload gesucht und gespeichert werden. Jede Variable erhält dafür einen benutzerdefinierten Namen und der Pfad in Ihrem verwendeten JSON-Payload. Verwenden Sie für den Variablennamen nur ASCII-Zeichen. Zusätzlich können Sie angeben, ob eine Variable zwingend benötigt wird. Wird diese dann nicht im JSON-Payload gefunden, so bricht der Flow mit einer entsprechenden Fehlermeldung ab und führt keine weiteren Funktionen mehr aus.

Für den erforderlichen JSON-Pfad wird die folgende Syntax verwendet, die am nachfolgenden Beispiel-Payload dargestellt wird.

Beispiel-Payload:

{
  "name": {"first": "Tom", "last": "Anderson"},
  "age": 37,
  "children": ["Sara","Alex","Jack"],
  "fav.movie": "Deer Hunter",
  "friends": [
    {"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
    {"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
    {"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
  ]
}
Syntax Ergebnis
name.last Anderson
age 37
children ["Sara","Alex","Jack"]
children.# 3
children.1 Alex
child*.2 Jack
c?ildren.0 Sara
fav\.movie DeerHunter
friends.#.first ["Dale","Roger","Jane"]
friends.1.last Craig

Weitere Möglichkeiten zur Verarbeitung und Filterung über den JSON-Pfad können Sie der Dokumentation hier entnehmen.

Text-Parser

Um in einem Text enthaltene Werte als Variablen im Flow verwenden zu können benötigen Sie den Text-Parser. Mit diesem können Sie entweder direkt nach einem sogenannten "Schlüssel" suchen und den nachfolgenden Text der gleichen Zeile als Variable speichern.

Die grundsätzliche Funktionsweise wird anhand des nachfolgenden Textes erläutert:

Hallo GroupAlarm,

ich möchte einen Alarm mit den folgenden Parametern auslösen:
Ereignis: PROBEALARM
Alarmtext: ***PROBE*** Nicht ausrücken!
LONG###50.76382
LAT###6.0793028
Adresse: Goethestraße 5, 52064 Aachen, Deutschland #

Es sollen alle Teilnehmer alarmiert werden.

Grundsätzlich wird der konfigurierte Schlüssel innerhalb des Textes gesucht und aus der gefunden Zeile entfernt, sodass nur der dahinter liegende Wert gespeichert wird.Enthält Ihr Schlüssel also einen :, so muss dieser im Schlüssel angegeben sein.

Nachfolgend sind ein paar Beispiele aufgeführt, die auf den oben genannten Text angewendet werden und folgende Ergebnisse erzielen:

Syntax Ergebnis
Ereignis: PROBEALARM
Ereignis : PROBEALARM
LONG### 50.76382

Mit dem Expertenmodus lassen sich reguläre Ausdrücke 1 auf den Text anwenden. So können Sie noch gezielter nach Werten innerhalb eines Textes suchen. Verwenden Sie dazu mindestens eine RegEx-Gruppe, die gematcht werden soll, da der Text-Parser immer nur die erste gefundene Gruppe extrahieren kann. Sollte der Parser keine Gruppe matchen, enthält Ihre Variable auch keinen Wert.

So lässt sich zum Beispiel mit dem RegEx Adresse(.*)# die Adresse "Goethestraße 5, 52064 Aachen, Deutschland" aus dem oberen Text ohne führenden Schlüssel und # am Ende extrahieren.

Konfiguration der Trigger

HTTP Trigger

Mit diesem Trigger lässt sich ein Flow auslösen, indem Sie einen HTTP-Aufruf auf die hinterlegte URL ausführen. Die URL wird automatisch generiert und kann nur diesen Flow auslösen. Sie können dazu die gängigen HTTP-Methoden GET, POST, PUT, PATCH undDELETE verwenden. Folgende Entitäten stehen Ihnen für nachfolgende Funktionen im Flow zur Verfügung:

  • Genutzte HTTP-Methode
  • Header (Liste)
  • Query-Parameter (Liste)
  • Body (Base64 Encoded)
  • Genutztes Protokoll
  • IP und Port des Senders

Da Sie in den meisten Fällen keine Listen als Input verwenden können, besteht die Möglichkeit explizite Felder aus Header und Query-Parametern mit Variablen zu versehen.

Klicken Sie dazu die Schaltfläche ENTITÄT HINZUFÜGEN und wählen Sie aus den zwei Input-Feldern (Query Parameter und Header). Im nachfolgenden Feld können Sie den Namen eingeben, hinter dem sich Ihr Wert befindet.

Verwenden Sie zum Beipiel die Kombination von oben in der Abbildung Query Parameter arrow_forward temperature, so befindet sich die Temperatur eines Sensors als Query Parameter hinter dem Key temperature. Die aufgerufene URL könnte also so aussehen: https://app.groupalarm.com/[...]/?temperature=20.1. In diesem Beispiel könnten Sie in nachfolgenden Funktionen die Temperatur (hier: 20.1) des Sensors verwenden und in Abhängigkeit einen Alarm auslösen.

E-Mail empfangen

Der "E-Mail empfangen" Trigger löst dann einen Flow aus, wenn er eine eingehende E-Mail an eine vom System vorgegebene E-Mail-Adresse erhält.
Dabei ist die Angabe einer Liste von zulässigen Absendern möglich, sodass nicht jeder Teilnehmer Flows auslösen kann. Ist diese Liste leer, kann jeder Absender den Flow auslösen.

Folgende Entitäten stehen Ihnen für nachfolgende Funktionen im Flow zur Verfügung:

  • Absender
  • Betreff
  • Nachricht im Klartext
  • Nachricht als HTML

Die Nachricht im HTML-Format ist nur dann verfügbar, wenn die empfangen E-Mail auch im HTML-Format versendet wurde.
Das Klartextformat ist hingegen immer verfügbar.