Webhook uitgelegd | EIGHTY8

Wat is een webhook? Een seintje van het ene systeem naar het andere zodra er iets gebeurt. Zo werkt realtime-automatisering zonder constant te vragen.

Een webhook is een automatisch seintje dat het ene systeem naar het andere stuurt zodra er iets gebeurt: een nieuwe bestelling, een betaling, een ingezonden formulier. Het ontvangende systeem hoeft niet telkens zelf te polsen of er nieuws is; het wordt op de hoogte gebracht. Dat is de motor onder realtime-automatisering.

Er zijn twee manieren om te horen dat er iets gebeurd is. De eerste is zelf blijven vragen: elke minuut het andere systeem opbellen of er nieuws is. Dat werkt, maar het is veel gepraat voor weinig nieuws en het duurt altijd even voor je het weet. De tweede is de webhook: het systeem waar het gebeurt, geeft zelf een belletje aan jouw adres zodra het zover is. Nieuwe order? Er gaat een seintje. Betaling binnen? Seintje.

Technisch is dat seintje een bericht naar een adres dat jij opgeeft, met daarin de gegevens van wat er gebeurd is. Jouw kant moet dat adres bedienen: het bericht aannemen, even controleren dat het echt van de afzender komt, en het werk doen. Een taak aanmaken, een mail versturen, een voorraad aanpassen. Die ontvangstkant is het verschil tussen een webhook die iets doet en een webhook die stilletjes niets doet.

Een practisch detail waar plannen mee staan of vallen: wat als jouw kant op dat moment onbereikbaar is? Een goed systeem biedt dan opnieuw proberen aan, zodat het seintje niet verloren gaat. Blijft het bericht binnenkomen terwijl het werk al gedaan is, dan voorkomt een controle op herhaling dat het dubbel gebeurt. Precies op dat punt scheiden volwassen integraties zich van demo's.

De moeite waard is een webhook zodra snelheid ertoe doet: een melding die binnen enkele seconden binnenkomt in plaats van bij de volgende sync, een klant die meteen een bevestiging krijgt, een voorraad die direct klopt. Ook bij volumes waar polsen onnodig veel verkeer oplevert, wint de bel het van het doorlopend polsen.

Het loont niet als er geen afzender is die een webhook kan sturen: oudere pakketten kennen het fenomeen simpelweg niet, en dan is periodiek ophalen de enige eerlijke route. En als het moment zelf niet relevant is (een rapport dat morgenochtend evengoed klopt), is een schemer-sync eenvoudiger en rustiger dan een live bel die je toch negeert.

De webhook is vaak het startpunt van de reis; de controles eromheen (herkomst verifiëren, herhalingen opvangen, en wat er misgaat netjes laten landen) leggen we in de discovery vast. Elke opdracht wordt vooraf gescopet en op nacalculatie afgerekend.

Wat is het verschil tussen een webhook en een API?

Een API is een vraag-en-antwoordkanaal: jouw systeem stelt de vraag op het moment dat jij dat wilt. Een webhook keert die richting om: het andere systeem meldt zichzelf zodra er iets gebeurt. In de praktijk werken ze samen. Het seintje komt binnen via een webhook, en daarna haalt jouw automatisering met een API-aanroep eventuele extra gegevens op. Het ene is de bel, het andere is de balie.

Kan een webhook twee keer aankomen voor dezelfde gebeurtenis?

Ja, en dat is normaal. Als een ontvangstkant te traag of niet bereikbaar is, stuurt veel systemen hetzelfde seintje later opnieuw, uit voorzorg. Daarom bouwen we op elk ontvangstpunt een controle die herhalingen herkent en negeert, zonder de eerste verwerking te raken. Zo betekent een dubbel bericht geen dubbele taak, dubbele mail of dubbele boeking. Precies daarvoor bestaat de controle.

Wat gebeurt er als onze kant even offline is terwijl een webhook binnenkomt?

Een fatsoenlijke afzender houdt het bericht vast en probeert het later opnieuw, vaak een paar keer met oplopende tussenpozen. Is jouw kant binnen die pogingen weer bereikbaar, dan komt het seintje alsnog aan en loopt het werk gewoon door. We bouwen de ontvangstkant er altijd op dat die korte uitval overleeft, en we kiezen per werkstroom of een gemist bericht later handmatig nagehaald moet kunnen worden.

Is het veilig om een webhook-ontvangstadres publiek toegankelijk te hebben?

Het adres zelf is inderdaad door iedereen aan te schrijven, dus de ontvangstkant moet dat aan kunnen. In de praktijk betekent dat: elk bericht controleren op een handtekening of geheim van de afzender, ongeldige berichten direct weigeren, en het ontvangstpunt alleen de rechten geven die het echt nodig heeft. Zo blijft een ongevraagde aanroep een genegeerd bericht in plaats van een handeling in jouw administratie.

EIGHTY8