Case study · SaaS

Uurtje-Factuurtje – AI factuur-assistent

Van een WhatsApp-bericht naar een nette factuur met je eigen logo. AI leest de tekst, de code rekent bedragen en btw uit, en je ziet eerst een voorbeeld voordat je downloadt.

WhatsApp → PDF in minutes

Van appje naar voorbeeld-PDF zonder rekenfouten.

Je stuurt een bericht, het systeem haalt de velden eruit, rekent in code de bedragen en btw uit en laat je eerst een voorbeeld zien voordat je downloadt.

Bedragen uitgerekend in code
Altijd een voorbeeld vóór download
0:20
CHAT DEMO0:20
CHAT DEMO

Happy flow: van chat tot downloadbare factuur

Start gesprek, parse, confirm, PDF downloaden.

0:20
Happy flow: van chat tot downloadbare factuur geselecteerd

Context & Probleem

Wat ik wilde bewijzen

  • AI mag lezen, niet rekenen: bedragen en btw zitten in code.
  • Eerst een voorbeeld, dan pas een definitieve PDF of download.
  • PDF meteen in eigen stijl, zonder aparte design-handoff.

Aanpak

  • Stappen: concept maken → controleren → bedragen/btw uitrekenen → PDF.
  • Beveiliging: API-sleutel en snelheidslimiet op chat en HTTP.
  • Opslag: SQLite voor instellingen, factuurnummers en PDF-verwijzingen.
  • Inzicht: simpele logging/metingen om te zien of alles goed gaat.

System Architecture

Van appje naar PDF in vaste stappen

AI leest de tekst, maar alle bedragen en nummers worden in code uitgerekend. Je krijgt eerst een voorbeeld, daarna pas een download met je eigen branding.

WhatsApp/Webhook
Bericht binnenhalen en verdubbelaars filteren
Node.js / Express
API-sleutel + snelheidslimiet, voorbeeld tonen
AI concept
Zet tekst om naar velden (AI rekent niet)
Rekenlaag
Code rekent totaal/btw en nummering uit
SQLite
Factuurnummers en instellingen opslaan
PDF output
Logo/kleuren erin, download na akkoord

Stack & keuzes

Technische keuzes die de betrouwbaarheid dragen

Elke laag bewijst een engineering-beslissing: schema's, guardrails, storage en branding in één lijn.

TypeScript + checks

Velden controleren en bedragen/btw in code uitrekenen.

AI alleen voor tekst

Zet je bericht om naar velden; rekent niet zelf.

Express / API

API-sleutel, limiet op verzoeken en altijd eerst een voorbeeld tonen.

SQLite store

Instellingen, factuurnummers en PDF-verwijzingen bewaren.

PDFMake

Logo, kleuren en nette opmaak zonder design-handoff.

Demo

Chat naar factuur zonder gokwerk

De assistent vraagt wat ontbreekt, de code rekent bedragen en btw. Geen AI-rekensommen, wel een helder voorbeeld.

Jij
Offerte voor Janssen BV: schilderwerk woonkamer, 8 uur x €50 ex btw.
Preview → Confirm → PDF

USP's

Engineering highlights

Geen marketing-features, maar bouwkeuzes: guardrails, deterministische bedragen, schema's en PDF-branding in één flow.

Bedragen kloppen altijd

Btw, nummering en afronding gebeuren in de code. AI leest alleen de tekst uit je bericht.

Slim lezen, niet raden

AI zet je bericht om naar velden; ontbrekende info wordt gevraagd in plaats van gegokt.

Meteen in je eigen stijl

PDF krijgt je logo en kleuren; je ziet een voorbeeld voor je ‘download’ zegt.

Geen dubbele facturen

Berichten worden herkend, zodat er geen dubbel werk of dubbele PDF ontstaat.

Snel en onderhoudbaar

Kleine modules, snelle responstijd en tests om regressies te voorkomen.

Resultaat & rol

Van ruwe chat naar gecontroleerde PDFs

Ik ontwierp de flow, schreef de prompts en checks, bouwde de rekenlaag, PDF-branding en logging. Klaar voor uitrol op WhatsApp/HTTP.

  • Flow staat end-to-end: appje → voorbeeld → akkoord → PDF (download/link).
  • Bedragen, btw en nummering zijn in code getest; AI rekent niet.
  • Branding (logo/kleuren) en voorbeeld-scherm zitten erin.
  • Snelheidslimiet en dubbele-verzoek filters voorkomen dubbele PDFs; logging geeft zichtbaarheid.

Learnings

Wat werkte en wat ik meeneem

  • Laat AI lezen, laat code rekenen. Dat voorkomt rare bedragen.
  • Altijd eerst een voorbeeld tonen voordat je iets definitief maakt.
  • Dubbele verzoeken wegvangen scheelt ruis en dubbele PDFs.
  • Branding en lettertypen vroeg regelen voorkomt vertraging later.