Intern product
Supportplatform
Wat ik zocht bestond niet, dus bouwde ik het
Een self-hosted supportplatform waarvan de AI-assistent alleen antwoordt vanuit de eigen kennisbank, en waarvan de kennisbank groeit met de vragen die hij niet kon beantwoorden.
Alleen open voor klanten van Nolorem, dus een publieke rondleiding is er niet. De schermen op deze pagina tonen het met demodata.

Wat het doet
Antwoorden met de bron erbij
De assistent antwoordt alleen vanuit de kennisbank en verwijst naar het artikel dat hij gebruikte. Staat er niets over in, dan zegt hij dat in plaats van te gokken.
Hij kent het account
Hij ziet op welk plan de klant zit en welke tickets er openstaan, en stelt een ticket op als het nodig is. Pas als de klant bevestigt, komt het in de wachtrij.
Tickets komen binnen met context
Een ticket draagt de context mee van de artikels die de klant al gelezen heeft, dus niemand hoeft nog te horen of hij de handleiding al bekeken heeft.
Elk gesprek blijft bewaard
Elk gesprek met de assistent wordt bewaard, met de afloop en de score van de klant. Zo zie ik waar hij helpt en waar hij doorgeeft.
Gaten komen vanzelf bovendrijven
Vragen waar de assistent geen antwoord op had, worden gegroepeerd en geteld, en elke groep wordt met één klik een ontwerpartikel.
Op mijn eigen servers
Screenshots, accountgegevens, wat er precies stukging: het blijft allemaal op infrastructuur die ik zelf beheer, niet bij een helpdeskleverancier.
Waarom dit bestaat
Wie voor Nolorem betaalt, verdient degelijke hulp op het moment dat er iets hapert. Geen van de gebruikelijke opties beviel me. Een gehoste helpdesk rekent per agent per maand aan en bewaart je klantgesprekken op andermans servers, wat een vreemde boodschap is voor een platform dat vertrouwelijkheid als uitgangspunt neemt. Een statische documentatiesite beantwoordt de vragen van gisteren en kan geen ticket aannemen.
Wat ik wél wilde bestond niet in een vorm die me beviel: een kennisbank die de vraag opvangt voor ze een ticket wordt, met een assistent die alleen antwoordt vanuit mijn eigen documentatie. Dus bouwde ik het zelf, op dezelfde infrastructuur en dezelfde principes als Nolorem.
Een assistent die zegt dat hij het niet weet, helpt meer dan een die altijd iets antwoordt.
De weg van een vraag
Een klant met een probleem begint bij de assistent, niet bij een formulier. Die zoekt in de kennisbank, antwoordt vanuit het artikel dat hij vindt en linkt ernaar, zodat de klant het hele artikel kan lezen in plaats van op een samenvatting te moeten vertrouwen. Heeft de kennisbank niets over het onderwerp, dan zegt de assistent precies dat en biedt hij aan om een ticket te openen. Zelf dient hij er nooit een in: eerst bevestigt de klant, en zo blijven per ongeluk geëscaleerde gesprekken uit de wachtrij.

Het ticket dat er dan toch komt, draagt de context mee van de artikels die de klant al doorlopen had. Bij mij komt het binnen in een inbox die ik filter op status, prioriteit en categorie, en op een bord dat toont waar elk ticket staat, van triage tot wachten op de klant. Ik begin dus bij wat de klant al geprobeerd heeft, en dat scheelt aan beide kanten een ronde vragen.

Hoe de kennisbank groeit
Tickets zijn niet alleen werk, het zijn ook signalen. Een vraag die de assistent moest doorgeven, is een vraag waar de kennisbank geen antwoord op had, en als dezelfde vraag blijft terugkomen, hoort dat op te vallen in plaats van weg te zakken in een archief. Het platform groepeert die vragen en telt ze, zodat het gat dat de meeste tickets kost bovenaan de lijst staat.

Vanuit een gat opent één klik een nieuw artikel, met de vraag al als titel. Ik schrijf het antwoord uit en publiceer het, en de volgende klant met dezelfde vraag krijgt het meteen van de assistent, zonder ticket. Door die lus wordt het systeem met de tijd beter, en precies daarom verbetert de hulp op de plek waar ze tekortschoot, niet op de plek waar iemand gokte dat het nodig zou zijn.


Supportgesprekken bevatten het gevoeligste materiaal dat een klant ooit doorstuurt: screenshots, accountgegevens, beschrijvingen van wat precies stukging. Dat blijft allemaal op infrastructuur die ik zelf beheer. Dat is geen feature waar ik voor aanreken, het is de standaard.
Waar ik tegenaan liep
Zoekkwaliteit beslist alles. Een kennisbank die niemand kan doorzoeken is een kennisbank die niemand gebruikt, en dan dient men alsnog een ticket in. Precies wat het systeem moest voorkomen. Zoeken laten matchen op bedoeling in plaats van op exacte bewoording was het verschil tussen werkend en decoratief.
Een assistent met gereedschap heeft grenzen nodig. Zodra een model tickets kan opzoeken en aanmaken, wordt promptinjectie een reëel risico in plaats van een theoretisch. Data die van buiten komt wordt afgebakend doorgegeven, de systeemprompt blijft kort, en acties met gevolgen vragen om bevestiging van de gebruiker.
Goede artikels schrijven is lastiger dan het platform bouwen. De software was de kleinste helft. Een artikel dat een vraag echt beantwoordt, in plaats van de interface te herhalen, kost oprecht moeite, en geen hoeveelheid engineering vervangt dat.
Waarom dit hier staat
Dit is een klein platform dat een weinig glamoureus probleem oplost, en daarmee een eerlijke illustratie van het soort werk dat bedrijven het vaakst echt nodig hebben. Geen maanreis, maar het ding dat stilletjes een terugkerende kost wegneemt. Het toont ook dat ik mijn eigen klanten serieus neem: het had goedkoper gekund door een abonnement af te sluiten en de gesprekken elders te laten staan.