// case
Een SaaS-portaal dat Microsoft-data bevraagbaar maakt
Klanten stellen in gewone taal een vraag over hun Power BI- of Dataverse-data en krijgen een antwoord met grafiek. Daarnaast draaien er governance-scans, automatische documentatie en bewaking van verversingen, elk als losse module met eigen abonnement.
- opdrachtgever
- omData
- sector
- Microsoft 365-dienstverlening
- resultaat
- 8 losse modules, 22 tabellen, één platform
// beginsituatie
Waar het begon
omData helpt MKB-bedrijven met Microsoft 365, Power BI en Dataverse. Klanten hadden hun data op orde, maar het beantwoorden van een simpele vraag betekende nog steeds: een consultant bellen, een rapport laten aanpassen en dagen wachten.
De data zat in Power BI en Dataverse, maar wie geen DAX kon schrijven, kwam er niet bij. Elke vraag die niet in een bestaand rapport stond, werd een verzoek aan een adviseur.
Daarnaast liepen governance en documentatie achter de feiten aan. Wie welke rapporten mocht zien en of een verversing was gelukt, ontdekte je meestal pas als er iets misging.
// de rol van AI
AI vertaalt de vraag van een mens naar een query. Het rekent niet en het beslist niet.
Dit is de kern van het portaal. Een medewerker typt 'hoeveel omzet deden we vorig kwartaal in het noorden' en krijgt een antwoord met grafiek. Daartussen zit precies één AI-stap, en die is bewust zo klein mogelijk gehouden.
waar AI het werk doet
- 1
Vraag omzetten naar een query
Het model vertaalt de vraag in gewone taal naar een DAX- of OData-opdracht. Het krijgt daarbij de structuur van de dataset mee, niet de data zelf. Wat eruit komt is een voorstel, geen uitvoering.
Mistral of Claude, afhankelijk van de gekozen regio
- 2
Antwoord teruggeven in gewone taal
De uitkomst van de query wordt teruggeschreven als leesbare zin, met een suggestie voor het meest passende type grafiek. Het model ziet daarbij alleen het resultaat, niet de onderliggende rijen.
Mistral of Claude
- 3
Documentatie schrijven
Voor de documentatiemodule beschrijft het model datasets, tabellen en rapporten in gewone taal, zodat een nieuwe collega snapt wat er staat zonder de techniek in te duiken.
Claude
wat bewust geen AI is
- De validator
- Gewone code, geen model. Die controleert of de voorgestelde query alleen leest en weigert alles wat schrijft of verwijdert. Een model laten bewaken of een ander model zich gedraagt, is geen beveiliging.
- Alle statistiek
- Trends, uitschieters en voorspellingen berekenen we in eigen code met testdekking. Taalmodellen zijn goed in taal en onbetrouwbaar in rekenen; het verschil tussen 12 en 1,2 procent zie je in een vloeiende zin niet terug.
- Het maskeren van gevoelige kolommen
- Dat gebeurt vóór het model, in de code. Het model vragen om gevoelige gegevens te negeren is hopen, geen garantie.
- De keuze voor Europese of wereldwijde AI
- Technisch afgedwongen in de database, niet als vinkje in een scherm. Zo kan een verkeerde instelling niet leiden tot data die alsnog de verkeerde kant op gaat.
en de mens dan?
De gebruiker stelt de vraag en ziet de query die eruit rolt. Wie wil, kan die controleren voordat hij op het antwoord vertrouwt. Bij twijfel over een cijfer klik je door naar de onderliggende gegevens.
// aanpak
Hoe we het aanpakten
Eén module eerst
We begonnen met alleen de chat op Power BI-data. Pas toen die betrouwbaar bleek, kwamen de governance-scan, de documentatiegenerator en de bewaking van verversingen erbij.
De vraag vertalen, niet raden
De AI zet een vraag om naar DAX of OData. Een validator laat daarna alleen leesopdrachten door. Zo kan een verkeerd begrepen vraag nooit iets wijzigen.
Rekenwerk zelf doen
Trends, afwijkingen en voorspellingen berekenen we in eigen geteste code. Een taalmodel is goed in taal, niet in rekenen, en dat verschil bepaalt of je de uitkomst kunt vertrouwen.
Losse abonnementen
Elke module heeft een eigen abonnement via Stripe, zodat een klant klein kan beginnen en alleen betaalt voor wat hij gebruikt.
// resultaat
Wat het opleverde
8
modules met een eigen abonnement
22
tabellen onder één platform
0
schrijfopdrachten die het model kan uitvoeren
- Chat die een vraag omzet naar DAX of OData, met een validator die alleen leesopdrachten doorlaat
- Gevoelige kolommen worden gemaskeerd voordat er iets naar een AI-model gaat
- Statistiek (trend, afwijkingen, voorspelling) in eigen geteste code, niet overgelaten aan het model
- Microsoft-koppeling op drie niveaus, met versleutelde tokens en toestemming per stap
- Keuze tussen Europese of wereldwijde AI, technisch afgedwongen in de database
// architectuur
De technische keuzes
- Microsoft-koppeling
- Drie niveaus van toegang, met versleutelde tokens en toestemming per stap. De klant ziet precies waarvoor hij toestemming geeft, in plaats van één brede machtiging aan het begin.
- Vraag naar query
- Het model stelt een DAX- of OData-opdracht voor; een validator controleert die op leesbaarheid en weigert alles wat schrijft of verwijdert.
- Statistiek
- Trendlijnen, uitschieters en voorspellingen draaien in eigen code met testdekking, niet in het taalmodel.
- Modulaire opbouw
- Acht modules over 22 tabellen, elk met eigen rechten en abonnement, maar op één gedeelde basis.
// veiligheid en privacy
Wat we hebben dichtgezet
- Gevoelige kolommen worden gemaskeerd voordat er iets naar een AI-model gaat
- Keuze tussen Europese of wereldwijde AI, technisch afgedwongen in de database in plaats van als instelling in een scherm
- Alleen leesopdrachten komen langs de validator, dus een model kan niets muteren
- Tokens versleuteld opgeslagen, toestemming per koppelingsniveau
// wat we leerden
Eerlijk achteraf
De verleiding is groot om het model ook te laten rekenen. Dat scheelt code en kost betrouwbaarheid; wij hebben die keuze bewust andersom gemaakt.
Toestemming per stap vragen voelt omslachtiger dan één brede machtiging, maar het is precies wat klanten over de streep trok.
Beginnen met één module hield het project overzichtelijk. Alle acht tegelijk ontwerpen had maanden gekost voordat er iets bruikbaars stond.
// dit is wat we doen
Diensten die hier samenkwamen
AI-apps op maat
Soms verdient je idee een volwaardige applicatie. Wij ontwerpen en bouwen webapps waarin AI de kern is, niet een sausje.
Meer hierover →AI-integraties
Je software werkt al. Wij maken hem slimmer: AI die je documenten leest, je vragen begrijpt en je systemen laat samenwerken.
Meer hierover →// meer werk
Andere cases
Normy
Een AI-managementsysteem voor 32 normen
Van nulmeting tot doorlopend certificeerbaar
Bekijk case →omData
Planbord: samen met je klant aan projecten werken
23 schermen, van offerte tot factuur
Bekijk case →omData
Van Webflow naar een eigen, snelle website
46 pagina's, met redirects en meetbare SEO
Bekijk case →Zoiets bouwen voor jouw bedrijf?
Vertel in een half uur wat er bij jullie speelt. Je hoort of een vergelijkbare aanpak past en wat die ongeveer kost.