The thing that separates n8n, Zapier, and Make isn't features or polish — it's the billing unit. So I wrote 60 lines of Python to find out where the unit actually bites.
I run the entire content pipeline for a small publication on self-hosted n8n: 10 production workflows, around 209 nodes, on a single cloud box. The most-asked question I get about that setup isn't "why n8n" — it's "wouldn't Zapier have been easier?"
Easier, yes. But the reason I didn't reach for a hosted per-task tool has nothing to do with features and everything to do with one number that nobody puts on the comparison page: the billing unit.
So I modeled it. Here's the short version, then the code.
That sounds like a pricing-page footnote. It's actually the whole decision. n8n's own vs-Zapier page states it plainly: a simple two-step workflow and a complex 200-step AI agent both count as one execution — and that same 200-step agent is "up to ~200 tasks" on a per-task tool.
My pipeline is built out of exactly the kind of long workflows that punishes. To make this concrete, here are three real ones:
| Workflow | Nodes | n8n cost per run | Per-task cost per run |
|---|---|---|---|
| SF-2 script generator | 27 | 1 execution | ~27 tasks |
| SF-4 render | 28 | 1 execution | ~28 tasks |
| SF-5 publisher | 33 | 1 execution | ~33 tasks |
SF-2 is a webhook receiving a content ID, a Postgres fetch, a Code node that assembles a prompt, an HTTP call to an LLM, a parser, two guard If
nodes, a write-back, and a respond node. Twenty-seven nodes, one execution, done in seconds. Nothing exotic — just a legible chain of small steps. But on a per-task meter, every one of those nodes is a coin in the slot.
No API, no network — just the arithmetic the pricing pages bury. The node→task mapping is 1:1, which is the vendors' own framing (the "200 steps ≈ 200 tasks" line above).
N8N_STARTER = {"quota": 2_500, "unit": "executions", "price": "€20/mo annual"}
ZAPIER_PRO = {"quota": 750, "unit": "tasks", "price": "$19.99/mo annual"}
MAKE_CORE = {"quota": 10_000, "unit": "operations", "price": "$9/mo annual"}
def tier_ceiling(nodes, quota):
"""Max runs/month before a per-unit tool's entry quota is exhausted."""
return quota // nodes
for name, nodes in {"SF-2": 27, "SF-4": 28, "SF-5": 33}.items():
print(name, nodes, "nodes ->",
"n8n:", N8N_STARTER["quota"], "runs |",
"Zapier:", tier_ceiling(nodes, ZAPIER_PRO["quota"]), "runs |",
"Make:", tier_ceiling(nodes, MAKE_CORE["quota"]), "runs")
Output:
workflow nodes n8n runs Zapier runs Make runs SF-2 script generator 27 2500 27 370 SF-4 render 28 2500 26 357 SF-5 publisher 33 2500 22 303
Read the SF-4 row. It's a 28-node workflow. On n8n that's **1 execution per run** — 2,500 runs fit the €20 Starter tier, and it's *unlimited* if you self-host for free. On Zapier's $19.99 Professional plan, those 28 tasks-per-run mean you exhaust the entire 750-task budget at **26 runs a month.** Roughly once a day. One workflow. A single moderately-branchy automation, run daily, eats a whole hosted plan.
One piece of content doesn't touch one workflow — it flows through all ten. So the real unit of work is "one content item, end to end": ~10 executions on n8n versus ~209 task-equivalents on a per-task tool.
items/mo n8n exec Zapier tasks 50 500 10,450 100 1,000 20,900 250 2,500 52,250 500 5,000 104,500
At 100 content items a month, that's **1,000 n8n executions** — comfortably inside the 2,500 Starter tier — versus **20,900 Zapier tasks**, which is many tiers above the $19.99 plan. Self-hosted, the n8n number costs $0 in software. And the gap doesn't close as you grow; it widens, because every node you add to a workflow is free on an execution meter and another coin on a task meter.
This is the same shape n8n's marketing claims, but it's worth deriving yourself rather than taking on faith: a 30-step workflow run 1,000 times is 1,000 executions (fine) or 30,000 tasks (a plan several times more expensive). The more your automation actually *does*, the more lopsided it gets.
I'm not going to pretend the execution meter is a free lunch, because the bill isn't where n8n costs you — the **operations** are:
For what it's worth, the reliability has held: pulling our live execution history off the n8n API, the last 93 retained executions came back 100% success. For a stack that renders video and posts to three platforms unattended, that's the bar I cared about. But that's *my* workload. If you're wiring a form to a CRM and a Slack ping, none of this math matters and you should just use Zapier.
"Which automation tool is cheapest" is the wrong question, because the tools don't even bill in the same unit. The right question is **does your work look like a few short automations, or a few long ones run often?** Short and occasional → the per-task polish of Zapier is worth paying for. Long or high-volume → the execution meter (and the free self-host) is a structural cost advantage that compounds with every node you add.
If you want the full version of that decision across all six tools in the category — who each one is actually for, and how their very different meters play out — I wrote it up in [a roundup of the best AI automation tools](https://aialleyway.com/best-ai-automation-tools/). The one-line version: the best tool isn't the cheapest, it's the one billed like you build.
The 60-line model is reproducible — clone the quotas, swap in your own workflow node counts, and find your own crossover before you commit to a meter.