Webhook instellen in n8n
Een webhook in n8n stel je in door een Webhook-node toe te voegen als trigger in een workflow. n8n genereert automatisch een unieke URL. Externe diensten sturen een HTTP POST-request naar die URL wanneer er iets gebeurt, en n8n verwerkt de meegestuurde data direct in de workflow.
Met een webhook in n8n laat je externe diensten real-time een workflow starten, zonder dat je zelf hoeft te pollen of te plannen.
Wat je nodig hebt
- Een actieve n8n-installatie (cloud of zelf-gehost)
- Een externe dienst die webhooks kan versturen (Typeform, Stripe, GitHub, eigen applicatie)
- Optioneel: een testtool zoals Postman of Insomnia voor het simuleren van webhook-verzoeken
Stap 1: Voeg een Webhook-node toe als trigger
Maak een nieuwe workflow aan en voeg als eerste node de Webhook-node toe. Je vindt hem door te zoeken op “Webhook” in de node-bibliotheek. Sleep de node naar het canvas.
Open de node-instellingen. Je ziet:
- HTTP Method: standaard POST, pas aan als je bron GET gebruikt
- Path: een willekeurig pad dat deel wordt van de URL (of laat de automatisch gegenereerde waarde staan)
- Authentication: standaard None, stel in op Header Auth voor beveiliging
Sla de node op. n8n genereert nu twee URL’s: een test-URL en een productie-URL. Kopieer de test-URL voor de volgende stap.
Stap 2: Stuur een testverzoek
Stuur een POST-request naar de test-URL met de JSON-data die jouw externe bron zal meesturen. Je kunt dat doen met Postman, Insomnia, of via de commandoregel:
curl -X POST https://jouw-n8n-instantie/webhook-test/jouw-pad \
-H "Content-Type: application/json" \
-d '{"event": "formulier_ingediend", "data": {"naam": "Maria", "email": "maria@voorbeeld.nl"}}'
Klik in n8n op Listen for Test Event in de Webhook-node voordat je het verzoek verstuurt. n8n ontvangt de data en toont hem direct in de node-inspector.
Stap 3: Lees de ontvangen data uit
Na het ontvangen van een testverzoek zie je de volledige JSON-body in de output van de Webhook-node. In n8n gebruik je dubbele accolades voor het uitdrukken van data: {{ $json.data.naam }} levert de waarde “Maria” uit het voorbeeld hierboven.
Voeg een Set-node toe na de Webhook-node als je de data wilt structureren of hernoemen voordat je hem doorstuurt naar volgende stappen. Dat maakt je workflow overzichtelijker en makkelijker aan te passen als de brondata wijzigt.
Stap 4: Stel header-authenticatie in
Voor productie-gebruik wil je voorkomen dat iedereen met de URL jouw workflow kan starten. Open de Webhook-node en stel Authentication in op Header Auth.
Configureer:
- Header Name: bijvoorbeeld
X-Webhook-Secret - Header Value: een willekeurige geheime waarde, minimaal 32 tekens
Geef deze waarde door aan de beheerder van de externe dienst. Elke request moet de header X-Webhook-Secret: jouw-geheime-waarde meesturen. n8n weigert verzoeken zonder de juiste headerwaarde automatisch.
Stap 5: Activeer de workflow voor productiegebruik
Zodra je workflow getest en klaar is, activeer je hem door de schakelaar Active rechtsbovenaan de editor aan te zetten. Daarna is de productie-URL actief en verwerkt n8n inkomende verzoeken automatisch, ook als de editor gesloten is.
Ga naar de externe dienst en stel de productie-URL in als webhook-endpoint. Stuur een eerste verzoek via de externe dienst (niet via Postman) om te bevestigen dat alles end-to-end werkt.
Wil je ook andere triggers en acties leren kennen? Begin met het overzichtsartikel je eerste workflow maken in n8n of vergelijk de aanpak met Power Automate webhook inrichten als je beide omgevingen gebruikt.
Onze tip: Voeg een foutafhandelingsnode toe aan elke productie-workflow (via de Error Trigger-node). Stuur jezelf een e-mail of Slack-bericht zodra een webhook-verwerking mislukt. Zo ontdek je storingen meteen in plaats van pas als een klant meldt dat er iets mis is gegaan.
Veelgestelde vragen
Wat is het verschil tussen de test-URL en de productie-URL in n8n?
De test-URL werkt alleen terwijl je de workflow actief aan het testen bent in de editor, via de knop 'Listen for Test Event'. De productie-URL werkt zodra de workflow is geactiveerd (schakelaar op Active) en blijft werken ook als de editor gesloten is. Gebruik de test-URL voor ontwikkeling, de productie-URL voor live gebruik.
Hoe beveilig ik een webhook in n8n?
n8n biedt drie beveiligingsopties voor webhooks: geen beveiliging (openbaar toegankelijk), basisauthenticatie (gebruikersnaam en wachtwoord in de header), en header-authenticatie (een geheime waarde in een specifieke header). Kies minimaal header-authenticatie voor productie-webhooks. Configureer de externe dienst om de geheime waarde mee te sturen, en controleer die waarde aan het begin van je workflow.
Wat als de externe dienst geen POST maar GET stuurt?
In de Webhook-node-instellingen kun je de HTTP-methode instellen. Standaard is dat POST, maar je kunt ook GET selecteren. Houd er rekening mee dat GET-requests geen request-body hebben; data wordt meegegeven als query-parameters in de URL. In n8n lees je die uit via {{ $json.query.parameternaam }}.