Contact us

Wie können repetitive Aufgaben mit Hilfe von APIs und Azure einfach automatisiert werden?

December 2021 | ms graph api, azure functions

MS Teams ist ein grossartiges Tool, um zusammen zu arbeiten und zu kollaborieren. Wenn ein neues Projekt ansteht, wird ein neuer Channel erstellt und alle beteiligten Personen werden eingeladen. Dabei können sowohl interne Mitarbeiter, als auch Externe hinzugefügt werden. Mit der Zeit sammeln sich einige Channels an und man verliert schnell den Überblick, wer in welchem Channel ist und Zugriff auf die dazugehörigen Daten hat. Wobei darüber hinaus auch nicht immer gewünscht ist, dass externe Personen, welche evtl. nur kurz an einem Projekt beteiligt waren, weiterhin Zugriff auf die Daten haben sollen. Man kann sich jetzt regelmässig durch die ganzen Teams Channels wühlen. Aber das ist erstens zeitaufwendig und zweitens müsste dies jeder Channel Besitzer einzeln tun. Und sind wir ehrlich, diese Zeit haben die wenigsten.

Wäre es dann nicht praktisch, wenn jeder Besitzer eines Team Channels regelmässig komplett automatisiert einen Rapport mit allen Gästen in seinen Channel bekommt?

Screenshot Teams Gäste User Report per Email
Screenshot Gäste User Report per Email

Ein Riesenvorteil der Cloud sind APIs. Microsoft bietet für seine Dienste die MS Graph API an. Dies ist eine Schnittstelle, mit deren Hilfe man mit den unterschiedlichen Diensten und Programmen von Microsoft interagieren kann. Aber nicht nur Microsoft, auch die meisten anderen Softwareanbieter stellen eine API-Schnittstelle zur Verfügung. Dazu gehören alle SaaS Produkte, wie Bexio, Hakuna, Hubspot, Mailchimp und viele weitere. Dadurch ist es möglich, dass unterschiedliche Programme miteinander kommunizieren können.

Wie hilft uns dies jetzt weiter?

Teams Informationen auslesen

Über den MS Graph können wir alle Channels auslesen, welche externe Benutzer/ Gäste enthalten und diese je nach Channel Besitzer gruppieren. Wir haben also für jeden Channel Besitzer eine Übersicht mit allen Gästen und Benutzern.

Über diesen Endpunkt erhalten wir alle Teams Gruppen (bei Microsoft sind Teams im Hintergrund Gruppen welche durch den resourceProvisioningOptions Tag “Team” gekennzeichnet werden)

GET /groups?$filter=resourceProvisioningOptions/Any(x:x eq 'Team')

Nun können wir für jedes Team die Mitglieder auslesen

GET /groups/{id}/members

Rapport per Email versenden

Wie sollen diese Informationen jetzt aber zu den jeweiligen Besitzern gelangen? Auch hier hilft uns die MS Graph API. Natürlich verfügt Outlook ebenfalls über eine solche Schnittstelle und ermöglicht es uns, darüber Emails zu versenden.

POST /users/{id | userPrincipalName}/sendMail

Automatisiert auslösen mit einem Timer

Um diesen Rapport automatisiert, sagen wir mal einmal im Monat, zu erstellen und zu versenden, muss der Code, der diese Abfragen macht und das E-Mail versenden auslöst, ja irgendwo ausgeführt werden. Und dies jede Woche.

Dabei können uns Azure Functions helfen. Diese ermöglichen es uns, Code in einer serverlosen Umgebung auszuführen. Heisst, wir müssen uns nicht darum kümmern einen Server aufzusetzen und zu betreiben, sondern können uns nur auf den Code konzentrieren. Bei unserem Beispiel kümmert sich Microsoft, um alles was dahintersteckt und nimmt uns diese Arbeit ab.

Die Functions haben unterschiedliche Auslösemechanismen. Ich kann die Functions zum einen als API zur Verfügung stellen. Dadurch können auch andere Programme wieder mit meiner Function interagieren. Oder ich kann diese über einen Timer auslösen. Also zum Beispiel, immer am 1. des Monats um 09:00 Uhr.

Schema des automatisierten Ablaufs

Kostengünstig

Und die Kosten? Sie zahlen nur, was Sie brauchen. Da der Rapport nur einmal im Monat generiert wird, fallen für unser Beispiel keine Kosten an.

Der Azure Functions-Verbrauchstarif wird basierend auf dem Ressourcenverbrauch und den Ausführungen pro Sekunde berechnet. Die Preise für den Verbrauchstarif umfassen monatlich 1 Millionen kostenlose Anforderungen und 400.000 GB Ressourcennutzung pro Abonnement mit nutzungsbasierter Bezahlung für alle Funktions-Apps in diesem Abonnement.

Vorteile der Cloud Technologien nutzen

Die Cloud Services nehmen uns sehr viel Komplexität ab und ermöglichen es uns, zum Beispiel solche Rapports oder andere Automatisierungen mit relativ wenig Aufwand zu erstellen.

Moderne Cloud Technologien wie Azure Functions erleichtern es uns, Aufgaben zu automatisieren und verschaffen einem dadurch Zeit, sich auf die Hauptaufgaben des Geschäfts zu fokussieren. API-Schnittstellen ermöglichen, dass unterschiedliche Programme miteinander kommunizieren, ihre Daten zu verknüpfen und dadurch mehr Wertschöpfung zu generieren. (Fast) Alles ist möglich. Der Kreativität sind keine Grenzen gesetzt.

Ich wollte Ihnen an diesem kleinen Beispiel exemplarisch zeigen, was alles möglich ist. Haben Sie Aufgaben, die man automatisieren könnte? Programme die eigentlich miteinander kommunizieren sollten, aber es nicht tun? Ideen wie Sie Ihr Geschäft digitalisieren könnten?

Melden Sie sich gerne bei uns. Zusammen erarbeiten wir, was möglich ist und was sich lohnt.