agentsclimarketplace

N8n workflow generator

Skill xmqywx/claude-code-skills/skills/n8n-workflow-generator

Generate production-ready n8n workflow JSON from natural language descriptions. Describe what you want to automate, and get importable n8n JSON with proper node connections, error handling, and credential placeholders. Supports webhooks, schedules, API calls, AI nodes, and conditional logic.From its SKILL.md

Install
npx -y skills add xmqywx/claude-code-skills --skill n8n-workflow-generator

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.7 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it

n8n Workflow Generator

Generate complete, importable n8n workflow JSON from a natural language description of what you want to automate.

Steps

1. Understand the Automation Goal

Ask the user (if not clear from context):

  • What should trigger the workflow? (schedule, webhook, manual, event from another app)
  • What data needs to be processed? (API responses, form submissions, database records, files)
  • What's the desired output? (send email, update database, post to Slack, create document, trigger another workflow)
  • Error handling preference? (retry, notify, skip, stop)

If the user gives a brief description (e.g., "send me a Slack message when a new Shopify order comes in"), infer the full pipeline and state assumptions.

2. Design the Workflow Architecture

Before generating JSON, outline the workflow in plain language:

## Workflow Design

**Name**: [descriptive name]
**Trigger**: [trigger type and config]

### Node Pipeline
1. [Trigger Node] → Starts the workflow
2. [Node 2] → [what it does]
3. [Node 3] → [what it does]
   ├── Success → [Node 4a]
   └── Failure → [Error Handler]
4. [Node 4] → [final output]

### Data Flow
- Trigger outputs: { field1, field2, ... }
- Node 2 transforms: { ... } → { ... }
- Node 3 sends to: [destination]

### Credentials Required
- [Service]: [credential type] (e.g., Shopify: API Key, Slack: OAuth2)

Get user confirmation before generating JSON. If the user says "just build it", proceed directly.

3. Generate n8n Workflow JSON

Generate a complete, valid n8n workflow JSON that can be imported via n8n → Workflows → Import from File.

Required JSON structure:

{
  "name": "Workflow Name",
  "nodes": [
    {
      "parameters": {},
      "id": "unique-uuid",
      "name": "Node Name",
      "type": "n8n-nodes-base.nodeType",
      "typeVersion": 1,
      "position": [x, y]
    }
  ],
  "connections": {
    "Node Name": {
      "main": [
        [
          {
            "node": "Next Node Name",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "tags": []
}

Rules for valid n8n JSON:

  1. Node IDs: Use UUID format (e.g., "a1b2c3d4-e5f6-7890-abcd-ef1234567890")
  2. Position: Space nodes vertically by 200px and horizontally by 300px. Start at [250, 300].
  3. Connections: Reference nodes by name, not id. Connection index 0 = main output, index 1 = error output (if applicable).
  4. Credential placeholders: Use "credentials": { "serviceApi": { "id": "REPLACE_WITH_CREDENTIAL_ID", "name": "REPLACE_WITH_CREDENTIAL_NAME" } }
  5. Settings: Always include "executionOrder": "v1" for modern n8n.
  6. Active: Always set to false — user activates after testing.

Common Node Types Reference

Triggers:

  • n8n-nodes-base.scheduleTrigger — Cron/interval schedule
  • n8n-nodes-base.webhook — HTTP webhook endpoint
  • n8n-nodes-base.manualTrigger — Manual execution

Data Processing:

  • n8n-nodes-base.set — Set/transform fields
  • n8n-nodes-base.if — Conditional branching
  • n8n-nodes-base.switch — Multi-way branching
  • n8n-nodes-base.merge — Merge multiple inputs
  • n8n-nodes-base.splitInBatches — Process items in batches
  • n8n-nodes-base.code — Custom JavaScript/Python code
  • n8n-nodes-base.filter — Filter items by condition

Communication:

  • n8n-nodes-base.slack — Slack messages
  • n8n-nodes-base.emailSend — SMTP email
  • n8n-nodes-base.telegram — Telegram messages

HTTP/API:

  • n8n-nodes-base.httpRequest — Generic HTTP requests
  • n8n-nodes-base.respondToWebhook — Respond to webhook trigger

Data Storage:

  • n8n-nodes-base.googleSheets — Google Sheets read/write
  • n8n-nodes-base.postgres — PostgreSQL queries
  • n8n-nodes-base.mySql — MySQL queries

AI (n8n 1.x+):

  • @n8n/n8n-nodes-langchain.agent — AI Agent with tools
  • @n8n/n8n-nodes-langchain.chainLlm — LLM Chain
  • @n8n/n8n-nodes-langchain.openAi — OpenAI API call

E-commerce:

  • n8n-nodes-base.shopify — Shopify API
  • n8n-nodes-base.wooCommerce — WooCommerce API

Error Handling:

  • n8n-nodes-base.stopAndError — Stop with error message
  • n8n-nodes-base.noOp — No operation (placeholder)

4. Add Error Handling

Every production workflow should include:

  1. Try/Catch pattern: Use the Error Trigger node or per-node error output
  2. Notification on failure: Send Slack/email when workflow fails
  3. Retry logic: For API calls, add retry on 429/5xx with exponential backoff via the node's retry settings

Add an error notification branch:

{
  "parameters": {
    "channel": "#alerts",
    "text": "Workflow '{{ $workflow.name }}' failed at node '{{ $execution.error.node.name }}': {{ $execution.error.message }}"
  },
  "name": "Error Notification",
  "type": "n8n-nodes-base.slack",
  "typeVersion": 2
}

5. Write the JSON to File

Save the generated JSON to a file using the Write tool:

  • Filename: workflow-[descriptive-name].json
  • Location: Current working directory or user-specified path
  • Validate: Ensure the JSON is valid and parseable

6. Provide Import Instructions

## Import Instructions

1. Open your n8n instance
2. Go to Workflows → Import from File
3. Select the generated JSON file
4. Update credential placeholders:
   - Look for nodes with "REPLACE_WITH_CREDENTIAL_ID"
   - Set up actual credentials in n8n Settings → Credentials
   - Assign credentials to each node
5. Test with manual execution first
6. Activate the workflow when ready

### Credentials to Set Up
- [Service 1]: [how to get API key/OAuth]
- [Service 2]: [how to get API key/OAuth]

Edge Cases

  • Complex branching (>5 paths): Use Switch node instead of nested IF nodes. Keep the workflow visually clean.
  • Large data volumes: Add SplitInBatches node with batch size of 10-50. Include rate limiting delays.
  • Multiple triggers: Create separate workflows per trigger type. Use sub-workflows for shared logic.
  • User asks for a workflow that's impossible: Explain the limitation and suggest the closest feasible alternative.
  • Sensitive data: Never hardcode API keys, tokens, or passwords in the JSON. Always use credential placeholders.
  • n8n Cloud vs self-hosted: Note if any nodes require self-hosted features (e.g., custom code execution, local file access).

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,645. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.