Your automations, as exported workflows you own forever.
Why switch
- ▸Zapier bills per task — a busy team burns $20→$100+/month for what is a cron job and two webhooks.
- ▸n8n workflows are JSON files: version-control them, self-host them, run unlimited tasks.
- ▸Self-hosted n8n connects to anything with an API, including your own internal services.
The migration
- 01
Deploy n8n
One container plus a volume for encrypted credentials. The AltStack compose persists everything under /home/node/.n8n.
bashrun on your servermkdir n8n && cd n8n curl -O https://raw.githubusercontent.com/aa-humaaan/thealtstack/main/docker-deploy/n8n/docker-compose.yml docker compose up -d - 02
Inventory your Zaps
List each Zap: trigger, actions, task run-rate. Delete the ones that fired twice last quarter — migrate only what earns its place.
- 03
Rebuild the top five first
n8n nodes exist for Gmail, Slack, Sheets, Notion, Discord, HTTP and more. Rebuild the top five Zaps; you will learn the editor and can decide the fate of the long tail.
- 04
Move credentials into n8n's vault
Store OAuth tokens as n8n credentials — encrypted at rest with your N8N_ENCRYPTION_KEY, which lives only on your server.
- 05
Schedule and monitor
Cron triggers replace polling Zaps. Add an error workflow that pings a Mattermost channel — you get better failure alerting than Zapier's email.
Gotchas — read before you cancel
- ⚠Zapier's built-in app logic (filters, paths) maps to n8n IF/Switch nodes — expect a rebuild, not an import.
- ⚠Some SaaS APIs need custom header auth — the HTTP Request node covers it.
- ⚠n8n self-hosted updates monthly; pin and back up the volume before upgrading.
Only cancel when this is true
- ✓A rebuilt workflow fires end-to-end on a test payload
- ✓Error workflow alerts to your chat channel on a forced failure
- ✓Task counter on your Zapier bill starts dropping
Replacing more than one tool?
The Stack Composer bundles n8n with the rest of your open-source stack into one docker-compose file.
Open in Stack Composer →