AI & Automatisering · Praktijkervaring
Mijn eerste AI-agent bouwen in MS365 — van Excel naar gespreksassistent
Ik ben consultant. Ik had een Excel. Nu heb ik een agent die begrijpt wat ik bedoel, navraagt als iets onduidelijk is, en mijn tijdregistratie wegschrijft terwijl ik verder werk. Dit is wat er tussen die twee dingen zat.
Het begon, zoals alles begint, met een Excel
Uren bijhouden. Elke consultant kent het: een tabblad per maand, kolommen voor klant, project, datum, start, einde, omschrijving. Werkt. Tot je het vergeet bij te houden. Tot je twee klanten door elkaar haalt. Tot je op het einde van de maand een half uur zoekt naar "was dat nou woensdag of donderdag".
Papier heb ik nooit gebruikt — niet als bewuste keuze, gewoon omdat ik volledig digitaal werk. Dus Excel het was functioneel, maar niet motiverend. De digitale versie van "ik doe het morgen wel".
Ergens in mijn hoofd leefde al langer het idee: wat als ik gewoon kon typen wat ik deed, en de rest gaat vanzelf? Geen formulieren invullen, geen kolommen zoeken, geen "wacht, hoe was die klantnaam ook alweer". Gewoon: "2u op BNO vandaag van 14 tot 16u" — en klaar.
MS365 had ik al. Copilot Studio ook, gratis te proberen. Dus ik begon.
Stap één: de databank opbouwen
Voordat er een agent kan zijn, moet er data zijn. Geen data, geen agent — net zoals je geen GPS kan gebruiken zonder kaarten. Die kaarten moest ik zelf tekenen, in SharePoint.
Wat begon als "een lijstje met timesheets" groeide al snel uit tot een gestructureerde databank met vijf tabellen die met elkaar verbonden zijn. Klanten bovenaan. Daaronder contracten met de tariefinfo per klant. Daaronder projecten — want een klant kan meerdere actieve projecten hebben met andere voorwaarden. En onderaan de timesheets zelf, dag per dag.
01
Klanten
Wie betaalt er uiteindelijk
02
Contracten
Tarief per klant: uur of dag, intern of extern
03
Projecten
Het echte anker van elke tijdregistratie
04
Timesheets
Wat ik deed, wanneer, hoe lang
05
Contractdocumenten
Bijlagen per contract, voor later
De truc zit in de koppelingen. Een timesheet weet via het project welk contract geldt, en via dat contract welk tarief van toepassing is. Dat betekent dat ik bij een nieuwe registratie niets meer hoef in te vullen over tarieven — een achtergrond-flow doet dat automatisch, tien seconden nadat er een project gekoppeld wordt. TariefType, Uurtarief en Dagtarief vullen zich vanzelf in.
Dat was het eerste echte "o, dit werkt eigenlijk indrukwekkend"-moment. Saai om te beschrijven, maar je test het toch drie keer gewoon om het te zien.
Het concept: van scripten naar instrueren
Copilot Studio biedt standaard zogenaamde topics aan — gescripteerde dialogen. Je bepaalt elke vraag, elk antwoord, elke vertakking. Microsoft beveelt dit als eerste aanpak aan, en ze werkt. Maar ze is ook fragiel: zeg iets net anders dan verwacht, en de agent staat met zijn mond vol tanden.
Halverwege het project besloot ik te switchen naar een echte agent-aanpak. In plaats van dialogen scripten, schrijf je instructies. In mensentaal. Zoals een job description voor een nieuwe medewerker.
"Je bent de tijdregistratie-assistent. Je spreekt Belgisch Nederlands, kort en informeel. Als de gebruiker een projectnaam noemt, match je slim — ook een afkorting volstaat. Je vraagt altijd bevestiging voor je iets wegschrijft. Je verzint geen data."
De LLM onder de motorkap doet daarna zelf het denkwerk. Welk project? Vraagt hij. Welke datum bedoel je precies? Ik hoef geen vertakking te programmeren voor elk scenario — de agent lost het zelf op. Dat is het conceptuele verschil, en het is groot.
De tools — de Power Automate-flows die de agent kan aanroepen — blijven wel technisch werk. Twee ervan zijn cruciaal: één om projecten op te zoeken, één om een tijdregistratie weg te schrijven naar SharePoint. Maar het gesprek zelf? Dat schrijf je op als een briefing, niet als een flowchart.
Waar je tegenaan loopt
Het valt niet mee. Niet omdat het onoverkomelijk is, maar omdat je bij elke stap iets tegenkomt wat je niet verwachtte. En "niet verwacht" klinkt leuk in een blogpost. Op een dinsdagavond om 22u, als de derde test op rij iets onbegrijpelijks teruggeeft, klinkt het minder leuk.
Een eerlijke greep uit wat ik tegenkwam:
De AI denkt Amerikaans
Standaard schrijft de agent datums in MM-DD-YYYY. Dat betekent dat "9 mei" plots "05-09" wordt — wat in ons formaat neerkomt op 5 september. Eén foute datum in de instructies en elke registratie klopt niet. Oplossing: een testdatum kiezen waarbij dag en maand niet hetzelfde zijn, en die expliciet als voorbeeld opnemen in de instructies.
Flows die onzichtbaar zijn
Power Automate-flows die je buiten Copilot Studio bouwt, verschijnen niet als beschikbare tool in je agent. Je moet de flows van binnen Copilot Studio starten — "agentstromen" heten ze dan. Dat staat nergens vermeld in de eerste tutorial die je tegenkomt. Wij ook niet, dus we bouwden het twee keer.
Succes dat eruitziet als een fout
Als SharePoint een item succesvol aanmaakt, geeft het HTTP-statuscode 201 terug. Copilot Studio ziet "201" en denkt: fout. De agent meldt een probleem, terwijl de data wél netjes in de lijst staat. Fix: vanuit de flow zelf een vaste bevestiging terugsturen, zodat de agent nooit de ruwe statuscode te zien krijgt.
Data in de verkeerde kolom
Eerste smoke test: de agent schrijft netjes weg naar SharePoint. Maar de omschrijving staat in de datumkolom, de datum in het startuurveld, het startuur in het einduurveld — alles één positie opgeschoven. De LLM had de waarden correct, maar stopte ze in de verkeerde velden. Reden: de parameternamen waren te vaag. Na duidelijkere benamingen: probleem weg.
Lussen die zichzelf vermenigvuldigen
Power Automate maakt automatisch een "For each"-lus aan zodra je een veld uit een lijst ophaalt — ook als die lijst maar één item bevat. Voeg je velden toe uit drie lijsten, dan nestelt het systeem drie lussen in elkaar en wordt je flow een raadsel. Oplossing: de eerste waarde van de array rechtstreeks aanspreken met een formule, zonder lus.
En dan is er nog het moment waarop je je serieus afvraagt of je misschien toch gewoon Excel moest blijven gebruiken. Dat moment komt. Geef niet op. Ga slapen. De volgende ochtend zie je wat er mis was, en je vraagt je af waarom je er zo lang over deed.
Het mooie moment
De eerste keer dat ik intypte "registreer 2u op het BNO-project vandaag van 14 tot 16u" — en de agent antwoordde met een correcte samenvatting, vroeg om bevestiging, wegschreef naar SharePoint, en tien seconden later automatisch de tarieven had ingevuld — was stiller dan ik verwacht had.
Geen confetti. Geen fanfare. Gewoon: het werkte.
Het meest meta-moment was de smoke test zelf: het eerste project dat ik liet registreren was "Breeez AI agent bouwen" — het project waarvoor ik de agent aan het bouwen was. De agent registreerde zichzelf. Dat voelt ergens filosofisch verantwoord.
Wat nu nog volgt
De agent staat. Tijdregistratie via chat werkt. Maar dit is pas het fundament. Wat er op de roadmap staat: uren opvragen per project of periode, een maandfactuur voorbereiden, proactieve meldingen als een project bijna het geplande budget raakt. En zodra de MS365 Copilot-licentie er is: de agent bereikbaar via Teams, ook op mobiel — zodat ik na een vergadering gewoon kan inspreken wat ik deed.
Elke volgende stap is makkelijker dan de vorige. De datastructuur staat, de tools zijn er, de instructies werken. Uitbreiden is een nieuwe tool schrijven — geen nieuw systeem bouwen.
Moeite waard?
Voluit. Niet omdat het makkelijk was — dat was het zeker niet — maar omdat het resultaat iets doet wat mijn Excel nooit deed: het verlaagt de drempel om bij te houden wat ik doe. En dat is precies het punt.
Wie is de volgende? Als je MS365 hebt, heb je alles wat je nodig hebt. Begin met één use case. Niet te groot, niet te ambitieus. Bouw iets kleins dat werkt, en bouw daarna verder. De leercurve is er — maar je doorloopt hem maar één keer.
Vragen over hoe je dit aanpakt? Breeez.be — neem gerust contact op.