How to Migrate from Zapier to n8n Without Breaking Your Workflows
Ready to migrate from Zapier to n8n? This guide covers workflow translation, trigger mapping, self-hosting setup, and the templates that speed up the rebuild.
Zapier's per-task billing punishes high-throughput workflows. A pipeline that pulls 5,000 form submissions through a 4-step zap burns 20,000 tasks in a single run. For most teams, that's when the decision to migrate from Zapier to n8n stops being theoretical and becomes urgent.
Self-hosted n8n has no task counter. Run a workflow a thousand times a day and the cost doesn't move. That math explains why agencies, ops-heavy SaaS teams, and solo builders who make the switch tend to stay switched.
The rebuild isn't instant, but it's more mechanical than it looks. This guide covers the vocabulary mapping, the nodes you'll use constantly, where migrations typically get stuck, and the pre-built templates that shorten rebuild time from days to hours.
What Transfers Well When You Migrate from Zapier to n8n
Nearly every use case that runs on Zapier has a clean n8n equivalent. The main categories that translate without friction:
- Email follow-up sequences triggered by CRM updates or form submissions
- Inbound lead capture, scoring, and intelligent routing
- Slack and Teams alerts for new orders, support tickets, or GitHub events
- Multi-channel content scheduling and distribution
- Invoice sending and payment confirmation flows
- AI-powered processing on every inbound contact form submission
- CRM syncs between Airtable, Google Sheets, HubSpot, and Notion
Zapier's no-code approach works fine for simple if-this-then-that logic. Once a workflow needs conditional routing, data transformation, or API calls with custom headers, you're writing pseudo-code in Zapier's dropdown UI anyway. That's when n8n's Code node starts looking like the more honest option, and the migration stops feeling like a trade-off.
Zapier's Formatter handles text splitting, number formatting, and date conversion through a dropdown UI. n8n's Code node (v2) handles the same transformations in JavaScript. The jsCode parameter runs in a V8 sandbox. For common Formatter operations, you don't need much: return items.map(item => ({ json: { ...item.json, name: item.json.name.toLowerCase() } })); covers most text transforms.
The Migration Pipeline
Before touching a single node, map out what the Zapier zap does and translate it to n8n terms:
Zapier: Trigger App → Filter → Formatter → Action App
n8n: Trigger Node → IF Node → Code Node → Action Node
That one-to-one mapping holds for roughly 80% of zaps. The remaining 20% involve Paths (Switch node in n8n), Delay (Wait node), or Storage (a key-value store or Google Sheets node). All have equivalents; they just need a few extra nodes.
1. Audit Your Existing Zaps
Before rebuilding anything, export a list of every active zap and group them by trigger type: webhook-based, schedule-based, or app-event-based. Zapier's dashboard shows this clearly. Webhook-based zaps are the easiest to migrate (15-20 minutes each); schedule-based ones take slightly longer because of how n8n handles cron expressions.
2. Map Triggers to n8n Nodes
Zapier's trigger apps map directly to n8n trigger nodes:
- Webhook (Catch Hook) →
n8n-nodes-base.webhook(same behavior, same URL format) - Schedule →
n8n-nodes-base.scheduleTriggerv1.2 (cron expression or interval mode) - Email trigger →
n8n-nodes-base.emailReadImap - RSS feed →
n8n-nodes-base.rssFeedReadTrigger
Don't confuse Schedule Trigger versions. Older tutorials reference n8n-nodes-base.cron, which is deprecated in n8n v1.0+. If a workflow you copied runs but never fires, check the trigger node type first — that's the most common cause.
3. Set Up Your n8n Instance
Self-hosted n8n runs on any VPS or cloud machine with Docker. A single-core, 1 GB RAM instance handles most teams with fewer than 50 active workflows. For anything heavier, 2 cores and 2 GB RAM is the practical floor. n8n Cloud works too, but it won't remove the task cap on starter tiers and costs more per execution at scale than a dedicated VPS.
4. Recreate Credentials
n8n stores credentials encrypted at rest. For each app your Zapier zaps connect to, you'll create a matching credential in n8n's credential manager. OAuth2 apps (Gmail, HubSpot, Google Sheets) walk through a browser auth flow; API-key apps (OpenAI, SendGrid, Airtable) need the key pasted in once. Plan for 5-10 minutes per credential the first time. After that, they're reusable across all workflows on the instance.
5. Rebuild with Templates Where You Can
Don't rebuild every workflow from scratch. Pre-built n8n workflow templates cover the most common Zapier use cases out of the box. The Email Follow-Up Automator handles the CRM-triggered email sequence pattern that's one of Zapier's most popular zap types. Connect your Airtable credential, connect Gmail, point the template at your follow-up-needed field. Done.
Rebuilding the Three Most Common Zap Patterns
Pattern 1: Webhook-to-Email
The simplest and most common Zapier pattern. A form submission fires a webhook; a confirmation or notification email goes out.
Webhook Trigger
└─ Gmail Node (send confirmation)
└─ Google Sheets Node (log submission)
In n8n, the Webhook node listens at a URL you define. The Gmail node maps recipient, subject, and body directly from $json, the incoming webhook payload. No Code node needed unless you're transforming strings.
Pattern 2: Schedule + CRM Read + AI Transform
Common for daily digest or follow-up sequences. This is where the Formatter-to-Code-node translation happens.
Schedule Trigger (daily, 9am)
└─ Airtable Node (read contacts due for follow-up)
└─ Code Node (v2, filter and format)
└─ OpenAI Node (generate personalized body)
└─ Gmail Node (send)
The Code node (n8n-nodes-base.code v2) replaces Zapier's Formatter for field manipulation. A one-liner covers most needs: return items.filter(item => item.json.status === 'Follow-up Needed');. The Email Follow-Up Automator implements this exact pattern, pre-wired for Airtable, OpenAI, and Gmail, so you're not starting from scratch.
Pattern 3: AI-Scored Lead Routing
Zapier doesn't offer AI scoring on inbound leads natively. n8n does. The @n8n/n8n-nodes-langchain.openAi v2.1 node scores leads 0-100 and returns the result at $json.output[0].content[0].text. An IF node then routes hot leads (score above 70) to a priority email sequence and cold leads to a nurture track.
Webhook Trigger (form submission)
└─ OpenAI Node (score 0-100)
└─ IF Node (score > 70?)
├─ [true] SendGrid (priority sequence)
└─ [false] SendGrid (nurture track)
The AI Lead Scoring and Email Routing template ships with this full pattern, including the Google Sheets logging step that Zapier users typically have to bolt on manually.
Browse n8n workflow templates that replace your most-used Zapier zaps →The n8n Nodes That Replace Zapier's Built-In Steps
| Zapier Step | n8n Node | Notes |
|---|---|---|
| Webhook trigger | n8n-nodes-base.webhook | Same behavior; define the path |
| Schedule trigger | n8n-nodes-base.scheduleTrigger v1.2 | Use this, not deprecated cron |
| Filter | IF node or Switch node | Switch handles multiple branches |
| Formatter | Code node v2 (jsCode param) | JavaScript, V8 sandbox |
| Action (any app) | Native action node | 400+ available; HTTP Request covers the rest |
| Paths | Switch node | Up to 4 output branches |
| Delay | Wait node | Fixed duration or wait-for-webhook |
| Lookup table | Code node with a switch statement | Faster than an external lookup for small datasets |
n8n's Webhook node has a default 120-second response timeout. Workflows that call slow APIs (OpenAI with long prompts, LinkedIn, Apollo) need either a longer timeout setting or an async pattern where the webhook returns 200 immediately and the work continues in a separate execution. Zapier's equivalent timeout is 30 seconds, so n8n gives more headroom, but the configuration isn't obvious on first setup.
Where Zapier Migrations Get Stuck
Most migration blockers fall into three areas.
The Formatter cliff. If you've never written JavaScript, the Code node is the steepest part of the migration. Don't fight it. Start with return items; and add transforms one at a time. n8n's execution log shows the exact output after each node run, which makes debugging faster than Zapier's equivalent view. The learning curve is real but short.
Credential OAuth flows. Some OAuth2 apps, Google Workspace in particular, require registering n8n's redirect URI in the app's OAuth consent screen. Self-hosted instances need https://your-domain/rest/oauth2-credential/callback added as an authorized redirect URI. Skip this step and the OAuth flow fails silently. Worth checking before spending an hour debugging.
Schedule trigger misfires. A Schedule trigger that fires every minute will drop runs silently if the previous execution is still in flight. Set executionTimeout on the workflow, or switch to a longer interval. Zapier queues concurrent runs automatically; n8n's default behavior doesn't.
Getting Your First Workflow Running
- Pick one Zapier zap to start with, ideally the simplest one you have (a webhook-to-action is ideal).
- Spin up a local n8n instance (
npx n8nworks for initial testing; Docker for production). - Create the Webhook Trigger node and copy the generated URL.
- Update the source app to point to the new n8n webhook URL.
- Add the action node, connect your first credential, map the fields from
$json. - Run a test execution and check the node-by-node output in the execution log.
- Once it passes, migrate the next zap or pull a template to skip the manual rebuild entirely.
For content distribution workflows, the Content Scheduler and Distributor replaces the most common multi-step content scheduling zaps. It reads a queue from Google Sheets, generates platform-specific captions with OpenAI, and emails distribution-ready copy via Gmail — the same pattern most teams rebuild manually from Zapier's multi-step content zaps.
The pricing and feature comparison between n8n and Zapier is covered in depth in the n8n vs Zapier vs Make breakdown. For the infrastructure side, the complete n8n self-hosting guide covers Docker setup, reverse proxy configuration, and SSL from scratch.
The migration compounds quickly once the first few workflows are running. Each rebuilt workflow teaches the node patterns that apply everywhere else. Templates cut the learning curve on the most common patterns so you're not reinventing the same logic every time.
Browse n8n templates to speed up your Zapier migration →Common questions
How long does it take to migrate from Zapier to n8n?
Does n8n support all the same integrations as Zapier?
Can I use n8n for free after switching from Zapier?
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

Build a SaaS Automation Pipeline with n8n
Where SaaS Revenue Slips Through Before Anyone Notices SaaS products don't lose users at the cancellation screen. The window closes earlier: a trial expires with no follow-up, a free user hits the sto…

How to Automate Online Community Management with n8n
Managing an online community by hand means refreshing Reddit tabs, drafting the same invite emails over and over, and manually logging who received a coupon code. When a community exceeds a few hundre…

How to Run n8n in Docker: A Production Setup Guide
The official n8n docker quickstart gets you to a login screen. What it doesn't cover is the configuration that keeps n8n running six months later without silent failures, lost credentials, or executio…