Make to n8n Migration Guide
· By AI Compare
Make users adapt to n8n fast. Here is how modules, routers, iterators and functions translate.
Why teams move from Make to n8n
- Credit usage: Make charges per module run, including every item in a loop. n8n Cloud charges one execution per workflow run, and self-hosted n8n is unlimited.
- Code: n8n's Code node removes the limits of built-in functions.
- Self-hosting and data control.
- AI agents with tools and memory.
Good news: the mental model is similar
Both tools use a visual canvas with data flowing between steps, so Make users adapt to n8n faster than Zapier users. The main differences:
| Make | n8n |
|---|---|
| Scenario | Workflow |
| Module | Node |
| Bundle | Item |
| Router | Switch / IF (or connect one node to several) |
| Filter on a route | Filter / IF node |
| Iterator | Usually not needed (nodes run per item); Split Out for arrays |
| Array aggregator | Aggregate node |
| Text aggregator | Aggregate + expression, or Code |
| Set variable / Set multiple variables | Edit Fields (Set) |
| Sleep | Wait |
| Custom webhook | Webhook node |
| HTTP – Make a request | HTTP Request |
| Data store | Data tables or a database |
| Error handlers (Resume, Ignore, Break) | Continue On Fail, Retry On Fail, Error Trigger workflow |
| Scheduling settings | Schedule Trigger node |
Mapping {{1.email}} | Expression {{ $json.email }} or {{ $('Trigger').item.json.email }} |
Can you import Make blueprints?
Make lets you export a scenario as a blueprint (JSON). n8n cannot import it directly, but the blueprint is a precise specification: module order, mapped fields and filters. Some community and commercial converters attempt automatic translation; treat their output as a starting draft and review every node.
Migration steps
- Inventory scenarios with their monthly credit usage (Make's organisation dashboard shows usage per scenario).
- Start with the biggest credit consumers, especially scenarios with iterators.
- Recreate connections as n8n credentials.
- Rebuild each scenario using the table above.
- Translate functions: Make functions like
formatDate,ifempty,splitbecome n8n expressions, for example{{ $json.date.toDateTime().toFormat('yyyy-MM-dd') }}or{{ $json.name ?? 'Unknown' }}. - Recreate error handling: set Retry On Fail on API nodes and build one Error Trigger workflow for alerts.
- Test, run in parallel, cut over, and switch off the Make scenario at the same time.
Watch out for
- Iterator habits: in n8n, you rarely need an explicit loop. Adding one by reflex can double-process data.
- Aggregation: if a Make scenario aggregates bundles before sending one message, use n8n's Aggregate node or "Execute Once" settings.
- Data stores: export Make data store records to CSV and import them into an n8n Data table or database before switching.
- Webhooks: update every source app to the new n8n webhook URL.
