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_node detail 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_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
{
"resource": "message",
"operation": "post",
"channel": "#general",
"text": "Hello!"
}
{
"resource": "message",
"operation": "update",
"messageId": "123",
"text": "Updated!"
}
Key: Resource + operation determine which fields are required!
2. Property Dependencies
Fields appear/disappear based on other field values
Example: HTTP Request node
{
"method": "GET",
"url": "https://api.example.com"
}
{
"method": "POST",
"url": "https://api.example.com",
"sendBody": true,
"body": {
"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
Step 2: Get node info
const info = get_node({
nodeType: "nodes-base.httpRequest"
});
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"
});
Step 5: Add required field
{
"method": "POST",
"url": "https://api.example.com/create",
"authentication": "none",
"sendBody": true
}
Step 6: Validate again
validate_node({...});
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({...});
get_node Detail Levels
Standard Detail (DEFAULT - Use This!)
β
Starting configuration
get_node({
nodeType: "nodes-base.slack"
});
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": true
}
Pattern 2: Operation Switch
Example: Slack resource/operation