n8n-hub
Centralized n8n hub for designing reliable flows (idempotency, retries, HITL) and operating them via the public REST API. Use for planning, JSON output, and lifecycle actions like list/publish/debug.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Install command
npx @skill-hub/cli install openclaw-skills-n8n-hub
Repository
Skill path: skills/codedao12/n8n-hub
Centralized n8n hub for designing reliable flows (idempotency, retries, HITL) and operating them via the public REST API. Use for planning, JSON output, and lifecycle actions like list/publish/debug.
Open repositoryBest for
Primary workflow: Research & Ops.
Technical facets: Full Stack, Backend, Testing.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: openclaw.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install n8n-hub into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/openclaw/skills before adding n8n-hub to shared team environments
- Use n8n-hub for development workflows
Works across
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: n8n-hub
description: Centralized n8n hub for designing reliable flows (idempotency, retries, HITL) and operating them via the public REST API. Use for planning, JSON output, and lifecycle actions like list/publish/debug.
---
# n8n Hub
This skill merges two tracks:
1) **Design**: plan dependable workflows and optionally emit `workflow.json`.
2) **Operate**: handle workflows/executions via the public REST API.
## Availability
- Public API access is disabled on free trial plans.
- An upgraded plan is required to use the API.
## Configuration
Suggested environment variables (or store in `.n8n-api-config`):
```bash
export N8N_API_BASE_URL="https://your-instance.app.n8n.cloud/api/v1" # or http://localhost:5678/api/v1
export N8N_API_KEY="your-api-key-here"
```
Create an API key at: n8n Settings → n8n API → Create an API key.
## Use this skill when
- You want a workflow built for idempotency, retries, logging, and review queues.
- You need importable `workflow.json` plus a runbook template.
- You want to list, publish, deactivate, or debug workflows/executions via API.
## Do not use when
- You need pure code automation without n8n.
- You want to bypass security controls or conceal audit trails.
## Inputs
**Required**
- Trigger type + schedule/timezone
- Success criteria and destinations (email/Drive/DB)
**Optional**
- Existing workflow JSON
- Sample payloads/records
- Dedup keys
## Outputs
- Default: design spec (nodes, data contracts, failure modes)
- On request: `workflow.json` + `workflow-lab.md` (from `assets/workflow-lab.md`)
## Auth header
All requests must include:
```
X-N8N-API-KEY: $N8N_API_KEY
```
## Quick actions (API)
### Workflows: list
```bash
curl -s -H "X-N8N-API-KEY: $N8N_API_KEY" "$N8N_API_BASE_URL/workflows" \
| jq '.data[] | {id, name, active}'
```
### Workflows: details
```bash
curl -s -H "X-N8N-API-KEY: $N8N_API_KEY" "$N8N_API_BASE_URL/workflows/{id}"
```
### Workflows: activate or deactivate
```bash
# Activate (publish)
curl -s -X POST -H "X-N8N-API-KEY: $N8N_API_KEY" \
-H "Content-Type: application/json" \
-d '{"versionId":"","name":"","description":""}' \
"$N8N_API_BASE_URL/workflows/{id}/activate"
# Deactivate
curl -s -X POST -H "X-N8N-API-KEY: $N8N_API_KEY" \
"$N8N_API_BASE_URL/workflows/{id}/deactivate"
```
### Webhook trigger
```bash
curl -s -X POST "$N8N_API_BASE_URL/../webhook/{webhook-path}" \
-H "Content-Type: application/json" \
-d '{"key":"value"}'
```
### Executions: list
```bash
curl -s -H "X-N8N-API-KEY: $N8N_API_KEY" \
"$N8N_API_BASE_URL/executions?limit=10" \
| jq '.data[] | {id, workflowId, status, startedAt}'
```
### Executions: retry
```bash
curl -s -X POST -H "X-N8N-API-KEY: $N8N_API_KEY" \
-H "Content-Type: application/json" \
-d '{"loadWorkflow":true}' \
"$N8N_API_BASE_URL/executions/{id}/retry"
```
## Design workflow checklist
1. Confirm trigger type and schedule/timezone.
2. Define inputs, outputs, and validation rules.
3. Choose dedup keys to keep runs idempotent.
4. Add observability (run_id, logs, status row).
5. Add retry policy and error branches.
6. Send failures to a review queue.
7. Add guardrails to prevent silent failure.
## Endpoint index
See `assets/endpoints-api.md` for the complete endpoint list.
## Notes and tips
- The API playground is available only on self-hosted n8n and uses real data.
- The n8n API node can call the public API from within workflows.
- Webhook URLs do not require the API key header.
- Execution data can be pruned by retention settings.
---
## Referenced Files
> The following files are referenced in this skill and included for context.
### assets/workflow-lab.md
```markdown
# n8n Workflow Operations
## Bot notes
- Use this template when the user asks for a runbook alongside `workflow.json`.
- Keep section headings intact and fill in each section.
- Do not include secrets; reference env vars or credential names only.
- Be explicit about idempotency, error handling, and logging.
## Goal
- What this workflow achieves and why it exists.
## Trigger
- Cron / Webhook / Manual
- Schedule, timezone, and expected frequency.
## Inputs
- Source systems and credentials (reference env vars only).
## Outputs
- Destinations (email, Google Sheet/Drive, database), including file naming.
## Idempotency
- Dedup key:
- Safe re-run behavior:
## Error handling
- Retry policy:
- Failure notifications:
- Review queue link/location:
## Operational checks
- Expected counts/thresholds:
- “Stop the line” conditions:
## Logging & audit
- Run ID:
- Logged fields per run:
- Log storage location:
```
### assets/endpoints-api.md
```markdown
# n8n Public API — Endpoint Index
## Base details
- Base URL: `{instance}/api/v1`
- Auth header: `X-N8N-API-KEY: {key}`
## Environment variables (optional)
Use these to shorten curl examples:
```bash
export N8N_API_BASE_URL="https://your-instance.app.n8n.cloud/api/v1" # or http://localhost:5678/api/v1
export N8N_API_KEY="your-api-key-here"
```
## Users (admin)
**Notes:** Often owner-only. Supports `?limit`, `?cursor`, `?includeRole`, `?projectId`.
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/users` | List users |
| POST | `/users` | Create one or more users |
| GET | `/users/{id}` | Get user by ID or email |
| DELETE | `/users/{id}` | Delete user |
| PATCH | `/users/{id}/role` | Change user's global role |
## Audit
**Notes:** Produces a security audit report.
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/audit` | Generate audit report |
## Executions
**Notes:** Filters: `?status`, `?workflowId`, `?projectId`, `?includeData`, `?limit`, `?cursor`.
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/executions` | List executions |
| GET | `/executions/{id}` | Get execution details |
| DELETE | `/executions/{id}` | Delete execution record |
| POST | `/executions/{id}/retry` | Retry an execution (`loadWorkflow` optional) |
## Workflows
**Notes:** Filters: `?active`, `?tags`, `?name`, `?projectId`, `?excludePinnedData`, `?limit`, `?cursor`.
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/workflows` | Create workflow |
| GET | `/workflows` | List workflows |
| GET | `/workflows/{id}` | Get workflow by ID |
| PUT | `/workflows/{id}` | Update workflow |
| DELETE | `/workflows/{id}` | Delete workflow |
| GET | `/workflows/{id}/{versionId}` | Get a specific workflow version |
| POST | `/workflows/{id}/activate` | Publish/activate workflow (optional `versionId`, `name`, `description`) |
| POST | `/workflows/{id}/deactivate` | Deactivate workflow |
| PUT | `/workflows/{id}/transfer` | Transfer workflow to another project |
| GET | `/workflows/{id}/tags` | Get workflow tags |
| PUT | `/workflows/{id}/tags` | Update workflow tags |
## Credentials
**Notes:** `GET /credentials` is not listed in the current public API docs snapshot.
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/credentials` | Create credential |
| PATCH | `/credentials/{id}` | Update credential |
| DELETE | `/credentials/{id}` | Delete credential |
| GET | `/credentials/schema/{credentialTypeName}` | Get credential type schema |
| PUT | `/credentials/{id}/transfer` | Transfer credential to another project |
## Tags
**Notes:** Supports `?limit`, `?cursor`.
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/tags` | Create tag |
| GET | `/tags` | List tags |
| GET | `/tags/{id}` | Get tag by ID |
| PUT | `/tags/{id}` | Update tag |
| DELETE | `/tags/{id}` | Delete tag |
## Variables
**Notes:** Filters: `?projectId`, `?state`, `?limit`, `?cursor`.
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/variables` | Create variable |
| GET | `/variables` | List variables |
| PUT | `/variables/{id}` | Update variable |
| DELETE | `/variables/{id}` | Delete variable |
## Data Tables
**Notes:** Filters: `?filter` (jsonString), `?sortBy`, `?search`, `?limit`, `?cursor`.
| Method | Endpoint | Description |
|--------|----------|-------------|
| GET | `/data-tables` | List data tables |
| POST | `/data-tables` | Create data table |
| GET | `/data-tables/{dataTableId}` | Get data table |
| PATCH | `/data-tables/{dataTableId}` | Update data table |
| DELETE | `/data-tables/{dataTableId}` | Delete data table |
| GET | `/data-tables/{dataTableId}/rows` | Query rows |
| POST | `/data-tables/{dataTableId}/rows` | Insert rows (`returnType=count|id|all`) |
| PATCH | `/data-tables/{dataTableId}/rows/update` | Update rows by filter |
| POST | `/data-tables/{dataTableId}/rows/upsert` | Upsert row by filter |
| DELETE | `/data-tables/{dataTableId}/rows/delete` | Delete rows by filter |
## Projects
**Notes:** Supports `?limit`, `?cursor`.
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/projects` | Create project |
| GET | `/projects` | List projects |
| PUT | `/projects/{projectId}` | Update project |
| DELETE | `/projects/{projectId}` | Delete project |
| POST | `/projects/{projectId}/users` | Add users to project |
| PATCH | `/projects/{projectId}/users/{userId}` | Change user's project role |
| DELETE | `/projects/{projectId}/users/{userId}` | Remove user from project |
## Source Control
**Notes:** Requires Source Control feature.
| Method | Endpoint | Description |
|--------|----------|-------------|
| POST | `/source-control/pull` | Pull changes from remote repo |
## Webhooks (no auth needed)
| Type | URL Pattern |
|------|-------------|
| Production | `{instance}/webhook/{path}` |
| Test | `{instance}/webhook-test/{path}` |
## Pagination
All list endpoints support:
- `?limit=N` — Results per page (default 100, max 250)
- `?cursor=xxx` — Cursor for next page (returned in response)
## Response Format
```json
{
"data": [...],
"nextCursor": "string | null"
}
```
## Error Codes
| Code | Meaning |
|------|---------|
| 401 | Invalid or missing API key |
| 404 | Resource not found |
| 409 | Conflict |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
```
---
## Skill Companion Files
> Additional files collected from the skill directory layout.
### _meta.json
```json
{
"owner": "codedao12",
"slug": "n8n-hub",
"displayName": "n8n Hub",
"latest": {
"version": "1.0.0",
"publishedAt": 1769964396321,
"commit": "https://github.com/clawdbot/skills/commit/e1f1f6a1fa513cb3d340dae836fa20ed7f8e1434"
},
"history": []
}
```