/n8n-node-configuration
Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node detail levels, or learning common configuration patterns by node type. Always use this skill when setting up node
$ npx -y skills add czlonkowski/n8n-skills --skill n8n-node-configuration --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/n8n-node-configuration
Context preview
The summary Claude sees to decide when to auto-load this skill.
Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node detail levels, or learning common configuration patterns by node type. Always use this skill when setting up node
SKILL.md
n8n-node-configuration.SKILL.mdname: n8n-node-configuration
description: Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node detail levels, or learning common configuration patterns by node type. Always use this skill when setting up node parameters — it explains which fields are required for each operation, how displayOptions control field visibility, and when to use patchNodeField for surgical edits vs full node updates.
n8n Node Configuration
Expert guidance for operation-aware node configuration with property dependencies.
---
Configuration Philosophy
**Progressive disclosure**: Start minimal, add complexity as needed
Configuration best practices:
- `get_node` with `detail: "standard"` is the most used discovery pattern
- 56 seconds average between configuration edits
- Covers 95% of use cases with 1-2K tokens response
**Key insight**: Most configurations need only standard detail, not full schema!
---
Core Concepts
1. Operation-Aware Configuration
**Not all fields are always required** - it depends on operation!
**Example**: Slack node
// For operation='post'
{
"resource": "message",
"operation": "post",
"channel": "#general", // Required for post
"text": "Hello!" // Required for post
}
// For operation='update'
{
"resource": "message",
"operation": "update",
"messageId": "123", // Required for update (different!)
"text": "Updated!" // Required for update
// channel NOT required for update
}**Key**: Resource + operation determine which fields are required!
2. Property Dependencies
**Fields appear/disappear based on other field values**
**Example**: HTTP Request node
// When method='GET'
{
"method": "GET",
"url": "https://api.example.com"
// sendBody not shown (GET doesn't have body)
}
// When method='POST'
{
"method": "POST",
"url": "https://api.example.com",
"sendBody": true, // Now visible!
"body": { // Required when sendBody=true
"contentType": "json",
"content": {...}
}
}**Mechanism**: displayOptions control field visibility
3. Progressive Discovery
**Use the right detail level**:
1. **get_node({detail: "standard"})** - DEFAULT
- Quick overview (~1-2K tokens)
- Required fields + common options
- **Use first** - covers 95% of needs
2. **get_node({mode: "search_properties", propertyQuery: "..."})** (for finding specific fields)
- Find properties by name
- Use when looking for auth, body, headers, etc.
3. **get_node({detail: "full"})** (complete schema)
- All properties (~3-8K tokens)
- Use only when standard detail is insufficient
---
Configuration Workflow
Standard Process
1. Identify node type and operation. 2. Use `get_node` (standard detail is default). 3. Configure required fields. 4. Validate configuration. 5. If a field is unclear → `get_node({mode: "search_properties"})`. 6. Add optional fields as needed. 7. Validate again. 8. Deploy.
Example: Configuring HTTP Request
The validate-driven loop in practice: start minimal (`method`, `url`, `authentication`), then let each `validate_node` error surface the next required field (`sendBody` for POST → `body` when `sendBody=true`) until valid. Full step-by-step walkthrough in **[OPERATION_PATTERNS.md](OPERATION_PATTERNS.md#worked-example-configuring-http-request-step-by-step)**.
---
get_node Detail Levels
Standard Detail (DEFAULT - Use This!)
**✅ Starting configuration**
get_node({
nodeType: "nodes-base.slack"
});
// detail="standard" is the default**Returns** (~1-2K tokens):
- Required fields
- Common options
- Operation list
- Metadata
**Use**: 95% of configuration needs
Full Detail (Use Sparingly)
**✅ When standard isn't enough**
get_node({
nodeType: "nodes-base.slack",
detail: "full"
});**Returns** (~3-8K tokens):
- Complete schema
- All properties
- All nested options
**Warning**: Large response, use only when standard insufficient
Search Properties Mode
**✅ Looking for specific field**
get_node({
nodeType: "nodes-base.httpRequest",
mode: "search_properties",
propertyQuery: "auth"
});**Use**: Find authentication, headers, body fields, etc.
Decision Tree
1. Starting a new node config → `get_node` (standard). 2. Standard has what you need → configure with it. Otherwise continue. 3. Looking for a specific field → `search_properties` mode. Otherwise continue. 4. Still need more → `get_node({detail: "full"})`.
---
Property Dependencies Deep Dive
Fields have `displayOptions` visibility rules: `show`/`hide` blocks where multiple conditions are AND'd and multiple values are OR'd (e.g. `body` shows when `sendBody=true` AND `method IN (POST, PUT, PATCH)`). The three recurring patterns are the boolean toggle (sendBody → body), the operation switch (post vs update show different fields), and type selection (string vs boolean conditions). To find what controls a field, use `get_node({mode: "search_properties", propertyQuery: "..."})` or `get_node({detail: "full"})` — especially when validation flags a field you don't see.
Mechanism details, all four dependency patterns, complex flows, nested dependencies, and troubleshooting are in **[DEPENDENCIES.md](DEPENDENCIES.md)** (quick-reference recap under [Quick Reference: displayOptions and Common Dependency Patterns](DEPENDENCIES.md#quick-reference-displayoptions-and-common-dependency-patterns)).
---
Common Node Patterns
Pattern 1: Resource/Operation Nodes
**Examples**: Slack, Google Sheets, Airtable
**Structure**:
{
"resource": "<entity>", // What type of thing
"operation": "<action>", // What to do with it
// ... operation-specific fields
}**How to configure**: 1. Choose resource 2. Choose operation 3. Use get_node to see operation-specific requirements
Read more
name: n8n-node-configuration description: Operation-aware node configuration guidance. Use when configuring nodes, understanding property dependencies, determining required fields, choosing between get_node detail levels, or learning common configuration patterns by node type. Always use this skill when setting up node parameters — it explains which fields are required for each operation, how displayOptions control field visibility, and when to use patchNodeField for surgical edits vs full node updates.
n8n Node Configuration
Expert guidance for operation-aware node configuration with property dependencies.
---
Configuration Philosophy
**Progressive disclosure**: Start minimal, add complexity as needed
Configuration best practices:
- `get_node` with `detail: "standard"` is the most used discovery pattern
- 56 seconds average between configuration edits
- Covers 95% of use cases with 1-2K tokens response
**Key insight**: Most configurations need only standard detail, not full schema!
---
Core Concepts
1. Operation-Aware Configuration
**Not all fields are always required** - it depends on operation!
**Example**: Slack node
// For operation='post'
{
"resource": "message",
"operation": "post",
"channel": "#general", // Required for post
"text": "Hello!" // Required for post
}
// For operation='update'
{
"resource": "message",
"operation": "update",
"messageId": "123", // Required for update (different!)
"text": "Updated!" // Required for update
// channel NOT required for update
}**Key**: Resource + operation determine which fields are required!
2. Property Dependencies
**Fields appear/disappear based on other field values**
**Example**: HTTP Request node
// When method='GET'
{
"method": "GET",
"url": "https://api.example.com"
// sendBody not shown (GET doesn't have body)
}
// When method='POST'
{
"method": "POST",
"url": "https://api.example.com",
"sendBody": true, // Now visible!
"body": { // Required when sendBody=true
"contentType": "json",
"content": {...}
}
}**Mechanism**: displayOptions control field visibility
3. Progressive Discovery
**Use the right detail level**:
1. **get_node({detail: "standard"})** - DEFAULT
- Quick overview (~1-2K tokens)
- Required fields + common options
- **Use first** - covers 95% of needs
2. **get_node({mode: "search_properties", propertyQuery: "..."})** (for finding specific fields)
- Find properties by name
- Use when looking for auth, body, headers, etc.
3. **get_node({detail: "full"})** (complete schema)
- All properties (~3-8K tokens)
- Use only when standard detail is insufficient
---
Configuration Workflow
Standard Process
1. Identify node type and operation. 2. Use `get_node` (standard detail is default). 3. Configure required fields. 4. Validate configuration. 5. If a field is unclear → `get_node({mode: "search_properties"})`. 6. Add optional fields as needed. 7. Validate again. 8. Deploy.
Example: Configuring HTTP Request
The validate-driven loop in practice: start minimal (`method`, `url`, `authentication`), then let each `validate_node` error surface the next required field (`sendBody` for POST → `body` when `sendBody=true`) until valid. Full step-by-step walkthrough in **[OPERATION_PATTERNS.md](OPERATION_PATTERNS.md#worked-example-configuring-http-request-step-by-step)**.
---
get_node Detail Levels
Standard Detail (DEFAULT - Use This!)
**✅ Starting configuration**
get_node({
nodeType: "nodes-base.slack"
});
// detail="standard" is the default**Returns** (~1-2K tokens):
- Required fields
- Common options
- Operation list
- Metadata
**Use**: 95% of configuration needs
Full Detail (Use Sparingly)
**✅ When standard isn't enough**
get_node({
nodeType: "nodes-base.slack",
detail: "full"
});**Returns** (~3-8K tokens):
- Complete schema
- All properties
- All nested options
**Warning**: Large response, use only when standard insufficient
Search Properties Mode
**✅ Looking for specific field**
get_node({
nodeType: "nodes-base.httpRequest",
mode: "search_properties",
propertyQuery: "auth"
});**Use**: Find authentication, headers, body fields, etc.
Decision Tree
1. Starting a new node config → `get_node` (standard). 2. Standard has what you need → configure with it. Otherwise continue. 3. Looking for a specific field → `search_properties` mode. Otherwise continue. 4. Still need more → `get_node({detail: "full"})`.
---
Property Dependencies Deep Dive
Fields have `displayOptions` visibility rules: `show`/`hide` blocks where multiple conditions are AND'd and multiple values are OR'd (e.g. `body` shows when `sendBody=true` AND `method IN (POST, PUT, PATCH)`). The three recurring patterns are the boolean toggle (sendBody → body), the operation switch (post vs update show different fields), and type selection (string vs boolean conditions). To find what controls a field, use `get_node({mode: "search_properties", propertyQuery: "..."})` or `get_node({detail: "full"})` — especially when validation flags a field you don't see.
Mechanism details, all four dependency patterns, complex flows, nested dependencies, and troubleshooting are in **[DEPENDENCIES.md](DEPENDENCIES.md)** (quick-reference recap under [Quick Reference: displayOptions and Common Dependency Patterns](DEPENDENCIES.md#quick-reference-displayoptions-and-common-dependency-patterns)).
---
Common Node Patterns
Pattern 1: Resource/Operation Nodes
**Examples**: Slack, Google Sheets, Airtable
**Structure**:
{
"resource": "<entity>", // What type of thing
"operation": "<action>", // What to do with it
// ... operation-specific fields
}**How to configure**: 1. Choose resource 2. Choose operation 3. Use get_node to see operation-specific requirements
Expert Claude Code skills for building flawless n8n workflows using the n8n-mcp MCP server
Repo: czlonkowski/n8n-skills
Other skills on n8n-mcp-skills.
- /n8n-agents
Design n8n AI agents the right way. Use when building or editing any @n8n/n8n-nodes-langchain.* AI node — an AI Agent, LLM chain, Text Classifier, or Information Extractor — and whenever the user mentions AI agents, LLM with tools, tool calling, $fromAI, system prompts, agent
Open skill - /n8n-binary-and-data
Handle files and binary data in n8n correctly. Use when working with files, images, PDFs, attachments, uploads or downloads, base64, vision/multimodal input, or when an AI agent needs a file as tool input or output — and whenever the user mentions $binary, binaryPropertyName,
Open skill - /n8n-code-javascript
Write JavaScript code in n8n Code nodes. Use when writing JavaScript in n8n, using $input/$json/$node syntax, making HTTP requests with this.helpers / the $helpers global, working with dates using DateTime, troubleshooting Code node errors, choosing between Code node modes, or
Open skill - /n8n-code-python
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. Use this skill when the user specifically requests Python for an n8n Code node. Note —
Open skill - /n8n-code-tool
Write JavaScript or Python for the n8n Custom Code Tool (@n8n/n8n-nodes-langchain.toolCode) — the AI-agent-callable tool, NOT the workflow Code node. Use when building a Code Tool attached to an AI Agent, writing code that an LLM will invoke, parsing the `query` input, returning
Open skill - /n8n-error-handling
Wire n8n error handling so failures are loud, structured, and recoverable. Use when building any webhook/API workflow, a scheduled or unattended workflow, or any path where a silent failure would drop user-visible work — and whenever the user mentions error handling, onError,
Open skill

