How each automation framework maps onto the Universal Workflow IR, and the practical differences that matter when importing, exporting, or repairing workflows across frameworks.
For the current support level of each framework, see docs/supported-frameworks.md.
Status in this repo: initial source library. The bulk of the indexed workflows are n8n.
- File shape: single JSON document; nodes in
nodes[], edges inconnections{}. - Trigger detection: look at nodes with
typestartingn8n-nodes-base.<trigger>— typical triggers arewebhook,cron,manualTrigger,interval,emailTrigger. - Credentials: node-level
credentialsblock referencing a credential ID, not the secret itself. Inline secrets in parameter values are a bug — seen8n-credentials-inline. - Code execution:
n8n-nodes-base.codeandn8n-nodes-base.function. Both should be flagged during audit. - IR mapping notes: n8n's
connectionsgraph maps onto IRsteps[].nextwith one entry per downstream output. Multi-input nodes need merge-step nodes in the IR.
- File shape: YAML or JSON exported from the Dify app; nodes include LLM blocks, knowledge retrieval, and tool calls.
- IR mapping notes: Dify's "blocks" are closer to IR
steps1:1, but variable scoping is global by default — needs explicit conversion to scoped IR inputs/outputs.
- File shape: code, not a static workflow file. Importing means parsing the graph construction at module load, not just reading JSON.
- IR mapping notes: edges are conditional functions in Python; the IR needs to capture the condition, not just the next-node target.
- File shape:
flows.json— a flat list of nodes withwires[]describing connections by node id. - IR mapping notes: subflows are first-class in Node-RED but not in n8n; the IR needs a
subworkflowstep kind for fidelity.
- These platforms are largely closed; importing involves either exported JSON (Make), published action plans (Zapier MCP), or component manifests (Pipedream).
- IR mapping notes: trigger semantics differ — Zapier "Zaps" are single-trigger by definition, Make "Scenarios" can be more graph-like.
- These are workflow engines for long-running, durable jobs rather than event-driven automation. Mapping is interesting but not the priority — they belong to a different class of problem (data pipelines, durable execution).
Honest note. Only the n8n entry above is backed by concrete code in this repo today. The rest describe how the IR is intended to extend. Do not assume framework support exists until an importer for that framework lands under tools/.