Casestudy

Salsa te Gusta analytics chat

Een privé chat-app, alleen voor het team van Salsa te Gusta — medewerkers krijgen in seconden onderbouwde antwoorden over de business, zonder handmatig spreadsheetwerk

Overzicht

Salsa te Gusta, een Amsterdamse dansschool, deed z'n rapportages in spreadsheets — elke vraag over de business betekende dat iemand handmatig door rijen ging spitten. Wij bouwden er een interne analytics-assistent voor in de plaats. Het team stelt vragen als "loopt dit seizoen sneller vol dan vorig jaar?" in gewone taal, en de app antwoordt via een RAG-achtige pipeline over de Google Sheets van de school. Eén harde ontwerpregel: elk antwoord moet terug te herleiden zijn naar echte data. Het model mag dus alleen getypeerde analytics-tools aanroepen en nooit zelf cijfers verzinnen.

We ontwierpen de hele build privacy-first: namen en contactgegevens van cursisten worden gepseudonimiseerd voordat er iets het model bereikt, en pas in de geautoriseerde browser weer teruggezet. Daarbovenop kwamen toegang per rol, grafieken en persoonlijke dashboards. Het resultaat: het team krijgt in seconden onderbouwde antwoorden mét bronvermelding — zonder data-analist.

De uitdaging

Probleem: De rapportage van de school leefde volledig in spreadsheets: elke vraag over de business betekende handmatig opzoekwerk, antwoorden lieten op zich wachten en de ruwe sheets bevatten namen en contactgegevens van cursisten die je niet zomaar aan een AI-model geeft.

Technische uitwerking

Onderbouwde, meerstaps tool calling

Gebouwd op de Vercel AI SDK met streamText en meerstaps tool calling: het model roept een getypeerde analytics-tool aan, leest het resultaat en roept zo nodig een volgende aan voordat het antwoordt — zo is elk cijfer terug te herleiden naar een echte spreadsheetrij.

Aggregatie in code, niet in het model

Al het tellen, groeperen en rekenwerk zit in pure, unit-geteste functies. Het model orkestreert en legt uit; het rekent nooit zelf op ruwe rijen. De tool-beschrijvingen dienen tegelijk als documentatie en sturen de juiste toolkeuze.

Persoonsgegevens bereiken het model nooit

De Google Sheets-laag is het controlepunt: namen worden stabiele HMAC-tokens en e-mailadressen en telefoonnummers verdwijnen voordat er iets naar de LLM gaat. Het team ziet gewoon echte namen — de tokens worden pas in de browser teruggewisseld, ná de inferentie.

Toegang per rol + persoonlijke dashboards

Een compacte RBAC-module bepaalt welke databronnen en tools elke gebruiker mag gebruiken, valt bij auth-problemen veilig dicht en laat gebruikers analytics-panelen vastpinnen op een persoonlijk dashboard in Vercel KV.

Belangrijkste functies

  • Vragen in gewone taal, beantwoord uit live Google Sheets-data
  • Inschrijvingstempo per seizoen en conversie van proefles naar cursus
  • Grafieken en vastpinbare dashboard-panelen per gebruiker
  • Google-login alleen voor het team (NextAuth), valt veilig dicht zonder configuratie
  • Privacy-first: gepseudonimiseerde data naar het model, echte namen alleen client-side
  • Nachtelijke Postgres-mirror voor diepere Metabase-dashboards

Ook zo'n systeem nodig?

Vertel ons waar het werk vastloopt — in één gesprek hoor je wat er nodig is om dat op te lossen.

30 minuten · gratis · vrijblijvend

Impact

0
gegokte cijfers
100%
antwoorden data-onderbouwd
Alleen team
toegang

Gebruikte technologie

Next.jsVercel AI SDKGeminiGoogle SheetsNextAuthVercel KVPostgresTypeScript

Wat het oplevert

  • Het team beantwoordt businessvragen zelf, zonder data-analist
  • Betrouwbare antwoorden — elk cijfer noemt z'n bron en periode
  • Privacy-by-design houdt cursistendata weg van het model