Bidirectional workflow converter across automation platforms.
Build an engine that converts workflows Make → n8n and n8n → Make reliably, with full mapping traceability and AI support to accelerate conversion when exact rules are missing.
After stabilizing Make/n8n, scale to similar platforms (e.g., Zapier, Pipedream, Node-RED, etc.) using the same architecture.
- Bidirectional conversion:
Make <-> n8n. - Normalization into a canonical intermediate format (
IR: Intermediate Representation). - Versioned mapping catalog (nodes, fields, expressions, auth, triggers).
- Conversion compatibility report:
exact: 1:1 mappingpartial: partial mapping with warningsunsupported: unsupported with suggestion
- AI-assisted mode to:
- Complete mapping suggestions when exact rules do not exist.
- Generate replacement recommendations for modules/nodes.
- Explain conversion decisions.
-
Deterministic first, AI second
- Prefer explicit rules.
- Use AI only as a suggestion/help layer, never as the single source of truth.
-
Full traceability
- Every converted field should include:
- rule used,
- confidence level,
- notes.
- Every converted field should include:
-
Connector-based extensibility
- Each platform is integrated as an adapter (
import/export). - The engine works against IR, not directly against proprietary payloads.
- Each platform is integrated as an adapter (
-
Versioned mappings and schemas
- Prevent breakage when platform APIs evolve.
Source Workflow (Make/n8n)
|
v
[Source Adapter]
|
v
Intermediate Representation (IR)
|
+--> Validation + Lint + Diff
|
+--> Mapping Engine (rule-based)
| |
| +--> AI Assist (fallback / suggestions)
|
v
[Target Adapter]
|
v
Target Workflow (n8n/Make)
-
src/features/conversion/*- IR building, rule application, and target payload export.
-
src/features/mapping/*- Versioned capabilities/rules catalogs + deterministic resolver.
-
src/features/platform/*- Platform detection and payload parsing/validation (Make/n8n).
-
src/features/validation/*- Shape validation and consistency checks.
-
src/shared/*- Cross-feature infrastructure (I/O, shared utilities).
-
src/app/app-container.factory.ts- DI composition root that wires all services.
- Parse source payload into IR.
- Apply exact rules by node/module/field.
- Mark gaps and ambiguities.
- If
ai-assistis enabled, request structured suggestions. - Validate suggestions against target constraints.
- Generate target workflow + conversion report.
The system exposes a clear contract for AI assistance:
- Controlled input: IR fragment + node context + target capabilities.
- Structured output: JSON proposal with rationale and confidence.
- Guardrails:
- never apply AI output without validation,
- never auto-overwrite existing exact rules,
- log relevant prompts/responses for auditability.
- Define
IR v0. - Implement basic Make and n8n import/export.
- Create initial critical mapping catalog.
- Generate conversion report.
- CLI:
convert,validate,diff,explain. - Test suite with real cases.
- Mapping coverage metrics.
- Suggestion mode with approval flow.
- Confidence ranking + alternatives.
- Learning from approved mappings (human-curated).
- Plugin system for new adapters.
- Add Zapier/Pipedream/Node-RED (priority-based).
- Convert common Make↔n8n workflows with high fidelity.
- Clear report of what was converted and what was not.
- Short onboarding time to add new mappings.
- License: MIT
- Contribution guide: CONTRIBUTING.md
- Initial release plan: docs/release-plan-v0.1.0.md
- Project-wide rules: AGENTS.md
- GitHub Copilot: .github/copilot-instructions.md
- Claude / Claude Code: CLAUDE.md
- Cursor: .cursor/rules/architecture.mdc
Move into technical definition of:
IR v0schema.mapping rulecontract.conversion reportformat.ai-assistinput/output contract.
A base CLI is available for conversion and validation.
npm install
npm run build# Verify architecture rules (feature-first, DI, no legacy)
npm run arch:check
# Run full local quality pipeline (guard + typecheck + build)
npm run ci# Convert Make -> n8n
npx wfconv convert --from make --to n8n -i examples/make-sample.json -o out/n8n.json -r out/report.json
# Convert n8n -> Make
npx wfconv convert --from n8n --to make -i examples/n8n-sample.json -o out/make.json -r out/report.json
# Validate workflow shape
npx wfconv validate -i examples/make-sample.json --platform make
# Explain conversion viability
npx wfconv explain -i examples/n8n-sample.json --from n8n --to make
# Large workflows: memory-optimized mode
npx wfconv convert --from make --to n8n --low-memory --report-level summary -i examples/make-sample.json -o out/n8n.json -r out/report.jsonNote: this MVP currently provides IR normalization + basic export + reporting. Deep node/field mapping will keep expanding via the mapping catalog.
--low-memory: skipsrawcopy in IR and omitsirfrom internal result to reduce memory pressure.--report-level full|summary: controls report size.full: includes node-levelitems.summary: summary + audit only (much lighter for large workflows).
- CLI
convert,validate,explain - Unified IR with
nodes+connections - Fail-closed policy by default
- Versioned catalog (
capabilities+rules) - Runtime validation with Zod (payloads + catalogs)
- Conversion report with traceability (
ruleId, policy, confidence)
- HTTP Request (
make:http↔n8n-nodes-base.httpRequest) - Webhook (
make:webhook↔n8n-nodes-base.webhook) - Router/Switch (
make:router↔n8n-nodes-base.switch) - IF (
make:router↔n8n-nodes-base.if) (partial) - Set/Tools (
make:tools↔n8n-nodes-base.set) - Wait/Sleep (
make:sleep↔n8n-nodes-base.wait) - Scheduler (
make:scheduler↔n8n-nodes-base.scheduleTrigger) - Code/JSON (
make:json↔n8n-nodes-base.code) (partial)
- Credential/auth mapping per connector.
- Advanced expressions and conditions (normalization + translation).
- Complex connections (multi-output branching edge cases).
- Unit/integration/e2e tests with real fixtures.
- Expand catalog coverage for top community-used nodes.