Ga naar hoofdinhoud

Maatwerksoftware

Klantportaal laten bouwen.

Een portaal is pas een portaal als je klant er iets kan vinden dat hij anders had moeten opvragen. Deze pagina gaat over welke processen erin passen, hoe je toegang dichttimmert en wat het bouwen en onderhouden werkelijk vraagt.

Kort antwoord

Wat is een klantportaal?

Een klantportaal is een afgeschermde omgeving waarin jouw opdrachtgever met een eigen account inlogt en alleen zijn eigen dossier ziet: lopende projecten en hun status, documenten die zijn vrijgegeven, en waar dat past offertes die op zijn akkoord wachten. Het verschil met een gedeelde map of een mailbox is dat het portaal op dezelfde gegevens werkt als jouw eigen systeem. Er is dus geen kopie die bijgewerkt moet worden, en er is per gegeven bepaald of de klant het mag zien.

Waar het over gaat

Een portaal vervangt het navragen.

De meeste vragen die een opdrachtgever stelt, gaan niet over het werk maar over de stand van zaken. Wanneer komen jullie, is het al opgeleverd, waar is dat rapport gebleven, heb ik die offerte nog goedgekeurd. Elk van die vragen kost iemand bij jou een paar minuten, en het antwoord bestond al.

Een portaal haalt die vragen weg door het antwoord zichtbaar te maken op het moment dat de klant erom denkt. Dat is de hele winst. Wie zelf kan kijken, belt niet om te vragen hoe het ervoor staat.

Daarmee is meteen gezegd wanneer een portaal niet loont. Heb je een handvol opdrachtgevers die je toch elke week spreekt, dan lost een portaal een probleem op dat je niet hebt. Het wordt interessant zodra hetzelfde soort vraag vaak genoeg terugkomt, of zodra je opdrachtgever zelf verantwoording moet afleggen over jouw werk en daar bewijsstukken voor nodig heeft.

Er zit ook een kant aan die minder wordt genoemd: een portaal dwingt je eigen proces netjes te zijn. Zodra de klant meekijkt, valt het op als een status dagen blijft hangen of als een document nooit is vrijgegeven. Dat is winst, maar het betekent wel dat je het proces erachter op orde moet hebben voordat je iemand binnenlaat.

De inhoud

Welke processen erin kunnen.

Bijna niemand heeft alles nodig. Begin bij de vraag die je klanten het vaakst stellen en bouw daar het portaal omheen, niet andersom.

01

Projecten en status

De opdrachten van deze klant, waar ze staan en wat de eerstvolgende stap is. Dit is voor de meeste bedrijven de kern van het portaal en vaak genoeg op zichzelf. Belangrijk is dat de statussen woorden zijn die de klant begrijpt, en niet je interne administratiestappen.

02

Documenten en bestanden

Rapporten, certificaten, tekeningen, opleveringsfoto's. Vrijgegeven per stuk, zodat er een verschil blijft tussen een interne constatering en een document dat naar buiten mag. Zoeken op project of op datum scheelt de klant het doorspitten van zijn eigen mailbox.

03

Offertes en akkoord

Een offerte die de klant zelf kan accorderen, waarna de opdracht bij jou binnenkomt zonder tussenstap. Dit is een van de weinige plekken waar een portaal je niet alleen tijd oplevert maar ook doorlooptijd, omdat het wachten op een mailtje eruit gaat.

04

Facturen

Kan, maar kijk eerst waar je facturen vandaan komen. Staat je facturatie in je boekhoudpakket, dan is een tweede plek waar facturen staan vooral een synchronisatievraagstuk. Zit de facturatie al in hetzelfde systeem, dan is het een klein blok.

05

Planning en afspraken

Wanneer jullie langskomen, en soms de mogelijkheid om dat te verzetten. Zichtbaarheid is eenvoudig; laten wijzigen door de klant is een stuk complexer, want dan moet je planning met die wijziging om kunnen gaan zonder dat er iemand tussen zit.

06

Berichten en meldingen

Wees hier eerlijk over: een gespreksfunctie in een portaal wordt vaak gebouwd en zelden gebruikt, omdat mensen toch mailen of bellen. Meldingen werken beter. Een bericht dat er een document klaarstaat of dat een offerte op akkoord wacht, brengt de klant terug naar het portaal zonder dat je een tweede communicatiekanaal moet onderhouden.

Toegang

Accounts, rollen en wat iemand mag zien.

Dit is het deel waar de meeste tijd in gaat zitten, en het deel dat je niet achteraf goed krijgt.

Account per persoon
Niet één gedeeld inlogaccount per bedrijf. Bij een gedeeld account weet je niet wie wat heeft gezien of goedgekeurd, en het intrekken van toegang van één vertrokken medewerker betekent dat iedereen een nieuw wachtwoord krijgt.
Rollen
Binnen een opdrachtgever kunnen mensen verschillende dingen mogen. Iemand die alleen documenten inziet is iets anders dan iemand die offertes mag accorderen. Bepaal die rollen voordat er gebouwd wordt, want ze bepalen het datamodel.
Uitnodigen en intrekken
Wie nodigt een nieuwe gebruiker uit, en hoe haal je iemand er weer af. Bij een import van bestaande klanten hoort het versturen van uitnodigingen standaard uit te staan, anders krijgt je hele bestand ongevraagd een mail.
Scheiding tussen klanten
De belangrijkste regel: klant A mag onder geen enkele omstandigheid iets van klant B zien. Dat is geen kwestie van de juiste knoppen verbergen maar van afdwingen bij het opvragen van de gegevens zelf.
Tweestapsverificatie
Voor jouw eigen mensen vrijwel altijd verstandig, zeker rond personeels- en factuurgegevens. Voor klantgebruikers is het een afweging tussen zekerheid en de kans dat iemand afhaakt bij het inloggen.
Wat de klant niet ziet
Minstens zo belangrijk als wat hij wel ziet. Interne notities, inkoopprijzen, marges en de namen van andere opdrachtgevers horen buiten het portaal te vallen, ook als iemand een adres rechtstreeks in de browser intypt.

Beveiliging

Het slot hoort op de gegevens, niet op het scherm.

De meest gemaakte fout in portalen is dat de afscherming in de schermen zit. De knop wordt verborgen, het menu-item weggelaten, en wie het adres rechtstreeks intypt komt er alsnog. Afscherming hoort in de laag waar de gegevens vandaan komen: elke regel weet bij wie hij hoort, en dat wordt afgedwongen bij het opvragen. Dan maakt het niet uit wat iemand in de browser probeert.

Voor documenten en foto's geldt hetzelfde. Bestanden horen in afgeschermde opslag te staan waar alleen een tijdelijke, aflopende link naartoe wijst. Een permanente bestandslink die je doorstuurt, blijft anders werken voor iedereen die hem in handen krijgt, ook maanden later.

Leg vast wie wat wanneer heeft gedaan. Een logboek waar alleen regels bij komen en niets uit verdwijnt, is de goedkoopste manier om een discussie over wat er is afgesproken te beëindigen. Het is ook het eerste wat je nodig hebt als er ooit iets misgaat.

Werk je met persoonsgegevens, en dat doe je in een portaal vrijwel altijd, dan horen inzage en verwijdering functies in het systeem te zijn en geen procedure in een map. Reken er ook op dat je een verwerkersovereenkomst nodig hebt, en spreek bewaartermijnen af voordat je gaat bouwen in plaats van erna.

In de praktijk

Een klantportaal dat draait.

Het klantportaal van ProjectControl is onderdeel van maatwerksoftware die ik heb gebouwd voor een technische dienstverlener met eigen buitendienst. Wat hieronder staat draait daar in productie. De aantallen zijn geteld op 31 juli 2026.

  • 18 opdrachtgevers met eigen toegang

    Waar de voortgang eerst per telefoon en per mail ging. De opdrachtgever vindt zijn projecten, de komende uitvoerdata, de vrijgegeven werkbonnen en certificaten, en de offertes die op zijn akkoord wachten.

  • Alleen wat is vrijgegeven, per project

    Interne notities, tarieven en andere opdrachtgevers vallen erbuiten. De afscherming zit in de gegevens zelf, dus een rechtstreeks ingetypt adres levert niets op.

  • Offertes accorderen door de klant

    De opdrachtgever geeft zelf akkoord, en daar ontstaat het project uit. Dat scheelt een heen en weer gaande mailwisseling voordat er iemand kan plannen.

  • Doorgestuurde links verlopen vanzelf

    Documenten en foto's staan in afgeschermde opslag met tijdelijke links. Een doorgestuurde link naar een foto of document blijft dus niet eeuwig geldig.

  • Zichtbaarheid per foto

    Per foto ligt vast of de opdrachtgever hem ziet, met meerdere onafhankelijke controles zodat een interne foto niet alsnog op een klantdocument belandt.

  • AVG als knop, niet als procedure

    Inzage en verwijdering zitten in het systeem, met bewaartermijnen die automatisch worden nagelopen. Een verwijdering meldt eerlijk of hij is gelukt.

De volledige case lezen, met de schermen uit de demo-omgeving

Koppelingen

Wat er aan moet hangen, en wat niet.

Een portaal is zelden het enige systeem. De vraag is niet of je koppelt maar wat de bron van de waarheid is. Staan je projecten in het portaal zelf, dan is het portaal de bron. Komen ze uit een bestaand systeem, dan is het portaal een venster en moet je bepalen hoe vaak en in welke richting gegevens bewegen.

Twee koppelingen komen bijna altijd ter sprake: de boekhouding en het mailsysteem. Boekhoudkoppelingen zijn zelden een kwestie van aanzetten. Vraag bij een pakket of jouw boekhoudpakket in de lijst staat en wat er precies gesynchroniseerd wordt, en reken bij maatwerk op een aparte opdracht met eigen kosten. Een tussenvorm die in de praktijk veel oplost is export: facturen als PDF en gegevens als CSV, zodat de administratie het in één handeling inleest.

Wees terughoudend met koppelingen die je niet nodig hebt om te beginnen. Elke koppeling is iets wat kan breken op een moment dat jij er niet bij bent, en iets dat opnieuw getest moet worden als de andere partij zijn kant verandert. Een koppeling minder is een storing minder.

Bouwen en beheren

Wat het traject inhoudt.

Een portaal is geen project met een einddatum maar een systeem dat blijft draaien. Dat verschil zit in de kosten en in de afspraken.

01

Eerst het datamodel, dan de schermen

Wie is een klant, wat is een project, welk document hoort bij wie en wie mag dat zien. Die vragen bepalen alles daarna. Schermen zijn later goedkoop te veranderen; een verkeerd gekozen datamodel is dat niet.

02

Klein beginnen en live zetten

Het onderdeel waar je klanten het vaakst naar vragen als eerste, echt in gebruik, en dan verder. Dat werkt beter dan een half jaar bouwen en in één keer opleveren, omdat je pas leert wat er nodig is als er iemand mee werkt. Bij ProjectControl stond het eerste onderdeel na één dag live en was het geheel na vijf weken volledig in gebruik.

03

Testen op de rechten, niet alleen op de knoppen

De belangrijkste tests in een portaal gaan over wie wat niet mag zien. Die horen geautomatiseerd te draaien bij elke wijziging, want het is precies het soort fout dat je met de hand niet terugvindt en die pas opvalt als een klant iets ziet dat niet voor hem was.

04

Beheer is een afspraak, geen bijzaak

Hosting, beveiligingsupdates, back-ups en foutmeldingen die iemand ziet. Bij Colorsone zit dat in het maandbedrag bij het pakket. Bij welke bouwer dan ook geldt: als dit niet is afgesproken, gebeurt het niet.

05

Doorontwikkeling hoort erbij

Een portaal dat in gebruik is, krijgt vragen. Reken op kleine aanpassingen die uit het gebruik zelf voortkomen. Bij ProjectControl is sinds de start 296 keer een nieuwe versie live gezet.

06

Leg de continuïteit vast voordat je tekent

Bij maatwerk hangt een deel van je bedrijfsvoering aan één leverancier. Vraag elke bouwer, ook mij, om eigendom van de broncode, toegang tot de hosting- en databaseaccounts, opgeleverde documentatie en een opzegtermijn zwart op wit.

De afweging

Standaardpakket of maatwerk.

Er bestaan portaalfuncties in veel bestaande pakketten, en er bestaan losse portaaltools die je naast je huidige systemen zet. Voor een deel van de bedrijven is dat het juiste antwoord.

Een bestaand pakket volstaat als

  • je portaal vooral documenten en status hoeft te tonen en verder weinig doet
  • je huidige systeem al een portaalmodule heeft die je alleen nog moet aanzetten
  • het uiterlijk mag afwijken van je eigen merk
  • je binnen een paar weken iets werkends nodig hebt
  • je klantenaantal stabiel is en je niet per gebruiker de pan uit rijst
  • je liever een vast maandbedrag betaalt dan een investering in één keer doet

Maatwerk wordt interessant als

  • de klant er doorheen moet en het portaal daarom bij je merk hoort te passen
  • het portaal op dezelfde gegevens moet werken als je planning en uitvoering, zonder synchronisatie ertussen
  • je een handeling wilt die verder gaat dan kijken, zoals een offerte accorderen waar direct een project uit ontstaat
  • je rechten fijnmaziger moeten zijn dan het pakket toestaat, bijvoorbeeld zichtbaarheid per document of per foto
  • je per gebruiker betaalt en het aantal klantgebruikers hard groeit
  • je branche eisen stelt aan bewijsvoering die geen enkel pakket standaard invult

Een portaal dat alleen kijken toestaat, kun je vaak kopen. Een portaal waarin de klant iets doet dat jouw proces in gang zet, is meestal het moment waarop maatwerk in beeld komt. Dat is ook het moment waarop de rekening groter wordt, dus laat die keuze afhangen van wat het je oplevert en niet van wat er technisch kan.

Pakketten

Kiezen.

Twee pakketten, allebei in eigen code. Het maandbedrag dekt hosting, onderhoud en beveiligingsupdates. Wat een traject in jouw geval wordt, hangt af van de omvang.

01

Webapp Start

vanaf €3.499 + € 79 per maand

Webapp voor interne processen en eenvoudige automatisering

Voor: Interne tools, automatisering, eenvoudige portalen

  • Inloggedeelte met gebruikers
  • Basis database en gegevensopslag
  • Eenvoudige dashboards of formulieren
  • Hosting en onderhoud inbegrepen
02Aanbevolen

Webapp Business

vanaf €5.999 + € 99 per maand

Maatwerk platform met rollen en dashboards, schaalbaar voor groei

Voor: SaaS-platforms, booking-systemen, operationele software

  • Meerdere gebruikersrollen en rechten
  • Uitgebreide database en koppelingen
  • Dashboards en rapportages
  • Architectuur die meegroeit van tientallen naar duizenden gebruikers
  • Hosting en onderhoud inbegrepen

Volgende stap

Eerst uitzoeken of een portaal je vraag oplost.

Colorsone is Daniel Jacobs uit Winssen. Ik ontwerp en bouw bedrijfssoftware voor bedrijven die tegen de grenzen van hun systemen aanlopen.

Het begint met een gesprek van een uur over welke vragen je klanten stellen, welke systemen je gebruikt en waar het schuurt. Daarna weet je of een portaal daar het antwoord op is, wat zoiets ongeveer kost en hoe lang het duurt.

Bij een deel van die gesprekken is de conclusie dat een portaalmodule in een bestaand pakket volstaat. Dan zeg ik dat.

Er volgt geen offerte tenzij je erom vraagt, en er is geen tweede gesprek nodig om een richtbedrag te horen.

Veelgestelde vragen

Wat kost een klantportaal laten bouwen?

Dat hangt vooral af van hoeveel het portaal doet en op hoeveel rollen en rechten het draait. Een portaal waarin klanten hun projecten en documenten inzien, valt bij Colorsone onder Webapp Start: vanaf € 3.499 eenmalig plus € 79 per maand. Een portaal dat onderdeel is van een groter platform met meerdere rollen en dashboards valt onder Webapp Business: vanaf € 5.999 eenmalig plus € 99 per maand. Wat het in jouw geval wordt, hoor je na een eerste gesprek.

Hoe voorkom je dat een klant gegevens van een andere klant ziet?

Door de afscherming in de gegevenslaag te leggen en niet in de schermen. Elke regel weet bij welke klant hij hoort, en dat wordt afgedwongen op het moment dat de gegevens worden opgevraagd. Rechtstreeks een adres in de browser intypen of een aanroep nabootsen levert dan niets op. Die regels horen bovendien geautomatiseerd getest te worden bij elke wijziging.

Moeten klanten een app installeren?

Nee. Een webapplicatie draait in de browser en is als app op het beginscherm te zetten, zonder appstore en zonder installatie per toestel. Voor een portaal is dat vrijwel altijd de verstandigste vorm: je klant gebruikt het te weinig om er een app voor te downloaden.

Kan ik een bestaand klantenbestand importeren?

Meestal via een CSV-bestand. Let erop dat je per regel ziet of hij nieuw is, al bestaat of wordt afgekeurd en om welke reden, zodat je afgekeurde regels kunt corrigeren en opnieuw aanbieden. Zet het versturen van uitnodigingen tijdens een import standaard uit, anders krijgt je hele bestand ongevraagd een mail.

Hoe zit het met de AVG bij een klantportaal?

Je verwerkt persoonsgegevens, dus inzage en verwijdering horen functies in het systeem te zijn en geen handmatige procedure. Spreek bewaartermijnen af, leg vast wie erbij kan, en reken op een verwerkersovereenkomst met je bouwer. Regel dit voordat er gebouwd wordt, want het raakt het datamodel.

Wat als ik later van bouwer wil wisselen?

Dat moet kunnen, en dat regel je in de overeenkomst en niet in de techniek. Eigendom van de broncode, toegang tot de hosting- en databaseaccounts op jouw naam, opgeleverde documentatie en een opzegtermijn. Gangbare technologie helpt daarbij: een andere developer moet ermee verder kunnen zonder eerst een eigen taal te leren.

Verder kijken

Andere vragen over maatwerk.