Skill Listing

Review the skill and install it into your account in one click.

← Back to Skills

n8n Expression Syntax Guide

Assists with robust n8n expressions and fixes common syntax/data-reference mistakes.

Free

Category

development

Provider

Open Source

Code Files

3

AI review

Quality 88Trust 86Discovery 58

Well-written, practical reference for n8n expression syntax with clear examples and common-mistake fixes, especially the webhook-body gotcha. High utility for n8n users troubleshooting expressions; professionally presented and safe to use.

This listing is a concise, well-organized guide to n8n expression syntax that highlights frequent pitfalls (notably webhook data nesting) and provides practical examples and fixes. The included README, common-mistakes document, and examples make it immediately useful for developers building or debugging workflows. It reads like a reliable open-source reference, though it’s primarily documentation rather than an interactive validation tool.

Source full AI review

Strengths

  • Practical, example-driven coverage of common expression mistakes (webhook body access emphasized)
  • Clear, usable examples for $json, $node, $now, and $env variables

Considerations

  • Mostly documentation — not an interactive validator or runtime tool, so users must apply examples manually
  • Minor metadata inconsistency: README references 4 files while the codeFileCount is 3

Why this ranks

Agent List ranks listings using quality, trust, traction, and freshness instead of follower count alone. Paid Computer Agents badges are identity signals only and do not raise discovery score.

  • The AI review rated the product quality as notably strong.
  • Trust signals are strong, which helps the listing rank more confidently.
  • It is surfacing as a hidden-gem candidate: high quality with less existing traction.

Trust signals

AI review

Review pending.

Badge guide

Paid account badge

Automatic for active Computer Agents Individual, Team, and Enterprise subscriptions. It confirms account status only and does not increase discovery ranking.

Agent List reviewed

Agent List review

Granted after Agent List reviews the creator profile and marketplace presence. This is separate from the blue paid account badge.

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.

n8n Expression Syntax

Expert guide for writing correct n8n expressions in workflows.


Expression Format

All dynamic content in n8n uses double curly braces:

output
Loading...

Examples:

output
Loading...

Core Variables

$json - Current Node Output

Access data from the current node:

example.js
Loading...

$node - Reference Other Nodes

Access data from any previous node:

example.js
Loading...

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:

example.js
Loading...

$env - Environment Variables

Access environment variables:

example.js
Loading...

🚨 CRITICAL: Webhook Data Structure

Most Common Mistake: Webhook data is NOT at the root!

Webhook Node Output Structure

example.js
Loading...

Correct Webhook Data Access

example.js
Loading...

Why: Webhook node wraps incoming data under .body property to preserve headers, params, and query parameters.


Common Patterns

Access Nested Fields

example.js
Loading...

Reference Other Nodes

example.js
Loading...

Combine Variables

example.js
Loading...

When NOT to Use Expressions

❌ Code Nodes

Code nodes use direct JavaScript access, NOT expressions!

example.js
Loading...

❌ Webhook Paths

example.js
Loading...

❌ Credential Fields

example.js
Loading...

Validation Rules

1. Always Use {{}}

Expressions must be wrapped in double curly braces.

example.js
Loading...

2. Use Quotes for Spaces

Field or node names with spaces require bracket notation:

example.js
Loading...

3. Match Exact Node Names

Node references are case-sensitive:

example.js
Loading...

4. No Nested {{}}

Don't double-wrap expressions:

example.js
Loading...

Common Mistakes

For complete error catalog with fixes, see COMMON_MISTAKES.md

Quick Fixes

MistakeFix
$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

Webhook receives:

config.json
Loading...

In Slack node text field:

output
Loading...

Example 2: HTTP Request to Email

HTTP Request returns:

config.json
Loading...

In Email node (reference HTTP Request):

output
Loading...

Example 3: Format Timestamp

example.js
Loading...

Data Type Handling

Arrays

example.js
Loading...

Objects

example.js
Loading...

Strings

example.js
Loading...

Numbers

example.js
Loading...

Advanced Patterns

Conditional Content

example.js
Loading...

Date Manipulation

example.js
Loading...

String Manipulation

example.js
Loading...

Debugging Expressions

Test in Expression Editor

  1. Click field with expression
  2. Open expression editor (click "fx" icon)
  3. See live preview of result
  4. 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

String:

  • .toLowerCase(), .toUpperCase()
  • .trim(), .replace(), .substring()
  • .split(), .includes()

Array:

  • .length, .map(), .filter()
  • .find(), .join(), .slice()

DateTime (Luxon):

  • .toFormat(), .toISO(), .toLocal()
  • .plus(), .minus(), .set()

Number:

  • .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

Essential Rules:

  1. Wrap expressions in {{ }}
  2. Webhook data is under .body
  3. No {{ }} in Code nodes
  4. Quote node names with spaces
  5. Node names are case-sensitive

Most Common Mistakes:

  • 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"]}}

For more details, see:


Need Help? Reference the n8n expression documentation or use n8n-mcp validation tools to check your expressions.