/install n8n-autopilot
n8n Autopilot — AI Workflow Builder & Deployer
By Dr. FIRAS — LinkedIn
Build complete n8n workflows from natural language, validate them, and deploy them to your n8n instance — all in one step. No placeholders, no TODOs, no manual assembly required.
Golden Rules
ALWAYS:
- Generate every node with real, configured parameters (URLs, paths, expressions)
- Wire all connections explicitly in the
connectionsobject - Include exactly one trigger node per workflow
- Assign node positions for a clean canvas layout (~200 px spacing)
- Validate the workflow before presenting it to the user
- Offer to deploy automatically when
N8N_API_KEYis configured
NEVER:
- Output placeholder nodes ("configure this later", "add your logic here")
- Leave
url,path, orjsCodefields empty - Create disconnected nodes
- Present partial flows expecting manual completion
Setup
Two environment variables are needed:
| Variable | Where to find it |
|---|---|
N8N_API_KEY |
n8n UI → Settings → API → Create API Key |
N8N_BASE_URL |
Your instance URL, e.g. https://n8n.example.com |
Set them via OpenClaw settings (~/.config/openclaw/settings.json):
{
"skills": {
"n8n-autopilot": {
"env": {
"N8N_API_KEY": "your-key",
"N8N_BASE_URL": "https://your-n8n.example.com"
}
}
}
}
Verify connectivity:
python3 scripts/n8n_deploy.py ping
Workflow Generation Pipeline
Follow these steps for every workflow request:
Step 1 — Understand the intent
Determine four things before writing JSON:
- Trigger: webhook, schedule, manual, or external event?
- Data source: webhook body, API, database, file?
- Processing: transforms, conditionals, enrichment?
- Output: API call, notification, database write, webhook response?
If the request is clear, skip to generation. Do not over-ask.
Step 2 — Plan the node chain
Map the flow mentally:
Trigger → [Ingest] → [Transform] → [Branch?] → [Act] → [Respond/Store]
Step 3 — Generate the JSON
Use the WorkflowForge builder (see scripts/workflow_forge.py) or write
raw JSON. Output a single valid JSON object ready for n8n's "Import from JSON".
Step 4 — Self-validate
Run through the validation checklist below. Fix every issue before showing the user. You can also call:
python3 scripts/workflow_inspector.py check --file workflow.json
Step 5 — Deploy (if API is configured)
python3 scripts/n8n_deploy.py push --file workflow.json
python3 scripts/n8n_deploy.py push --file workflow.json --activate
Step 6 — Explain
Provide a brief node-by-node table and import/credential instructions.
JSON Skeleton
{
"name": "Descriptive Workflow Name",
"nodes": [],
"connections": {},
"active": false,
"settings": { "executionOrder": "v1" }
}
Node structure
{
"id": "unique-uuid-v4",
"name": "Human Readable Name",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4,
"position": [500, 300],
"parameters": { ... },
"credentials": { "httpHeaderAuth": { "id": "1", "name": "My Auth" } }
}
Connection structure
{
"connections": {
"Source Node Name": {
"main": [
[{ "node": "Target Node Name", "type": "main", "index": 0 }]
]
}
}
}
- Keys = node names (not IDs)
main= array of arrays (outer = output index, inner = targets)- IF nodes: index 0 = true, index 1 = false
- Terminal nodes must NOT appear as keys
Node Catalog (Quick Ref)
Triggers
| Type | Ver | Purpose |
|---|---|---|
n8n-nodes-base.manualTrigger |
1 | Testing / manual runs |
n8n-nodes-base.webhook |
2 | HTTP webhook receiver |
n8n-nodes-base.scheduleTrigger |
1 | Cron / interval |
Logic & Transform
| Type | Ver | Purpose |
|---|---|---|
n8n-nodes-base.code |
2 | JavaScript / Python |
n8n-nodes-base.set |
3 | Map / rename / add fields |
n8n-nodes-base.if |
2 | Conditional branch |
n8n-nodes-base.switch |
3 | Multi-way routing |
n8n-nodes-base.merge |
3 | Combine streams |
n8n-nodes-base.splitInBatches |
3 | Loop / batch |
n8n-nodes-base.noOp |
1 | No-op terminus |
HTTP & Response
| Type | Ver | Purpose |
|---|---|---|
n8n-nodes-base.httpRequest |
4 | Any REST call |
n8n-nodes-base.respondToWebhook |
1 | Webhook reply |
Popular Integrations
| Type | Ver | Purpose |
|---|---|---|
n8n-nodes-base.slack |
2 | Slack messages |
n8n-nodes-base.gmail |
2 | Gmail |
n8n-nodes-base.googleSheets |
4 | Google Sheets |
n8n-nodes-base.notion |
2 | Notion |
n8n-nodes-base.postgres |
2 | PostgreSQL |
n8n-nodes-base.telegram |
2 | Telegram |
AI / LLM
| Type | Ver | Purpose |
|---|---|---|
@n8n/n8n-nodes-langchain.openAi |
1 | OpenAI completions |
@n8n/n8n-nodes-langchain.lmChatOpenAi |
1 | OpenAI chat model |
For full credential mapping, see references/node-catalog.md.
Expression Cheat Sheet
| Pattern | Meaning |
|---|---|
={{ $json.field }} |
Current item field |
={{ $json["field-name"] }} |
Hyphenated field |
={{ $node["Name"].json.field }} |
Upstream node field |
={{ $input.all() }} |
All items (Code node) |
={{ $input.first().json.f }} |
First item field |
={{ $now.toISO() }} |
Current ISO timestamp |
={{ $vars.MY_VAR }} |
Environment variable |
Validation Checklist
Before outputting any workflow, verify:
Structure:
-
nodesarray exists and is non-empty -
connectionscovers every non-terminal node - Every node has
id,name,type,typeVersion,position,parameters
Integrity:
- Exactly one trigger node
- Node names are unique
- Node IDs are unique UUIDs
- No required parameter is empty (
url,path,jsCode)
Graph:
- Every connection target matches a real node name
- IF/Switch nodes define all expected output branches
- No unreachable (disconnected) nodes
- No cycles in the execution graph
Credentials:
- Nodes that need auth include a
credentialsblock - Credential type names are correct for their node
Expressions:
-
={{ ... }}references point to fields that upstream nodes produce
CLI Reference
Deployment (n8n_deploy.py)
# Connectivity check
python3 scripts/n8n_deploy.py ping
# List workflows
python3 scripts/n8n_deploy.py ls [--active]
# Push (create) a workflow
python3 scripts/n8n_deploy.py push --file workflow.json [--activate]
# Inspect a deployed workflow
python3 scripts/n8n_deploy.py inspect --id \x3Cwf-id>
# Activate / deactivate
python3 scripts/n8n_deploy.py on --id \x3Cwf-id>
python3 scripts/n8n_deploy.py off --id \x3Cwf-id>
# Trigger manual execution
python3 scripts/n8n_deploy.py run --id \x3Cwf-id> [--payload '{"key":"val"}']
# View recent executions
python3 scripts/n8n_deploy.py history --id \x3Cwf-id> [--limit 10]
# Execution details
python3 scripts/n8n_deploy.py exec-detail --id \x3Cexec-id>
# Execution statistics
python3 scripts/n8n_deploy.py stats --id \x3Cwf-id> [--days 7]
# Delete workflow
python3 scripts/n8n_deploy.py rm --id \x3Cwf-id>
Validation & Diagnostics (workflow_inspector.py)
# Validate a local file
python3 scripts/workflow_inspector.py check --file workflow.json
# Validate a deployed workflow
python3 scripts/workflow_inspector.py check --id \x3Cwf-id>
# Full diagnostic report (structure + performance)
python3 scripts/workflow_inspector.py diagnose --id \x3Cwf-id> [--days 14]
# Optimization suggestions only
python3 scripts/workflow_inspector.py optimize --id \x3Cwf-id>
Programmatic Builder (workflow_forge.py)
# Build from a recipe YAML and deploy
python3 scripts/workflow_forge.py build --recipe recipe.yaml --deploy
# Export as JSON
python3 scripts/workflow_forge.py build --recipe recipe.yaml --output wf.json
Optimization Heuristics
Apply when generating workflows:
- Fan-out over chaining: independent API calls should branch in parallel, not run sequentially.
- Batch large datasets: use
splitInBatchesinstead of Code-node loops. - Error paths: add an Error Trigger or IF-based error branch for workflows with external API calls.
- Timeouts: set
executionTimeoutinsettingsfor long-running flows. - Avoid duplicate fetches: fetch once, reshape with Set/Code.
- Split at 15 nodes: suggest sub-workflows via Execute Workflow node.
Output Formatting
Every workflow response must include:
- A one-sentence summary of the workflow's purpose
- The complete JSON in a fenced code block
- A node explanation table:
| # | Node | Type | What it does |
|---|---|---|---|
| 1 | Webhook Trigger | webhook | Receives POST requests |
| 2 | Parse Input | set | Extracts email and name |
- Import instructions: "Open n8n → Workflows → Import from JSON → paste"
- Credentials the user must configure post-import
- (If API is configured) an offer to auto-deploy
Common Flow Patterns
Webhook → Transform → Respond
Webhook → Set (extract) → Code (transform) → Respond to Webhook
Schedule → Fetch → Store
Schedule → HTTP Request (fetch) → Code (process) → Google Sheets (append)
Webhook → Branch → Multi-action
Webhook → IF → true: Slack notify → NoOp
false: Email alert → NoOp
Polling with error handling
Schedule → HTTP Request → IF (ok?) → true: Process → Store
false: Slack error alert
File Layout
n8n-autopilot/
├── SKILL.md # This file
├── README.md # Project overview
├── scripts/
│ ├── n8n_deploy.py # API client + deployment CLI
│ ├── workflow_forge.py # Programmatic workflow builder
│ └── workflow_inspector.py # Validation + diagnostics
└── references/
└── node-catalog.md # Node types & credential mapping
Troubleshooting
| Symptom | Fix |
|---|---|
N8N_API_KEY not set |
Export the variable or add to OpenClaw settings |
HTTP 401 Unauthorized |
Regenerate API key in n8n Settings → API |
Connection refused |
Check N8N_BASE_URL — include protocol and port |
| Validation: cycle detected | Break circular connections; use sub-workflows |
| Execution timeout | Add executionTimeout in settings; optimize slow nodes |
| Rate limit (429) | Insert Wait nodes; use batch processing |
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install n8n-autopilot - After installation, invoke the skill by name or use
/n8n-autopilot - Provide required inputs per the skill's parameter spec and get structured output
What is skill n8n by Dr. FIRAS?
AI-powered n8n workflow builder and deployer by Dr. FIRAS. Generates production-ready n8n workflow JSON from natural language, validates structure and logic,... It is an AI Agent Skill for Claude Code / OpenClaw, with 247 downloads so far.
How do I install skill n8n by Dr. FIRAS?
Run "/install n8n-autopilot" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is skill n8n by Dr. FIRAS free?
Yes, skill n8n by Dr. FIRAS is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does skill n8n by Dr. FIRAS support?
skill n8n by Dr. FIRAS is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created skill n8n by Dr. FIRAS?
It is built and maintained by Dr FIRAS (@drfirass); the current version is v1.0.0.