n8n

De n8n loop-des-doods

Laatst bijgewerkt op 9 februari 2026.

Je bouwt een workflow. Alles loopt. Totdat je ineens ontdekt dat “alles loopt” ook kan betekenen: alles loopt. Altijd. En vooral: opnieuw. Je executions gaan omhoog, je kosten ook, en ergens in de verte hoor je een API zachtjes “ho…” zeggen voordat ‘ie je met rate limits het zwijgen oplegt.

Dit is de n8n loop-des-doods: een workflow die zichzelf opnieuw triggert, en dat blijft herhalen tot jij de noodstop vindt.

Voor ProspectPro gebruikers: als je complexe workflows bouwt met ProspectPro, is het mogelijk om per ongeluk loops te creëren.

Wat er precies gebeurt

Een loop ontstaat bijna altijd door een simpele feedback-loop:

  • je trigger luistert naar updates (of “added or updated”),
  • je workflow doet een update in hetzelfde systeem,
  • die update telt als nieuw event,
  • dus n8n start opnieuw.

En het vervelende is: dit is geen “bug”. Dit is gewoon logica die je per ongeluk aanzet.

Scenario 1: De oneindige CRM-echo

Je workflow zet netjes een tag: processed=true.

Die tag-update telt als “record updated”.

Je trigger luistert naar “added or updated”.

Dus n8n zegt: “Oh top, een update!”
En start opnieuw. En opnieuw. En opnieuw.

Gevolgen:

  • honderden (of duizenden) executions
  • steeds dezelfde update (of net andere velden) → dataveruiling
  • rate limits bij je CRM → andere workflows falen óók
  • je audit trail lijkt op een stuiterbal

Scenario 2: De retry-turbo

Er gaat iets mis bij een API-call. De node probeert opnieuw. Of je workflow is zo gebouwd dat hij bij errors opnieuw start.

Maar elke retry triggert óók weer een update-event in je bron (bijv. “lastAttemptAt”).

Gevolgen:

  • errors worden geen incident, maar een vermenigvuldiger
  • je ziet méér errors doordat je méér calls doet
  • je raakt sneller geblokkeerd door limieten

Scenario 3: De sub-workflow-hydra

Je splitst items en roept een sub-workflow aan “per item”. Netjes.

Alleen: die sub-workflow doet een update die de hoofdtrigger weer activeert.

Nu heb je niet één loop, maar een kerstboom.

Gevolgen:

  • exponentiële groei in executions
  • downstream systemen krijgen dubbele updates en conflicten
  • debugging wordt “welke van de 800 runs was de eerste?”

Waarom het zo duur en vervelend wordt

Zodra je een loop op gang komt, ontstaan allerlei problemen:

  • kosten (executions + betaalde acties zoals LLM’s, e-mails, externe API-calls),
  • errors (timeouts, retries, cascading failures),
  • rate limits (waardoor andere workflows ook stukgaan),
  • dubbele acties (dubbele mails, dubbele updates, dubbele tickets).

Onderschat trouwens ook niet hoe snel een loop tot problemen kan leiden: het kleinste foutje kan zichzelf duizenden keren per minuut herhalen.

De 2-minuten loop-check

Voordat je live gaat, check je dit:

  1. Luistert mijn trigger naar updates of “added or updated”?
  2. Maakt mijn workflow aanpassingen in dezelfde bron (zelfde object of dezelfde collectie)?
  3. Kan dezelfde gebeurtenis dubbel binnenkomen (webhook retries)?
  4. Welke stap is gevaarlijk als hij dubbel loopt (mail, payment, ticket, CRM-mutatie, LLM-call)?

Als je bij 1 + 2 “ja” hebt: beveilig je workflow altijd tegen loops. Door te filteren op (zeer) specifieke situaties. Of met geavanceerde technieken [link to article].

De noodrem als het al misgaat

Als een van jouw workflows tóch in een loop verstrikt raakt, is er één gouden regel: eerst stoppen, dan puzzelen.

  • Pauzeer/disable de workflow direct.
  • Zoek welke update de volgende run veroorzaakt (meestal een tag/status/veld dat je aanpast).
  • Voeg een guard toe (inProgress/done/needsAttention of vergelijkbaar).
  • Pas daarna de rest van je logica aan.

Handig voor ChatGPT/Gemini

Wil je met een chatbot brainstormen over ProspectPro integraties met n8n? Dan is het handig als ‘ie weet hoe onze node in elkaar zit. Onze code is volledig openbaar, dus dat is geen enkel probleem. Vraag simpelweg of Chat deze linkjes onderzoekt, en je kan los:

n8n: https://n8n.io/integrations/prospectpro
GitHub: https://github.com/ocjanssen/n8n-nodes-prospectpro
NPM: https://www.npmjs.com/package/@bedrijfsdatanl/n8n-nodes-prospectpro
API docs (community node uses this API): https://docs.prospectpro.nl