How to Migrate from Zapier to n8n
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:
- Go to Zapier → My Zaps
- Export or screenshot each Zap's trigger and actions
- 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:
| Zapier | n8n |
|---|---|
| Zap | Workflow |
| Trigger | Trigger node |
| Action | Action node |
| Filter | IF node |
| Formatter | Function node or built-in transforms |
| Path | Switch node |
| Delay | Wait node |
| Webhooks by Zapier | Webhook node |
| Schedule | Cron/Schedule node |
Example: Slack → Google Sheets (Simple)
Zapier: New message in Slack channel → Add row to Google Sheet
n8n:
- Add Slack Trigger node → configure channel
- Add Google Sheets node → Append Row
- Map fields: message → column A, user → column B, timestamp → column C
- Activate workflow
Example: Form → Email + CRM (Medium)
Zapier: Typeform submission → Filter (score > 50) → Send email + Create HubSpot contact
n8n:
- Webhook node (receive form data)
- IF node (check score > 50)
- True path: Split into two branches:
- Send Email node (Gmail/SMTP)
- HubSpot node (Create Contact)
- False path: Optional — log or ignore
Step 4: Connect Services
For each integration, authenticate in n8n:
- Click a node → Credentials → Create New
- Follow OAuth flow or enter API key
- Test connection
Common integrations and n8n node names:
| Service | n8n Node |
|---|---|
| Slack | Slack |
| Gmail | Gmail |
| Google Sheets | Google Sheets |
| HubSpot | HubSpot |
| Stripe | Stripe |
| GitHub | GitHub |
| Jira | Jira |
| Notion | Notion |
| Airtable | Airtable |
| Salesforce | Salesforce |
| PostgreSQL | Postgres |
| HTTP API | HTTP Request |
| Webhook | Webhook |
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:
- Error Trigger — catches errors from any workflow
- Retry on failure — automatic retries with backoff
- Error workflow — route errors to Slack/email notifications
Cost Comparison
| Usage | Zapier | n8n Self-Hosted | Savings |
|---|---|---|---|
| 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
| Week | Task |
|---|---|
| Week 1 | Deploy n8n, recreate simple Zaps (2-3 steps) |
| Week 2 | Recreate medium Zaps, test all workflows |
| Week 3 | Recreate complex Zaps, set up error handling |
| Week 4 | Monitor, verify, deactivate Zapier Zaps |
Compare automation platforms on OSSAlt — integration count, pricing, and self-hosting options side by side.