🛠️ N8nNode設定
n8nのノード設定時に、プロパティの依存関係や必須項目を考慮し、最適な構成を導き出すSkill。
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と 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.
🇯🇵 日本人クリエイター向け解説
n8nのノード設定時に、プロパティの依存関係や必須項目を考慮し、最適な構成を導き出すSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o n8n-node-configuration.zip https://jpskill.com/download/3194.zip && unzip -o n8n-node-configuration.zip && rm n8n-node-configuration.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/3194.zip -OutFile "$d\n8n-node-configuration.zip"; Expand-Archive "$d\n8n-node-configuration.zip" -DestinationPath $d -Force; ri "$d\n8n-node-configuration.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
n8n-node-configuration.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
n8n-node-configurationフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › N8n Node Configuration を使って、最小構成のサンプルコードを示して
- › N8n Node Configuration の主な使い方と注意点を教えて
- › N8n Node Configuration を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] n8n-node-configuration
n8nノード設定
プロパティの依存関係を考慮した、操作を意識したノード設定に関する専門的なガイダンスです。
使用する場面
- 特定のリソースと操作のためにn8nノードを正しく設定する必要がある場合。
- 必須フィールド、プロパティの依存関係、または適切な
get_node詳細レベルの選択がタスクに含まれる場合。 - 全体的なワークフローアーキテクチャではなく、ノード設定のトラブルシューティングを行っている場合。
設定の哲学
段階的な開示: 最小限から始め、必要に応じて複雑さを追加します。
設定のベストプラクティス:
detail: "standard"を指定したget_nodeが最もよく使われる検出パターンです。- 設定の編集間隔は平均56秒です。
- 1〜2Kトークンの応答で95%のユースケースをカバーします。
重要な洞察: ほとんどの設定は、完全なスキーマではなく、標準の詳細のみを必要とします!
コアコンセプト
1. 操作を意識した設定
すべてのフィールドが常に必須であるとは限りません - 操作によって異なります!
例: Slackノード
// 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
}
鍵: リソースと操作によって、どのフィールドが必須かが決まります!
2. プロパティの依存関係
他のフィールドの値に基づいてフィールドが表示/非表示になります
例: HTTP Requestノード
// 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": {...}
}
}
メカニズム: displayOptions がフィールドの可視性を制御します。
3. 段階的な検出
適切な詳細レベルを使用します:
-
get_node({detail: "standard"}) - デフォルト
- 概要を素早く把握できます(〜1-2Kトークン)。
- 必須フィールドと一般的なオプションが含まれます。
- 最初にこれを使用します - 95%のニーズをカバーします。
-
get_node({mode: "search_properties", propertyQuery: "..."}) (特定のフィールドを見つけるため)
- 名前でプロパティを検索します。
- 認証、ボディ、ヘッダーなどを探すときに使用します。
-
get_node({detail: "full"}) (完全なスキーマ)
- すべてのプロパティが含まれます(〜3-8Kトークン)。
- 標準の詳細では不十分な場合にのみ使用します。
設定ワークフロー
標準プロセス
1. ノードタイプと操作を特定します
↓
2. get_nodeを使用します(標準の詳細がデフォルトです)
↓
3. 必須フィールドを設定します
↓
4. 設定を検証します
↓
5. フィールドが不明な場合 → get_node({mode: "search_properties"})
↓
6. 必要に応じてオプションフィールドを追加します
↓
7. 再度検証します
↓
8. デプロイします
例: HTTP Requestの設定
ステップ1: 必要なものを特定します
// Goal: POST JSON to API
ステップ2: ノード情報を取得します
const info = get_node({
nodeType: "nodes-base.httpRequest"
});
// Returns: method, url, sendBody, body, authentication required/optional
ステップ3: 最小限の設定
{
"method": "POST",
"url": "https://api.example.com/create",
"authentication": "none"
}
ステップ4: 検証
validate_node({
nodeType: "nodes-base.httpRequest",
config,
profile: "runtime"
});
// → Error: "sendBody required for POST"
ステップ5: 必須フィールドを追加
{
"method": "POST",
"url": "https://api.example.com/create",
"authentication": "none",
"sendBody": true
}
ステップ6: 再度検証
validate_node({...});
// → Error: "body required when sendBody=true"
ステップ7: 設定を完了
{
"method": "POST",
"url": "https://api.example.com/create",
"authentication": "none",
"sendBody": true,
"body": {
"contentType": "json",
"content": {
"name": "={{$json.name}}",
"email": "={{$json.email}}"
}
}
}
ステップ8: 最終検証
validate_node({...});
// → Valid! ✅
get_nodeの詳細レベル
標準の詳細 (デフォルト - これを使用してください!)
✅ 設定の開始
get_node({
nodeType: "nodes-base.slack"
});
// detail="standard" is the default
返されるもの(〜1-2Kトークン):
- 必須フィールド
- 一般的なオプション
- 操作リスト
- メタデータ
使用法: 設定ニーズの95%をカバーします。
完全な詳細 (控えめに使用してください)
✅ 標準では不十分な場合
get_node({
nodeType: "nodes-base.slack",
detail: "full"
});
返されるもの(〜3-8Kトークン):
- 完全なスキーマ
- すべてのプロパティ
- すべてのネストされたオプション
警告: 応答が大きいため、標準で不十分な場合にのみ使用してください。
プロパティ検索モード
✅ 特定のフィールドを探している場合
get_node({
nodeType: "nodes-base.httpRequest",
mode: "search_properties",
propertyQuery: "auth"
});
使用法: 認証、ヘッダー、ボディフィールドなどを見つけるために使用します。
意思決定ツリー
┌─────────────────────────────────┐
│ 新しいノード設定を開始しますか?│
├─────────────────────────────────┤
│ YES → get_node (standard) │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ 標準で必要なものが揃っていますか?│
├─────────────────────────────────┤
│ YES → それで設定します │
│ NO → 続行します │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ 特定のフィールドを探していますか?│
├─────────────────────────────────┤
│ YES → search_propertiesモード │
│ NO → 続行します │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ まだ詳細が必要ですか? │
├─────────────────────────────────┤
│ YES → get_node({detail: "full"})│
└─────────────────────────────────┘
プロパティの依存関係の詳細
displayOptionsメカニズム
フィールドには可視性ルールがあります:
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
n8n Node Configuration
Expert guidance for operation-aware node configuration with property dependencies.
When to Use
- You need to configure an n8n node correctly for a specific resource and operation.
- The task involves required fields, property dependencies, or choosing the right
get_nodedetail level. - You are troubleshooting node setup rather than overall workflow architecture.
Configuration Philosophy
Progressive disclosure: Start minimal, add complexity as needed
Configuration best practices:
get_nodewithdetail: "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:
-
get_node({detail: "standard"}) - DEFAULT
- Quick overview (~1-2K tokens)
- Required fields + common options
- Use first - covers 95% of needs
-
get_node({mode: "search_properties", propertyQuery: "..."}) (for finding specific fields)
- Find properties by name
- Use when looking for auth, body, headers, etc.
-
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 field unclear → get_node({mode: "search_properties"})
↓
6. Add optional fields as needed
↓
7. Validate again
↓
8. Deploy
Example: Configuring HTTP Request
Step 1: Identify what you need
// Goal: POST JSON to API
Step 2: Get node info
const info = get_node({
nodeType: "nodes-base.httpRequest"
});
// Returns: method, url, sendBody, body, authentication required/optional
Step 3: Minimal config
{
"method": "POST",
"url": "https://api.example.com/create",
"authentication": "none"
}
Step 4: Validate
validate_node({
nodeType: "nodes-base.httpRequest",
config,
profile: "runtime"
});
// → Error: "sendBody required for POST"
Step 5: Add required field
{
"method": "POST",
"url": "https://api.example.com/create",
"authentication": "none",
"sendBody": true
}
Step 6: Validate again
validate_node({...});
// → Error: "body required when sendBody=true"
Step 7: Complete configuration
{
"method": "POST",
"url": "https://api.example.com/create",
"authentication": "none",
"sendBody": true,
"body": {
"contentType": "json",
"content": {
"name": "={{$json.name}}",
"email": "={{$json.email}}"
}
}
}
Step 8: Final validation
validate_node({...});
// → Valid! ✅
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
┌─────────────────────────────────┐
│ Starting new node config? │
├─────────────────────────────────┤
│ YES → get_node (standard) │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Standard has what you need? │
├─────────────────────────────────┤
│ YES → Configure with it │
│ NO → Continue │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Looking for specific field? │
├─────────────────────────────────┤
│ YES → search_properties mode │
│ NO → Continue │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Still need more details? │
├─────────────────────────────────┤
│ YES → get_node({detail: "full"})│
└─────────────────────────────────┘
Property Dependencies Deep Dive
displayOptions Mechanism
Fields have visibility rules:
{
"name": "body",
"displayOptions": {
"show": {
"sendBody": [true],
"method": ["POST", "PUT", "PATCH"]
}
}
}
Translation: "body" field shows when:
- sendBody = true AND
- method = POST, PUT, or PATCH
Common Dependency Patterns
Pattern 1: Boolean Toggle
Example: HTTP Request sendBody
// sendBody controls body visibility
{
"sendBody": true // → body field appears
}
Pattern 2: Operation Switch
Example: Slack resource/operation
// Different operations → different fields
{
"resource": "message",
"operation": "post"
// → Shows: channel, text, attachments, etc.
}
{
"resource": "message",
"operation": "update"
// → Shows: messageId, text (different fields!)
}
Pattern 3: Type Selection
Example: IF node conditions
{
"type": "string",
"operation": "contains"
// → Shows: value1, value2
}
{
"type": "boolean",
"operation": "equals"
// → Shows: value1, value2, different operators
}
Finding Property Dependencies
Use get_node with search_properties mode:
get_node({
nodeType: "nodes-base.httpRequest",
mode: "search_properties",
propertyQuery: "body"
});
// Returns property paths matching "body" with descriptions
Or use full detail for complete schema:
get_node({
nodeType: "nodes-base.httpRequest",
detail: "full"
});
// Returns complete schema with displayOptions rules
Use this when: Validation fails and you don't understand why field is missing/required
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:
- Choose resource
- Choose operation
- Use get_node to see operation-specific requirements
- Configure required fields
Pattern 2: HTTP-Based Nodes
Examples: HTTP Request, Webhook
Structure:
{
"method": "<HTTP_METHOD>",
"url": "<endpoint>",
"authentication": "<type>",
// ... method-specific fields
}
Dependencies:
- POST/PUT/PATCH → sendBody available
- sendBody=true → body required
- authentication != "none" → credentials required
Pattern 3: Database Nodes
Examples: Postgres, MySQL, MongoDB
Structure:
{
"operation": "<query|insert|update|delete>",
// ... operation-specific fields
}
Dependencies:
- operation="executeQuery" → query required
- operation="insert" → table + values required
- operation="update" → table + values + where required
Pattern 4: Conditional Logic Nodes
Examples: IF, Switch, Merge
Structure:
{
"conditions": {
"<type>": [
{
"operation": "<operator>",
"value1": "...",
"value2": "..." // Only for binary operators
}
]
}
}
Dependencies:
- Binary operators (equals, contains, etc.) → value1 + value2
- Unary operators (isEmpty, isNotEmpty) → value1 only + singleValue: true
Operation-Specific Configuration
Slack Node Examples
Post Message
{
"resource": "message",
"operation": "post",
"channel": "#general", // Required
"text": "Hello!", // Required
"attachments": [], // Optional
"blocks": [] // Optional
}
Update Message
{
"resource": "message",
"operation": "update",
"messageId": "1234567890", // Required (different from post!)
"text": "Updated!", // Required
"channel": "#general" // Optional (can be inferred)
}
Create Channel
{
"resource": "channel",
"operation": "create",
"name": "new-channel", // Required
"isPrivate": false // Optional
// Note: text NOT required for this operation
}
HTTP Request Node Examples
GET Request
{
"method": "GET",
"url": "https://api.example.com/users",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "httpHeaderAuth",
"sendQuery": true, // Optional
"queryParameters": { // Shows when sendQuery=true
"parameters": [
{
"name": "limit",
"value": "100"
}
]
}
}
POST with JSON
{
"method": "POST",
"url": "https://api.example.com/users",
"authentication": "none",
"sendBody": true, // Required for POST
"body": { // Required when sendBody=true
"contentType": "json",
"content": {
"name": "John Doe",
"email": "john@example.com"
}
}
}
IF Node Examples
String Comparison (Binary)
{
"conditions": {
"string": [
{
"value1": "={{$json.status}}",
"operation": "equals",
"value2": "active" // Binary: needs value2
}
]
}
}
Empty Check (Unary)
{
"conditions": {
"string": [
{
"value1": "={{$json.email}}",
"operation": "isEmpty",
// No value2 - unary operator
"singleValue": true // Auto-added by sanitization
}
]
}
}
Handling Conditional Requirements
Example: HTTP Request Body
Scenario: body field required, but only sometimes
Rule:
body is required when:
- sendBody = true AND
- method IN (POST, PUT, PATCH, DELETE)
How to discover:
// Option 1: Read validation error
validate_node({...});
// Error: "body required when sendBody=true"
// Option 2: Search for the property
get_node({
nodeType: "nodes-base.httpRequest",
mode: "search_properties",
propertyQuery: "body"
});
// Shows: body property with displayOptions rules
// Option 3: Try minimal config and iterate
// Start without body, validation will tell you if needed
Example: IF Node singleValue
Scenario: singleValue property appears for unary operators
Rule:
singleValue should be true when:
- operation IN (isEmpty, isNotEmpty, true, false)
Good news: Auto-sanitization fixes this!
Manual check:
get_node({
nodeType: "nodes-base.if",
detail: "full"
});
// Shows complete schema with operator-specific rules
Configuration Anti-Patterns
❌ Don't: Over-configure Upfront
Bad:
// Adding every possible field
{
"method": "GET",
"url": "...",
"sendQuery": false,
"sendHeaders": false,
"sendBody": false,
"timeout": 10000,
"ignoreResponseCode": false,
// ... 20 more optional fields
}
Good:
// Start minimal
{
"method": "GET",
"url": "...",
"authentication": "none"
}
// Add fields only when needed
❌ Don't: Skip Validation
Bad:
// Configure and deploy without validating
const config = {...};
n8n_update_partial_workflow({...}); // YOLO
Good:
// Validate before deploying
const config = {...};
const result = validate_node({...});
if (result.valid) {
n8n_update_partial_workflow({...});
}
❌ Don't: Ignore Operation Context
Bad:
// Same config for all Slack operations
{
"resource": "message",
"operation": "post",
"channel": "#general",
"text": "..."
}
// Then switching operation without updating config
{
"resource": "message",
"operation": "update", // Changed
"channel": "#general", // Wrong field for update!
"text": "..."
}
Good:
// Check requirements when changing operation
get_node({
nodeType: "nodes-base.slack"
});
// See what update operation needs (messageId, not channel)
Best Practices
✅ Do
-
Start with get_node (standard detail)
- ~1-2K tokens response
- Covers 95% of configuration needs
- Default detail level
-
Validate iteratively
- Configure → Validate → Fix → Repeat
- Average 2-3 iterations is normal
- Read validation errors carefully
-
Use search_properties mode when stuck
- If field seems missing, search for it
- Understand what controls field visibility
get_node({mode: "search_properties", propertyQuery: "..."})
-
Respect operation context
- Different operations = different requirements
- Always check get_node when changing operation
- Don't assume configs are transferable
-
Trust auto-sanitization
- Operator structure fixed automatically
- Don't manually add/remove singleValue
- IF/Switch metadata added on save
❌ Don't
-
Jump to detail="full" immediately
- Try standard detail first
- Only escalate if needed
- Full schema is 3-8K tokens
-
Configure blindly
- Always validate before deploying
- Understand why fields are required
- Use search_properties for conditional fields
-
Copy configs without understanding
- Different operations need different fields
- Validate after copying
- Adjust for new context
-
Manually fix auto-sanitization issues
- Let auto-sanitization handle operator structure
- Focus on business logic
- Save and let system fix structure
Detailed References
For comprehensive guides on specific topics:
- DEPENDENCIES.md - Deep dive into property dependencies and displayOptions
- OPERATION_PATTERNS.md - Common configuration patterns by node type
Summary
Configuration Strategy:
- Start with
get_node(standard detail is default) - Configure required fields for operation
- Validate configuration
- Search properties if stuck
- Iterate until valid (avg 2-3 cycles)
- Deploy with confidence
Key Principles:
- Operation-aware: Different operations = different requirements
- Progressive disclosure: Start minimal, add as needed
- Dependency-aware: Understand field visibility rules
- Validation-driven: Let validation guide configuration
Related Skills:
- n8n MCP Tools Expert - How to use discovery tools correctly
- n8n Validation Expert - Interpret validation errors
- n8n Expression Syntax - Configure expression fields
- n8n Workflow Patterns - Apply patterns with proper configuration
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.