From Zapier to n8n: A Complete Migration Guide for Operations Teams
We've migrated dozens of Zapier setups to n8n for clients. Here's the math on when it's worth it, the 6-phase migration playbook, and the patterns that look the same but behave differently between platforms.
The Zapier-to-n8n migration question is now common enough that we get asked about it on almost every discovery call. The driving force is usually cost: a Zapier bill that started at $50/month is now $1,500/month, and the team realizes that n8n self-hosted runs the same workflows for a tenth of that. Sometimes it's a flexibility constraint — a workflow they can't build in Zapier that they could build in n8n.
This post is the honest migration playbook. When it's worth it, when it isn't, and the operational reality of moving real workflows between platforms without breaking your operation.
When Migrating Is Worth It
The migration is worth it when at least two of these apply:
1. Your Zapier bill exceeds $500/month. Below that, the migration effort costs more than the savings for 12-24 months. Above that, savings materialize fast.
2. You're hitting Zapier limits. Task quotas, complex multi-step constraints, lack of conditional logic flexibility, or specific integrations that don't work the way you need.
3. You have someone technically capable of running self-hosted infrastructure. Either internal team or contracted. n8n self-hosted requires Docker knowledge, monitoring, backups, version control. If nobody on your team can do that, n8n Cloud is the right destination — which removes some of the cost advantage.
4. You want to use AI in your workflows extensively. n8n's AI nodes (~70 of them) and native LangChain integration are significantly more flexible than Zapier's AI features.
5. Your workflows involve cross-system logic that Zapier handles awkwardly. Multi-branch decisions, loops, complex data transformation, error handling with retries.
If none of these apply, you don't need to migrate. Zapier is excellent for what it does. The "n8n is better, period" arguments online are usually written by people who didn't have a working Zapier setup to begin with.
The Cost Math
For a typical mid-stage company running serious automation, the numbers:
Zapier scenario. 25 active Zaps, average 8 steps per Zap, ~150,000 task runs/month. Zapier Professional or Company plan. Cost: $1,200-$2,500/month = $14K-$30K/year.
n8n scenario, equivalent workflows. Self-hosted on a $40/month VPS (DigitalOcean or AWS). Even at 500,000+ workflow executions/month, the VPS cost barely moves. Add backup storage and monitoring: $50-$80/month total = $600-$1,000/year.
Annual savings: $13K-$29K.
The hidden costs to account for:
- Migration effort: 60-200 hours depending on workflow count = $7K-$25K of internal time or agency engagement.
- Ongoing maintenance: someone has to manage the VPS, monitor uptime, handle updates. ~5-10 hours/month = $6K-$12K/year of internal time.
- Initial learning curve: 20-40 hours for a team to get fluent in n8n.
Net annual savings after maintenance: typically $5K-$15K. Plus the strategic value of having a more flexible platform.
For most teams, the migration pays back in 12-18 months and provides significantly more capability going forward.
The 6-Phase Migration Playbook
Phase 1: Inventory and Triage (Week 1)
Pull a complete list of every Zap, what it does, what it triggers on, how many tasks it consumes per month, when it last failed, who owns it.
Categorize each Zap:
- Keep, migrate as-is. Working well, frequently used, fits the n8n model cleanly.
- Improve during migration. Has known issues, brittle structure, or opportunities for redesign.
- Kill. Created by someone who left the company, no longer needed, replaceable by a better workflow.
- Replace with native. Things Zapier does that the destination system can do natively (Salesforce Flow, HubSpot workflow). Don't recreate in n8n what should live in the system itself.
The dead-weight elimination is often surprising. Most companies discover 20-40% of their Zaps can simply be deleted.
Phase 2: n8n Environment Setup (Week 1-2)
Stand up the n8n environment before migrating anything.
For most clients we recommend:
- Self-hosted on a VPS. DigitalOcean or AWS, 4GB RAM minimum, 8GB recommended. Run via Docker Compose for clean upgrades.
- PostgreSQL for the database (not SQLite). Important for scale and backups.
- Persistent SSL via Caddy or Nginx.
- Backups configured. Daily database snapshots to S3 or similar. Test the restore.
- Monitoring. Uptime checks via Better Uptime, OnlinePING, or self-hosted Uptime Kuma. Slack alerts on workflow failures.
- Version control. Workflows exported as JSON and committed to a Git repo. n8n's project + Git integration in 2026 makes this much cleaner than it used to be.
- Separate staging environment for testing changes before production.
We've covered the full self-hosting setup in our n8n self-hosting guide. Use that for the technical setup.
For teams without in-house DevOps capacity, n8n Cloud is the safer path. You give up some cost savings but skip the operational overhead.
Phase 3: Pilot Migration (Week 2-3)
Pick 3-5 Zaps to migrate first. Choose ones that are:
- Low-stakes (not running mission-critical workflows).
- Diverse in patterns (cover different trigger types, integrations, logic patterns).
- Owned by people who can give fast feedback on whether the migration worked.
For each pilot Zap:
- Document the Zap's behavior in plain English.
- Build the n8n version, running in parallel with the original Zap.
- Run both for 1-2 weeks, comparing outputs.
- When confident the n8n version is correct, disable the Zap.
This phase isn't about speed. It's about learning the platform and validating that your migration approach works.
Phase 4: Batch Migration (Weeks 3-8)
Now you migrate the rest. Some batching strategies that work:
- By system owner. Migrate everything owned by the sales ops team in a batch.
- By trigger type. Migrate all the Salesforce-triggered Zaps together; you'll reuse the trigger configuration.
- By criticality. Save the highest-stakes Zaps for last so you've practiced on the lower-risk ones.
Maintain a migration tracker (Notion, Airtable, or a simple sheet) with status for each Zap: Not Started → In Progress → In Parallel Run → Switched Over → Verified Stable → Done.
Phase 5: Patterns That Don't Translate Directly
Some Zapier patterns require redesign in n8n. The big ones:
Zapier Paths vs n8n Branches. Zapier Paths are a single Zap with multiple branches. In n8n, you use IF nodes or Switch nodes for the same logic, but the structure is more visual and explicit.
Zapier Tables. Zapier's built-in lightweight database has no n8n equivalent. Migrate this data to Airtable, Notion, a Google Sheet, or PostgreSQL.
Zapier's Looping Logic. Looping a single step over an array. n8n handles this differently — instead of a "loop" node, n8n's nodes naturally process arrays item-by-item. The flow is sometimes more intuitive, sometimes requires rethinking.
Zapier Formatter. n8n's Function nodes (JavaScript) can replicate most Formatter operations. Some specific formatters (date parsing across timezones) need explicit handling.
Zapier's Built-in OAuth Connections. n8n requires you to set up the OAuth apps yourself in some cases (Google, Microsoft, others have one-click but some integrations require creating a custom OAuth app in the source system). Plan for this.
Sub-Zaps. Zapier's "send to another Zap" pattern. In n8n, use Sub-Workflows (or the Execute Workflow node). The pattern is cleaner in n8n once you learn it.
Phase 6: Cutover and Hypercare (Weeks 7-9)
Once all critical Zaps are migrated and running in n8n with parallel validation complete:
- Schedule a cutover day. Communicate to the team.
- Disable the Zapier zaps (don't delete them yet — keep them disabled for 30 days as rollback insurance).
- Monitor n8n closely for the first 2 weeks. Daily review of failed executions.
- After 30 days of clean operation, downgrade or cancel the Zapier subscription.
The cutover is anticlimactic if you've done the parallel-run validation. It should be — that's the point.
Common Failure Modes
1. Migrating broken Zaps. Don't rebuild a brittle Zap in n8n. Redesign it. Migration is the forcing function to fix the things you've been meaning to fix.
2. Skipping parallel run. "We tested it once and it worked" is not enough. Parallel run for 1-2 weeks catches the edge cases.
3. Underestimating the OAuth dance. Setting up OAuth apps in source systems can eat hours. Plan for this in your timeline.
4. No monitoring. Zapier had its own monitoring and alerted you on failures. Self-hosted n8n doesn't, by default. Set up monitoring before you cutover anything important.
5. Migrating to self-hosted without DevOps capacity. If nobody on the team can SSH into a server and debug a Docker issue, self-hosted will bite you. Use n8n Cloud instead — still significantly cheaper than Zapier at scale, with no infrastructure burden.
Is the Zapier-to-n8n Migration Right for Your Team?
It's right if your Zapier spend is meaningful, your workflows are complex enough to benefit from n8n's flexibility, and you have the technical capacity (in-house or contracted) to run a more powerful but more demanding platform.
It's not right if your Zapier setup costs less than $300/month, your workflows are simple, or you don't have anyone who can manage infrastructure.
At Ops Automators, we run Zapier-to-n8n migrations as a focused engagement. If your Zapier bill has gotten loud or you're hitting limits, that's the conversation to start with.
Ready to automate? Book a free discovery call and we'll scope your migration.
Related reading: What Is n8n? A Complete Guide for Operations Teams · n8n vs Zapier vs Make: Which Automation Platform Wins in 2026? · Self-Hosting n8n: A Complete 2026 Setup Guide
Want us to automate this for you?
Book a 30-minute discovery call — no pressure, no commitment.