n8n-expression-syntax

Guide correct n8n expression syntax with {{ }} and $json references.

Updated Feb 27, 2026
One-click install
npx skills add https://github.com/Gabrielloopes33/nexIA --skill n8n-expression-syntax-gabrielloopes33
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: n8n-expression-syntax
Source: https://github.com/Gabrielloopes33/nexIA/tree/main/.claude/skills/n8n-expression-syntax
Command: npx skills add https://github.com/Gabrielloopes33/nexIA --skill n8n-expression-syntax-gabrielloopes33

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Writing correct n8n expression syntax can be tricky due to the need for {{}} expressions, the webhook data structure (webhook data is under .body), and referencing other nodes with accurate, case-sensitive names. This guide clarifies those pitfalls and provides a structured path to reliable expression usage.

Core Features & Use Cases

  • Formula format mastery: always wrap expressions in double curly braces and avoid common errors.
  • Core variables and node references: use $json, $node, $now, and $env to access data across nodes while respecting bracket notation for spaces and case-sensitivity.
  • Webhook data handling: access user data from the webhook payload via {{$json.body.field}} and validate paths with examples across real-world scenarios.
  • Debugging and validation: practical rules to diagnose missing braces, incorrect paths, and code-node distinctions, plus a quick-reference of common mistakes.
  • Real-world patterns: dynamic URLs, concatenation via automatic expression joining, and safe use of environment variables.

Quick Start

Start by writing expressions with {{}} that reference $json and $node data, for example {{$json.body.name}}.

Frequently Asked Questions about n8n-expression-syntax

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I access webhook data in n8n expressions?

Access webhook payload data in n8n expressions by targeting the $json.body structure, such as wrapping the path in double curly braces like {{$json.body.field_name}}. This correctly retrieves incoming webhook request data.

Why is my n8n expression syntax not working?

n8n expression syntax breaks when missing double curly braces {{ }}, omitting .body for webhook data, or failing to use bracket notation for node names with spaces. Validating these paths and braces resolves broken dynamic field outputs.

How do I reference other nodes in n8n workflows?

Reference other nodes in n8n workflows using the $node variable with exact, case-sensitive names. When node names contain spaces, apply bracket notation like $node["My Node"].json to safely pull data across your workflow.

What variables are available for dynamic fields in n8n?

Available variables for n8n dynamic fields include $json for current item data, $node for referencing upstream nodes, $now for timestamps, and $env for environment variables. Wrap these variables in {{ }} to execute dynamic field values.

Do I need bracket notation for node names with spaces in n8n?

Yes, bracket notation is required for n8n node names with spaces to prevent syntax errors. Use exact case-sensitive names within quotes, like $node["My Node"].json, to safely retrieve upstream node data in your workflow.

What is the best way to debug n8n expressions?

The best way to debug n8n expressions is checking for missing {{ }} braces, verifying webhook paths include .body, and ensuring case-sensitive node references use bracket notation. This validates frontmatter and diagnoses incorrect data paths.