From n8n-autopilot
Builds and deploys n8n workflows end-to-end via a 3-phase pipeline: research, write/validate, deploy/test/inspect.
How this skill is triggered — by the user, by Claude, or both
Slash command
/n8n-autopilot:build-workflow "Description of what the workflow should do""Description of what the workflow should do"This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Take a natural-language description and ship it as a **verified live execution on n8n**. All three phases are mandatory. The skill is only complete after a successful execution has been inspected and reported.
Take a natural-language description and ship it as a verified live execution on n8n. All three phases are mandatory. The skill is only complete after a successful execution has been inspected and reported.
Companion plugin required. This skill leans on
n8n-as-code:n8n-architect(from then8nac-marketplaceplugin by Etienne Lescot) for schema research, authoring rules, and n8n best practices — installingn8n-autopilotwithout the companion plugin will work but you will miss the shared knowledge base. Install both:claude plugin marketplace add EtienneLescot/n8n-as-code claude plugin install n8n-as-code@n8nac-marketplace
n8n-autopilot is CLI-only (npx n8nac …). There is no mcp__n8n-as-code__* namespace in any working setup — the npm n8nac mcp entry-point is broken upstream and Etienne's plugin ships skill knowledge, not an MCP server. Use the table below.
| Command | Role |
|---|---|
npx n8nac skills examples search "<q>" / info <id> / download <id> | Community-template lookup (7000+ from n8nworkflows.xyz) — always Step 0 |
npx n8nac skills search "<q>" / node-info <name> --json / node-schema <name> --json | Node discovery + exact TypeScript defs from local schemas |
npx n8nac skills related "<q>" / guides "<q>" | Alternative nodes + tutorials |
npx n8nac skills validate <file> --strict --json | Local workflow validation |
npx n8nac push <file> --verify | Deploy + remote-state verification in one call |
npx n8nac test-plan <id> --json | Infer triggerType + suggestedPayload before testing |
npx n8nac test <id> --data '...' | HTTP-trigger live test (webhook/chat/form) |
npx n8nac execution get <execId> --include-data | Inspect execution output |
npx n8nac find <q> --json --remote | Search existing remote workflows |
npx n8nac workflow present <id> --json | Resolve the user-facing n8n URL — never string-concat <host>/workflow/<id> |
npx n8nac workflow credential-required <id> | Check credential readiness (exit 0 = all present, exit 1 = missing) |
Limits: n8nac test cannot fire schedule/manual/errorTrigger workflows (user runs "Execute Workflow" in the n8n UI). n8nac cannot publish drafts (mcpTrigger workflows need manual UI publish).
$ARGUMENTS = natural-language description of the workflow. Extract:
If $ARGUMENTS is empty, ask the user before proceeding.
Goal: Know exact node types, parameter names, and SDK patterns before writing code. Delegate schema-research details to the companion n8n-architect skill — it owns Schema-First Research, Workflow Authoring Rules, AI/LangChain rules, Common Mistakes.
Step 0 — Community-template lookup (MANDATORY before any node-by-node work):
npx n8nac skills examples search "<2-3 keywords from the description>" --json
Inspect top hits with npx n8nac skills examples info <id>. If a template matches the requested workflow by ≥70 % (same trigger family + same target service + comparable transformations), download it as the starting point:
npx n8nac skills examples download <id>
Then jump to Phase 1 step 1 with the downloaded file as the seed and only run Steps 1–2 below for nodes you add or change. Adapting an existing template is cheaper, less hallucination-prone, and lands on a community-proven pattern.
Step 1 — Node discovery (CLI-only):
npx n8nac skills search "<service>" --json # find candidate nodes
npx n8nac skills node-info <type> --json # exact parameters, credential keys, typeVersion
npx n8nac skills related "<service>" --json # alternatives + nearest docs
For AI agents/memory/vector stores also check npx n8nac skills guides "<topic>".
Step 2 — Code-Node specifics (only if the workflow uses Code nodes):
n8n-code-javascript covers $input / $json / $node / $helpers.httpRequest() / DateTime (Luxon) / top mistakesn8n-code-python covers _input / _json / standard library onlyStep 3 — Find similar existing workflows (optional):
npx n8nac find <query> --json --remote
Gate: Do not proceed to Phase 1 without verified parameter names for every node. Never guess — wrong keys are silently ignored by n8n at runtime.
Missing schema? If
npx n8nac skills node-info <type>returns empty or not-found for a community node:
- Look up the npm package name in
docs/COMMUNITY_NODES.md(Package column)- Run Stage 3 extraction immediately (see
/n8n-autopilot:pull-schemasskill) for that package- Rebuild
schemas/_index.json- Then re-run
skills node-info— or read the cached schema directly fromschemas/nodes/A missing schema is always recoverable via Stage 3.
Pull the closest existing workflow as starting point (optional, only if Step 0 / Step 3 surfaced a useful one):
npx n8nac pull <workflowId>
Or create a new .workflow.ts file from scratch in Decorator-TS format.
Write workflows/<name>.workflow.ts using Decorator-TS format. The companion n8n-architect skill documents the full authoring rules — these conventions are repo-specific additions on top:
[Trigger] Action - Target (e.g. [Webhook] Create Lead - Close CRM)Validate Input, Fetch Users, Send Alert)<workflow-name>.workflow.ts in workflows/ (e.g. workflows/create-lead.workflow.ts)@node({
name: 'Filter Inactive Users',
type: 'n8n-nodes-base.filter',
notes: 'Removes users with status != active before CRM sync',
notesInFlow: true, // shows the note on the canvas
position: [500, 300]
})
notesInFlow: true without notes has no effect.Respond to Webhook node — a webhook without a response will hang and time out for the caller.mcpTrigger rule: If the workflow uses
@n8n/n8n-nodes-langchain.mcpTrigger, always setavailableInMCP: trueexplicitly in the@workflowsettings block:settings: { executionOrder: "v1", callerPolicy: "any", availableInMCP: true, // required — prevents n8n API bug #25987 from resetting to false }The PreToolUse hook (
ensure-mcp-trigger-setting.sh) auto-fixesfalse → trueand warns when the field is missing entirely, but setting it explicitly here is the canonical source of truth.
Validate locally — single source of truth:
npx n8nac skills validate workflows/<name>.workflow.ts --strict --json
Fix any errors → re-validate. Do not push with errors.
Push + verify in one call:
npx n8nac push workflows/<name>.workflow.ts --verify
--verify fetches the workflow from n8n after push and validates it against the local schema. On mismatch: re-push. On success: proceed to Phase 2.
Gate: Local validation passes + push succeeds + verify passes. Fix and retry if needed.
After every successful push, ALWAYS run Phase 2. A workflow is only complete once an execution has been inspected (success or Class-A error reported to the user).
npx n8nac test-plan <workflowId> --json
Extract triggerType, testable, suggestedPayload. Reuse this result in Path A/B — do NOT call test-plan again.
Check the local .workflow.ts for @n8n/n8n-nodes-langchain.mcpTrigger:
grep -l "mcpTrigger\|n8n-nodes-langchain.mcpTrigger" workflows/<name>.workflow.ts
Set HAS_MCP_TRIGGER = true/false.
Routing:
HAS_MCP_TRIGGER=true → Path D (manual publish notice) added on top of A or BtriggerType ∈ {webhook, chat, form} → Path AtriggerType ∈ {schedule, manual, errorTrigger} → Path Bn8nac test calls the test URL (/webhook-test/) — no activation needed.
Check credential presence:
npx n8nac workflow credential-required <workflowId>
Live test (use suggestedPayload from Step 0):
# POST/body webhooks (default):
npx n8nac test <workflowId> --data '<suggestedPayload>'
# GET/HEAD webhooks (workflow reads $json.query):
npx n8nac test <workflowId> --query '<suggestedPayload>'
If the user provided specific test data in $ARGUMENTS, use that instead.
On Class A error (exit 0): inform user about missing credentials/model — do not block.
On Class B error (exit 1): fix workflow → re-validate → re-push (--verify) → re-test (max 3 cycles).
Inspect execution results:
npx n8nac execution get <executionId> --include-data
For large outputs, slice with jq:
npx n8nac execution get <executionId> --include-data | jq '.data.resultData.runData["<nodeName>"]'
Use the node-level output data in the Completion Report.
n8nac cannot trigger these — manual test required. Stop the auto-pipeline here and prompt the user:
Check credential presence (same as Path A step 1).
Resolve the user-facing URL via the CLI (do not string-concat):
npx n8nac workflow present <workflowId> --json
Display to user (prominent), using the URL from step 2:
⚠️ MANUAL TEST REQUIRED — non-HTTP trigger
Open n8n UI: <url from workflow present>
Click: "Execute Workflow" button (top right)
Then report back: execution-id (visible in the executions panel)
Once the user reports an execution-id, inspect results:
npx n8nac execution get <executionId> --include-data
Check status, node outputs, error messages.
On error: fix workflow → re-validate → re-push (--verify) → ask user to re-execute in UI (max 3 cycles).
After successful test, if the user wants the workflow active (cron starts running, webhook becomes available on the production URL):
npx n8nac workflow activate <workflowId>
Note: activate is NOT the same as publish for the new Two-Phase model — see Path D for mcpTrigger workflows.
HAS_MCP_TRIGGER=true)n8nac cannot publish drafts. After a successful push of an mcpTrigger workflow:
npx n8nac workflow present <workflowId> --json⚠️ MANUAL PUBLISH REQUIRED — mcpTrigger detected
The MCP endpoint will return 404 until the workflow is published.
Open n8n UI: <url from workflow present>
Click: "Publish" button
Confirm in the Completion Report once done.
Reminder:
npx n8nac pushwrites a new draft. The previously-published version stays live, but its MCP endpoint may diverge from the new draft. Each push to anmcpTriggerworkflow requires a fresh UI publish.
Gate: Execution status is success or Class A error reported to user. Maximum 3 fix cycles.
## Workflow deployed and verified
**Name:** [Workflow Name]
**ID:** [n8n workflow ID]
**URL:** [from `npx n8nac workflow present <id> --json`]
**Location:** workflows/<name>.workflow.ts
**trigger_type:** [webhook | schedule | manual | mcpTrigger | ...]
**test_path_used:** [Path A (auto) / Path B (manual UI) / Path D-extended]
**Live test result:**
- execution_id: [ID]
- execution_status: [success / error-class-A / error-class-B]
- Nodes executed: [list with status per node]
- output_sample: [key fields from last node, via `n8nac execution get --include-data`]
**MCP Access:** (only when mcpTrigger is present)
- mcp_endpoint: [URL]
- manually_published: yes / no — user confirmation required
**Files created:**
- workflows/<name>.workflow.ts
| Phase | Error | Action |
|---|---|---|
| 0 | npx n8nac skills node-info returns empty for a community node | Run Stage 3 (npm extraction, see /n8n-autopilot:pull-schemas) → rebuild index → read from schemas/nodes/ |
| 0 | Schema-research stuck on parameter ambiguity | Defer to n8n-as-code:n8n-architect skill — it has authoritative rules for resource/operation discriminators |
| 1 | Local validation fails | Fix code → re-validate |
| 1 | Push fails (conflict) | npx n8nac list → npx n8nac resolve <id> → retry |
| 1 | Push fails (archived) | Workflow is archived → read-only. Do not iterate — inform user: unarchive in n8n UI or create a new workflow |
| 1 | Verify fails (remote mismatch) | Re-push → re-verify |
| 2A | Class A error (exit 0) | Report missing credentials to user — do not iterate |
| 2A | Class B error (exit 1) | Fix workflow → re-validate → re-push (--verify) → re-test (max 3 cycles) |
| 2B | Manual UI execution fails | npx n8nac execution get <id> --include-data for error details → fix → re-push → ask user to re-execute |
npx claudepluginhub neurawork-git/n8n-autopilot --plugin n8n-autopilotCreates, edits n8n workflows as TypeScript files with node docs access and n8nac CLI for workspace init, preventing param errors.
Routes to the correct n8n specialist skill for building, editing, or debugging n8n workflows via the n8n-mcp MCP server. Provides working knowledge of every tool and enforces rules that prevent production breakage: validate-and-verify, invoke skills before actions, and never put secrets in text fields.
Provides proven architectural patterns for n8n workflows including webhook processing, HTTP API integration, database operations, AI agents, and scheduled tasks. Useful for high-level workflow design before node-by-node building.