Case 1: AI-geassisteerde offerte-generator
Uitgewerkt: van leeg formulier naar verstuurde offerte in 30 seconden
Een klant stuurt een vraag via je intake-formulier: of je vijftien racketbespanningen kunt leveren voor een clinic eind deze maand, met logo. Tot nu toe betekent dat: jij opent een leeg Word-document, zoekt de laatste offerte op, kopieert de stijl, typt productregels over uit je prijslijst, doet de btw, rekent een korting uit, mailt het PDF. Vijftien tot twintig minuten per offerte. In deze les bouw je die stap terug naar twee minuten, zonder dat de klant merkt dat AI eraan te pas komt — behalve dat je sneller en netter bent.
Wat deze case wel en niet doet
Het doel is een concept-offerte. Geen verzonden PDF zonder menselijke blik. De AI schrijft, jij controleert, jij verstuurt. De waarde zit in de tijdwinst op het saaie kopieerwerk, niet in het wegautomatiseren van je oordeel. Dat is ook de reden waarom deze workflow weinig risico loopt: elke offerte passeert nog steeds jouw ogen voor hij de deur uit gaat.
Niet-doel: de AI zelf prijzen laten berekenen of kortingen laten verzinnen. Dat is juist de klassieke hallucinatie-val. Prijzen komen uit je database. De AI krijgt ze aangeleverd en mag ze alleen hergebruiken, niet bedenken.
De vijf stappen
- Intake. Een simpel formulier (of ontvangen e-mail die je naar het formulier kopieert) met klantnaam, contactpersoon, productcategorie, aantallen, gewenste leverdatum, bijzonderheden.
- Verrijking. Je backend haalt bij die klantnaam het dossier op: eerdere bestellingen, gehanteerde korting, voorkeurstoon, btw-profiel. Uit je productcatalogus worden de matching SKU's met actuele prijzen opgehaald.
- AI-generatie. Sonnet krijgt een strakke prompt met de verrijkte data en levert een structured JSON terug: begeleidende alinea, regels, totalen, levertermijn, ondertekening.
- Validatie. Je code checkt dat de SKU's bestaan, totalen kloppen en geen onzinveld is verzonnen.
- Review en verzending. Jij ziet het concept in je dashboard, klikt op "passend maken" of past zelf iets aan, en drukt op verzenden. De PDF wordt gegenereerd en per mail naar de klant gestuurd.
Dit is de belangrijkste regel van deze hele case. Het model mag nooit een prijs verzinnen, nooit een btw-tarief kiezen, nooit een korting toepassen die niet vooraf is berekend en meegegeven. De input in de AI-call is een kant-en-klare prijsregel. De AI doet alleen de redactionele strekking eromheen.
De systeem-prompt, concreet
Zo zou de systeem-instructie er inhoudelijk uit kunnen zien. Sober, specifiek, met een harde beperking.
"Je bent een assistent die concept-offertes schrijft in professioneel maar warm Nederlands voor een sportspeciaalzaak. Je ontvangt een JSON met klantgegevens, productregels (inclusief aantallen en prijzen) en een leverdatum. Gebruik uitsluitend deze gegevens. Verzin geen prijzen, SKU's, btw-tarieven of kortingen. Lever je output als JSON volgens het meegegeven schema. De begeleidende alinea is maximaal drie zinnen, verwijst kort naar de aanleiding van de klant, en sluit af met een concrete vervolgstap."
Het schema dwingt je ook een vorm af. Denk aan velden: begeleidende_tekst, regels (array met sku, omschrijving, aantal, prijs_per_stuk, regel_totaal), subtotaal_excl_btw, btw_percentage, btw_bedrag, totaal_incl_btw, levertermijn_dagen, afsluiting. De AI vult elk veld; jouw validator controleert consistentie.
De validator — je echte vangnet
Een paar if-statements in PHP die het verschil maken tussen magie en ramp:
- Bestaat elke SKU in je productdatabase?
- Klopt elke
regel_totaalmetaantal * prijs_per_stuk? - Klopt het subtotaal met de som van alle regeltotalen?
- Klopt het btw-bedrag met
subtotaal * (btw_percentage / 100)? - Klopt het totaal-incl met
subtotaal + btw_bedrag? - Zit de levertermijn tussen 1 en 60 dagen?
Gaat er iets niet kloppen? Niet door, log het incident, toon het als rode waarschuwing in je dashboard, optioneel opnieuw proberen met een scherpere prompt. Dit vangt exact die ene keer dat het model toch creatief wordt met getallen.
Valkuilen die je tegenkomt
Ten eerste: een AI die "behulpzaam" is en prijzen subtiel aanpast "omdat het ronder uitkomt". Gebeurt. Vang je met de validator. Ten tweede: een AI die een product-omschrijving verfraait met eigenschappen die niet kloppen ("handmatig geknoopt" als dat niet zo is). Vang je door in de context de officiële productomschrijvingen mee te geven en de prompt te beperken tot "gebruik de meegeleverde omschrijvingen letterlijk". Ten derde: een AI die de klant met de verkeerde naam aanschrijft als de klantdata onvolledig is. Vang je door in de validator te checken dat de genoemde naam in de output overeenkomt met de naam in de input.
Ten vierde, subtieler: een AI die te enthousiast is over eigen producten ("deze bespanning is ongelofelijk populair"). Klinkt goedkoop. Los je op door in de systeem-prompt expliciet te zeggen: "Geen wervende superlatieven, geen claims over populariteit of kwaliteit tenzij in de input geleverd."
Zowel Anthropic's tool-use als OpenAI's structured output via JSON Schema garanderen dat het model geldige JSON teruglevert met exact jouw veldnamen en types. Gebruik dit altijd voor zulke workflows. Parse-errors in vrije tekst debuggen op vrijdagmiddag is de soort tijdverspilling die je niet meer hoeft mee te maken in 2026.
Kosten en snelheid
Eén offerte is grofweg 2.500 tokens input (klantdossier + productregels + systeem-prompt) en 600 tokens output. Met Sonnet: 2.500 × 3 + 600 × 15 = 16 dollarcent per miljoen tokens — oftewel ergens tussen de 0,02 en 0,05 dollar per offerte. Stel je maakt er honderd per maand: vijf dollar. Voor vijftien tot twintig minuten werktijd per offerte die je terugwint. De wiskunde is niet subtiel.
Latency: drie tot acht seconden tot het concept in je dashboard staat. Review en kleine aanpassingen: twee minuten. Van twintig minuten naar twee is geen marketingtruc — het is wat deze stack realistisch oplevert als je de validator op orde hebt.
PDF-generatie, niet door de AI
De AI schrijft geen PDF. De AI levert JSON. Jij hebt een PHP-template (Dompdf, mPDF of een HTML-naar-PDF service) die uit die JSON een nette PDF rendert met je eigen huisstijl, logo, kleuren en voettekst. Dat is robuust en voorspelbaar — precies wat je voor klantdocumenten wil. Elke klant krijgt dezelfde vormgeving; alleen de inhoud is per klant afgestemd.
Uitbreidingen voor later
Zodra de base werkt, komen de leuke uitbreidingen bijna vanzelf. Eén: variantbepaling — op basis van klant-historie kiest het systeem de juiste korting, de juiste btw-behandeling (binnenland vs EU vs buiten-EU), de juiste leveringsvoorwaarden. Twee: A/B van twee concept-offertes met subtiel andere toon, zodat jij de beste kiest. Drie: koppeling met je agenda zodat de leverdatum realistisch wordt voorgesteld. Vier: automatische follow-up na zeven dagen als de klant nog niet heeft getekend.
Maar dat is allemaal later. Vandaag: intake → verrijking → AI → validatie → review → verzending. Dat is de bodemplaat. Als die staat, bouw je er jarenlang op voort.
Drie dingen om mee te nemen
- AI voor redactie, database voor getallen. Laat het model nooit prijzen, btw of kortingen verzinnen. Dat komt altijd uit jouw bron.
- Validatie is geen luxe. Een handjevol if-statements vangt exact de klasse fouten waar het model goed in is.
- Mens in de lus, met minder moeite. De tijdwinst zit niet in het elimineren van jouw oordeel, maar in het wegautomatiseren van het kopieerwerk eromheen.
In de volgende case wordt het asynchroon: een triage-systeem dat binnenkomende e-mail sorteert, prioritiseert en concept-antwoorden klaarzet.
Tot dan. Blijf scherp.