Tooluck logoTooluck
SKILL.md

n8n-subworkflows

Agent skill fromczlonkowski/n8n-skills

Build reusable, composable n8n sub-workflows. Use when extracting shared logic, building anything multi-step or reused across workflows, or any workflow over ~10 nodes — and whenever the user mentions sub-workflows, Execute Workflow, reuse, shared/common logic, modular workflows, "Define Below" inputs, waitForSubWorkflow, mode each vs all, or exposing a workflow as an agent tool. Covers typed sub-workflow inputs, all-vs-each execution, verb-first naming for discovery, stateless vs stateful design, and splitting by input shape.

How to install n8n-subworkflows

install n8n-subworkflows
# install the n8n-skills pack with the skills CLI
npx skills add czlonkowski/n8n-skills

# or add only this skill to Claude Code: copy the folder

skills/n8n-subworkflows/

# into

~/.claude/skills/n8n-subworkflows/ (all projects)

.claude/skills/n8n-subworkflows/ (one project)

skills/n8n-subworkflows/SKILL.md

MITFull file
1# n8n Sub-workflows
2
3A 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.
4
5That 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.
6
7This 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.
8
9---
10
11## The two non-negotiables
12
13Everything else is judgement. These two are not.
14
15### 1. Search before you build
16
17Before 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**:
18
19```
20n8n_list_workflows() # scan the library
21n8n_get_workflow({ id: "<candidate>" }) # read its inputs/outputs + body
22```
23…

Excerpt shown under the repository's MIT license.

More skills in n8n-skills

Keep exploring

Similar skill repositories

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates