We moved five client workflows from Zapier to n8n and ran both in parallel for a month before switching over permanently. This is the comparison we wish we’d had before we started — including the two places where Zapier won and we kept it.

Why we were paying too much

Zapier was the first automation tool most of us ever used, and it earned that loyalty. It’s still the tool we recommend to absolute beginners. But look at how the pricing works as you grow:

Monthly volume Zapier plan needed Zapier cost n8n self-hosted cost
100 tasks Free $0 $0 (free tier)
1,000 tasks Professional ~$20-30/mo ~$25 ~$8 (VPS)
10,000 tasks Professional ~$60-100/mo ~$70 ~$8
50,000 tasks Team/Company $300+/mo ~$300+ ~$15

Those Zapier numbers are approximate because pricing has been volatile — tiers get renamed, task multipliers appear for premium apps, and multi-step Zaps consume a task per step, not per run. Our five client workflows needed roughly 15,000 tasks a month, which put us on a plan costing more per month than every other SaaS line item in the business combined. The same workload on a $10 VPS with self-hosted n8n costs the VPS and nothing else.

That gap is the entire reason this migration happened.

The five workflows we moved

To be concrete about what “typical small business automation” means, here’s what we moved:

  1. Lead intake — Typeform → CRM with dedup and routing (was 4 Zap steps, became 6 n8n nodes)
  2. Invoice reminders — accounting system → email sequence with escalation logic (was 3 Zaps chained, became 1 n8n workflow)
  3. Weekly client report — 4 data sources → spreadsheet roll-up → email (was 5 Zaps + a Sheets macro, became 1 n8n workflow)
  4. Review requests — trigger after invoice paid, personalized by service type (was 2 Zaps, became 1 workflow)
  5. On-call alerting — error webhook → Slack with rotation logic (was 1 Zap + a filter, became 1 workflow)

Notice the pattern: things that needed multiple chained Zaps in Zapier became single workflows in n8n. Zapier’s step-based pricing actively shapes what you build — you consolidate steps to save tasks, which fragments your logic across Zaps. n8n’s execution-based model doesn’t care how many nodes a workflow has, so you can structure logic the way it wants to be structured.

Where n8n clearly won

Cost at our volume. Non-negotiable: $70+ versus $8-10. Nothing else in this comparison outweighs an 85% cost reduction on a recurring line item.

Complex logic in one place. The invoice reminder sequence needed escalation logic: gentle reminder at +7 days, firmer at +14, “call us” at +30, and skip clients flagged as government accounts. In Zapier this was three Zaps with lookup steps passing state between them. In n8n it’s one workflow with a Switch node, and when it broke once (our fault, a date-format change upstream), we debugged it in one place instead of three.

Error handling. n8n’s error workflows and retry policies per node gave us the confidence to let the alerting workflow run unattended. Zapier’s error notifications told us that something failed, but the n8n execution data showed us what the failing node received. The difference between those two is the difference between a 2-minute fix and a 20-minute investigation.

The HTTP Request node. This deserves its own bullet: any API without a native integration can still be automated. We used it for a client’s niche booking system that Zapier simply doesn’t support.

Where Zapier won (yes, really)

The niche integration. One client uses an industry-specific CRM that Zapier supports natively and n8n doesn’t. With Zapier, that connection is a maintained, authenticated, versioned integration. With n8n, our choice was the HTTP node plus a custom auth flow we’d have to maintain ourselves. For that one client, Zapier stayed.

Setup speed, still. Setting up the Typeform trigger in Zapier took four minutes with no documentation reading. The equivalent n8n trigger took fifteen, including a confusing moment with webhook registration. Zapier’s polish on the happy path is real, and if you’re building one simple automation and never touching it again, that polish is worth paying for.

Multi-step Zaps are genuinely easier to read later. When a Zap has six steps, the linear list of actions is easy to scan. The equivalent n8n workflow with branches looks more impressive and takes longer to understand. “Impressive” is not a feature.

The migration cost nobody mentions

The workflows took 20-60 minutes each to rebuild, so the weekend of work cost a few hundred dollars in opportunity cost. But the sneaky cost was the audit: going through each Zap and figuring out what it actually did, because three of the five had undocumented behavior — a filter here, a lookup step there — that the person who built them had forgotten. If you’re migrating, budget as much time for the audit as for the rebuild. And run both in parallel for at least two weeks; we caught two behavioral differences that way, including one Zap that had been silently skipping weekend runs for months.

Our verdict

Pick Zapier if your volume is under ~1,000 tasks a month (the free and entry tiers are fine), you depend on a niche integration only Zapier has, or your team’s tolerance for technical concepts is zero and you want the absolute smoothest onboarding in the category.

Pick n8n if you’re above a few thousand tasks a month, you’re comfortable with (or have access to someone comfortable with) mildly technical concepts, you want self-hosting for cost or data-residency reasons, or your workflows have logic that fights Zapier’s step model.

The honest summary: Zapier is the best tool to start automating with and the most expensive one to keep automating with. n8n is the opposite. Most businesses we talk to should plan for the migration path from one to the other, and this time we’d do it six months earlier than we did.

One more practical note: the migration is a forcing function for documentation. If you don’t know what your Zaps actually do, that’s a bigger problem than your automation bill.

The worst Zapier bill we’ve seen

To put dollar amounts on the drift, here’s the billing history of a client who came to us after two years on Zapier — a four-person consulting firm, no unusual stack:

Period Monthly tasks Plan Cost
Year 1, month 1 400 Free/entry $0-20
Year 1, month 12 2,800 Professional $40
Year 2, month 6 7,500 Professional+ $80
Year 2, month 18 14,000 Team $180
After migration 14,000 (≈140 executions) $10 VPS $10

The task growth wasn’t business growth — revenue grew maybe 30% in that window. The other 4x came from the step-counting trap: each time a workflow needed one more lookup or filter, the Zap grew a step, and every step of every run billed again. A lead-routing Zap that started as 4 steps became 9 steps over two years of “while we’re in here” additions. Nobody noticed, because each individual change was small and the bill arrived monthly with no comparison point.

When we migrated them to self-hosted n8n, the same logic ran as one workflow with 11 nodes, executing for free on a $10 VPS. The rebuild was a day of work. The payback on that day was about three weeks.

The lesson isn’t “Zapier is a ripoff” — for the first year, at their volume, Zapier was genuinely the right tool and worth every dollar. The lesson is that per-task pricing has no natural ceiling, so it needs a watchdog: we now tell every Zapier client to set a task-usage alert at 70% of their plan, every month, and to treat crossing it as a trigger to ask “which of these steps could be free?” — because on n8n, they all are.

A rebuild walkthrough: the invoice reminder Zap

For calibration on what “rebuilding” actually involves, here’s one of the five client workflows, step by step. It’s representative — mid-complexity, the kind most businesses have one or two of.

The Zapier version was three chained Zaps: (1) trigger daily on a schedule, search the accounting API for unpaid invoices past due, (2) for each result, look up the client record for the contact email, (3) send the reminder email. Between Zaps 1 and 2, a Formatter step normalized the date formats, because the accounting API and the email tool disagreed on timezones. Total: 3 Zaps, 7 steps per invoice processed, plus the scheduler run.

The n8n rebuild took 50 minutes including testing: one Schedule Trigger → one HTTP Request node (same accounting API) → one Switch node for reminder stage (+7/+14/+30 days) → one Code node replacing both the lookup and the date normalization (twelve lines of JavaScript that also embedded the escalation logic Zapier’s third Zap had faked) → one Email node. One workflow, one execution per run regardless of how many invoices it processes.

What the walkthrough taught us — and this is the honest part — is that we couldn’t have built the n8n version directly. Building the Zapier version first, badly, over two years, is what made the “right” structure visible. When you migrate, don’t try to translate your Zaps; use them as a requirements document for a rebuild. The second version is always better-structured than the first, and the migration is your one free chance to fix the design.

One sizing note before you plan your own weekend: the 20-60 minute estimate per workflow assumes the Zap’s logic is documented and the trigger is standard (webhooks, schedules, app events). Zaps with undocumented lookup steps — the ones where the audit reveals three behaviors nobody remembers building — take double. Our five-workflow migration ran eight hours total, of which three were the audit, five the rebuilds. Run both systems in parallel for two weeks before you pause the old Zaps, and keep the originals paused for a month after cutover as a reference for what the previous behavior actually was.