Naar de inhoud

Kennisbank · Webdevelopment

Aanmeldingsformulieren op je website.

Maurits 16 min leestijd

Een aanmeldformulier is een formulier waarmee iemand zich ergens voor inschrijft: een cursus, een evenement, een lidmaatschap, een proefles.

Het verschil met een contactformulier is dat je hier meer gegevens nodig hebt. Je moet iemand kunnen inplannen, factureren en informeren. Dat maakt het langer, en daarmee kwetsbaarder. Gaat het je om het korte formulier waarmee iemand alleen een vraag stelt, kijk dan in het artikel over een goed contactformulier.

Wat je echt nodig hebt

Begin met de vraag: wat kan ik niet zonder. Vaak is dat minder dan er in het formulier staat.

Naam, e-mailadres en de keuze waar iemand zich voor aanmeldt zijn meestal genoeg om te beginnen. Een telefoonnummer is handig en niet altijd nodig. Een geboortedatum alleen als er een leeftijdsgrens is.

Alles wat je pas later nodig hebt, vraag je later. Een dieetwens voor een cursusdag over drie maanden kan prima in een aparte mail, en dat is meteen juridisch schoner, want een dieetwens kan iets over iemands gezondheid verraden.

Twee velden die ik regelmatig tegenkom en die er niet horen: het burgerservicenummer en een kopie van een identiteitsbewijs. Het BSN mag je alleen vragen als de wet je daartoe verplicht. Een kopie identiteitsbewijs vraag je niet voor een cursusinschrijving, en al helemaal niet via een gewoon webformulier.

Opdelen in stappen

Bij meer dan zeven of acht velden werkt opdelen beter dan alles op één scherm.

Zet de makkelijke vragen vooraan en de gevoelige achteraan. Wie eenmaal begonnen is maakt het eerder af, ook als het langer duurt dan hij dacht.

Toon een voortgangsbalk of "stap 2 van 3", zodat iemand weet hoe lang het nog duurt. En zorg dat teruggaan kan zonder dat de ingevulde gegevens weg zijn. Dat laatste gaat verrassend vaak mis, vooral als een stap opnieuw wordt geladen na een foutmelding.

Bewaar bij lange formulieren de tussenstand. Sommige formulierpakketten kunnen een aanmelding half opslaan en een link sturen om later verder te gaan. Bij een inschrijving met een bijlage of een betaling is dat het verschil tussen een halve en een hele aanmelding.

Betalen in hetzelfde proces

Als er betaald moet worden, doe dat dan meteen. Een aanmelding waar later een factuur op volgt levert altijd een deel wanbetalers en veel administratie op.

Toon het bedrag inclusief btw en zonder verrassingen, en zet iDEAL bovenaan de betaalmethodes. Dat is in Nederland verreweg het meest gebruikt. Verkoop je aan consumenten, dan moet de knop waarmee wordt afgerekend duidelijk maken dat er een betaalverplichting ontstaat; in de praktijk staat er "bestelling met betalingsverplichting" of iets van gelijke strekking.

Bij de bedenktijd van veertien dagen ligt het voor evenementen anders dan mensen denken. Voor diensten op het gebied van vrijetijdsbesteding die op een bepaalde datum plaatsvinden, zoals een concert, een workshop of een sportdag, geldt het herroepingsrecht niet. Zet je annuleringsvoorwaarden dus zelf duidelijk bij het formulier, want de wet vult dat hier niet voor je in.

Bevestig de betaling op het scherm en per mail, met wat er precies is afgerekend. En zorg dat een mislukte betaling niet stilletjes een halve aanmelding in je systeem achterlaat waar niemand meer naar kijkt.

De bevestiging

Dit onderdeel wordt het vaakst half gedaan en het scheelt je de meeste vragen achteraf.

Stuur meteen een bericht met wat iemand heeft ingevuld, wanneer en waar het plaatsvindt, en wat de volgende stap is. Zet er een agenda-uitnodiging bij als er een datum aan hangt. Een bestand van het type .ics kost je vijf minuten en scheelt je no-shows.

Zorg dat jijzelf ook een melding krijgt. En laat het niet bij één bevestiging als de aanmelding ver van tevoren is: een herinnering een week en een dag vooraf hoort erbij. Hoe je zulke reeksen instelt staat in het artikel over e-mailautomatisering.

Wat de AVG van je vraagt

Je verzamelt persoonsgegevens, dus je moet weten op welke grond je dat doet en je moet erover vertellen. Minder ingewikkeld dan het klinkt, en de meeste sites doen precies één ding fout.

Je grondslag is meestal geen toestemming

Voor de aanmelding zelf heb je geen toestemmingsvinkje nodig. Iemand schrijft zich in voor je cursus, dus je verwerkt zijn gegevens om die overeenkomst uit te voeren. Dat is een eigen grondslag in de AVG.

Dat scheelt een vinkje en het scheelt gedoe. Toestemming mag namelijk altijd worden ingetrokken, en je kunt iemands inschrijving moeilijk ongedaan maken omdat hij zijn toestemming intrekt. Vraag dus geen toestemming voor iets waar je hem niet voor nodig hebt.

Vertel bij het formulier wel waarvoor je de gegevens gebruikt en verwijs naar je privacyverklaring. Eén regel onder de knop is genoeg. Vraag verder niet meer dan je nodig hebt: dataminimalisatie is geen advies maar een uitgangspunt van de wet.

Toestemming voor commerciële post

Wil je iemand daarna ook een nieuwsbrief of aanbiedingen sturen, dan heb je daar wel toestemming voor nodig. Aanmelden voor een cursus is geen toestemming voor reclame.

Dat regel je met een apart vinkje dat niet vooraf is aangevinkt, met een tekst die zegt wat iemand krijgt en hoe vaak. Vooraf aangevinkte vakjes zijn ongeldig, en een zin in je voorwaarden telt niet als toestemming. Voor commerciële e-mail geldt in Nederland artikel 11.7 van de Telecommunicatiewet, waar de ACM toezicht op houdt.

Er is één uitzondering die vaak van toepassing is: heb je iemands adres gekregen bij de verkoop van een product of dienst, dan mag je die klant mailen over je eigen gelijksoortige aanbod. Wie een beginnerscursus kocht mag je over de vervolgcursus mailen, niet over de verzekering die je erbij verkoopt.

Leg vast wanneer en waarmee iemand toestemming gaf. Datum, tijdstip, en de tekst die er destijds stond. Bij een klacht moet jij het aantonen, niet de ander.

Dubbele bevestiging

Dubbele bevestiging betekent dat iemand na inschrijving eerst een mail krijgt met een link die hij moet aanklikken. Pas daarna staat hij op je lijst.

Het is in Nederland niet verplicht. Ik raad het meestal wel aan voor de nieuwsbrief, want het levert je het makkelijkste bewijs van toestemming, het houdt typefouten en nepadressen buiten je lijst, en het voorkomt dat iemand een ander op jouw lijst zet.

Voor de aanmelding zelf gebruik je het niet. Wie zich inschrijft voor een cursus wil ingeschreven staan, niet nog een drempel over. Combineer dus: de inschrijving is direct rond, het vinkje voor de nieuwsbrief krijgt een bevestigingsmail.

Afmelden

In elk commercieel bericht hoort een afmeldmogelijkheid die werkt zonder kosten en zonder inlogscherm. Ook op het moment dat je het adres verzamelt, moet je de gelegenheid geven om nee te zeggen.

Sinds februari 2024 eisen Google en Yahoo van partijen die grotere hoeveelheden post versturen dat afmelden met één klik werkt, via een knop in de mailbox zelf. Voldoe je daar niet aan, dan wordt je post vertraagd of geweigerd.

Zorg dat een afmelding ook echt overal doorwerkt. De klassieke fout is dat iemand zich afmeldt voor de nieuwsbrief en daarna alsnog in een oude lijst blijft staan waar de volgende actie uit put.

Hoelang je de gegevens bewaart

De AVG noemt geen vaste termijnen. Je bepaalt zelf hoelang je iets nodig hebt, legt dat vast en houdt je eraan. Meer is het niet, en juist die vrijheid maakt dat niemand eraan begint.

Een werkbare indeling: aanmeldgegevens voor een evenement bewaar je tot kort na afloop, plus de periode die je nodig hebt voor je administratie. Facturen en betaalgegevens vallen onder de fiscale bewaarplicht van zeven jaar, dus die staan los. Gegevens die je alleen voor de organisatie nodig had, zoals een dieetwens of een contactpersoon voor noodgevallen, gooi je na afloop weg.

Voor sollicitaties hanteert de Autoriteit Persoonsgegevens als richtlijn vier weken na afloop van de procedure, of een jaar als de sollicitant daar toestemming voor geeft. Een van de weinige termijnen waar een concreet getal aan hangt, dus houd je eraan.

Zet de opruiming in je agenda of laat je formulierpakket oude inzendingen automatisch verwijderen. Anders staat er over vier jaar nog een lijst met tweeduizend deelnemers in je beheeromgeving die niemand meer nodig heeft en die bij een lek wel jouw probleem is.

Gezondheid, kinderen en andere gevoelige velden

Gegevens over gezondheid zijn bijzondere persoonsgegevens. Daar geldt een verbod op, met uitzonderingen. Een sportvereniging die naar blessures vraagt zit in dat gebied, en een organisator die naar allergieën vraagt eigenlijk ook.

Vraag zulke velden alleen als het echt nodig is, leg uit waarom, en beperk wie erbij kan. Een allergie kun je vaak omzeilen door te vragen welke maaltijd iemand wil in plaats van waarom.

Is de deelnemer jonger dan zestien en baseer je je op toestemming, dan heb je toestemming van een ouder of verzorger nodig. Bij een aanmelding voor een jeugdactiviteit is het praktischer om het formulier expliciet door de ouder te laten invullen, met een veld voor de naam van het kind.

Spam tegenhouden zonder je bezoeker te straffen

Een formulier dat openbaar staat, krijgt automatisch bezoek van robots. Dat is geen aanval maar achtergrondruis, en je wilt er niet elke dag inzendingen van in je mailbox.

Het eenvoudigste middel is een verborgen veld dat een mens nooit invult en een robot wel: een honeypot. Kost niets, ziet niemand, houdt het grootste deel tegen. Een tweede goedkope truc is een tijdcontrole: wie het formulier binnen twee seconden verstuurt, is geen mens.

Werkt dat niet genoeg, dan kom je bij een puzzeltje of een vinkje van een externe partij. Houd er rekening mee dat die middelen gegevens van je bezoekers doorgeven aan de leverancier, vaak buiten Europa, en dat ze mensen met een beperking het meest hinderen. Wat de mogelijkheden en de nadelen zijn staat in het artikel over CAPTCHA.

Zet in elk geval een grens op het aantal inzendingen per adres per uur. Bij een echte aanval is dat de maatregel die je overeind houdt.

Waar de inzendingen belanden

Bewaar elke inzending in de database van je site en niet alleen in je mailbox. Mail raakt kwijt, komt in spam terecht of wordt per ongeluk verwijderd, en dan is de aanmelding weg.

Verstuur de meldingsmail via een echte mailkoppeling en niet via de standaardfunctie van de server. Post die rechtstreeks vanaf je webserver vertrekt, komt vaak niet aan omdat je domein die server niet als afzender heeft aangewezen. Hoe dat samenhangt met waar je site en je mail staan, staat in het artikel over webhosting.

Let op bijlagen. Laat iemand een CV of een bewijsstuk uploaden, dan komen die bestanden bij WordPress standaard in een map terecht die voor iedereen bereikbaar is die het adres raadt of vindt. Zorg dat je formulierpakket de bestanden buiten die map zet of afschermt, en beperk de toegestane bestandstypen.

Beperk verder wie bij de inzendingen kan. Niet iedereen in je beheeromgeving hoeft de lijst met deelnemers te kunnen openen. En zorg dat je site over een beveiligde verbinding loopt, want zonder SSL-certificaat gaat alles wat iemand invult leesbaar over de lijn.

Op een telefoon

Het merendeel van je aanmeldingen komt daarvandaan, dus test daar als eerste.

Velden met minstens 16 pixels tekst, anders zoomt iOS bij het aantikken in en staat je formulier ineens half buiten beeld. Het juiste toetsenbord per veld, zodat er bij een e-mailadres een apenstaartje in beeld staat en bij een telefoonnummer een cijferblok. En laat de browser gegevens invullen die hij al kent, door je velden de juiste namen te geven.

Geen datumkiezers waar je maand voor maand doorheen moet klikken. Een lijst met de beschikbare data werkt beter dan een kalender, zeker als er maar vier momenten zijn. Meer over dit soort keuzes staat in het artikel over optimaliseren voor mobiel.

Toegankelijk voor iedereen

Labels boven de velden en niet alleen tekst in het veld, want die verdwijnt zodra iemand begint te typen. Genoeg contrast. Bedienbaar met alleen een toetsenbord. En foutmeldingen bij het veld zelf, in gewone taal, niet als rode balk bovenaan waar niemand naar terugscrollt.

Markeer verplichte velden ook in tekst en niet alleen met een sterretje in een kleur. En zet bij elkaar horende keuzes in een groep met een kop, zodat iemand die het scherm laat voorlezen weet waar de vraag over gaat.

Dit is inmiddels ook een wettelijk onderwerp. De Europese toegankelijkheidsrichtlijn geldt sinds 28 juni 2025 en raakt onder meer webwinkels en een aantal diensten. Zeer kleine ondernemingen die diensten leveren zijn uitgezonderd, dus niet iedereen valt eronder, en overheidssites hadden al eerder eigen eisen. De praktische norm is in alle gevallen dezelfde: WCAG op niveau AA.

Los daarvan is het geen extra werk voor een kleine groep. Een formulier dat met een toetsenbord te bedienen is en duidelijke foutmeldingen geeft, is voor iedereen prettiger.

Koppelen aan je andere systemen

Een aanmelding die in vier systemen moet landen, ga je niet met de hand overtypen. De drie manieren om dat te koppelen verschillen in hoeveel werk ze kosten.

De eenvoudigste is een kant-en-klare koppeling in je formulierpakket naar je mailpakket of je klantsysteem. Aanzetten, velden aan elkaar knopen, klaar. De tweede is een webhook: je formulier stuurt bij elke inzending de gegevens naar een adres dat jij opgeeft, en daar pikt een ander systeem ze op. De derde is een koppelaar die tussen alles in zit en zelf de logica bevat.

Wat je bij alle drie vooraf uitzoekt: welke velden gaan mee, wat gebeurt er bij een tweede inschrijving met hetzelfde adres, en krijg je bericht als het misgaat. Dat laatste vergeet iedereen, en een koppeling die stilvalt doet dat zonder geluid.

Drie soorten aanmeldingen

Een evenement. Datum, locatie en kosten horen op het formulier zelf te staan en niet alleen op de pagina erboven. Zet een limiet op het aantal plaatsen, zodat het formulier vanzelf sluit als het vol is, en bouw een wachtlijst als je die kunt bedienen. Een annuleringsregeling voorkomt de meeste discussies achteraf.

Een cursus of opleiding. Hier is de startdatum de belangrijkste keuze, dus zet die bovenaan en laat alleen data zien waar nog plek is. Vraag naar voorkennis als dat uitmaakt voor de indeling, en laat betaling in termijnen toe bij een hoger bedrag. Gaat het om deelnemers onder de zestien, dan vult de ouder het formulier in.

Een sollicitatie. Houd het kort, want een lang sollicitatieformulier kost je juist de kandidaten die het al druk hebben. Laat een bestand uploaden in plaats van een CV in losse velden te laten overtypen. Zorg dat die bestanden afgeschermd staan, en houd de bewaartermijn van vier weken aan.

Testen en meten

Vul je eigen formulier elke maand een keer in, van begin tot eind, inclusief de betaling als die er is. Formulieren stoppen stilletjes: er komt geen foutmelding, het wordt alleen rustig. Als je het pas merkt omdat iemand belt, ben je een maand aan aanmeldingen kwijt.

Meet daarnaast hoeveel mensen het formulier openen en hoeveel het afmaken. Zit daar een groot gat, dan is je formulier te lang of struikelt iemand over een veld. Bij een formulier in stappen zie je meteen bij welke stap ze wegvallen, en dan weet je binnen een minuut wat je moet aanpassen. Hoe je dat soort stappen in kaart brengt staat in het artikel over het conversiepad.

Kijk ook naar wat er binnenkomt. Zie je bij een veld steeds dezelfde vraag terug in het opmerkingenvak, dan mist je formulier of je pagina iets.

Waar het misgaat

Te veel velden. De belangrijkste oorzaak van halve aanmeldingen. Elk veld dat je schrapt is winst.

Geen bevestiging. Mensen melden zich dan een tweede keer aan, of bellen om te vragen of het gelukt is.

De mail die niet aankomt. Verstuur via een echte mailkoppeling en test maandelijks of het nog werkt.

Geen limiet. Bij een evenement met vaste plaatsen wil je dat het formulier vanzelf sluit als het vol is, niet dat je achteraf mensen moet afbellen.

Een validatie die tegenwerkt. Telefoonnummers die geen spaties accepteren, postcodes die alleen zonder spatie mogen, een veld dat rood wordt terwijl je nog aan het typen bent. Controleer pas als iemand het veld verlaat.

Alles in de mailbox. Geen kopie in de database, geen export, geen overzicht. Bij een volle zaal is een lijst die je kunt sorteren de eerste behoefte die je hebt.

Veelgestelde vragen over aanmeldingsformulieren

Wat is het verschil tussen een aanmeldformulier en een contactformulier?

Een contactformulier dient om een vraag te stellen en kan toe met naam, e-mailadres en een bericht. Een aanmeldformulier legt een inschrijving vast, dus je hebt meer gegevens nodig en er hangen vaak een betaling, een datum en een limiet aan. Dat maakt het langer en gevoeliger voor fouten.

Hoeveel velden mag een aanmeldformulier hebben?

Zo min mogelijk, en alles wat je echt nodig hebt om iemand in te plannen en te factureren. Kom je boven de zeven of acht velden, deel het formulier dan op in stappen. Wat je pas over een maand nodig hebt, vraag je over een maand.

Moet ik een toestemmingsvinkje op mijn aanmeldformulier zetten?

Voor de aanmelding zelf niet: je verwerkt die gegevens om de overeenkomst uit te voeren, en dat is een eigen grondslag. Een vinkje heb je wel nodig als je diezelfde persoon daarna commerciële post wilt sturen. Zet dat vinkje apart en laat het leeg staan.

Mag ik iemand die zich aanmeldt ook mijn nieuwsbrief sturen?

Alleen met aparte toestemming, of als je hem iets hebt verkocht en je over je eigen gelijksoortige aanbod mailt. Een gratis inschrijving voor een informatieavond is geen verkoop, dus daar heb je een vinkje voor nodig.

Is dubbele bevestiging verplicht?

Nee, in Nederland niet. Het is wel het makkelijkste bewijs dat je toestemming hebt en het houdt typefouten en nepadressen buiten je lijst. Gebruik het voor de nieuwsbrief en niet voor de aanmelding zelf, want daar kost het je inschrijvingen.

Hoelang mag ik aanmeldgegevens bewaren?

Zolang je ze nodig hebt, en die termijn bepaal en noteer je zelf. Voor een evenement is dat kort na afloop. Facturen vallen onder de fiscale bewaarplicht van zeven jaar en staan dus los. Voor sollicitatiegegevens geldt als richtlijn vier weken na afloop van de procedure, of een jaar met toestemming.

Mag ik naar gezondheidsgegevens vragen, zoals allergieën?

Alleen als je ze echt nodig hebt, want dat zijn bijzondere persoonsgegevens met een strenger regime. Vaak kun je de vraag anders stellen: laat iemand een maaltijd kiezen in plaats van een aandoening opgeven. Vraag je ze wel, beperk dan wie erbij kan en verwijder ze na afloop.

Hoe voorkom ik spam in mijn formulier?

Begin met een verborgen veld dat robots wel invullen en mensen niet, en met een controle op inzendingen die binnen enkele seconden binnenkomen. Dat houdt het meeste tegen zonder dat je bezoeker iets merkt. Pas als dat niet volstaat, kom je bij een puzzeltje of een vinkje van een externe partij.

Waarom komen mijn formuliermails niet aan?

Meestal omdat ze rechtstreeks vanaf de webserver worden verstuurd en je domein die server niet als afzender heeft aangewezen. Verstuur via een echte mailkoppeling met een afzender op je eigen domein. Bewaar de inzending daarnaast altijd in de database van je site, zodat je niets kwijt bent als de mail toch verdwijnt.

Kan ik een betaling in mijn aanmeldformulier opnemen?

Ja, en dat is bijna altijd verstandig. Vrijwel elk formulierpakket koppelt met een betaaldienst, waarmee iemand direct met iDEAL afrekent. Dat scheelt je facturen, herinneringen en mensen die zich aanmelden en niet komen opdagen.

Wat doe ik als een evenement vol is?

Laat het formulier zichzelf sluiten bij het maximum en toon een duidelijke melding in plaats van een knop die niets doet. Bied daarbij een wachtlijst aan of de mogelijkheid om bericht te krijgen bij een volgende datum. Zo houd je de belangstelling vast.

Moet mijn aanmeldformulier toegankelijk zijn?

Voor overheidsorganisaties geldt dat al langer, en sinds 28 juni 2025 raakt de Europese toegankelijkheidsverordening ook een deel van het bedrijfsleven, waaronder webwinkels. Zeer kleine dienstverleners zijn uitgezonderd. De praktische norm is WCAG op niveau AA, en het meeste daarvan komt neer op labels, contrast, toetsenbordbediening en begrijpelijke foutmeldingen.

Kan ik aanmeldingen automatisch doorzetten naar mijn andere systemen?

Ja, via een kant-en-klare koppeling in je formulierpakket, via een webhook of via een koppelaar die ertussen zit. Spreek vooraf af welke velden meegaan en zorg dat je bericht krijgt als een overdracht mislukt, want anders merk je het pas als er iemand belt.

Hoe test ik of mijn formulier nog werkt?

Vul het elke maand zelf in, van begin tot eind, inclusief betaling en bijlage. Controleer daarna of de bevestiging aankwam, of jij een melding kreeg en of de inzending in je database staat. Zet die controle als terugkerende taak in je agenda, want uit zichzelf gaat niemand dit doen.

Dit artikel hoort bij Webdevelopment. Daar vind je meer uitleg over hetzelfde onderwerp.

Een vraag over dit onderwerp?

Vertel waar je tegenaan loopt.

Maurits denkt met je mee en geeft je een praktisch antwoord.

reactie dezelfde werkdag
Maurits van Platform Pro

Vertel kort waar je aan denkt

Nu gesloten, ik reageer de volgende werkdag

Maurits leest je bericht en neemt persoonlijk contact met je op.

Dit veld is bedoeld voor validatiedoeleinden en moet niet worden gewijzigd.
Dit veld is verborgen bij het bekijken van het formulier