Naar de inhoud

Webhook

Een webhook is een HTTP-callback: een systeem stuurt automatisch een POST-request naar een URL die jij beheert, op het moment dat een gekozen event plaatsvindt, in plaats van te wachten tot jij erom vraagt. Het is pushen, niet pollen: de bron pusht data zodra events plaatsvinden, dus je endpoint ontvangt ze binnen enkele seconden in plaats van op een timer te pollen.

Bijgewerkt op 2 min. leestijdDoor fromHello

In het kort

  1. Een webhook pusht in plaats van te pollen: het bronsysteem stuurt data zodra een event plaatsvindt, dus je slaat de constante vraag ‘is er iets nieuws?’ over.

  2. In engagementplatforms tellen twee richtingen: uitgaande nodes roepen midden in een journey externe systemen aan; inkomende ontvangers nemen events van die systemen op.

  3. Omdat iedereen naar een openbare URL kan POSTen, behandel je elke payload als onbetrouwbaar: controleer de handtekening en antwoord snel.

Hoe werkt een webhook?

Je registreert een URL, het endpoint, bij het systeem dat de data heeft, en geeft aan welke events je interesseren. Als een van die events plaatsvindt, stuurt dat systeem een HTTP POST naar je endpoint met een payload die beschrijft wat er gebeurde, meestal in JSON. Je server leest de payload, doet zijn werk en geeft een 2xx-status terug om de ontvangst te bevestigen. Er was geen request van jou nodig om het in gang te zetten: de bron kwam zelf in actie. De meeste aanbieders ondertekenen elk request, zodat je kunt controleren of het echt van hen komt.

Webhook vs. API-polling: wat is het verschil?

Pollen is het pull-model: je code vraagt een API volgens een vast schema ‘is er iets nieuws?’, of er nu iets is veranderd of niet. Een webhook is het push-model: de bron roept jou alleen aan als er iets te melden is. Bij pollen zijn de meeste requests verspild en zit er vertraging tussen het event en je reactie; webhooks leveren binnen enkele seconden en blijven verder stil. De keerzijde is dat je endpoint openbaar bereikbaar moet zijn en pieken moet kunnen opvangen.

Een webhook en de termen eromheen.

Hoe gebruiken engagementplatforms webhooks?

  • Uitgaand: een webhooknode in een journey stuurt halverwege de flow een POST naar een extern systeem: Slack waarschuwen als een lead converteert, een status naar je CRM synchroniseren, een fulfilmentstap starten.
  • Inkomend: een ontvanger neemt events van andere tools op. Een betaalprovider meldt een geslaagde betaling, een formuliertool geeft een nieuwe lead door, zodat profielen en journeys reageren zonder nachtelijke import.
  • Door dit leidingwerk in twee richtingen kan een customer engagement platform in het midden van je stack staan. Gespecialiseerde afleverdiensten zoals Knock richten zich alleen op de uitgaande kant.

Waarom het ertoe doet voor een klein team

Een team van twee kan niet zitten pollen op wijzigingen, en cronjobs die om de paar minuten controleren, voegen zowel vertraging als kosten toe. Met webhooks reageert de ene tool op de andere zodra er iets gebeurt, zonder dat iemand hoeft te kijken. Twee waarschuwingen: omdat elke aanroeper naar een openbare URL kan POSTen, controleer je de handtekening op elk request en behandel je de body als onbetrouwbaar; en je logt de events die je verstuurt en ontvangt, zodat ze aansluiten op je trackingplan in plaats van een ongemeten zijkanaal te worden.

FAQ

Veelgestelde vragen

  • Wat is het verschil tussen een webhook en een API?

    Een API roep je aan als je data wilt; een webhook roept jou aan als data verandert. Ze vullen elkaar aan: je gebruikt vaak een REST API om records te lezen of bij te werken, en een webhook om te horen op het moment dat een record verandert, zodat je niet steeds hoeft te vragen.

  • Hoe beveilig ik een webhook-endpoint?

    Behandel elk request als onbetrouwbaar. De meeste aanbieders ondertekenen de payload met een gedeeld geheim: bereken de handtekening opnieuw en weiger alles wat niet overeenkomt. Bied het endpoint aan via HTTPS en geef snel een 2xx terug; doe traag werk in een achtergrondjob, zodat de afzender geen time-out krijgt en het opnieuw probeert.

  • Wat gebeurt er als mijn endpoint plat ligt wanneer een webhook afgaat?

    De meeste aanbieders proberen mislukte afleveringen een tijdlang opnieuw met oplopende wachttijden en geven het dan op, dus een korte storing is meestal te overleven. Maar nieuwe pogingen zijn niet eeuwig gegarandeerd: maak je handler idempotent, want hetzelfde event kan meer dan eens binnenkomen, en controleer via de API van de bron alles wat je niet mag missen.

  • Moet ik iets bouwen om webhooks te ontvangen?

    Je hebt een openbaar bereikbare HTTPS-URL nodig die POST-requests accepteert en een 2xx teruggeeft. Voor inkomende webhooks in een engagementplatform is die ontvanger meestal ingebouwd: je plakt je URL in de tool die verstuurt. Voor uitgaande aanroepen doet de webhooknode van een journey het versturen voor je.

fromHello is open source marketing automation: berichten die worden getriggerd door wat mensen doen.

fromHello Cloud is in early access via de wachtlijst.

Early access

fromHello Cloud

Je bent niet begonnen om klein te blijven.

Early access tot fromHello Cloud gaat gefaseerd open. De onboarding is persoonlijk: we helpen je met de inrichting en met het overzetten van je contacten.

We mailen je zodra je plek vrijkomt. Geen spam.

Nog niet zover? Bekijk op GitHub