FlowKit

Migrating from Zapier to n8n: a practical step-by-step guide

Published 21 July 2026 · 7 min read

Migrating from Zapier to n8n isn't a decision to take lightly, but it's not the massive undertaking it can seem like either. The good news: unlike switching CRMs or ERPs, your data doesn't move — only the orchestration layer changes. Here's how to do it without breaking anything that's already running.

Why migrate, in concrete terms

Three reasons come up again and again with teams that make the switch:

  • Cost that scales badly with volume. Zapier charges per task executed: every step that fires in a Zap consumes a task, and the per-task rate climbs fast once volume crosses a few thousand monthly executions. Self-hosted n8n charges nothing per execution — the marginal cost of a workflow running 10 times or 10,000 times a month is the same. Our comparison, n8n vs Make vs Zapier, breaks down the pricing models in detail.
  • Data control. On Zapier, your data flows through and is temporarily stored on third-party infrastructure. Self-hosted, it stays on your own server — a point that matters more and more for teams under GDPR or contractual data-residency requirements.
  • More advanced logic. Zapier is deliberately kept simple: conditional branching, complex data handling, or orchestrating several sub-processes hit limits quickly. n8n gives you a full JavaScript or Python Code node, sub-workflows, and conditional logic without the artificial ceilings of a mainstream no-code tool.

Before you start: map your existing Zaps

This is the step everyone wants to skip, and it's exactly the one that prevents nasty surprises later. For every active Zap, list:

  • The exact trigger (new form submission, new email, webhook, CRM event) and how often it fires.
  • The cascading actions, in order.
  • Any filters applied (Zapier Filter, conditions inside steps).
  • The third-party integrations used and their associated credentials.
  • The business criticality: a Zap that feeds invoicing carries a different risk level than one that posts an informational Slack notification.

This mapping also becomes your test baseline: once the Zap is rebuilt in n8n, you'll know exactly what behavior to verify before you cut over from the original.

Node equivalents you need to know

The good news: most Zapier building blocks have a direct n8n equivalent, and it's often more flexible.

Zapier n8n
Filter IF node — evaluates one or more conditions and routes to two branches (true/false)
Paths Switch node — routes to multiple branches based on a field's value, without stacking IFs
Formatter Set node for simple formatting (renaming, recalculating a field), Code node for richer logic
Delay Wait node, with fixed or conditional delay options
Webhooks by Zapier Webhook node as a trigger, HTTP Request node for outbound calls
Storage by Zapier An external store (Supabase, Postgres) or simple static variables, depending on the need

One thing to watch: an n8n Set node doesn't do exactly what a Zapier Formatter does. Set reassigns or transforms fields on the current node; for more elaborate transformations (custom date parsing, complex string manipulation), the Code node with an expression like {{ $json.email.toLowerCase() }} or a full JavaScript script gives you more control than a typical Zapier Formatter.

Migrate Zap by Zap, not all at once

Rebuilding every Zap in one big migration push is tempting — and it's the surest way to multiply risk. A single mapping error is hard to isolate if ten automations switch over on the same day.

The method that works:

  1. Rank your Zaps by criticality, and start with the lowest-risk ones (internal notifications, non-blocking syncs).
  2. Rebuild one Zap at a time in n8n, working from your initial mapping.
  3. Test it in isolation with real data but a manual trigger, before switching it to run continuously.
  4. Once validated, move to the next one.

For more complex workflows combining several distinct pieces of logic, splitting the result into sub-workflows makes both testing and maintenance easier — see our guide on breaking down complex n8n workflows into sub-workflows.

Coexistence: run both in parallel

Before disabling a Zap, let it keep running alongside its n8n equivalent for a period ranging from a few days to a few weeks, depending on criticality. Compare the output of both systems against the same events: same data sent, same actions triggered, same fields populated in the target CRM or tool.

This coexistence period is the single best safety net in the whole migration — it turns a bet ("this should work") into a verification ("this works, I checked"). To avoid duplicate side effects during this phase, a common trick is to have both systems write to separate fields or tags for the duration of the comparison, then unify once n8n is validated.

Classic pitfalls

  • Different field mapping. Zapier and n8n don't structure trigger output data the same way: a field you access directly in Zapier can end up nested under $json.data.field in n8n. Check the actual data structure at every step, not just the final result.
  • Silent retries that disappear. Zapier automatically retries certain failed actions in the background, with zero configuration on your part. n8n doesn't do this by default: without an explicit retry policy or an Error Workflow, a transient error that went unnoticed on Zapier can stop an n8n workflow dead in its tracks.
  • Filters that don't cut off at the same point. A Zapier Filter silently halts execution when its condition isn't met; an n8n IF routes to a "false" branch that you need to explicitly leave empty or handle, otherwise the behavior diverges.
  • Unmanaged rate limits. Zapier absorbs part of the responsibility for handling third-party API rate limits. Migrating to n8n, that responsibility becomes yours — our guide on rate limiting API calls in n8n covers the patterns to put in place.

Migrating credentials and API keys

Zapier doesn't let you export the credentials stored inside a Zap — API keys, OAuth tokens, passwords. Every credential has to be recreated directly inside n8n:

  • For a simple API key (most SaaS tools), grab the value from the provider's account and create a dedicated n8n credential.
  • For an OAuth connection (Google Workspace, Slack, HubSpot), you'll need to redo the authorization from n8n — the existing Zapier connection doesn't carry over.
  • Use this step to set up clean credential management from the start rather than carrying over bad habits: see our guide on securing credentials and API keys in n8n for project-based structuring, team permissions and key rotation.

The economics behind the migration

The cost argument isn't just about a Zapier bill that keeps climbing — it rests on a broader principle: automating a routine back-office process with a system you own and run yourself produces a measurable return, documented well beyond n8n's own case. A case study by Lacity and Willcocks (MIS Quarterly Executive, 2016) on the deployment of robotic process automation (RPA) at telecom operator Telefónica O2 measured annual returns on investment reaching as high as 200%, driven by faster and more reliable handling of routine back-office tasks compared with manual processing (read the study on AIS eLibrary). That's exactly the type of gain you see when migrating from per-task-billed automations to n8n workflows you own and run yourself: once the migration cost is absorbed, the marginal cost of execution becomes close to zero, which fundamentally changes the equation as volume grows.

Final checklist before disabling your Zaps

  • The equivalent Zap has been running in n8n for at least a few days with no errors.
  • Output from both systems has been compared on real cases, not just synthetic tests.
  • An Error Workflow or retry policy is in place for critical steps.
  • All required credentials have been recreated and tested in n8n, with consistent permission management.
  • Anyone on the team who used to receive notifications or check Zapier logs knows where to find the n8n equivalent.
  • The original Zap is paused (not immediately deleted) for one final safety-net week before permanent deletion.

Wrapping up

Migrating from Zapier to n8n happens Zap by Zap, never in one block: map everything before you start, lean on the node equivalents, run both systems in parallel long enough to validate, and explicitly rebuild what Zapier used to handle quietly behind the scenes — retries, error handling, rate limits. The economic upside isn't just anecdotal: between the disappearing per-task cost and the return on process automation documented for years in real-world case studies, the migration pays for itself faster the more your execution volume grows.

FAQ

Frequently asked questions

How long does a Zapier to n8n migration take?

It mostly depends on how many active Zaps you have and how complex they are. A simple two- or three-step Zap can be rebuilt in under an hour. A Zap with multiple Paths, conditional formatting and several integrations can take half a day. Budget extra time for the initial mapping step too — it's non-negotiable, but it's what keeps forgotten automations from surfacing mid-migration.

Should I migrate all my Zaps at once?

No — that's the most common mistake. Migrate one Zap at a time, starting with the least critical ones, run the n8n version alongside the Zapier version for a few days to a few weeks, compare the results, then disable the Zap. Migrating everything in one block multiplies the risk of an error going unnoticed across several automations simultaneously.

What happens to the error handling Zapier used to do for me?

It needs to be rebuilt explicitly. Zapier silently retries certain failed actions in the background, with no configuration on your part. n8n doesn't do this by default: you need to set up an Error Workflow and a retry policy on the relevant nodes, otherwise an automation that used to fail quietly on Zapier can simply stop dead on n8n without anyone noticing.

Can I reuse Zapier credentials in n8n?

No, credentials need to be recreated directly inside n8n: Zapier doesn't let you export the API keys, OAuth tokens or passwords stored in a Zap. For OAuth integrations (Google, Slack, etc.), you'll need to redo the connection from n8n. For simple API keys, you generally just grab the value from the provider's account and recreate it as an n8n credential.

Bundle FlowKit Complet

€269