Bij een recent maatwerkproject liep ik tegen een interessant automatiseringsvraagstuk aan. De bestaande contracten en schadeformulieren waren inhoudelijk bruikbaar en herkenbaar voor de organisatie, maar het proces eromheen was grotendeels documentgedreven. Gegevens moesten op de juiste plek terechtkomen, handtekeningen moesten worden toegevoegd en iedere definitieve versie moest later betrouwbaar terug te vinden zijn.
De makkelijke oplossing zou zijn geweest om een compleet nieuw formulier te ontwerpen. Technisch is dat eenvoudiger, maar in de praktijk verander je dan ook de werkwijze, de herkenbaarheid en vaak de exacte indeling van documenten. Daarom kozen we voor een andere aanpak: de bestaande contracttemplates bleven visueel het uitgangspunt, terwijl de invulling, ondertekening, opslag en controle digitaal werden gemaakt.
Het document werd het eindpunt van een dossier
De belangrijkste bouwbeslissing was om niet vanuit een los PDF-bestand te denken, maar vanuit een dossier. In dat dossier staan de gegevens die nodig zijn voor de overeenkomst: de klant, het hulpmiddel, serienummers, accessoires, de looptijd en interne opmerkingen. Een document wordt vervolgens gegenereerd vanuit één gecontroleerde versie van dat dossier.
Dat voorkomt dat dezelfde informatie op meerdere plekken handmatig wordt bijgehouden. Het dossier is de bron; het contract is een vastgelegd resultaat daarvan. Verandert er later iets in het dossier, dan blijft het bestaande document ongewijzigd en kan het systeem aangeven dat een nieuwe versie nodig is.
Bestaande vormgeving behouden zonder handwerk
Voor de PDF-generatie gebruiken we de bestaande pagina’s als visuele template. De applicatie plaatst de dossiergegevens op vaste coördinaten over die achtergrond heen. Dat klinkt eenvoudig, maar documentnauwkeurigheid zit juist in de details: tekstgrootte, regelhoogte, beschikbare breedte, markeringen en de plaats van handtekeningen moeten op iedere pagina kloppen.
We hebben daarom niet alleen gecontroleerd of een PDF technisch geopend kon worden. De uitvoer is per pagina gerenderd en visueel vergeleken met het originele document. Ook verschillende hulpmiddelmodellen en schadeformulieren zijn afzonderlijk getest, omdat velden en posities per template kunnen verschillen.
Die aanpak leverde het beste van twee werelden op: medewerkers en klanten herkennen het bestaande formulier, maar niemand hoeft gegevens nog handmatig in een document te schuiven.
Concept en ondertekende versie zijn verschillende toestanden
Een belangrijk onderdeel van de flow is het onderscheid tussen een concept en een ondertekend document. Een concept kan worden gegenereerd om gegevens te controleren. Voor een digitaal ondertekende versie zijn instemming en beide handtekeningen verplicht.
Na ondertekening krijgt het document een definitieve status. Het systeem bewaart het moment van ondertekenen en koppelt de versie aan de revisie van het dossier waarmee hij is gemaakt. Een ondertekend document kan niet stilzwijgend worden vervangen door een nieuw bestand. Als er een correctie nodig is, ontstaat een nieuwe versie of wordt een eerdere versie expliciet als vervallen gemarkeerd.
Dat statusmodel lijkt misschien administratief, maar technisch voorkomt het veel onduidelijkheid. “Er staat een PDF in de map” zegt weinig. “Versie 2 is ondertekend, hoort bij revisie 4 van het dossier en versie 1 is vervallen” is wel controleerbaar.
Een controle-hash als digitale verzegeling
Voor ieder definitief document berekent de applicatie een SHA-256-hash. Dat is een unieke controlewaarde die verandert zodra ook maar één onderdeel van het bestand wijzigt. De hash wordt samen met de documentregistratie opgeslagen.
Hiermee maak je niet juridisch alles automatisch opgelost, maar je krijgt technisch wel een sterke integriteitscontrole. Later kan het systeem aantonen of het opgeslagen bestand nog exact overeenkomt met de versie die destijds is geregistreerd.
Dezelfde controle gebruiken we voor fysiek ondertekende documenten die als scan of foto worden toegevoegd. Het bestandstype en de bestandsgrootte worden gevalideerd, het bestand wordt afgeschermd opgeslagen en de controle-hash komt in het dossier terecht.
Rollen bepalen wie wat mag doen
Niet iedere gebruiker hoeft contracten te genereren, documenten te uploaden of statussen te wijzigen. Daarom is de documentflow gekoppeld aan rollen en afzonderlijke rechten. Een gebruiker kan bijvoorbeeld dossiers bekijken zonder nieuwe contracten te mogen maken. Een andere rol kan documenten beheren, terwijl gebruikersbeheer beperkt blijft tot beheerders.
Die scheiding is belangrijk omdat een documentomgeving gevoelige gegevens bevat en handelingen verschillende gevolgen hebben. Toegang hoort niet af te hangen van een verborgen knop in de interface; de applicatie controleert de toestemming opnieuw bij iedere actie.
Een auditlog maakt het proces uitlegbaar
Naast de bestanden zelf houdt het systeem gebeurtenissen bij. Wie genereerde een document? Wanneer veranderde de status? Welke versie werd ondertekend? Wanneer werd een fysiek exemplaar toegevoegd? Zulke gebeurtenissen worden in een auditlog vastgelegd.
Daardoor kun je achteraf reconstrueren wat er is gebeurd zonder te vertrouwen op bestandsnamen, losse e-mails of het geheugen van een medewerker. Dat is niet alleen nuttig bij fouten. Het helpt ook bij support, kwaliteitscontrole en het verbeteren van de werkwijze.
Privacy hoort bij de architectuur
Omdat dossiers persoonsgegevens bevatten, is ook de bewaartermijn onderdeel van de applicatie. Afgeronde dossiers kunnen volgens ingestelde regels worden geselecteerd voor anonimisering. Persoonsgegevens en documentkoppelingen worden dan verwijderd, met een begrensde herstelperiode voor bestanden in een afgeschermde omgeving.
Ook back-ups worden niet als bijzaak behandeld. De database en dossierbestanden worden samen opgeslagen, gecontroleerd en voorzien van een manifest. Een back-up die nooit is geverifieerd, is voor mij geen betrouwbare back-up.
De grootste winst zit in controle
De zichtbare uitkomst van deze bouw is een PDF die automatisch wordt ingevuld en ondertekend. Maar de echte verbetering zit onder de oppervlakte. Het contract is gekoppeld aan een dossier, een revisie, een status, een controle-hash, bevoegdheden en een geschiedenis van gebeurtenissen.
Dat maakt de documentflow sneller, maar vooral beter uitlegbaar. Automatisering is hier niet alleen het wegnemen van handwerk. Het is het ontwerpen van een proces waarin iedere belangrijke stap zichtbaar, begrensd en controleerbaar is.