Skip to main content

How to Migrate from Zapier to n8n 2026

·OSSAlt Team
zapiern8nmigrationautomationguide
Share:

How to Migrate from Zapier to n8n

Zapier's free plan gives you 100 tasks/month. Professional starts at $29.99/month for 750 tasks. Heavy users pay $100-600+/month. n8n is the self-hosted alternative — unlimited workflows, unlimited executions, 400+ integrations. Here's how to migrate.

Step 1: Deploy n8n

# Docker — running in 1 minute
docker run -d \
  --name n8n \
  -p 5678:5678 \
  -v n8n_data:/home/node/.n8n \
  -e N8N_BASIC_AUTH_ACTIVE=true \
  -e N8N_BASIC_AUTH_USER=admin \
  -e N8N_BASIC_AUTH_PASSWORD=changeme \
  n8nio/n8n

Access at localhost:5678. For production, add PostgreSQL and a reverse proxy.

Step 2: Audit Your Zaps

Before migrating, list your active Zaps:

  1. Go to Zapier → My Zaps
  2. Export or screenshot each Zap's trigger and actions
  3. Categorize by complexity:
    • Simple (2-3 steps) — migrate first
    • Medium (4-6 steps with filters) — migrate second
    • Complex (branching, multi-path) — migrate last

Step 3: Recreate Workflows

Zapier concept → n8n equivalent:

Zapiern8n
ZapWorkflow
TriggerTrigger node
ActionAction node
FilterIF node
FormatterFunction node or built-in transforms
PathSwitch node
DelayWait node
Webhooks by ZapierWebhook node
ScheduleCron/Schedule node

Example: Slack → Google Sheets (Simple)

Zapier: New message in Slack channel → Add row to Google Sheet

n8n:

  1. Add Slack Trigger node → configure channel
  2. Add Google Sheets node → Append Row
  3. Map fields: message → column A, user → column B, timestamp → column C
  4. Activate workflow

Example: Form → Email + CRM (Medium)

Zapier: Typeform submission → Filter (score > 50) → Send email + Create HubSpot contact

n8n:

  1. Webhook node (receive form data)
  2. IF node (check score > 50)
  3. True path: Split into two branches:
    • Send Email node (Gmail/SMTP)
    • HubSpot node (Create Contact)
  4. False path: Optional — log or ignore

Step 4: Connect Services

For each integration, authenticate in n8n:

  1. Click a node → CredentialsCreate New
  2. Follow OAuth flow or enter API key
  3. Test connection

Common integrations and n8n node names:

Servicen8n Node
SlackSlack
GmailGmail
Google SheetsGoogle Sheets
HubSpotHubSpot
StripeStripe
GitHubGitHub
JiraJira
NotionNotion
AirtableAirtable
SalesforceSalesforce
PostgreSQLPostgres
HTTP APIHTTP Request
WebhookWebhook

Step 5: Use Code Nodes (n8n Superpower)

Zapier's "Code by Zapier" is limited. n8n lets you write full JavaScript or Python:

// n8n Code node — transform data mid-workflow
const items = $input.all();

return items.map(item => ({
  json: {
    fullName: `${item.json.firstName} ${item.json.lastName}`,
    email: item.json.email.toLowerCase(),
    source: 'website',
    score: item.json.revenue > 10000 ? 'enterprise' : 'standard',
  }
}));

Step 6: Set Up Error Handling

n8n has built-in error handling Zapier doesn't offer:

  1. Error Trigger — catches errors from any workflow
  2. Retry on failure — automatic retries with backoff
  3. Error workflow — route errors to Slack/email notifications

Cost Comparison

UsageZapiern8n Self-HostedSavings
750 tasks/month$30/month$5/month (VPS)$300/year
2,000 tasks/month$49/month$5/month$528/year
50,000 tasks/month$299/month$10/month$3,468/year
Unlimited$599/month$10/month$7,068/year

Migration Timeline

WeekTask
Week 1Deploy n8n, recreate simple Zaps (2-3 steps)
Week 2Recreate medium Zaps, test all workflows
Week 3Recreate complex Zaps, set up error handling
Week 4Monitor, verify, deactivate Zapier Zaps

Connecting n8n to Your Open Source Stack

The real power of migrating to n8n isn't just saving money on Zapier's task limits — it's gaining the ability to automate across your entire self-hosted stack in ways that Zapier's integration model makes awkward or expensive.

Zapier's integrations are all cloud-to-cloud. If you're running a self-hosted CRM, a self-hosted analytics platform, or a self-hosted Git repository, Zapier can't reach them directly without your services being publicly accessible via API. n8n, running on your own server, can communicate with other services on the same local network or VPN without any public exposure. This is significant for security-conscious teams: your internal tools can trigger automations in n8n without opening additional ports to the internet.

For teams using Twenty CRM alongside n8n, the integration is particularly powerful. Migrating from HubSpot to Twenty CRM covers the initial data migration, but n8n is what makes Twenty genuinely replace HubSpot's workflow automation features. You can build n8n workflows that listen to Twenty's webhooks and execute multi-step sequences: when a deal moves to "Proposal Sent" stage, n8n automatically creates a follow-up task for five days later, sends a confirmation email to the prospect, and logs the stage change to your analytics database. This is HubSpot Sales Hub automation, running for the cost of a $10/month VPS.

The HTTP Request node in n8n is worth calling out separately. It's a catch-all node for any API that doesn't have a dedicated n8n integration — and there are thousands of APIs that fall into this category. Internal tools, obscure SaaS products, custom-built APIs, and even self-hosted open source tools with REST APIs are all reachable via the HTTP Request node. If a service has an API and returns JSON, n8n can work with it. Zapier's equivalent is limited to a list of approved integrations, and the HTTP action node in Zapier lacks n8n's data transformation capabilities.

Connecting n8n to your best open source alternatives to Zapier research is useful context if you want to compare n8n against Activepieces, Make (formerly Integromat), or Pipedream before committing. n8n is the strongest choice for technical teams who want maximum flexibility, but Activepieces is a compelling alternative if you want something closer to Zapier's interface without the depth of n8n's feature set.

Handling Complex Migrations: Data Transformation and Edge Cases

The migration from Zapier to n8n is rarely as simple as mapping Zapier nodes to n8n nodes one-for-one. Real Zaps accumulate business logic over time — filter conditions, formatter transformations, lookup steps, and edge-case handling that aren't immediately obvious when reading the workflow overview.

The most common source of migration headaches is Zapier's Formatter step. Zapier's Formatter handles text manipulation, date formatting, number conversions, and data splitting through a point-and-click interface that abstracts away the underlying transformation logic. In n8n, you have two options: use the built-in expressions (which cover most common transformations using JavaScript syntax) or use a Code node for anything complex. The Code node is more powerful but requires writing actual JavaScript, which is a shift for non-technical users who relied on Zapier's Formatter.

Date handling deserves particular attention during migration. Zapier normalizes dates to ISO 8601 format internally, which means Zapier users often don't think about date formatting until they migrate and discover that their source system outputs dates in MM/DD/YYYY format and their destination system expects YYYY-MM-DD. n8n's expression syntax handles date manipulation using JavaScript's Date object or the Luxon library (available as $luxon in expressions), giving you precise control over formatting but requiring you to be explicit about it.

Zapier's multi-step delay and scheduling features have direct n8n equivalents that work differently under the hood. Zapier's Delay step pauses execution within a running workflow, billing task credits for the wait period. n8n's Wait node pauses execution in a way that doesn't consume server resources during the wait — the workflow is serialized to the database and resumed when the timer fires. For workflows that include long delays (hours or days), this is meaningfully more efficient and eliminates the task credit consumption Zapier charges for the waiting period.

Error notification patterns from your Zapier setup need to be rebuilt in n8n. Many Zapier users have relied on Zapier's built-in email notifications for failed Zaps without setting them up explicitly — they came on by default. n8n's Error Trigger node requires explicit configuration, but it's more powerful once set up. You can route errors to Slack, create tickets in your project management tool, or trigger a remediation workflow automatically. Combine this with monitoring via Grafana vs Uptime Kuma to get alerts when n8n itself is down or unreachable, which is the failure mode that Zapier's cloud infrastructure makes invisible but self-hosted n8n makes your responsibility to monitor.

After Migration: Getting the Most from n8n

Once you've completed the migration, there are several practices that distinguish teams getting maximum value from n8n from those using it as a simple Zapier replacement.

Workflow organization matters more than you expect. n8n allows you to create folders and tag workflows, and establishing a naming convention early prevents the chaos of 50 workflows named "Untitled workflow" and its variants. A convention like [SERVICE]-[TRIGGER]-[ACTION] (e.g., STRIPE-payment_received-notify_slack) makes it immediately clear what each workflow does without opening it.

Template workflows from n8n's community library save significant time. The community has shared hundreds of production-ready workflow templates covering common integration patterns. Before building a new workflow from scratch, search the n8n template library — there's a reasonable chance someone has already solved your exact problem and shared the workflow JSON that can be imported directly.

The sub-workflow pattern is worth adopting for any automation that's used in multiple contexts. Create a dedicated n8n workflow for each reusable action (send Slack notification, create CRM contact, log to spreadsheet) and call these from parent workflows using the Execute Workflow node. When you need to change the Slack message format or update the CRM field mapping, you change it in one place and the update propagates to every workflow that calls the sub-workflow automatically. This is the kind of maintainable automation architecture that Zapier's flat workflow model makes structurally impossible.

The execution history in n8n is worth configuring thoughtfully. By default, n8n stores all execution data, which for high-volume automations can grow quickly. Setting a retention policy (prune executions older than 30 days, and only store error executions beyond 7 days) keeps the database size manageable without losing the diagnostic value of recent execution history. This is particularly important for automations triggered by webhooks, which can receive thousands of events per day from active systems.

For teams migrating from Zapier who relied on Zapier's built-in Zapier Tables or Google Sheets as lightweight data stores within workflows, n8n's direct database nodes (PostgreSQL, MySQL, SQLite, MongoDB) give you more powerful and reliable alternatives. Building a workflow that reads from and writes to a PostgreSQL table is a common pattern for stateful automations — tracking which records have been processed, storing intermediate results, or maintaining a queue of items to be worked through. This capability existed in Zapier only through third-party integrations with databases or through the limited Storage by Zapier product, but n8n makes it a first-class workflow primitive.


Compare automation platforms on OSSAlt — integration count, pricing, and self-hosting options side by side.

See open source alternatives to Zapier on OSSAlt.

The SaaS-to-Self-Hosted Migration Guide (Free PDF)

Step-by-step: infrastructure setup, data migration, backups, and security for 15+ common SaaS replacements. Used by 300+ developers.

Join 300+ self-hosters. Unsubscribe in one click.