Skip to main content Startseite Ersteller beko2210 firstbrain n8n-expression-syntax
n8n-expression-syntax Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows.
Zur Installation springen Skills Marktplatz Entdecken und erkunden Sie KI-Skills, die von der Community erstellt wurden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Prompt kopierenPrompt-Details anzeigen Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
npx skills add https://github.com/BEKO2210/Firstbrain --skill n8n-expression-syntaxDer Befehl bleibt in einer Zeile. Scrollen Sie horizontal, um ihn vor dem Kopieren vollständig zu prüfen.
Sie bevorzugen eine lokale Kopie? Laden Sie die Dateien herunter, die SkillsMP derzeit vorliegen.
ZIP herunterladen Herunterladen... Mehr aus diesem Repository Verwandte Berufe SOC
Basierend auf der SOC-Berufsklassifikation
name n8n-expression-syntax description Validate n8n expression syntax and fix common errors. Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, or working with webhook data in workflows. type skill created 2026-02-27T00:00:00.000Z domain productivity category automation risk unknown source community tags ["skill","productivity","automation","n8n","expression","syntax"]
n8n Expression Syntax
Expert guide for writing correct n8n expressions in workflows.
When to Use
You need to write or debug n8n expressions using {{ ... }} syntax.
The task involves $json, $node, webhook payloads, or expression-related workflow errors.
You want syntax-correct dynamic values inside n8n nodes and parameters.
Expression Format
All dynamic content in n8n uses double curly braces :
{{expression}}
Examples :
✅ {{$json.email}}
✅ {{$json.body.name}}
✅ {{$node["HTTP Request"].json.data}}
❌ $json.email (no braces - treated as literal text)
❌ {$json.email} (single braces - invalid)
Core Variables
$json - Current Node Output
Access data from the current node:
{{$json.fieldName }}
{{$json['field with spaces' ]}}
{{$json.nested .property }}
{{$json.items [0 ].name }}
$node - Reference Other Nodes
Access data from any previous node:
{{$node["Node Name" ].json .fieldName }}
{{$node["HTTP Request" ].json .data }}
{{$node["Webhook" ].json .body .email }}
Important :
Node names must be in quotes
Node names are case-sensitive
Must match exact node name from workflow
$now - Current Timestamp
Access current date/time:
{{$now}}
{{$now.toFormat ('yyyy-MM-dd' )}}
{{$now.toFormat ('HH:mm:ss' )}}
{{$now. ({ : })}}
plus
days
7
$env - Environment Variables Access environment variables:
{{$env.API_KEY }}
{{$env.DATABASE_URL }}
🚨 CRITICAL: Webhook Data Structure Most Common Mistake : Webhook data is NOT at the root!
Webhook Node Output Structure {
"headers" : {...},
"params" : {...},
"query" : {...},
"body" : {
"name" : "John" ,
"email" : "john@example.com" ,
"message" : "Hello"
}
}
Correct Webhook Data Access ❌ WRONG : {{$json.name }}
❌ WRONG : {{$json.email }}
✅ CORRECT : {{$json.body .name }}
✅ CORRECT : {{$json.body .email }}
✅ CORRECT : {{$json.body .message }}
Why : Webhook node wraps incoming data under .body property to preserve headers, params, and query parameters.
Common Patterns
Access Nested Fields
{{$json.user .email }}
{{$json.data [0 ].name }}
{{$json.items [0 ].id }}
{{$json['field name' ]}}
{{$json['user data' ]['first name' ]}}
Reference Other Nodes
{{$node["Set" ].json .value }}
{{$node["HTTP Request" ].json .data }}
{{$node["Respond to Webhook" ].json .message }}
{{$node["Webhook" ].json .body .email }}
Combine Variables
Hello {{$json.body .name }}!
https :
{
"name" : "={{$json.body.name}}" ,
"email" : "={{$json.body.email}}"
}
When NOT to Use Expressions
❌ Code Nodes Code nodes use direct JavaScript access , NOT expressions!
const email = '={{$json.email}}' ;
const name = '{{$json.body.name}}' ;
const email = $json.email ;
const name = $json.body .name ;
const email = $input.item .json .email ;
const allItems = $input.all ();
❌ Webhook Paths
path : "{{$json.user_id}}/webhook"
path : "user-webhook"
❌ Credential Fields
apiKey : "={{$env.API_KEY}}"
Use n8n credential system, not expressions
Validation Rules
1. Always Use {{}} Expressions must be wrapped in double curly braces.
❌ $json.field
✅ {{$json.field }}
2. Use Quotes for Spaces Field or node names with spaces require bracket notation :
❌ {{$json.field name}}
✅ {{$json['field name' ]}}
❌ {{$node.HTTP Request .json }}
✅ {{$node["HTTP Request" ].json }}
3. Match Exact Node Names Node references are case-sensitive :
❌ {{$node["http request" ].json }}
❌ {{$node["Http Request" ].json }}
✅ {{$node["HTTP Request" ].json }}
4. No Nested {{}} Don't double-wrap expressions:
❌ {{{$json.field }}}
✅ {{$json.field }}
Common Mistakes For complete error catalog with fixes, see COMMON_MISTAKES.md
Quick Fixes Mistake Fix $json.field{{$json.field}}{{$json.field name}}{{$json['field name']}}{{$node.HTTP Request}}{{$node["HTTP Request"]}}{{{$json.field}}}{{$json.field}}{{$json.name}} (webhook){{$json.body.name}}'={{$json.email}}' (Code node)$json.email
Working Examples For real workflow examples, see EXAMPLES.md
Example 1: Webhook to Slack {
"body" : {
"name" : "John Doe" ,
"email" : "john@example.com" ,
"message" : "Hello!"
}
}
In Slack node text field :
New form submission!
Name: {{$json.body.name}}
Email: {{$json.body.email}}
Message: {{$json.body.message}}
Example 2: HTTP Request to Email {
"data" : {
"items" : [
{ "name" : "Product 1" , "price" : 29.99 }
]
}
}
In Email node (reference HTTP Request):
Product: {{$node["HTTP Request"].json.data.items[0].name}}
Price: ${{$node["HTTP Request"].json.data.items[0].price}}
Example 3: Format Timestamp
{{$now.toFormat ('yyyy-MM-dd' )}}
{{$now.toFormat ('HH:mm:ss' )}}
{{$now.toFormat ('yyyy-MM-dd HH:mm' )}}
Data Type Handling
Arrays
{{$json.users [0 ].email }}
{{$json.users .length }}
{{$json.users [$json.users .length - 1 ].name }}
Objects
{{$json.user .email }}
{{$json['user data' ].email }}
Strings
Hello {{$json.name }}!
{{$json.email .toLowerCase ()}}
{{$json.name .toUpperCase ()}}
Numbers
{{$json.price }}
{{$json.price * 1.1 }}
{{$json.quantity + 5 }}
Advanced Patterns
Conditional Content
{{$json.status === 'active' ? 'Active User' : 'Inactive User' }}
{{$json.email || 'no-email@example.com' }}
Date Manipulation
{{$now.plus ({days : 7 }).toFormat ('yyyy-MM-dd' )}}
{{$now.minus ({hours : 24 }).toISO ()}}
{{DateTime .fromISO ('2025-12-25' ).toFormat ('MMMM dd, yyyy' )}}
String Manipulation
{{$json.email .substring (0 , 5 )}}
{{$json.message .replace ('old' , 'new' )}}
{{$json.tags .split (',' ).join (', ' )}}
Debugging Expressions
Test in Expression Editor
Click field with expression
Open expression editor (click "fx" icon)
See live preview of result
Check for errors highlighted in red
Common Error Messages "Cannot read property 'X' of undefined"
→ Parent object doesn't exist
→ Check your data path
"X is not a function"
→ Trying to call method on non-function
→ Check variable type
Expression shows as literal text
→ Missing {{ }}
→ Add curly braces
Expression Helpers
Available Methods
.toLowerCase(), .toUpperCase()
.trim(), .replace(), .substring()
.split(), .includes()
.length, .map(), .filter()
.find(), .join(), .slice()
.toFormat(), .toISO(), .toLocal()
.plus(), .minus(), .set()
.toFixed(), .toString()
Math operations: +, -, *, /, %
Best Practices
✅ Do
Always use {{ }} for dynamic content
Use bracket notation for field names with spaces
Reference webhook data from .body
Use $node for data from other nodes
Test expressions in expression editor
❌ Don't
Don't use expressions in Code nodes
Don't forget quotes around node names with spaces
Don't double-wrap with extra {{ }}
Don't assume webhook data is at root (it's under .body!)
Don't use expressions in webhook paths or credentials
Related Skills
n8n MCP Tools Expert : Learn how to validate expressions using MCP tools
n8n Workflow Patterns : See expressions in real workflow examples
n8n Node Configuration : Understand when expressions are needed
Summary
Wrap expressions in {{ }}
Webhook data is under .body
No {{ }} in Code nodes
Quote node names with spaces
Node names are case-sensitive
Missing {{ }} → Add braces
{{$json.name}} in webhooks → Use {{$json.body.name}}
{{$json.email}} in Code → Use $json.email
{{$node.HTTP Request}} → Use {{$node["HTTP Request"]}}
COMMON_MISTAKES.md - Complete error catalog
EXAMPLES.md - Real workflow examples
Need Help? Reference the n8n expression documentation or use n8n-mcp validation tools to check your expressions.
Connections
Domain: [[Produktivitaet & Werkzeuge]]
Kategorie: [[Automatisierung & Workflows]]
Navigation: [[Skills Uebersicht]], [[Home]]