n8n webhook tutorial: Forbind hvad som helst med jeres systemer

Det vigtigste kort fortalt Pull betyder, at dit system aktivt spørger et andet system, om der er sket noget nyt.

n8n webhook tutorial

Det vigtigste kort fortalt

  • Pull betyder, at dit system aktivt spørger et andet system, om der er sket noget nyt.
  • En webhook trigger er indgangen til dit workflow i n8n.
  • Header authentication fungerer ved, at afsenderen lægger en hemmelig nøgle i HTTP headeren, som n8n derefter tjekker mod en forudindstillet værdi.

Pull: Du spørger systemet ‘Er der noget nyt?’

Pull betyder, at dit system aktivt spørger et andet system, om der er sket ændringer. Det sker med faste intervaller, for eksempel hvert femte minut. Du sender en forespørgsel og får enten en tom svarpakke eller en bunke data retur.

Denne tilgang er nem at sætte op. Du styrer selv rytmen, og du ved præcis, hvornår data hentes hjem.

Men der er et stort problem: ressourcespild.

De fleste forespørgsler rammer et system, hvor intet er ændret. Alligevel brænder du API kvoter og serverkraft af på at tjekke. Jo oftere du spørger, jo mere spild. Jo sjældnere du spørger, jo længere går der, før du opdager ændringer.

Pull virker fint, når hastighed ikke betyder noget.

Når du arbejder med vigtige automatiseringer, hvor produkter skal opdateres, priser skal justeres eller leads skal behandles med det samme, bliver ventetiden en barriere. En forsinkelse på fem eller ti minutter kan være forskellen på et salg og en tabt kunde. Her begynder den passive pull tilgang at halte.

Vi har set det i praksis hos en webshop, der brugte planlagte tjek til at hente nye produkter fra leverandøren. Det skabte forsinkelser og manuelt arbejde, hver gang leverandøren lagde nye varer op uden for den faste tidsplan. Med en produktimport til WooCommerce gik vi fra periodiske tjek til et automatiseret flow, der i dag behandler 24 produkter om dagen helt automatisk. Data lander nu, så snart leverandøren har dem klar.

Pull er forudsigeligt, men sjældent den mest effektive løsning.

1) Tilføj Webhook node som trigger

En webhook trigger er indgangen til dit workflow i n8n. Træk en Webhook node ind på canvas, og workflowet vågner, når et eksternt system sender data til endpointet.

Illustration af proces for 1) Tilføj Webhook node som trigger

Åbn noden og vælg metode. POST er standardvalget for langt de fleste scenarier, fordi den bærer data med i kroppen. GET fungerer, hvis du skal modtage et simpelt signal uden data.

Når noden er aktiv, genererer n8n en unik webhook URL. Kopier den og indsæt den i det afsendende system. Det kan være Shopify under notifikationer, en formular på hjemmesiden eller en betalingsgateway.

Test forbindelsen med det samme.

Send et testkald fra afsendersystemet og tjek kørsler i n8n. Ser du dataene i nodens output, er forbindelsen etableret.

Når dataene lander rigtigt, kan du bygge resten af automatiseringen videre på dem.

I vores case med lead research til en B2B SaaS virksomhed lander et nyt lead fra hjemmesiden direkte i workflowet via webhook, og første personlige mail sendes inden for to minutter per lead. Hvis du har brug for sparring undervejs, tilbyder vi hjælp til n8n automatisering med fokus på stabile triggers og fejlfri dataflow. Du kan også dykke ned i officiel dokumentation for n8n Webhook node for tekniske detaljer om opsætning og godkendelse.

Header authentication: Afsender inkluderer en hemmelig nøgle i HTTP header

Header authentication fungerer ved, at afsenderen lægger en hemmelig nøgle i HTTP headeren. Systemet tjekker derefter denne nøgle mod en forudindstillet værdi. Stemmer de ikke overens, afvises kaldet, før workflowet overhovedet starter. Det giver et solidt lag sikkerhed uden at påvirke selve URL adressen.

Uden denne kontrol står din webhook åben for alle, der kender adressen.

En supplerende metode er at begrænse, hvilke IP adresser der må kalde din webhook. Systemet kan konfigureres til kun at acceptere requests fra kendte servere. Det passer godt, når data kommer fra faste leverandører eller interne systemer. Hvis afsenderens IP adresse skifter, skal du dog huske at opdatere listen.

Basic auth placerer brugernavn og password direkte i din webhook URL. Det er enkelt at implementere til simple integrationer, men det er også den mest sårbare metode. Brug den kun i lukkede netværk eller til test, og aldrig som eneste forsvarslinje i produktion.

Autentificering bør være på plads, når en webhook kører i produktion og rører rigtige data.

Vi anbefaler altid at aktivere autentificering, så snart en webhook rører rigtige data. I vores case med produktimport til WooCommerce, hvor 24 produkter om dagen helt automatisk flyder fra leverandør til webshop, sikrer vi, at kun den godkendte leverandør kan udløse importen. Tekniske indstillinger og sikkerhedsanbefalinger kan du læse mere om på den officielle n8n blog.

N8n kan sende et svar tilbage til afsenderen

Ja, n8n kan sende et svar direkte tilbage til afsenderen med Respond to Webhook. Workflowet modtager data og giver tilbagemelding i samme øjeblik forespørgslen lander.

Illustration af proces for N8n kan sende et svar tilbage til afsenderen

Den mest almindelige anvendelse er en simpel bekræftelse. Når et eksternt system sender data til din webhook, kan n8n straks svare med statuskoden 200 OK. Afsenderen ved med det samme at leveringen er gået igennem.

Du kan også bygge et API endpoint i n8n. Workflowet modtager input, bearbejder det gennem flere noder og returnerer et beregnet resultat tilbage. På den måde kan n8n indgå som en praktisk del af jeres systemopsætning.

Med Respond to Webhook noden bestemmer du præcis, hvad afsenderen modtager. Du kan vælge en specifik HTTP statuskode som 201 Created eller 422 Unprocessable Entity, tilføje custom headers og formatere svaret som JSON eller ren tekst.

Så har du bedre styr på, hvad systemet svarer tilbage, både når alt går godt, og når noget fejler.

Når workflowet fungerer som et API endpoint, er et klart JSON svar vigtigt. Andre systemer kan nemt fortolke dataene og reagere på indholdet. Ved at placere en valideringsnode tidligt i workflowet afviser du ugyldige forespørgsler med en præcis fejlbesked, før tunge processer startes.

Hvis en webhook modtager forkerte formater eller manglende felter, kan workflowet returnere en fejlbesked og en passende HTTP statuskode. Så opdages fejlen øjeblikkeligt i stedet for timer senere i en log.

Tung databehandling bør ligge efter Respond to Webhook noden. Når svaret først er sendt, fortsætter workflowet med baggrundsprocesser uden at holde afsenderen ventende. Det giver en hurtig tilbagemelding til klienten, mens de tungere opgaver kører videre i baggrunden.

Respond to Webhook svarer i samme request, så timingen betyder noget.

Når svaret er sendt, kan det ikke trækkes tilbage. Sørg derfor for, at de nødvendige noder afslutter, inden tidsgrænsen overskrides. Du kan læse mere om indstillinger og begrænsninger i dokumentationen for n8n Webhook node.

1) Kontaktformular → n8n webhook → opret lead i CRM + send bekræftelse

En n8n webhook er en URL adresse, der lytter efter indkommende data og starter et workflow med det samme. Når en kunde udfylder en kontaktformular, kan formularen sende data direkte til din webhook. Derefter opretter systemet automatisk leadet i jeres CRM og sender en bekræftelse afsted uden manuelle mellemled. Dokumentationen for n8n webhook noden beskriver, hvordan du opsætter URL og godkendelse.

En webshop kan bruge præcis samme opsætning. Når Shopify udsender et ordre event, fanger din webhook det og overfører data til jeres ERP system. Lager, fakturering og ordrehåndtering får dermed ensartet information fra første sekund.

Betalinger via Stripe fungerer på samme måde. Når en betaling går igennem, aktiverer jeres webhook kundens adgang til en service og udløser en kvittering. Betaling og levering hænger sammen helt automatisk.

For virksomheder med fysisk infrastruktur kan en IoT sensor streame data til en webhook. Hvis temperaturen eller fugtigheden overskrider en fast grænse, sender systemet straks en advarsel til det rette team.

Udviklerteams kan fange et push event fra GitHub og få systemet til at sende en besked i Slack. Alle ved med det samme, hvornår ny kode er på vej i produktion.

Automatiseret leadhåndtering kan forkorte svartiden markant. I vores case om lead research og personlig mail til B2B SaaS gik vi fra manuel research til en personlig mail inden for to minutter per lead. En kontaktformular, der sender data gennem en webhook, bygger på præcis den samme logik.

Webhook

At teste en webhook handler om at se præcis, hvad der lander i dit workflow, inden du sætter den i produktion. Uden test risikerer du at arbejde med forkerte dataformater, manglende headers eller payloads, der ser anderledes ud end forventet.

Illustration af proces for Webhook

Webhook.site er et gratis værktøj, der giver dig en midlertidig URL. Du sender data til den, og siden viser dig med det samme hele indholdet inklusive headers, body og tidsstempel. Det er særligt nyttigt, når en ekstern platform skal sende data til dig, og du vil se præcis, hvordan anmodningen ser ud, inden du bygger videre på den.

Test webhooken først, og byg videre, når du kan se, at dataene lander rigtigt.

I n8n har du en indbygget test mode i webhook noden. Når du aktiverer den, lytter noden efter indkommende data og viser resultatet direkte i editoren. Det betyder, at du kan trigge en webhook fra din eksterne platform og se med det samme om data rammer rigtigt. Du kan læse mere i n8n dokumentationen for webhook noder.

Når testen er godkendt, skifter du blot til produktionsadressen og workflowet kører selv.

Postman og Insomnia er to værktøjer der vender processen om. Her sender du selv testkald til din webhook URL med præcis det indhold, du vil undersøge. Det er effektivt når du vil simulere en specifik hændelse igen og igen, uden at skulle udløse den fra den rigtige platform hver gang.

Den tilgang brugte vi, da vi byggede en automatisk produktimport til WooCommerce for en webshop. Ved at teste webhook data fra leverandøren, inden workflowet gik i drift, sikrede vi, at priser, lagertal og billeder landede korrekt. Resultatet blev 24 produkter per dag importeret helt automatisk. En ordentlig test sparer dig for fejl, der ellers først bliver opdaget i produktion.

Webhook eller polling: vælg retning fra start

Webhooks skubber data til jer, når noget sker. Polling spørger igen og igen. Forskellen lyder måske lille, men den afgør, om jeres n8n flow reagerer med det samme eller spilder ressourcer på tomme kald.

Valget påvirker både hastighed og belastning.

Start med at afgøre, om kilden kan sende push. Hvis ja, brug en Webhook node og lad kilden kontakte jer, når data er klar. Hvis nej, brug en Schedule trigger og hent data med jævne mellemrum. En webhook svarer til en dørklokke frem for en vagt, der kigger ud af vinduet hvert femte minut.

Autentificering tilbydes som Basic auth, Header auth, JWT auth eller slet ingen. Vælg den metode, som jeres kildesystem understøtter, og undgå at eksponere endpoints uden beskyttelse. Adgangskontrol baseret på IP adresser er ikke en indbygget autentificeringsmetode i n8n, men et netværkslag, som jeres driftsmiljø kan sætte op for at begrænse adgangen yderligere.

Nogle afsendere kræver et svar med det samme, og her bruger I Respond to Webhook til at sende en kvittering tilbage.

Et konkret scenarie er en B2B SaaS virksomhed, der modtager leads via en formular på hjemmesiden. Med en webhook bliver research og en personlig mail sat i gang inden for to minutter per lead, som vi har automatiseret for en kunde. Et andet scenarie er en webshop, hvor leverandørdata via webhook lander direkte i n8n og ender som færdige produkter i WooCommerce. Her kører 24 produkter igennem helt automatisk hver dag.

Test svartider og belastning, før I sætter noget i produktion.

Ofte stillede spørgsmål

Er webhooks sikre?

Ja, hvis du konfigurerer dem korrekt. n8n understøtter Basic auth, Header auth og JWT auth. Du kan også begrænse adgangen via IP whitelisting på netværksniveau. Undgå altid at eksponere webhooks uden autentificering i produktion.

Hvad sker der, hvis n8n er nede?

n8n har ingen indbygget kø til webhooks. Hvis din instans er offline, afvises HTTP requests, og begivenheder går tabt. Det sker dog ikke, hvis afsenderen, som for eksempel Stripe, har sin egen retry mekanisme. Overvej en ekstern buffertjeneste til vigtige automatiseringer.

Kan jeg have flere webhooks?

Ja, du kan oprette ubegrænsede webhooks på tværs af workflows. Hver webhook får en unik URL. Du kan også have flere webhooks i samme workflow, hvis du har brug for at lytte på forskellige events eller endpoints.

Hvad med rate limits?

n8n har ingen indbygget rate limiting på webhooks. Der er ingen grænse for requests pr. minut. Din server accepterer trafik, indtil ressourcerne er opbrugt. Sæt selv beskyttelse op via reverse proxy eller en API gateway ved høj belastning.

Er der en grænse for webhook payload størrelse?

Ja, standardgrænsen er 16 MB pr. request. På en self hosted løsning kan du justere dette via miljøvariablen N8N_PAYLOAD_SIZE_MAX. Ved større filer bør du overveje at modtage et downloadlink i stedet for rå data.

Brug for hjælp til jeres webhooks?

Hvis I har brug for hjælp til at sætte webhooks op eller bygge avancerede flows i n8n, er I altid velkomne til at tage kontakt til Azad hos Lynpadden.

Azad Habib
Azad Habib Lynpadden
Skal jeg ringe dig op? 1-24 timers responstid · Ingen forpligtelser

Mere fra bloggen

Fire artikler der ligger tæt på det du lige har læst.