n8n Sub-workflows A sub-workflow is a reusable function. An Execute Workflow Trigger declares typed inputs, the body does the work, and the last node returns the output. A caller invokes it through an Execute Workflow node like any other step. That framing buys you the things functions buy you everywhere: encapsulation, reuse, testability, replaceability. It's the primary reuse mechanism in n8n, and it's badly underused. Without it, the same logic gets copy-pasted across workflows — then a bug gets fixed in two places, the third copy gets missed, and your "identical" copies quietly drift apart. This skill is about when to reach for a sub-workflow, how to define its input/output contract so callers (and agents) can actually use it, how to call it correctly ( all vs each , blocking vs fire-and-forget), and how to name it so it gets found instead of rebuilt. The two non-negotiables Everything else is judgement. These two are not. 1. Search before you build Before you write logic for a generic problem, check whether a sub-workflow already does it. The community MCP can't filter workflows by tag, so the name is the discovery surface : Show more Installs 864 Repository czlonkowski/n8n-skills GitHub Stars 6.1K First Seen Jun 18, 2026 Security Audits Gen Agent Trust Hub Pass Socket Pass Snyk Pass
n8n-subworkflows
安装
npx skills add https://github.com/czlonkowski/n8n-skills --skill n8n-subworkflows