n8n-workflow

star 45

Create, modify, and understand n8n automation workflows. Use when building n8n workflow JSON files, configuring nodes (HTTP Request, Code, IF, Merge, Webhook, Schedule), writing expressions with {{ $json }}, or implementing flow logic (conditionals, loops, error handling). Triggers for requests involving n8n, workflow automation, or node-based pipeline creation.

diegosouzapw By diegosouzapw schedule Updated 2/28/2026

name: n8n-workflow description: Create, modify, and understand n8n automation workflows. Use when building n8n workflow JSON files, configuring nodes (HTTP Request, Code, IF, Merge, Webhook, Schedule), writing expressions with {{ $json }}, or implementing flow logic (conditionals, loops, error handling). Triggers for requests involving n8n, workflow automation, or node-based pipeline creation.

n8n Workflow Creator

This skill provides guidance for creating valid n8n workflow JSON files.

๐Ÿšจ Critical: Webhook Data Structure

Most common mistake: Webhook data is nested under .body, NOT at root!

// โŒ WRONG - Returns undefined
{{ $json.email }}

// โœ… CORRECT - Webhook data is under .body
{{ $json.body.email }}

This applies to expressions AND Code nodes.

Workflow Structure

{
  "name": "Workflow Name",
  "nodes": [...],
  "connections": {...},
  "active": false,
  "settings": { "executionOrder": "v1" }
}

The 5 Core Patterns

  1. Webhook Processing - Webhook โ†’ Validate โ†’ Transform โ†’ Respond
  2. HTTP API Integration - Trigger โ†’ HTTP Request โ†’ Transform โ†’ Action
  3. Database Operations - Schedule โ†’ Query โ†’ Transform โ†’ Write โ†’ Verify
  4. AI Agent Workflow - Trigger โ†’ AI Agent (Model + Tools) โ†’ Output
  5. Scheduled Tasks - Schedule โ†’ Fetch โ†’ Process โ†’ Deliver โ†’ Log

See patterns.md for complete examples.

Essential Nodes

Node Type Use Case
Manual Trigger n8n-nodes-base.manualTrigger Test execution
Schedule n8n-nodes-base.scheduleTrigger Cron-based runs
Webhook n8n-nodes-base.webhook HTTP endpoints
HTTP Request n8n-nodes-base.httpRequest API calls
Code n8n-nodes-base.code JavaScript/Python
Set n8n-nodes-base.set Modify/create fields
IF n8n-nodes-base.if Conditional branching
Merge n8n-nodes-base.merge Combine branches
Loop Over Items n8n-nodes-base.splitInBatches Batch processing

See nodes.md for full configurations.

Expression Syntax

Expressions use {{ }} syntax:

{{ $json.fieldName }}              // Current item
{{ $json.body.email }}             // Webhook data (under .body!)
{{ $('NodeName').item.json.field }} // Other node's output
{{ $now }}                         // Current timestamp

โŒ Don't use {{ }} in:

  • Code nodes (use JavaScript directly)
  • Webhook paths
  • Credential fields

See expressions.md for advanced patterns.

Code Node - Critical Rules

ALWAYS return array with json property:

// โœ… CORRECT
const items = $input.all();
return items.map(item => ({ json: { ...item.json, processed: true } }));

// โœ… CORRECT - Single item
return [{ json: { result: 'success' } }];

// โŒ WRONG - No return
const data = $input.first();
// forgot return!

// โŒ WRONG - Object instead of array
return { json: { result: 'success' } };

Best practices:

  • Validate input: if (!items || items.length === 0) return [];
  • Use null checks: item.json?.user?.email || 'default'
  • Try-catch for API calls
  • Filter early, process late

Common Gotchas

Problem Solution
Can't access webhook data Use $json.body.field, not $json.field
Expression shows as text Wrap in {{ }}
Unexpected node order Check Settings โ†’ Execution Order (use v1)
Code node returns nothing Add return statement
API returns 401/403 Use Credentials section, not parameters

Connections Format

"connections": {
  "Source Node": {
    "main": [[{ "node": "Target Node", "type": "main", "index": 0 }]]
  }
}

IF node outputs: index: 0 = True, index: 1 = False

Best Practices

โœ… Do:

  • Use descriptive node names ("Fetch Users", not "HTTP Request 1")
  • Set onError: "continueRegularOutput" for resilience
  • Test incrementally, node by node
  • Document complex workflows with notes
  • Handle empty data cases

โŒ Don't:

  • Build workflows in one shot (iterate!)
  • Skip error handling
  • Hardcode credentials in parameters
  • Use Code node when built-in nodes suffice
  • Deploy without testing

Reference Documentation

Install via CLI
npx skills add https://github.com/diegosouzapw/awesome-omni-skill --skill n8n-workflow
Repository Details
star Stars 45
call_split Forks 14
navigation Branch main
article Path SKILL.md
More from Creator
diegosouzapw
diegosouzapw Explore all skills →