Wie viele Unternehmen bekommen auch wir die meisten unserer Supportfälle via Mail in ein dafür vorgesehenes Support-Postfach. Die Bearbeitung und Wartung dieser E-Mail-Anfragen ist ein laufender Prozess. Dieser läuft auch bei uns neben dem täglichen Geschäft einher. Dadurch kann es auch das ein oder andere Mal passieren, das ein Supportfall vergessen und durch die Finger rutscht. Aus diesem Grund zeigen wir euch heute wie ihr in Azure DevOps ein Workitem aus O365 Mail generieren könnt.

Microsoft bietet uns mit seinen neuen Funktionalitäten im Bereich Office 365 einige Tools. Wir starteten Überlegungen, wie uns diese Features in unserem Supportprozess unterstützen könnten. Gemeinsam einigten wir uns auf MS Flow und Azure DevOps und kamen zum Entschluss unseren Supportprozess zu automatisieren.

Dadurch rutschen uns nun keine Supportfälle wie eingangs erwähnt mehr durch die Finger. Wir konnten mit Hilfe der beiden Plattformen unsere eingehenden Supportfälle automatisch als Azure DevOps Workitems aus einer Mail generieren lassen.

Dies hilft uns insbesondere dadurch, da sich der Dokumentationsaufwand unserer Mitarbeiter deutlich verringert. Ebenso bekommt der Kunde ein rasches Feedback dass der Supportfall bei uns angelegt und bald bearbeitet wird.

Den Kunden mit an Bord holen

Damit dieser Supportprozess effektiv funktioniert und ihr ein Azure DevOps Workitem aus einer O365 Mail generieren könnt, müsst ihr auch den Kunde an Bord holen. Es ist ihm der Nutzen und das Vorgehen zu erläutern. Das Feedback ist sehr positiv und die gemeinsame Zusammenarbeit hat sich dadurch  deutlich verbessert. Mit der Unterstützung des Kunden und einer Anleitung unsererseits läuft dieser Prozess nun seit einigen Wochen reibungslos.

Dank dieses neuen Vorgehens, ein Azure DevOps Work Item aus einer O365 Mail zu generieren, läuft es bei uns auf Entwicklerseite auch deutlich effizienter. Mit einer korrekten Anlage im Azure DevOps auf ist die Sprint- und Entwicklungsplanung der Supportfälle deutlich effektiver. Ebenso verbesserten sich die Antwortzeiten an den Kunden.

Hier seht ihr welche Schritte sind nun nötig, um den Supportprozess in Flow zu automatisieren.

Der MS Flow

Trigger-Action

Damit der Flow startet verwenden wir die Trigger-Action „When a new email arives (v3)“, die auf eine einkommende E-Mail in einem definierten O365 Postfach wartet.

Konvertierung des Mail-Body

Für das spätere Parsing der Informationen konvertieren wir den Inhalt des Mail-Bodys von HTML zu Text . Dazu verwenden wir die Action Html to text.

Initialisierung der später verwendeten Variablen

In diesem Schritt initialisieren wir alle Variablen mit dem Typ String , die wir später für das Zusammenbauen der Bug-Beschreibung verwenden. Dies benötigen wir um das Azure DevOps Workitem generieren zu können. Welche Variablen du hier verwendest, kommt ganz auf deine Anforderungen und die deiner Kunden an. Wir haben zuvor unseren bisherigen Aufnahmeprozess genau analysiert. Anschließend fassten wir die Informationen die wir für das Bearbeiten der eingehenden Supportfälle dringend benötigen zusammen. Diese sollen u.a. eine kurze Beschreibung, die Url zum SharePoint-Web, die betroffenen User beinhalten. Weiters soll das Themengebiet eingeschränkt werden. Falls ein Fehler auftritt, bei dem die Correlation-ID bekannt ist, kann diese optional angeführt werden.

Außerdem benötigen wir Variablen für die Workitem-ID, den Workitem-Titel, den Mail-Link, die Mail-ID und den Betreff für die Antwortmail.

Überprüfung der E-Mailadresse des Senders

Dieser Schritt ist optional. Du solltest ihn auf deine Anforderungen anpassen. Wir legten uns darauf fest, nur Mails von bestimmten Sendern automatisiert zu bearbeiten.

Überprüfung des Mail-Body Inhalts auf die zuvor festgelegte Struktur

Für unseren Aufnahmeprozess ist es wichtig, dass eingehende Mails eine bestimmte zuvor festgelegte und mit dem Kunden kommunizierte Struktur aufweisen. Dazu erstellen wir eine Abfrage, ob der konvertierte Mail-Body diese Kriterien erfüllt.

Parsing der Informationen aus dem Mail-Body

Der Mail-Body muss alle nötigen Informationen enthalten. Sind diese vorhanden, können wir die Daten extrahieren und in die zuvor erstellten Variablen speichern.

Eine der Angaben, die wir für den Flow brauchen wäre beispielsweise

[URL]: https://my.sharepoint.com
[Thema]: Support

Um die tatsächliche Url zu erhalten, müssen wir einige String-Operationen auf den konvertierten Mail-Body anwenden.

  1. Setzen des Index vor die Url
    add(indexOf(body(‚Html_to_text‘),'[URL]:‘),6)
  1. Setzen eines zweiten Index bis zur nächsten Angabe
    indexOf(body(‚Html_to_text‘),'[Thema]‘)
  1. Extrahieren des Substrings zwischen „[URL]:“ und „[Thema]“
    trim(substring(body(‚Html_to_text‘),outputs(‚Index_1′),sub(outputs(Index_2‘),outputs(‚Index_1‘))))
  1. Wir erhalten in der variable den Wert der angegebenen Url „https://my.sharepoint.com“

Anschließend überprüfen wir die Korrektheit der Daten.

Erstellung des Workitems in Azure Devops

In diesem Schritt prüfen wir zunächst, ob die erhaltene Mail eine Folgemail für ein bestehendes Workitem oder eine Initialmail ist. Die entsprechende Workitem-ID wird vor den Betreff im Format [#<ID>] gestellt. So können wir einfach im Betreff überprüfen, ob die betreffende Mail schon von unserem System bearbeitet wurde.

Ist die ID nicht vorhanden, so extrahieren wir aus dem Betreff den Titel für unser Workitem. Danach erstellen wir mit der Action Create a work item ein neues Workitem vom Typ Bug. Anschließend wird eine Antwortmail verfasst und mit der Action Replay to email (v3) an alle involvierten Personen geschickt.

Verschieben der Mail und Erstellung des Mail-Links

Ordnung muss sein, daher verschieben wir in diesem Schritt die erhaltene Mail aus der Inbox in den Ordner „Erledigt“.

In Azure DevOps ist es zurzeit nicht möglich über eine native Action Dateien an ein Workitem anzuhängen. Daher bedienen wir uns der O365 Möglichkeiten. Hier wird über die Message-ID der Mail ein Link generiert. Dieser zeigt uns die Konversation in der Outlook Webapp an. Dazu bauen wir uns den Link mithilfe der Message-ID der verschobenen Mail wie folgt zusammen:

https://outlook.office.com/owa/?ItemID=<MessageID>&viewmodel=ReadMessageItem&path=&exvsurl=1

Aktualisieren des Workitems

Mithilfe der extrahierten Daten in unseren Variablen können wir nun das Workitem in AzureDevOps mit den nötigen Informationen befüllen.

Der Flow ist sofort einsatzbereit und ein Azure DevOps Workitem wird O365 Mail generiert! So sieht das Ergebnis in AzureDevOps aus:

Möchtest du noch mehr über Flow erfahren? Dann lese hier, wie du mittels Flow über eine durch Outlook hochgeladene Mail eine Konversation in einem Teams Kanal startest.

Bei weiteren Fragen könnt ihr sehr gerne mit uns in Kontakt treten!

Kontakt aufnehmen