I’ve built hundreds of n8n workflows — some with 40+ nodes, most with far fewer. And the honest truth is that five nodes do the heavy lifting in almost all of them. Here’s how to use each one right, and the mistakes that break them.
1. Webhook — your workflow’s front door
The Webhook node turns a workflow into an endpoint. Any system that can send an HTTP request — Shopify, Stripe, a form, another workflow — can trigger it.
How to use it right:
- Use POST for anything that creates data; GET should be reserved for health checks.
- Set a response — even a simple “received” — so callers don’t hang waiting.
- Validate the payload early. A webhook that accepts garbage will fill your database with garbage.
The gotcha: If your webhook returns a 4xx, most senders retry — which means your workflow runs twice. Handle idempotency (a dedupe key) or you’ll double-process orders, payments, and form submissions.
2. HTTP Request — talk to any API
The Swiss Army knife. Any REST API, any auth scheme, any method.
How to use it right:
- Put credentials in the node’s credential fields, never in the URL or headers as plain text.
- Handle pagination — most APIs cap at 100 items. Loop with a cursor or use the built-in pagination options.
- Check the response code. A 200 with an error body is still a failure — add an IF node on the response shape.
The gotcha: The default timeout is short for slow APIs. If you’re calling a heavy endpoint, raise it — or better, kick off an async job and poll for completion.
3. Code — JavaScript without the pain
The Code node runs JavaScript (or Python) on your data. It’s the escape hatch for anything the visual nodes can’t express.
How to use it right:
- Use it for transforms, not for orchestration. If you’re doing API calls inside Code, you’re probably using the wrong node.
- Return the shape the next node expects. The #1 Code node error is returning an object when the next node wants an array (or vice versa).
- Keep it pure: same input, same output. No timers, no state, no side effects.
The gotcha: Code nodes run per-item in some modes. On a 10,000-item batch, a slow transform becomes a 10,000× slowdown. Test with a sample first.
4. Merge — combine streams without losing data
Merge joins two branches — the classic case is combining data from an API with data from a database.
How to use it right:
- Match on a key (like an order ID), not on position. Positional merging breaks the moment either side changes order.
- Choose the right mode: inner (only matches), left (keep all of one side), or append (just concatenate).
- Watch for binary data — Merge can drop binary payloads if you’re not careful. If you’re merging branches that carry files, verify the binary survives.
The gotcha: The most common silent failure in n8n is a Merge that produces zero items because the keys don’t match (different types — string vs number — is the usual culprit).
5. Split In Batches — process 10,000 items without melting your instance
Split In Batches breaks a large input into chunks and processes them in a loop. It’s how you do bulk work — syncing catalogs, sending campaigns, backfilling data — without blowing up memory or hitting API rate limits.
How to use it right:
- Set a batch size that respects the downstream API’s rate limit. 10–50 is usually right.
- Add a Wait node inside the loop for APIs that throttle.
- Collect results with a second Split In Batches in “loop” mode, or write results incrementally.
The gotcha: Loops that fail mid-way leave you with partial results and no record of where you stopped. Log the batch index — or use the Error Trigger pattern (see below) to catch failures.
Where to go deeper
I wrote a $1 guide for each of these five nodes — setup, patterns, and the gotchas above in more depth — plus 87 more guides covering the rest of the nodes I use in production. If one saves you an hour of debugging, it’s paid for itself a hundred times over.
Browse all 92 n8n guides for $1 each
Frequently asked questions
Which n8n node should I learn first?
Webhook and HTTP Request. Together they cover the most common pattern in n8n: something happens, you call an API.
Why is my Merge node returning zero items?
Almost always a key mismatch — check that both sides use the same field name and the same data type (string vs number).
Are these guides for n8n Cloud or self-hosted?
Both — the patterns are identical; only the setup steps differ, and the guides cover both.
Discover more from Wiredwizard
Subscribe to get the latest posts sent to your email.