Microsoft Teams en Power Automate - Samen sterker

Microsoft Teams en Simplicate

Wij hebben een hekel aan handmatig en repeterend werk. Zeker omdat er dan nog wel eens fouten gemaakt kunnen worden. Alle werkprocessen die wij kunnen automatiseren, automatiseren wij dan ook heel snel. Het Microsoft Power Platform is onze best vriend bij deze missie. Onze collega Jesse Lesnussa beschrijft in dit blog hoe je automatisch Microsoft Teams aan kunt laten maken zodra je in je projectbeheertool (in ons geval Simplicate) een nieuw project aanmaakt. Oh ja… Jesse gaat verder dan alleen maar een Team aanmaken!

 

Teams-en-simplicate-projecten-1024x575


De kracht van het Microsoft Power Platform hebben wij al laten zien in dit blog en in dit blog 🙂 Nu laten we zien hoe je slim om kunt gaan met het aanmaken van Microsoft Teams.

Om projecten goed te kunnen plannen, beheren en uiteindelijk ook te factureren maken wij gebruik van Simplicate. Simplicate helpt ons om de processen vanaf het eerste contact met een potentiële klant tot en met het afsluiten van een project goed te laten verlopen. Veel van de stappen in dit hele proces zijn vanuit Simplicate geautomatiseerd (Simplicate is overigens niet de enige oplossing die dit zo doet). Een van die stappen is dat na acceptatie van een offerte de aangemaakte verkoopkans automatisch omgezet kan worden naar een project met daarin de aangeboden diensten. Vanuit die stap kan eenvoudig de planning uitgevoerd worden.

Rondom een project is er altijd veel communicatie, worden er documenten opgesteld en gedeeld, zijn er vergaderingen en wordt er op andere manieren samengewerkt. Voor deze zaken maken wij gebruik van Microsoft Teams. In het kort komt het er op neer dat zodra er in Simplicate een project wordt aangemaakt er ook een Microsoft Team moet komen. De projectleider die in Simplicate is ingesteld moet de Team eigenaar worden en de projectmedewerkers die in Simplicate worden toegewezen moeten ook als lid van het Microsoft Team worden toegevoegd. Daarnaast willen wij de naam en het projectnummer in beide oplossingen gelijk houden.

Door Simplicate en Microsoft Teams aan elkaar te koppelen kunnen we ook het proces van het aanmaken van een Team, een eigenaar toewijzen en projectleden toewijzen automatiseren. Met een goedkeuringsflow uiteraard. Deze koppeling met Microsoft Teams is met iedere projectbeheer oplossing te realiseren zolang de project beheer oplossing maar een API heeft die gebruikt kan worden. voor de taken in Microsoft Teams maken we gebruik van de Graph API.

Een koppeling tussen verschillende systemen heeft veel voordelen. Een belangrijke voordeel is het voorkomen van het verrichten van dubbele/ repeterende handelingen. Zo is het bijvoorbeeld mogelijk dat er in één systeem data wordt geregistreerd en in het andere systeem de data daadwerkelijk wordt gebruikt. Een koppeling kan hierbij zorgen voor een éénmalige invoer in één systeem, waarbij de gekoppelde systemen automatisch hierop anticiperen en ingericht worden. Dit bespaart jou veel tijd en voorkomt mogelijke fouten tijdens het inrichten van de systemen. Met behulp van een webhook kunnen systemen gemakkelijk aan elkaar gekoppeld worden. Met een webhook wordt de mogelijkheid gegeven om automatisch een seintje te ontvangen wanneer er een specifieke handeling wordt uitgevoerd in een systeem.

afbeelding-1

 

Voorbeeld van whitepaper Meer doen in minder tijd met het Microsoft Power Platform

 

Long Polling bij gebrek aan een webhook

Helaas biedt niet elke toepassing webhooks aan en kan een webhook niet zelf ontwikkeld worden. Deze functionaliteit moet namelijk gerealiseerd worden in het systeem zelf. Gelukkig is er een alternatief voor webhooks waarbij je niet afhankelijk bent van de ontwikkelaar van het systeem. Er kan namelijk gebruik worden gemaakt van long polling. Long polling is een mechanisme waarbij er vanuit jouw kant continu een aanvraag wordt gestuurd of er specifieke handeling is verricht. Het verschil is hierbij dat het vanuit jouw kant komt. Je bent dus niet afhankelijk van de ontwikkelaar van de systemen. Het enige wat je hier voor nodig hebt is een manier om de data via code te kunnen benaderen.

afbeelding-2

In dit blog wordt toegelicht hoe wij zonder webhooks een koppeling hebben gerealiseerd tussen Simplicate en Microsoft Teams. Deze opzet kan ook toegepast worden bij andere toepassingen zonder webhook functionaliteiten. Verder is het mogelijk om met deze koppeling zeer eenvoudig alle andere producten die onderdeel uitmaken van de Microsoft 365 suite te koppelen.

Het gewenste resultaat is dat er automatisch een Microsoft Teams omgeving wordt ingericht op het moment dat er een project wordt aangemaakt in Simplicate. Voor de oplossing wordt er gebruik gemaakt van Python, Simplicate-API, Microsoft Graph-API en Microsoft Flow.

afbeelding-3

 

Je kunt stellen dat het de verantwoordelijkheid van een webhook is om data door te geven van een gewenste handeling. Het Python-script moet, bij afwezigheid van een webhook, deze verantwoordelijkheid overnemen. In ons geval is de gewenste handeling het aanmaken van een nieuw project. Hiervoor versturen wij cyclisch een aanvraag naar de Simplicate-API waarbij wij recent aangemaakte projecten aanvragen, daarbij controleren wij voor de zekerheid of dit project al is verwerkt. Wanneer we de data van een nieuw project hebben ontvangen, is de verantwoordelijkheid van een webhook opgepakt door onze Python-script.

Vervolgens willen wij een Microsoft Team inrichten voor het zojuist aangemaakte project. Het is hierbij belangrijk om vooraf te kijken welke data hiervoor nodig is. Een nieuw Microsoft Team heeft in ieder geval een titel, beschrijving en een eigenaar nodig. Voor onze oplossing willen wij een combinatie van projectomschrijving en projectnummer gebruiken als titel, klantnaam als omschrijving en projectleider als eigenaar.

Deze toewijzingen kunnen makkelijk gerealiseerd worden in Microsoft Power Automate. De data die zich op dit moment nog in de Python-script bevindt, zal worden doorgestuurd naar Microsoft Power Automate middels een HTTP-request. De data in Microsoft Power Autoamte wordt vervolgens, aan de hand van het e-mailadres van de projectleider (die netjes uit Simplicate wordt uitgelezen), via de Microsoft Graph API verrijkt met de user-id binnen de Microsoft 365 omgeving en gemapped naar de gewenste structuur. De laatste stap is het aanmaken van het Microsoft Team. Hiervoor wordt er een HTTP-aanvraag gestuurd naar de Microsoft Graph API met de gewenste data.

afbeelding-4

Ten slotte zal het Python-script uitgerold moeten worden, zodat deze continu uitgevoerd blijft. Hiervoor hebben wij gebruik gemaakt van een WebJob binnen een Azure App-service.

Deze magie samen resulteert in een koppeling tussen Simplicate en Microsoft Teams. Doordat de handelingen voor Microsoft Teams via de Microsoft Graph API lopen, is het voor ons zeer eenvoudig om de koppeling uit te breiden richting andere Microsoft 365 producten. Werk slimmer, niet harder!

Jesse Lesnussa,
Databeestje bij yellow arrow. Data uit (verschillende) toepassingen bij elkaar brengen, analyseren en via dashboards en rapporten inzicht creëren. Power Platform held in de volledige breedte.

VOOR DE LIEFHEBBER