n8n as a Zapier Alternative: Cost, Limits, and What You Keep
n8n is the self-hosted Zapier alternative that removes per-task billing. Compare costs, workflow limits, and what transfers before you switch. Browse templates.
Zapier's task counter isn't obvious until the invoice lands. A 5-step workflow processing 2,000 form responses burns 10,000 tasks in a single run. At the Professional tier ($73.50/month for 2,000 tasks), one moderately busy workflow can exhaust the plan in a week. Agencies and SaaS teams running multiple high-throughput pipelines hit this wall fast.
n8n is the Zapier alternative most builders switch to when per-task billing stops making sense. The self-hosted Community Edition has no execution counter, no monthly cap, and no throttling on how often workflows fire. The same 5-step pipeline runs at whatever volume the server can handle.
There are real trade-offs, though. Setup takes a few hours. Monitoring becomes your responsibility. And the n8n node library, while broad, doesn't have a native trigger for every SaaS tool Zapier supports out of the box. Worth knowing before you commit.
What You Can Automate With n8n Instead of Zapier
Practical coverage is high. Most Zapier workflows migrate directly with minimal rework:
- Route incoming leads from Typeform, Tally, or a custom webhook based on enrichment data and AI scoring
- Sync CRM contacts from HubSpot to your email tool on a schedule, without trigger-count charges
- Send Slack digests that combine data from Stripe, Airtable, and Google Sheets in one workflow
- Parse incoming emails, extract structured fields via an OpenAI prompt, and push to a database
- Process nightly revenue reports from multiple APIs and push summaries to Notion or Google Sheets
- Handle webhook payloads from Shopify, GitHub, or any custom source, then route by payload type
- Run multi-step AI classification and take different actions per output category
The coverage gap shows with app-specific triggers. Zapier has thousands of native triggers tied to SaaS events: deal stage changed, ticket escalated, subscription renewed. n8n handles most of these via webhooks or HTTP Request nodes, but it requires more configuration per integration. For general-purpose workflows, you won't notice the difference.
Browse n8n workflow templates →The Cost Math on Zapier vs. n8n
Zapier bills per task, where a task is a single action executed by a single step in a Zap. A 4-step workflow processing 5,000 records creates 20,000 tasks in one batch.
Lead enrichment pipeline: form submission trigger, HTTP enrich, score with OpenAI, save to HubSpot, notify via Slack. That's 4 steps × 2,000 leads = 8,000 tasks per weekly batch run. Zapier's Professional plan covers 2,000 tasks/month for $73.50, with extras at $0.02–$0.04 each. A single weekly batch like this generates $110–$150 in overage before the month is half done.
n8n Cloud starts at $24/month with no execution cap. Self-hosted n8n is free. A $6/month VPS (2 vCPU, 4 GB RAM) handles a standard n8n instance with SQLite and dozens of active workflows. A PostgreSQL queue-mode setup for heavier loads runs $15–$25/month with a managed database. Still less than Zapier's overage on a busy week.
The Starter plan comparison is more nuanced. Zapier Starter is $29.99/month for 750 tasks — fine if all workflows are low-volume. The threshold where self-hosted n8n becomes clearly cheaper sits around 5,000 tasks per month, after accounting for the ~$6/month server cost.
The n8n Workflow Pipeline You'd Build
Here's the structural equivalent of a standard Zapier Zap, expressed in n8n terms:
Webhook Trigger
→ HTTP Request v4.2 (enrich via external API)
→ Code node v2 (jsCode: custom scoring or transform)
→ Switch node (route by field value)
→ Gmail / Slack / HubSpot (act on the result)
The Switch node is free in all n8n plans. In Zapier, the Paths feature (equivalent branching) is locked to Professional and above. One consistent trip-up when rebuilding Zaps: the Code node uses jsCode as its parameter name, not code. Examples from pre-2023 community posts get this wrong, and the failure is silent.
1. Trigger on Any Source
The n8n-nodes-base.webhook node accepts any HTTP POST or GET, making it compatible with any Zapier trigger that can fire a webhook. For schedule-based triggers, n8n-nodes-base.scheduleTrigger v1.2 supports cron expressions down to the minute.
2. Enrich With External APIs
n8n-nodes-base.httpRequest v4.2 handles outbound API calls with full authentication, headers, and body formatting. Use it to call Apollo, Hunter, or Clearbit — the same enrichment services Zapier would have billed a task for.
3. Score With Custom Logic
The Code node runs arbitrary JavaScript. Scoring logic that would take five Zapier Formatter steps often fits in 10 lines of jsCode. The scored output lands at $json.<fieldName> for every downstream node to read.
4. Route to the Right Branch
The Switch node branches on any field value, with as many branches as needed. Hot leads go to one sequence, cold leads to another, and unqualified contacts get archived. No plan upgrade required for any of it.
5. Deliver and Log
Gmail, Slack, HubSpot, Airtable — all available as first-class n8n nodes. Logging to Google Sheets via n8n-nodes-base.googleSheets doesn't count as a separate billing event, because there aren't any billing events in self-hosted n8n.
Two Patterns Worth Building From
Pattern 1: Webhook-first intake (replaces any Zapier app trigger)
// The Webhook node receives payloads at:
// POST https://your-n8n.example.com/webhook/<your-token>
//
// In downstream nodes, access fields as:
// $json.email, $json.company, $json.source
//
// Any Zapier app trigger that supports outbound webhooks
// connects here directly — no Zapier account involved.
Point your app's outbound webhook URL at the n8n Webhook node. This replaces a Zapier trigger cleanly for tools like Typeform, Calendly, Stripe, and most SaaS platforms that fire webhooks on events.
Pattern 2: AI-scored lead routing
// Code node (jsCode) — score and tag before the Switch node:
const score = parseInt($json.ai_score ?? 0);
if (score >= 70) $json.lead_tier = 'hot';
else if (score >= 40) $json.lead_tier = 'warm';
else $json.lead_tier = 'cold';
return $input.item;
// The @n8n/n8n-nodes-langchain.openAi v2.1 node
// returns the score string at $json.output[0].content[0].text
// parseInt() is required — it's a string, not a number.
The @n8n/n8n-nodes-langchain.openAi v2.1 node returns text at $json.output[0].content[0].text. That's a string. If the downstream Code node expects a number, parseInt() is required — and tutorials referencing $json.text will fail silently on modern n8n. The execution log makes this obvious; the failure mode itself doesn't point back to the missing parse.
n8n Nodes vs. Zapier Steps
| Zapier concept | n8n equivalent | Notes |
|---|---|---|
| Trigger | Webhook / Schedule / App node | 400+ native options |
| Action step | App node | Comparable coverage |
| Paths (branching) | Switch node | Free in all plans |
| Filter | IF node | Boolean condition logic |
| Code by Zapier | Code node (jsCode) | More JavaScript flexibility |
| Formatter | Code node or Set node | More control, fewer clicks |
| Delay | Wait node | Built in |
| Webhooks by Zapier | Webhook node | Identical function |
Getting Started: n8n as Your Zapier Replacement
- Deploy n8n. Docker is fastest: run the official
n8nio/n8nimage on port 5678. For production, add PostgreSQL and place an nginx reverse proxy in front with SSL. You'll wantN8N_PROTOCOL=httpsandN8N_HOSTpointing at your domain. - Identify your highest-cost Zaps. Start with workflows processing more than 2,000 records per month — those are where the task savings are largest.
- Set up credentials once. n8n stores API keys per integration type, not per workflow. One credential set reuses across every workflow in the instance.
- Import a template as your starting point. The AI Lead Scoring and Email Routing template ships with the complete lead intake pipeline pre-wired: Webhook trigger, normalization Code node,
@n8n/n8n-nodes-langchain.openAiv2.1 scoring, Switch routing, and branches for email sequences, CRM updates, and Slack alerts. It's the type of pipeline that burns 8,000+ Zapier tasks per weekly batch. - Replace triggers with webhooks. Point each app's outbound webhook URL at a new n8n Webhook node. Most Zapier app triggers can fire webhooks natively.
- Test with a sample payload. n8n's test execution shows node-by-node output inline. More debug visibility than Zapier's task history log.
- Add error notification. Set a workflow-level error trigger that fires a Slack message on failure. Self-hosted n8n doesn't alert you by default — this step is easy to forget and costly to skip.
If follow-up and re-engagement are part of the picture, the Stalled Lead Rescue template handles contacts that go quiet after initial outreach. It detects the silence, fires a personalised AI re-engagement email, logs every attempt, and Slack-alerts when it's time for a human to step in.
View all workflow templates →When Zapier Is Still Worth It
This isn't a one-sided comparison. Zapier wins for teams that want zero setup, a polished no-code UI, and low-volume workflows. If total monthly task count stays under 2,000 across all Zaps, the $29.99/month Starter plan is cheaper than running a server.
The crossover happens around 10,000–20,000 tasks per month across multi-step workflows. Below that threshold, Zapier's convenience justifies the cost. Above it, you're paying a recurring premium for a task counter that n8n simply doesn't have. Run the math on your actual usage before switching.
The stronger argument for n8n isn't cost — it's control. Self-hosted n8n runs on your infrastructure, stores credentials locally, and doesn't throttle workflow frequency based on the billing tier. For teams with data residency requirements or security-sensitive API keys, that control matters more than the pricing difference.
The Email Follow-Up Automator polls an Airtable CRM for contacts marked "Follow-up Needed", generates personalised outreach via OpenAI, sends via Gmail, and marks records as Contacted — all on a 5-minute schedule. It's the type of workflow that costs 6,000+ Zapier tasks per month on a 2,000-contact CRM. On self-hosted n8n, it costs nothing per execution.
For a Zap-by-Zap migration walkthrough, see the n8n Zapier migration guide. If you're still evaluating and want a full three-way comparison that includes Make, the n8n vs Zapier vs Make breakdown includes a pricing table for each plan tier.
Explore templates and start building →Common questions
Is n8n a good Zapier alternative?
How much does n8n cost compared to Zapier?
Can n8n handle everything Zapier does?
Get the workflow templates this guide is built on
Import-ready n8n JSON, step-by-step setup, and tested end-to-end. One-time payment, own it forever.
More automation guides

n8n Production Setup: SSL, Backups, and Monitoring Done Right
Getting n8n running is a 20-minute task. Getting it production-ready takes closer to a day. The gap between "the UI loads" and a n8n production setup you'd trust with business-critical workflows is mo…

n8n Content Automation: Repurpose and Distribute Posts Automatically
Publishing a blog post used to mean one action. Now it means five: write the post, extract a LinkedIn summary, condense it to 280 characters for Twitter/X, draft the newsletter intro, create a Notion…

Automate Lead Scoring with n8n: AI Scoring, Routing, and Follow-Up
Most inbound lead pipelines share the same failure pattern: a webhook fires, a row lands in a spreadsheet, and a sales rep manually checks if the lead is worth calling. At 20 leads a day, that's manag…