Skip to main content
Lifetime license included with every purchase
n8n workflowsZapier migrationworkflow automationn8n templates

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.

Nn8n Marketplace Team·May 30, 2026·9 min read

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 Formatter vs n8n Code Node

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)
  • Schedulen8n-nodes-base.scheduleTrigger v1.2 (cron expression or interval mode)
  • Email triggern8n-nodes-base.emailReadImap
  • RSS feedn8n-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 Stepn8n NodeNotes
Webhook triggern8n-nodes-base.webhookSame behavior; define the path
Schedule triggern8n-nodes-base.scheduleTrigger v1.2Use this, not deprecated cron
FilterIF node or Switch nodeSwitch handles multiple branches
FormatterCode node v2 (jsCode param)JavaScript, V8 sandbox
Action (any app)Native action node400+ available; HTTP Request covers the rest
PathsSwitch nodeUp to 4 output branches
DelayWait nodeFixed duration or wait-for-webhook
Lookup tableCode node with a switch statementFaster than an external lookup for small datasets
The Webhook Timeout You'll Hit

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

  1. Pick one Zapier zap to start with, ideally the simplest one you have (a webhook-to-action is ideal).
  2. Spin up a local n8n instance (npx n8n works for initial testing; Docker for production).
  3. Create the Webhook Trigger node and copy the generated URL.
  4. Update the source app to point to the new n8n webhook URL.
  5. Add the action node, connect your first credential, map the fields from $json.
  6. Run a test execution and check the node-by-node output in the execution log.
  7. 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
FAQ

Common questions

How long does it take to migrate from Zapier to n8n?
Simple trigger-action zaps usually take 10-30 minutes each to recreate in n8n. A full migration of 20-40 zaps typically takes 1-3 days depending on complexity. Multi-step zaps with filters and formatters take longer; straightforward webhook-and-action zaps go faster. Starting with pre-built n8n templates cuts that time significantly.
Does n8n support all the same integrations as Zapier?
n8n ships with 400+ native integrations and an HTTP Request node that covers any REST API. Most common Zapier integrations, including Gmail, Slack, HubSpot, Airtable, Google Sheets, Shopify, and Stripe, have native n8n nodes. A small number of Zapier's 5,000+ app catalog don't have n8n equivalents, but the HTTP Request node fills most gaps.
Can I use n8n for free after switching from Zapier?
Self-hosted n8n is free and has no per-task execution limits. You pay only for the server it runs on; a $6-12/month VPS handles most small teams. n8n Cloud starts at $20/month with execution limits similar to Zapier's paid tiers. For high-volume teams, self-hosting is almost always cheaper.
Stop reading. Start running.

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.