Featured Article

Migrate from Zapier to n8n: Complete Step-by-Step Guide

Mike Holownych
#n8n #zapier #migration #automation #tutorial

Quick answer: Migrate 10 Zapier zaps to n8n in 2-3 hours. Save $240-600/year.

Here’s the complete migration plan.

Why Migrate?

Zapier costs:

  • Professional: $240/year (750 tasks/month)
  • Team: $1,248/year (2,000 tasks/month)
  • Company: $5,988/year (50,000 tasks/month)

n8n costs:

  • Self-hosted: $60/year (unlimited tasks)
  • Cloud: $240/year (5,000 executions/month)

Savings: $180-5,928/year


Pre-Migration Checklist

Document current Zapier zaps:

  • List all active zaps
  • Note trigger app and actions
  • Understand business logic
  • Identify dependencies

Deploy n8n: Follow my n8n deployment guide

Check app availability: Most popular apps work in n8n. Check n8n integrations.

Plan downtime: Budget 2-3 hours for migration. Consider migrating zaps individually rather than all at once.


Step 1: Audit Your Zapier Account

Export zap list:

  1. Zapier Dashboard → Zaps
  2. Note each zap:
    • Trigger: What starts it?
    • Actions: What happens?
    • Filters: Any conditions?
    • Frequency: How often does it run?

Example inventory:

1. Google Forms → Google Sheets (Form responses)
2. Stripe → Slack (New customer alert)
3. Gmail → Trello (Email to task)
4. Schedule → SendGrid (Weekly report)
5. Typeform → Mailchimp (Add subscriber)

Step 2: Rebuild in n8n (One Zap at a Time)

Example Migration: Google Forms → Google Sheets

Zapier zap:

Trigger: New Google Forms response
Action: Add row to Google Sheets

n8n workflow:

1. Add "Google Forms Trigger" node
   - Select form
   - Test trigger

2. Add "Google Sheets" node
   - Operation: Append
   - Select spreadsheet
   - Map fields:
     - Email: \{\{$json.email\}\}
     - Name: \{\{$json.name\}\}
     - Timestamp: \{\{$json.timestamp\}\}

3. Test workflow
4. Activate

Time: 10-15 minutes per simple zap


Step 3: Common Zap Conversions

Zapier Filter → n8n IF Node

Zapier:

Only continue if Order Total > $100

n8n:

Add IF node
- Value 1: \{\{$json.order_total\}\}
- Operation: Larger
- Value 2: 100

Zapier Delay → n8n Wait Node

Zapier:

Delay for 1 day

n8n:

Add Wait node
- Amount: 1
- Unit: Days

Zapier Formatter → n8n Function Node

Zapier:

Format: Extract email domain

n8n:

const email = $json.email;
const domain = email.split('@')[1];
return [{ json: { domain } }];

Step 4: Handle Missing Apps

If app not available in n8n:

Option 1: HTTP Request Node

Most apps have APIs. Use HTTP Request node.

Example: Airtable (before native node existed)

HTTP Request node
- Method: POST
- URL: https://api.airtable.com/v0/BASE_ID/TABLE_NAME
- Headers:
  - Authorization: Bearer YOUR_API_KEY
  - Content-Type: application/json
- Body: JSON data

Option 2: Zapier Integration

n8n has a Zapier node! Keep some zaps in Zapier, trigger from n8n.

Option 3: Request Community Node

Check n8n community nodes or request one.


Step 5: Test Thoroughly

Testing checklist:

✅ Manual test (Execute Workflow button) ✅ Real trigger test (submit actual form, place test order) ✅ Edge cases (empty fields, large data, special characters) ✅ Error handling (what happens if API fails?) ✅ Notifications (are you getting expected alerts?)

Test for 1-2 days before deactivating Zapier zap.


Step 6: Run in Parallel

Don’t deactivate Zapier immediately!

Run both for 1 week:

  • Zapier zap stays active
  • n8n workflow also active
  • Compare results daily
  • Fix any discrepancies in n8n

After 1 week of perfect n8n performance: → Deactivate Zapier zap → Delete after 30 days (keep as backup)


Common Migration Issues

Issue: Webhook URLs Changed

Problem: Zapier webhook URL differs from n8n.

Solution:

  1. Update webhook URL in sending app
  2. Or use Zapier’s webhook as intermediary temporarily
  3. Or set up redirect from old webhook to new

Issue: Date Format Differences

Problem: Zapier formats dates as “MM/DD/YYYY”, n8n uses ISO8601.

Solution: Use Function node to convert:

const date = new Date($json.date);
const formatted = date.toLocaleDateString('en-US');
return [{ json: { date: formatted } }];

Issue: Missing Fields

Problem: Zapier auto-filled some fields, n8n doesn’t.

Solution: Add Set node to provide default values:

Set node
- phone: \{\{$json.phone || 'Not provided'\}\}
- country: \{\{$json.country || 'US'\}\}

Cost Savings Calculator

Small Business (10 zaps, 500 tasks/month)

Zapier Professional:

$19.99/month × 12 = $240/year

n8n Self-Hosted:

$5/month VPS × 12 = $60/year
Migration time: 3 hours @ $50/hour = $150
Total Year 1: $210

Savings Year 1: $30 Savings Year 2+: $180/year

Growing Business (25 zaps, 2,500 tasks/month)

Zapier Team:

$103.50/month × 12 = $1,242/year

n8n Self-Hosted:

$10/month VPS × 12 = $120/year (upgraded VPS)
Migration time: 8 hours @ $50/hour = $400
Total Year 1: $520

Savings Year 1: $722 Savings Year 2+: $1,122/year


Migration Timeline

Small setup (5-10 zaps):

  • Day 1: Audit and document (1 hour)
  • Day 2: Rebuild first 5 zaps (2 hours)
  • Day 3: Rebuild remaining zaps (1 hour)
  • Week 1: Test in parallel
  • Week 2: Deactivate Zapier

Large setup (25+ zaps):

  • Week 1: Audit and prioritize (4 hours)
  • Week 2-3: Rebuild critical zaps (10 hours)
  • Week 4: Rebuild remaining zaps (6 hours)
  • Week 5-6: Test in parallel
  • Week 7: Deactivate Zapier

Post-Migration Checklist

✅ All zaps converted to n8n workflows ✅ Tested for 1 week with no issues ✅ Error notifications configured ✅ Team trained on n8n interface ✅ Documentation updated ✅ Zapier account downgraded/cancelled

Keep Zapier free tier for 1-2 months as emergency backup.


FAQ

Q: Can I migrate gradually?

Yes! Migrate 1-2 zaps per week. No need to do all at once.

Q: What if migration goes wrong?

Keep Zapier active during testing. Easy to rollback.

Q: Do I need technical skills?

Basic understanding helps. If you built zaps in Zapier, you can handle n8n.

Q: How long does migration take?

10-15 minutes per simple zap. Complex zaps: 30-60 minutes.

Q: Will I lose data during migration?

No. Historical data stays in original apps. Only new triggers go to n8n.


Related:


About: I’m Mike Holownych. I help businesses migrate from Zapier to n8n. Learn more →

MH

About Mike Holownych

I help entrepreneurs build self-running businesses with DashNex + automation. n8n automation expert specializing in e-commerce, affiliate marketing, and business systems.