Onlangs heb ik een goedkeuringsproces voor TOPdesk changes ingericht dat volledig via Microsoft Teams verloopt.
In de praktijk zag ik vaak hetzelfde gebeuren: managers moeten inloggen in TOPdesk om een change goed te keuren of af te wijzen. Dat kost tijd en zorgt er regelmatig voor dat aanvragen blijven liggen.
Daarom heb ik het proces anders ingericht.
De flow
Een change wordt aangemaakt in TOPdesk
TOPdesk verstuurt een webhook naar een Azure Function App
De manager ontvangt direct een Adaptive Card in Microsoft Teams
Met één klik wordt de change goedgekeurd of afgewezen
Wat gebeurt er automatisch?
• De status van de change wordt bijgewerkt in TOPdesk
• De Teams-card wordt aangevuld met de beslissing en timestamp
• Er wordt een actielog toegevoegd aan de change
Techniek achter de oplossing
Voor de realisatie van deze workflow maak ik gebruik van een Azure Function App die fungeert als middleware tussen TOPdesk en Microsoft Teams.
Binnen de Function App is in TypeScript een workflow geïmplementeerd met verschillende controlelagen. Hierbij wordt onder andere:
• Bepaald welke manager verantwoordelijk is voor de goedkeuring
• Voorkomen dat een manager meerdere keren kan accorderen
• Gecontroleerd of de goedkeurende gebruiker daadwerkelijk bevoegd is om de change goed te keuren
• De verwerking van goedkeuringen en afwijzingen veilig afgehandeld
Daarnaast wordt gebruikgemaakt van:
• Azure Functions (Node.js / TypeScript)
• Microsoft Graph API
• Adaptive Cards
• JWT-tokens met een geldigheid van 24 uur
• Automatische tokenverversing
• Een volledig serverless architectuur
• Geen Power Automate of Teams-bot nodig
Waarom dit interessant is
De architectuur is generiek opgezet. Approve- en reject-statussen worden dynamisch uit TOPdesk opgehaald, waardoor dezelfde oplossing eenvoudig toepasbaar is voor andere processen en workflows.
Het resultaat: minder handmatige stappen, snellere besluitvorming en een hogere adoptie van het goedkeuringsproces.
Heeft iemand vergelijkbare integraties gebouwd tussen TOPdesk en Microsoft Teams? Ik ben benieuwd naar andere ervaringen en toepassingen.
