Stats
Klik op een tegel voor de definitie en de historie per dag.
Highscores — actiefste trainingen
Inschrijvingen die in de periode zijn gestart óf verder zijn gekomen. Zelfde telling als de mutatietabel en de DAX-metingen, dus dit en je rapport kunnen niet uiteenlopen.
Highscores — best beoordeelde trainingen
Uit de evaluatie die deelnemers na het afronden invullen. Gefilterd op de dag waarop iemand hem invulde, niet op de dag waarop wij hem ophaalden.
Selectie
Wie tellen we mee? Een deelnemer hoort bij de selectie als de accountstatus voldoet aan je keuze onderaan én hij in minstens één van de aangevinkte groepen zit.
Laden…
Waarom staat Inactief bijna altijd op 0? TalentLMS haalt gedeactiveerde gebruikers uit hun groepen. Gemeten over 33 groepen en 903 lidmaatschappen: nul inactieve leden, terwijl er 1.732 inactieve accounts bestaan. Via groepen vind je afhakers dus niet — zie de toelichting bij Accountstatus.
Bewaarde lijsten. Handig om meerdere selecties naast elkaar te onderzoeken. Alleen de selectie hierboven bepaalt wat er daadwerkelijk verzameld wordt.
bron in het extract zegt of iemand via een groep of als inactief binnenkwam.
Standaard bevat het extract alleen pseudoniemen. Zet je dit aan, dan krijgt
cohort.csv er naam en email bij, zodat je er campagnes op
kunt draaien. De voortgangstabel blijft gepseudonimiseerd — koppelen doe je op
deelnemer_key.
Handig om te beginnen, maar laat dit uit staan zodra je groepen kloppen — anders blaast een typefout stilletjes je hele selectie op.
Automatisch draaien
De planner kijkt elk kwartier of het tijd is. Je kunt het tijdstip dus wijzigen zonder opnieuw te deployen. Is een run gemist, dan wordt hij bij de eerstvolgende controle alsnog gedraaid.
De nachtrun haalt altijd de volledige selectie op. Dat is bewust: draai je
tussendoor handmatig een kleine selectie, dan blijft de automatische reeks vergelijkbaar.
In Power BI filter je die twee uit elkaar met Snapshot[soort].
Scheelt ~155 API-calls per stille dag. Zonder inloggen kan niemand voortgang boeken, dus een run zou een identieke snapshot opleveren. Handmatig in- of uitschrijven door een beheerder zie je niet in de loginfeed — daarom die bovengrens.
Handmatig draaien
Een volledige run duurt een paar minuten. Mislukt hij, dan wordt er niets weggeschreven — beter geen snapshot dan een halve.
Filter bepaalt wat de volgende run meeneemt — alleen die run.
Alleen selectie tellen is een proefstuk: het telt wie er meedoet en stopt
daarna. Zo'n vijftien API-calls, een paar seconden, en het haalt geen cursussen of voortgang
op. Gebruik het om te zien of je groeps- en statuskeuze het aantal geeft dat je verwacht,
vóórdat je een volledige run doet.
Alles draaien haalt de hele stand op en schrijft een snapshot weg.
Geldt alleen voor deze run: je instellingen blijven staan en de nachtrun draait onveranderd de volledige selectie. Deze snapshot komt apart te staan en telt niet mee in de cijfers.
Groepen — niets aangevinkt is alle groepen
Trainingen — niets aangevinkt is alle trainingen
Alleen selectie tellen doet ~15 calls en schrijft geen snapshot weg. Gebruik het om te controleren of je groepskeuze het juiste aantal geeft.
Laatste runs
Deelnemers en voortgang
Eén rij per deelnemer per cursus, op de gekozen peildatum. Deelnemers staan als pseudoniem in de data — hetzelfde pseudoniem betekent dezelfde persoon, maar de naam zit er bewust niet in.
Historische evaluaties aanleveren
De collector haalt evaluaties op zodra iemand een training afrondt, maar alleen vooruit: alles van vóór 12 september 2026 staat in geen enkele snapshot. Lever die hier aan en ze doen mee in het scorebord én in Power BI.
De sleutellijst geeft je bij elke training en elke deelnemer het id dat in het
sjabloon hoort. Zoek in Excel met VERT.ZOEKEN van een trainingsnaam of een
e-mailadres naar het id. Die lijst bevat namen en e-mailadressen — anders valt er niets op te
zoeken — en gaat alleen naar je eigen download: niet naar een snapshot, niet naar Power BI.
Eén regel per persoon per training, met de kolommen uit het sjabloon. Vul
user_id met het TalentLMS-id, niet met een naam of e-mailadres: wij maken er
dezelfde sleutel van als de collector gebruikt, zodat de rijen op dezelfde persoon
aansluiten zonder dat er een id bewaard wordt.
Een import vervangt de vorige volledig — lever dus altijd het hele
bestand aan. Elke aangeleverde rij krijgt bron = import, zodat je in Power BI
kunt zien wat gemeten is en wat aangeleverd.
Evaluaties ophalen per training
Mist er historie bij een training? Dan haalt dit alles op wat TalentLMS voor die training heeft, en het komt bij dezelfde tabellen als de nachtrun. Kies er één; het is één API-call per afgeronde deelnemer, dus bij een grote training duurt het even.
Mutaties tussen twee peildata
Wat is er veranderd? Dezelfde telling als in Power BI. Kies twee opeenvolgende dagen voor de dagmutatie, of zet A verder terug voor een periode.
Bedrijfscontext
Wat betekenen jullie begrippen? Wat telt als "afgehaakt"? Welke cursussen horen bij elkaar? Deze markdown gaat mee in elke analyse-opdracht, zodat een AI-sessie jouw definities gebruikt in plaats van er zelf een te verzinnen. Dit is het verschil tussen een antwoord dat klopt en een antwoord dat plausibel klinkt.
De map context/ in het project is leidend. Je mag hier bewerken —
dat werkt meteen en blijft staan — maar zet dezelfde inhoud daarna ook lokaal neer.
Die map gaat mee bij elke npm run deploy, en zodra hij daar is gewijzigd
overschrijft hij wat hier staat. Verandert er lokaal niets, dan blijft jouw bewerking hier
gewoon staan.
context/ te zetten — die map wint bij de volgende npm run deploy.
Nieuwe analyse
Stelt een opdracht samen voor een AI-sessie met de Power BI MCP: het echte schema, jouw definities, de actuele feiten en de regels die op snapshotdata gelden. De MCP draait lokaal op jouw machine, dus je plakt deze opdracht daar in.
Waar voer ik deze opdracht uit?
De opdracht is bedoeld voor de Power BI Modeling MCP. Die draait op jouw machine — een gehoste app kan er niet bij, want hij praat rechtstreeks met Power BI Desktop of met bestanden op je schijf.
Eenmalig klaarzetten:
- Draai in de projectmap
npm run model. Dat maaktmodel/PowerUp.pbip. - Open dat bestand in Power BI Desktop en vul de twee parameters in (endpoint + token uit het Power BI-tabblad).
- De MCP staat al in
.mcp.json; Claude Code in die map mag hem gebruiken.
Per analyse:
- Kopieer de opdracht hieronder.
- Plak hem in een sessie in de projectmap, met Power BI Desktop open.
- De MCP schrijft de meting in het model; controleer het getal tegen Data → Mutaties.
Liever zonder MCP? model/metingen.dax bevat alles om met de hand te plakken.
Vraag je data
Stelt je vraag rechtstreeks aan het gepubliceerde semantische model in de Power BI-service, via de remote MCP van Microsoft. Anders dan de lokale MCP draait die bij Microsoft, dus deze app kan er wél zelf bij — zonder dat jouw machine aanstaat.
Tool-schema's van de MCP
Power BI
Plak deze URL's in Power BI via Gegevens ophalen → Web. De token zit in de URL omdat de Web-connector bij geplande vernieuwing geen headers meestuurt — behandel hem dus als een wachtwoord. Daarom staat hij hier niet in beeld: Kopiëren zet de volledige URL met token op je klembord, het scherm houdt bolletjes.
Modelbestanden downloaden bouwt het PBIP-project opnieuw uit de
specificatie, met alle tabellen die er op dit moment in staan. Pak de zip uit over je
model/-map om te zien of een nieuwe tabel er echt in zit. Lokaal doet
npm run model hetzelfde, met het verschil dat die je bestaande rapport
laat staan.
1 · Selectie
Wie krijgt de mail. Dit staat los van de selectie bij Selectie: die bepaalt wie er in de cijfers meetelt en verandert de hele historie. Dit is een momentopname voor één verzending, altijd op de laatste snapshot — je stuurt naar wie er nú is.
Persoonsgegevens staan uit, dus de collector bewaart geen e-mailadressen. Zet dat aan bij Selectie en draai een nieuwe run; tot die tijd levert elke campagneselectie nul ontvangers op.
Groepen — leeg is alle groepen
Wél gestart in — leeg is: maakt niet uit
Níet gestart in — bijv. de training die je aanprijst
Hiermee stuur je een lijst ook in stukken: zet bij stap 4 een maximum van 20, verstuur, en bij de volgende ronde vallen die 20 er vanzelf uit omdat ze net mail hebben gehad. Proefzendingen tellen niet mee.
Dit veld vult zich pas vanaf de eerstvolgende run. Wie nog geen bekende login heeft valt buiten de selectie zodra je hierop filtert — leeg is niet hetzelfde als lang geleden.
Extra adressen — buiten de filters om
Vul de voornaam in, anders krijgt deze ontvanger de aanhef voor wie geen naam bekend is (in te stellen bij stap 3). De achternaam mag leeg blijven.
2 · Valideren
Wie zit er in de selectie hierboven. Dit is de enige plek in Quest waar namen en e-mailadressen met opzet in beeld komen — je staat op het punt deze mensen te mailen, dus je hoort te zien wie dat zijn. Deel dit scherm niet op een beamer.
Lijst: —
Vink uit wie niet mee moet, of vink alles uit en kies er een paar — sorteer bijvoorbeeld op Ingelogd om te beginnen met wie het meest recent actief was. Klik op een kopregel om te sorteren. De keuze telt pas mee als je de lijst opslaat bij stap 1.
3 · De mail
Jouw tekst, opgemaakt als bericht en niet als nieuwsbrief: links uitgelijnd, gewone tekstgrootte,
geen logo, één gele streep. Gebruik *sterretjes* om een woord te benadrukken en
{{Voornaam}}, {{Naam}} of {{Training}} waar iets per persoon verschilt.
Vertel in gewone taal wat er in de mail moet. Noem de aanleiding, wat je aanbiedt en de link.
Prijzen, data en duur worden niet verzonnen — staat het er niet bij, dan komt er
[TUSSEN HAKEN] te staan wat je nog moet invullen.
Zonder dit veld zou er “Hi {{Voornaam}},” in de bus liggen bij iedereen van wie we de voornaam niet kennen — en dat verraadt meteen dat er een machine achter zit.
Inhoud
Contactregel onderaan
Afmeldregel — gebruik [tekst]({{Afmeldlink}}) voor een werkende afmeldlink
Voorbeeld — met een verzonnen ontvanger ingevuld
4 · Versturen
Quest stelt de hele lijst samen — per ontvanger de al ingevulde mail — en stuurt die in één POST naar je Power Automate-flow. De flow hoeft alleen nog te versturen met een pauze ertussen. Geen Excel, geen merge-expressies in de flow die uit de pas kunnen lopen met wat je hier ziet.
Lijst: — — die kies je bij stap 1. Hier wordt de opgeslagen versie gebruikt, dus sla wijzigingen eerst op.
Dit is het enige punt waar e-mailadressen Quest verlaten. Het logboek hieronder houdt bij dát er verstuurd is en aan hoeveel mensen — niet aan wie.
5 · Resultaten
Wat er verstuurd is en wat het opleverde. Deze cijfers stonden eerst verspreid over het scherm waar je de mail schrijft — daar zoekt niemand rapportage.
Verzendhistorie
Campagne-webhook
De HTTP POST-URL uit je Power Automate-flow. Hij staat bij de sleutels en niet bij de instellingen, want het ís er een: wie die URL heeft kan mail laten versturen vanuit de gekoppelde mailbox. Daarom komt hij ook nooit terug naar dit scherm — je ziet alleen of er een staat. Vervangen doe je door een nieuwe te plakken.
Terugmelding uit de flow
De andere kant op: de flow meldt hier per bericht wanneer hij het verstuurde. Daarmee kan Quest een klik binnen een halve minuut na bezorging als linkscanner herkennen in plaats van als mens. Zonder dit blijft die herkenning werken op de drie andere signalen — je mist alleen het scherpste.
Adres — zet dit in de flow
Kopieer deze nu — hij komt hierna niet meer in beeld.
Gebruikers
Wie hier staat kan inloggen, en met welke rol. Bekijken is Stats en Vraag je data. Rapporteren daarbovenop Analyse en Power BI. Beheren is alles. Beheerders melden zich aan met Google; de andere twee rollen met een wachtwoord dat ze zelf instellen via de herstelmail.