Skip to main content

Overview

Validate individual node configurations before adding them to workflows. Supports two validation modes (minimal and full) with four validation profiles for different use cases. Includes automatic structure validation for complex n8n types like filters and resource mappers. Performance: Fast (< 100ms)

Parameters

nodeType
string
required
Node type with prefix.Example: "nodes-base.slack", "nodes-base.httpRequest"
config
object
required
Configuration object to validate.For simple nodes, use {}. For complex nodes, include fields like:
{
  "resource": "channel",
  "operation": "create",
  "channelId": "C1234567890"
}
mode
string
default:"full"
Validation mode.
profile
string
default:"ai-friendly"
Validation profile for mode="full".

Response

nodeType
string
The validated node type
workflowNodeType
string
Type to use in workflow JSON (e.g., “n8n-nodes-base.slack”)
displayName
string
Human-readable node name
valid
boolean
Whether the configuration is valid
errors
array
Array of error objects (only in mode="full")
warnings
array
Array of warning objects (only in mode="full")
suggestions
array
Array of improvement suggestions (only in mode="full")
missingRequiredFields
array
Array of missing required field names (only in mode="minimal")
summary
object
Validation summary (only in mode="full")

Examples

{
  "nodeType": "nodes-base.slack",
  "config": {
    "resource": "channel",
    "operation": "create",
    "channelName": "#general"
  }
}

Response Example (Full Mode)

{
  "nodeType": "nodes-base.slack",
  "workflowNodeType": "n8n-nodes-base.slack",
  "displayName": "Slack",
  "valid": false,
  "errors": [
    {
      "type": "MISSING_REQUIRED",
      "property": "channelId",
      "message": "Required field 'channelId' is missing",
      "fix": "Add channelId property with a valid Slack channel ID"
    }
  ],
  "warnings": [
    {
      "type": "MISSING_OPTIONAL",
      "property": "text",
      "message": "Optional field 'text' not provided",
      "suggestion": "Consider adding message text for better clarity"
    }
  ],
  "suggestions": [
    "Use channelId instead of channelName for better reliability"
  ],
  "summary": {
    "hasErrors": true,
    "errorCount": 1,
    "warningCount": 1,
    "suggestionCount": 1
  }
}

Response Example (Minimal Mode)

{
  "nodeType": "nodes-base.httpRequest",
  "workflowNodeType": "n8n-nodes-base.httpRequest",
  "displayName": "HTTP Request",
  "valid": false,
  "missingRequiredFields": ["url"]
}

Automatic Structure Validation

The validator automatically checks complex n8n type structures:
Validates filter conditions with 40+ operations:
  • Binary operators: equals, notEquals, contains, regex, etc.
  • Unary operators: isEmpty, isNotEmpty, isTrue, isFalse
  • Numeric operators: larger, smaller, between
  • Array operators: includes, excludes
{
  "conditions": {
    "combinator": "and",
    "conditions": [
      {
        "leftValue": "={{ $json.status }}",
        "operator": {"type": "string", "operation": "equals"},
        "rightValue": "active"
      }
    ]
  }
}
Validates data mapping configurations between systems.
{
  "mappingMode": "defineBelow",
  "value": {
    "email": "={{ $json.email }}",
    "name": "={{ $json.fullName }}"
  }
}
Validates variable assignment collections.
{
  "assignments": [
    {"name": "userId", "value": "={{ $json.id }}", "type": "string"}
  ]
}
Validates resource selection modes (id, name, url, list).
{
  "mode": "id",
  "value": "C1234567890"
}

Use Cases

  • Validate node configuration before adding to workflow
  • Quick check for required fields during development (use mode="minimal")
  • Pre-production validation with strict profile
  • Validate complex structures (filters, resource mappers)
  • Get suggestions for improving node configuration

Best Practices

Always call get_node() first to understand what fields are required.
// 1. Get node schema
get_node({"nodeType": "nodes-base.slack", "detail": "standard"})

// 2. Validate configuration
validate_node({
  "nodeType": "nodes-base.slack",
  "config": {"resource": "channel", "operation": "create"}
})
For rapid iteration, use minimal mode for quick checks.
{"nodeType": "nodes-base.httpRequest", "config": {...}, "mode": "minimal"}
Before deploying to production, validate with strict profile.
{
  "nodeType": "nodes-base.slack",
  "config": {...},
  "mode": "full",
  "profile": "strict"
}
Warnings often prevent runtime issues. Review them carefully.

Common Pitfalls

Empty config is valid for some nodes: Some nodes like Manual Trigger accept empty configuration {}.
Minimal mode only checks required fields: mode="minimal" does not validate value correctness, only presence of required fields.
Some warnings may be acceptable: Depending on your use case, some warnings may be intentional (e.g., optional fields).
Credential validation requires runtime: This tool cannot validate credentials - that requires runtime context from n8n.

Validation Profile Comparison

ProfileChecks RequiredChecks OptionalType ValidationStructure ValidationBest For
minimalYesNoBasicNoQuick checks
runtimeYesNoYesYesDevelopment
ai-friendlyYesPartialYesYesAI agents (default)
strictYesYesYesYesProduction

get_node

Get node schema first

validate_workflow

Validate complete workflows

n8n_autofix_workflow

Auto-fix workflow issues

Build docs developers (and LLMs) love