Back to skills
SkillHub ClubResearch & OpsFull StackBackendTesting

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.

Stars
3,135
Hot score
99
Updated
March 20, 2026
Overall rating
C4.0
Composite score
4.0
Best-practice grade
A92.4

Install command

npx @skill-hub/cli install openclaw-skills-n8n-hub

Repository

openclaw/skills

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 repository

Best 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

Claude CodeCodex CLIGemini CLIOpenCode

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": []
}

```

n8n-hub | SkillHub