Yuki/VISMA Chatbot
Voor Yuki hebben we een chatbot gemaakt die in gewone taal vragen over hun sales data in HubSpot CRM beantwoordt en zelf voorstellen klaarzet, gebouwd bovenop dezelfde AI die op de achtergrond verkoopnotities en KVK gegevens verrijkt.
Prototype
AI enrichment voor HubSpot
Voor de minor “Omgaan met GenAI” kreeg mijn groep een echte opdrachtgever: Yuki, de boekhoudsoftware van VISMA met 136.000+ klantbedrijven. Yuki’s salesteam werkt met een CRM (HubSpot) waar verkoopnotities grotendeels vrije tekst zijn, bedrijfsvelden vaak leeg blijven en inside sales missende gegevens handmatig opzoekt. De opdracht was een adviesrapport plus een werkend prototype dat laat zien hoe AI dat proces kan verbeteren zonder de controle uit handen te geven. Ik heb het prototype gebouwd: twee Python repo’s met een FastAPI webapp bovenop een los herbruikbaar Python package. Elke wijziging die de AI voorstelt komt eerst in een reviewtabel terecht, en pas na expliciete goedkeuring gaat er iets naar HubSpot. Die keuze voor “ondersteunende AI, geen autonome AI” is direct het advies uit het rapport: gefaseerde uitrol met een mens in de lus.
De drie tools
Notities, KVK en een chatbot
Onderdeel A, Notities verwerken, laat een LLM tot tien velden per verkoopnotitie voorstellen (boekhoudpakket, medewerkers, KvK-nummer, omzet, adres), elk met een betrouwbaarheidsscore en een citaat als onderbouwing.
Onderdeel B, KVK-verrijking, vergelijkt HubSpot-bedrijven met het officiële Handelsregister en vult of corrigeert bedrijfsgegevens automatisch, met de bedrijfsnaam als enige uitzondering die nooit wordt overschreven.
Onderdeel C, de Lead-agent, is een chatbot die vragen over de data in HubSpot in gewone taal beantwoordt met tabellen of grafieken: het mag zelf vrij lezen, maar elke schrijfactie toont het als voorstel.
Dataveiligheid
Human-in-the-loop
Het hart van het systeem is de reviewtabel: geen enkele wijziging bereikt HubSpot zonder expliciete goedkeuring. Hoog vertrouwen voorstellen zijn in bulk goed te keuren, laag vertrouwen voorstellen bewust niet, en een conflict oplosser en auditlog houden alles herleidbaar. Afgekeurde voorstellen worden als negatief voorbeeld teruggevoerd in de volgende run. Bij het toepassen worden alleen lege velden gevuld, en een afwijkende bestaande waarde wordt nooit stil overschreven.
Omdat Yuki (nog) geen verwerkersovereenkomst met Anthropic heeft, blocked een ingebouwde testdata guard notities zonder vaste markering nog vóór de API call. De LLM provider is met één variable te switchen (Anthropic Claude of Google Gemini), en de volledige testsuite (490 tests) draait gemockt, zonder externe API calls of kosten.