N8

n8n-workflow-patterns

Apply proven architectural patterns when designing n8n workflows for automation and service integration.

Install

mkdir -p .claude/skills/n8n-workflow-patterns && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/8" && unzip -o skill.zip -d .claude/skills/n8n-workflow-patterns && rm skill.zip

Installs to .claude/skills/n8n-workflow-patterns

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Proven workflow architectural patterns from real n8n workflows. Use when building new workflows, designing workflow structure, choosing workflow patterns, planning workflow architecture, or asking about webhook processing, HTTP API integration, database operations, AI agent workflows, batch processing, or scheduled tasks. Always consult this skill when the user asks to create, build, or design an n8n workflow, automate a process, or connect services — even if they don't explicitly mention 'patterns'. Covers webhook, API, database, AI, batch processing, and scheduled automation architectures.
598 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Implement webhook processing patterns
  • Design HTTP API integration workflows
  • Execute database read and write operations
  • Build AI agent workflows with memory
  • Configure batch processing for large datasets

How it works

The skill provides architectural patterns and a validation checklist to guide the creation, testing, and deployment of n8n workflows.

Inputs & outputs

You give it
Workflow requirements and data flow logic
You get back
Validated and structured n8n workflow JSON

When to use n8n-workflow-patterns

  • Designing webhook-based workflows
  • Integrating HTTP APIs in n8n
  • Building AI agent automation logic

About this skill

n8n Workflow Patterns

Proven architectural patterns for building n8n workflows.


The 6 Core Patterns

Based on analysis of real workflow usage:

  1. Webhook Processing (Most Common)

    • Receive HTTP requests → Process → Output
    • Pattern: Webhook → Validate → Transform → Respond/Notify
  2. HTTP API Integration

    • Fetch from REST APIs → Transform → Store/Use
    • Pattern: Trigger → HTTP Request → Transform → Action → Error Handler
  3. Database Operations

    • Read/Write/Sync database data
    • Pattern: Schedule → Query → Transform → Write → Verify
  4. AI Agent Workflow

    • AI agents with tools and memory
    • Pattern: Trigger → AI Agent (Model + Tools + Memory) → Output
  5. Scheduled Tasks

    • Recurring automation workflows
    • Pattern: Schedule → Fetch → Process → Deliver → Log
  6. Batch Processing (below)

    • Process large datasets in chunks with API rate limits
    • Pattern: Prepare → SplitInBatches → Process per batch → Accumulate → Aggregate

Pattern Selection Guide

When to use each pattern:

Webhook Processing - Use when:

  • Receiving data from external systems
  • Building integrations (Slack commands, form submissions, GitHub webhooks)
  • Need instant response to events
  • Example: "Receive Stripe payment webhook → Update database → Send confirmation"

HTTP API Integration - Use when:

  • Fetching data from external APIs
  • Synchronizing with third-party services
  • Building data pipelines
  • Example: "Fetch GitHub issues → Transform → Create Jira tickets"

Database Operations - Use when:

  • Syncing between databases
  • Running database queries on schedule
  • ETL workflows
  • Example: "Read Postgres records → Transform → Write to MySQL"

AI Agent Workflow - Use when:

  • Building conversational AI
  • Need AI with tool access
  • Multi-step reasoning tasks
  • Example: "Chat with AI that can search docs, query database, send emails"

Scheduled Tasks - Use when:

  • Recurring reports or summaries
  • Periodic data fetching
  • Maintenance tasks
  • Example: "Daily: Fetch analytics → Generate report → Email team"

Batch Processing - Use when:

  • Processing large datasets that exceed API batch limits
  • Need to accumulate results across multiple API calls
  • Nested loops (e.g., multiple categories × paginated API calls per category)
  • Example: "Fetch products for 4 markets × 1000 per API call → Aggregate all results"

Common Workflow Components

All patterns share these building blocks:

1. Triggers

  • Webhook - HTTP endpoint (instant)
  • Schedule - Cron-based timing (periodic)
  • Manual - Click to execute (testing)
  • Polling - Check for changes (intervals)

2. Data Sources

  • HTTP Request - REST APIs
  • Database nodes - Postgres, MySQL, MongoDB
  • Service nodes - Slack, Google Sheets, etc.
  • Code - Custom JavaScript/Python

3. Transformation

  • Set - Map/transform fields
  • Code - Complex logic
  • IF/Switch - Conditional routing
  • Merge - Combine data streams

4. Outputs

  • HTTP Request - Call APIs
  • Database - Write data
  • Communication - Email, Slack, Discord
  • Storage - Files, cloud storage

5. Error Handling

  • Error Trigger - Catch workflow errors
  • IF - Check for error conditions
  • Stop and Error - Explicit failure
  • Continue On Fail - Per-node setting

Workflow Creation Checklist

When building ANY workflow, follow this checklist:

Planning Phase

  • Identify the pattern (webhook, API, database, AI, scheduled)
  • List required nodes (use search_nodes)
  • Understand data flow (input → transform → output)
  • Plan error handling strategy

Implementation Phase

  • Create workflow with appropriate trigger
  • Add data source nodes
  • Configure authentication/credentials
  • Add transformation nodes (Set, Code, IF)
  • Add output/action nodes
  • Configure error handling

Validation Phase

  • Validate each node configuration (validate_node)
  • Validate complete workflow (validate_workflow)
  • Test with sample data
  • Handle edge cases (empty data, errors)

Deployment Phase

  • Review workflow settings (execution order, timeout, error handling)
  • Activate workflow using activateWorkflow operation
  • Monitor first executions
  • Document workflow purpose and data flow

Workflow lifecycle: validate, verify, test before activating

Building the nodes is the start, not the finish. Before a workflow goes live, run it through four gates — and remember the headline rule: validation passing is necessary, not sufficient. A workflow can validate clean and still drop items, pick the wrong Merge input, or post Slack messages as plain text. Clean validation means the shapes are right, not that the logic is.

  1. Validate. Run validate_workflow on the full JSON during build, or n8n_validate_workflow({ id }) once the workflow exists on the instance. Fix every error and re-validate. This catches schema, node-config, expression, and reference errors — the structural layer.
  2. Verify the connections. Pull the workflow with n8n_get_workflow({ id }) and read the connections object directly. Validation confirms connections aren't broken; it doesn't confirm they're correct. This is where you catch the valid-but-wrong wiring: a Merge whose useDataOfInput doesn't line up with the connection slot, a Switch fallback that connects to nothing, a fan-out branch that was never wired onward, an error output that goes nowhere. (See the n8n Node Configuration skill's NODE_FAMILY_GOTCHAS.md for the silent ones.)
  3. Test. Run n8n_test_workflow and inspect the output via n8n_executions. Confirm the output shape matches what consumers expect, fan-outs all produced data, and (for webhook APIs) the status/body/headers are right. Real side effects fire during a test — writes commit, messages send, external APIs are called. If any node has a user-visible side effect, confirm with the user before running, or test against safe data first.
  4. Activate only after the first three pass — using n8n_update_partial_workflow with the activateWorkflow operation. Don't activate straight off a clean validation; an active workflow that drops data or double-sends is worse than one that never started.

Skipping any gate trades a few minutes now for debugging a live, possibly stateful, possibly traffic-bearing workflow later. The trade is never worth it.


Data Flow Patterns

Linear Flow

Trigger → Transform → Action → End

Use when: Simple workflows with single path

Branching Flow

Trigger → IF → [True Path]
             └→ [False Path]

Use when: Different actions based on conditions

Parallel Processing

Trigger → [Branch 1] → Merge
       └→ [Branch 2] ↗

Use when: Independent operations that can run simultaneously

Loop Pattern

Trigger → Split in Batches → Process → Loop (until done)

Use when: Processing large datasets in chunks

Error Handler Pattern

Main Flow → [Success Path]
         └→ [Error Trigger → Error Handler]

Use when: Need separate error handling workflow


Batch Processing Pattern

SplitInBatches Loop

The SplitInBatches node splits a large dataset into smaller chunks for processing. Understanding its outputs is critical:

  • main[0] = done — fires ONCE after all batches complete
  • main[1] = each batch — fires per batch (this is the loop body)
Prepare Items → SplitInBatches → [main[1]: Process Batch] → (loops back)
                                  [main[0]: Done] → Limit 1 → Aggregate

Always add a Limit 1 node after the done output.

Choosing batchSize (the cost lever)

A SplitInBatches loop re-runs its whole body once per iteration — ~0.8 ms/iteration of engine overhead plus the body's own cost — so total ≈ ⌈items / batchSize⌉ × (overhead + body). batchSize is a direct speed dial:

  • Pick the largest batch your real constraint allows (API page size, rate limit, memory). Bigger batches = fewer iterations = less overhead; the body still sees every item.
  • batchSize: 1 is the expensive extreme — one full engine pass per item. Use it only when you must act on a single item at a time (nested-loop control, or an API that takes exactly one id).
  • If you're looping only to "go over the items" with no external constraint, you usually don't need the loop — a single All Items Code node processes the whole set far cheaper.

Cross-Iteration Data

After the loop, $('Node Inside Loop').all() returns ONLY the last batch's items. To accumulate across all iterations, use $getWorkflowStaticData('global') in a Code node inside the loop. See the n8n Code JavaScript skill for the full pattern.

Nested Loops

When processing N categories × M items per category (where an API has a batch limit):

Define Categories (N items)
  → Outer Loop (SplitInBatches, batchSize=1)
    → Prepare category data
    → Inner Loop (SplitInBatches, batchSize=1000)
      → API Call → Verify → (loops back to Inner Loop via main[1])
    → Inner done[0] → Rate Limit Delay → back to Outer Loop
  → Outer done[0] → Limit 1 → Final Aggregate

Wiring gotcha: The inner done[0] must connect back to the OUTER loop input, not to the aggregate. The outer done[0] feeds the final aggregate.

API Pagination

For APIs without multi-ID filtering, use id_from + date windowing for efficient pagination:

Schedule → Set Date Window → Fetch Page → Process
  → IF has more? → [true] Update id_from → Fetch Page (loop)
                  → [false] → Aggregate → Output

Dry-Run / Verification Tolerance

When testing with API write nodes disabled (for dry runs), downstream verification nodes receive the request body instead of the response. Make verific


Content truncated.

When not to use it

  • When building workflows without n8n
  • When ignoring error handling requirements

Prerequisites

n8n instanceAPI credentials

Limitations

  • Validation confirms structural integrity but not logical correctness
  • Requires manual testing for side effects

How it compares

It enforces a structured lifecycle of validation, verification, and testing before activation, preventing common errors found in manual workflow construction.

Compared to similar skills

n8n-workflow-patterns side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
n8n-workflow-patterns (this skill)162moNo flagsAdvanced
telegram-bot-builder1066moReviewIntermediate
mcp-integration218moReviewIntermediate
n8n-code-javascript72moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by czlonkowski

View all by czlonkowski

n8n-code-javascript

czlonkowski

Write JavaScript code in n8n Code nodes. Use when writing JavaScript in n8n, using $input/$json/$node syntax, making HTTP requests with $helpers, working with dates using DateTime, troubleshooting Code node errors, or choosing between Code node modes.

7122

n8n-code-python

czlonkowski

Write Python code in n8n Code nodes. Use when writing Python in n8n, using _input/_json/_node syntax, working with standard library, or need to understand Python limitations in n8n Code nodes.

775

n8n-mcp-tools-expert

czlonkowski

Expert guide for using n8n-mcp MCP tools effectively. Use when searching for nodes, validating configurations, accessing templates, managing workflows, or using any n8n-mcp tool. Provides tool selection guidance, parameter formats, and common patterns.

7128

n8n-node-configuration

czlonkowski

Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node_essentials and get_node_info, or learning common configuration patterns by node type.

7108

n8n-expression-syntax

czlonkowski

Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows.

6111

n8n-validation-expert

czlonkowski

Interpret validation errors and guide fixing them. Use when encountering validation errors, validation warnings, false positives, operator structure issues, or need help understanding validation results. Also use when asking about validation profiles, error types, or the validation loop process.

697

You might also like

telegram-bot-builder

davila7

Expert in building Telegram bots that solve real problems - from simple automation to complex AI-powered bots. Covers bot architecture, the Telegram Bot API, user experience, monetization strategies, and scaling bots to thousands of users. Use when: telegram bot, bot api, telegram automation, chat bot telegram, tg bot.

106130

mcp-integration

anthropics

This skill should be used when the user asks to "add MCP server", "integrate MCP", "configure MCP in plugin", "use .mcp.json", "set up Model Context Protocol", "connect external service", mentions "${CLAUDE_PLUGIN_ROOT} with MCP", or discusses MCP server types (SSE, stdio, HTTP, WebSocket). Provides comprehensive guidance for integrating Model Context Protocol servers into Claude Code plugins for external tool and service integration.

21123

n8n-code-javascript

czlonkowski

Write JavaScript code in n8n Code nodes. Use when writing JavaScript in n8n, using $input/$json/$node syntax, making HTTP requests with $helpers, working with dates using DateTime, troubleshooting Code node errors, or choosing between Code node modes.

7122

n8n-expression-syntax

czlonkowski

Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows.

6111

n8n-node-configuration

czlonkowski

Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node_essentials and get_node_info, or learning common configuration patterns by node type.

7108

opencode-orchestrator-creator

IgorWarzocha

Creates universal OpenCode orchestrator folder structure with specialized agent that can manage swarm servers via curl commands

8104

Search skills

Search the agent skills registry