Als erste Einarbeitung in die Welt von Microsoft Flow habe ich mir überlegt, welche “Anforderung” man hier als ersten Schritt umsetzen könnte. Da es bei Flow viel darum geht verschiedene APIs/Dienste miteinander zu verbinden und so Prozesse zu automatisieren, sollte es auf jeden Fall nicht nur Office 365 bzw. SharePoint betreffen.

Eine erste Idee kam mir schon direkt nach der Anmeldung mit meinem O365-Konto (auch ein normales Microsoft-Konto reicht aus) unter https://flow.microsoft.com hier wurde mir diese Vorlage vorgeschlagen

Da es Sonntag war und es ein deutsches Ritual ist, an diesem Tag den Tatort zu gucken und dieser seit einigen Jahren stark vom entsprechenden Hashtag #Tatort begleitet wird, kam mir die Idee dieses als “Datenquelle” für viele Nachrichten zu nuten.

Eine einfache Übertragung der Tweets erschien mir aber zu langweilig und so sollte der Flow zusätzlich einige Analysen über die Cognitive Services, Microsoft SaaS-Angebot mit vielen APIs, welche unter anderem Methoden zu Gesicht, Bild und Spracherkennung bieten. Für diesen Flow sollten die Text Analytics verwendet werden um zum einen die Sprache des Textes, aber auch die Stimmung der Aussage zu analysieren.

Konfiguration SharePoint

Da als Ziel für die gelesenen und analysierten Elemente eine SharePoint-Liste genutzt werden sollen, habe ich zunächst in einer SiteCollection in Office 365 eine entsprechende Liste mit folgenden Spalten erstellt:

NameTypNutzung
TitelTextHier soll der Text des Tweets abgelegt werden
SpracheTextÜber die Textanalyse ermittelte Sprache 
StimmungZahlDie Stimmung des Tweets
TweetIdTextDie Id des Tweets
VonTextErsteller des Tweets
Tweet erstelltTextZeitpunkt des Tweets

Einrichtung Cognitive Services

Zur Analyse des Tweets benötigt man im Azure-Portal eine entsprechende Ressource. Diese kann man über die entsprechende Oberfläche hinzufügen und ist unter “Text Analytics” im Bereich “AI + Machine Learning” zu finden.

Als Pricing-Tier sollte hier zunächst der kostenlose Zugriff genügen. Hier existiert zwar eine Begrenzung der maximalen Aufrufe, die in meinem Versuch später noch zu Fehlern geführt hat, aber für erste Testzwecke reicht es allemal.

Flow erstellen

Um den Flow zu erstellen habe ich mich auf der entsprechenden Seite angemeldet. Danach habe ich unter “Meine Flows” -> “Neu” -> “Aus Vorlage erstellen” die eingangs genannte Vorlage herausgesucht. Hier werden im unteren Bereich schon die Verbindungen zu Office 365 und Twitter abgefragt. Da ich mich mit meinem Office 365 Konto angemeldet habe, war diese Verbindung bereits aktiv und ich musste nur noch eine Verbindung zu Twitter herstellen. Hierfür öffnet sich ein entsprechender Anmeldedialog, in dem man Flow den Zugriff auf einen Account bei Twitter gewährleisten muss. Möchte man die Verbindung wieder trennen, kann man dies unter den Profileinstellungen bei Twitter tun.

Hat man die Verbindungen konfiguriert, kann der Flow erstellt werden und man sieht bereits den Trigger (When a tweet appears) und die Aktion (Create Item). In folgendem Bild habe ich den Trigger schon so konfiguriert, dass er auf den Hashtag #tatort reagiert und die Felder in SharePoint beschreibt.

Wie man sieht, fehlen noch Werte für die Felder “Sprache” und “Stimmung”. Da ich diese über Text Analytics ermitteln wollte, musste ich entsprechende Schritte im Flow hinzufügen. Hierzu klickt man auf das Plussymbol, welches erscheint, wenn man mit dem Cursor über den Pfeil zwischen den beiden vorhanden Boxen geht. Im sich öffnenden Dialog sucht man nach “Textanalyse” und wählt die entsprechende Aktion:

Beim Klick auf “Textanalyse” hat man die Wahl zwischen drei unterschiedlichen Aktionen:

Zunächst wollte ich die Sprache erkennen, habe also diese Aktion ausgewählt. Über den 3-Punkte Button musste ich nun ggf. die Verbindung zu meiner zuvor erstellten Ressource in Azure aufbauen. Die benötigten Informationen befinden sich in Azure unter der Ressource im Bereich Keys so wie auf der Übersichtsseite:

Fundort Site-Url für die Verbindungseinstellung zur Azure-Ressouce
Fundort Key für die Verbindungseinstellungen zur Azure-Ressource

In das Feld “Text” wurde erneut der TweetText eingetragen, da hieraus ja die Sprache ermittelt werden soll. Über die erweiterten Einstellungen lässt sich noch die Anzahl der Sprachen bestimmen, da der Standardwert hier aber 1 ist und ich nicht mehr Sprachen benötige, habe ich diese Einstellung leer gelassen.

Als nächsten Schritt habe ich eine zweite Aktion hinzugefügt, dieses mal mit “Stimmung erkennen”. Als Wert für das Feld “Text” wurde erneut der Tweettext und bei “Sprache” der aus der Spracherkennung zurückgegebene Sprachcode eingetragen. Hierbei wird automatisch eine Box “Auf alle anwenden” um die Stimmungserkennung hinzugefügt. Dies passiert, weil die Spracherkennung eine Liste zurückgibt, selbst wenn nur eine Sprache erkannt werden soll. Das ist kein Problem, da diese Schleife immer nur einmal durchlaufen wird. Wichtig ist es aber per Drag&Drop die Aktion zur Erstellung des ListItem mit in diese Box zu ziehen, da ansonsten das Ergebnis der Stimmungserkennung nicht genutzt werden kann.

Sind beide Aktionen hinzugefügt und konfiguriert sieht der Flow so aus:

Der Flow kann nun gespeichert werden und sollte nun – sobald ein neuer Tweet mit dem gewünschten Hashtag erscheint – auch Einträge in die Liste schreiben.

Nach meinem Testlauf während der Tatort-Ausstrahlung konnte ich meine Testliste mit vielen Einträgen füllen (die rote und grüne Hervorhebung konnte mit Spaltenformatierung erreicht werden).

Fazit

Wie man sieht, ist es mit Flow sehr einfach kleine Workflows bzw. Automatismen zu erstellen, mit deren Hilfe man Daten aus verschiedenen Quellen lesen, verarbeiten und das Ergebnis in ein gewünschtes Ziel ablegen kann. Für die Umsetzung sind keine großen Programmierkenntnisse nötig und die Oberfläche hilft schon sehr dabei, die einzelnen Verbindungen aufzubauen.

Beachten sollte man dennoch, wie oft der Flow laufen wird. In meinem Beispiel war dadurch, dass ich den Hashtag #tatort genutzt habe und dieser natürlich sehr oft genutzt wird, schnell die Grenze an Aufrufen erreicht, was dann zu folgendem Fehler führte:

{ “statusCode”: 403,
“message”: “Out of call volume quota. Quota will be replenished in 24.03:04:35.”}

Es ist also wichtig, sich im Vorfeld darüber Gedanken zu machen, wie oft zum Beispiel Azure-Dienste benötigt werden und ob diese ausreichend dimensioniert sind, bevor man einen Flow produktiv einsetzt. Denn es wäre schlecht, wenn ein Flow nach kurzer Zeit aufhört zu arbeiten, weil eine abhängige Ressource keine Zugriffe mehr zulässt.

Doch nicht zuletzt die große Anzahl an Verbindern und Vorlagen lädt zum Experimentieren ein. Wenn man einmal nicht weiter weiß, kann die offizielle Dokumentation in vielen Fällen weiterhelfen. Ich werde auf jeden Fall Flow weiter im Blick behalten und gucken wie es speziell im Office 365 Umfeld helfen kann, die tägliche Arbeit zu vereinfachen bzw. für den Endanwender die “Quality of Life” zu verbessern.