Zapier to n8n Migration: Complete Guide
· By AI Compare
A seven-step process to move from Zapier to n8n without downtime or duplicate records.
Should you migrate?
Migrating from Zapier to n8n makes sense when at least one of these is true:
- Your Zapier bill keeps rising because of multi-step or high-volume Zaps.
- You need logic Zapier handles poorly: loops, merges, complex branching.
- Data must stay on your own servers.
- You want AI agents connected to your internal data.
If you have five simple Zaps and a $20 bill, migration is probably not worth the effort.
What migration really involves
There is no reliable one-click import from Zapier to n8n. Zapier exports are not executable n8n workflows. Migration means rebuilding each Zap in n8n using the Zap as a specification. Most Zaps are short, so this is faster than it sounds. The slowest parts are usually credentials and testing, not building.
Typical effort:
| Zap type | Time to rebuild and test |
|---|---|
| 2–3 steps, no logic | 10–30 minutes |
| 4–8 steps with filters and formatter | 30–90 minutes |
| Paths, loops, code steps, webhooks | 2–4 hours |
Step 1: Audit your Zaps
Export a list of every Zap and record:
- Name, owner, on/off status
- Trigger app and event
- Actions and apps used
- Tasks used per month (from Zapier's usage page)
- Business importance (critical, important, nice-to-have)
Turn off and delete Zaps nobody uses. Most accounts have 20–40% dead Zaps.
Step 2: Prioritise
Migrate in this order:
- High-task, low-complexity Zaps – biggest savings, least risk.
- Important Zaps that need logic Zapier struggles with.
- Critical Zaps last, once your team is confident in n8n.
Step 3: Set up n8n
- Choose Cloud or self-hosted.
- Set the timezone so schedules run correctly.
- Create credentials for every app first (guide). Use service accounts or bot users where possible.
Step 4: Rebuild each Zap
Use the mapping cheat sheet. The key translations:
| Zapier | n8n |
|---|---|
| Trigger (polling) | App trigger node (polling) or Schedule Trigger + app node |
| Instant trigger / Webhooks by Zapier | Webhook node or app trigger with webhooks |
| Action step | App node operation |
| Filter | Filter or IF node |
| Paths | Switch or IF node |
| Formatter (text, date, numbers) | Expressions, Edit Fields (Set) or Code node |
| Delay | Wait node |
| Looping by Zapier | Automatic per-item processing or Loop Over Items |
| Code by Zapier | Code node |
| Storage / Tables | Data tables or a database node |
| Sub-Zap | Execute Workflow node |
Two concepts to learn early:
- Items: n8n nodes process every item they receive. If a trigger returns 10 rows, the next node runs 10 times automatically. No loop needed.
- Expressions: fields reference earlier data with
{{ $json.field }}or{{ $('Node name').item.json.field }}.
Step 5: Test with real data
- Pin sample data on the trigger node so you can re-run without new events.
- Compare n8n output with Zapier's task history for the same input.
- Test edge cases: empty fields, special characters, duplicate records.
Step 6: Run in parallel, then cut over
- Activate the n8n workflow writing to a test destination (test sheet, test Slack channel) for a few days.
- Compare results with Zapier.
- Switch the n8n workflow to production destinations and turn off the Zap at the same moment to avoid duplicates.
- For webhook-based Zaps, update the source app's webhook URL to n8n's production URL.
- Keep the Zap turned off (not deleted) for 2–4 weeks as a rollback option.
Step 7: Monitor
- Create an Error Trigger workflow that sends Slack or email alerts when any workflow fails.
- Set Retry On Fail on API nodes.
- Review executions weekly for the first month.
Common pitfalls
- Timezones: schedules running an hour off because
GENERIC_TIMEZONEwas not set. - Duplicate processing: both Zap and workflow running at once.
- Polling differences: n8n polling triggers may return data in a different format or order.
- Credential scopes: OAuth apps missing a scope that Zapier's app had.
See common migration errors and fixes.
Get the checklist
Download the Zapier migration checklist to track each Zap from audit to cut-over.
