CtrlK
BlogDocsLog inGet started
Tessl Logo

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, mapping data between nodes, or referencing webhook data in workflows. Use this skill whenever configuring node fields that reference data from previous nodes — expressions are how n8n passes data between nodes, and getting the syntax wrong is the most common source of workflow errors. Also use when asked whether a complex expression hurts performance.

64

Quality

78%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./data/skills/n8n-expression-syntax/SKILL.md

The canonical home for this skill is n8n-expression-syntax in czlonkowski/n8n-skills

SKILL.md
Quality
Evals
Security

Quality

Content

71%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a highly actionable reference with excellent right/wrong expression pairs, strong decision procedures (transform gatekeeper, Set-node antipattern), and honest performance guidance. Its two real weaknesses are pervasive self-duplication (the same five validation rules appear in four sections, inflating token cost) and progressive-disclosure links pointing at bundle files (COMMON_MISTAKES.md, EXAMPLES.md) that do not exist.

Suggestions

Collapse 'Validation Rules', the 'Common Mistakes' quick-fix table, 'Best Practices', and the closing 'Summary' into a single rules section — the same five rules (use {{}}, webhook data under .body, no expressions in Code nodes, quote node names, case-sensitivity) are currently stated four times.

Create the referenced COMMON_MISTAKES.md and EXAMPLES.md bundle files (or remove the links), since four references to them currently point at files that do not exist in the bundle.

Add an explicit re-validation step after error fixes in the Debugging section (fix → re-check in the expression editor → only then proceed) to close the feedback loop.

DimensionReasoningScore

Conciseness

Most sections are dense and earn their tokens (the transform gatekeeper, Set-node antipattern, and performance sections especially), but the same five rules are restated four times — in 'Validation Rules', the 'Common Mistakes' quick-fix table, the 'Best Practices' Do/Don't lists, and again in the 'Summary' — so roughly a third of the document could be cut without losing information. This sits between 'mostly efficient but could be tightened' (3) and 'several unnecessary explanations or padded sections' (2); the padding is self-duplication rather than over-explanation, so it leans to 3.

3 / 5

Actionability

Nearly every rule ships as copy-paste-ready expressions with explicit wrong (❌) vs right (✅) pairs — e.g. '❌ {{$json.name}} (webhook) → ✅ {{$json.body.name}}' — plus a concrete ordered decision procedure for transforms, an Edit Fields IIFE template, a removal recipe for Set nodes, and error-message → cause → fix mappings. This matches 'fully executable; copy-paste ready; specific examples cover the common cases'.

5 / 5

Workflow Clarity

The procedural parts are clearly sequenced: the transform gatekeeper is a numbered stop-at-first-fit checklist with rationale, the Set-node section gives ordered removal steps (removeConnection → addConnection → patchNodeField → removeNode) plus a 'quick test' consumer-count checkpoint, and debugging includes editor-based verification. It falls short of 5 because there is no explicit fix-then-revalidate loop (error messages map to causes but not to a retry step), leaving minor checkpoint gaps.

4 / 5

Progressive Disclosure

In-document structure is good with clear section headers, and references are clearly signaled ('For complete error catalog with fixes, see COMMON_MISTAKES.md'), but neither COMMON_MISTAKES.md nor EXAMPLES.md exists in the bundle — both links are dangling — so the promised deeper material is unavailable and its content is only partially duplicated inline. That broken two-file promise places it at 'some structure but could be better organized' (3) rather than 4 ('references mostly clear' implies they resolve).

3 / 5

Total

15

/

20

Passed

Description

86%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A strong description with an explicit 'what' and a rich, natural set of 'use when' triggers covering authoring, troubleshooting, data mapping, webhook data, and even a performance edge case. The main gaps are the narrow two-action capability statement and minor trigger overlap with a sibling n8n Code-node skill via shared $json terminology.

DimensionReasoningScore

Specificity

The 'what' is limited to two concrete actions — 'Validate n8n expression syntax and fix common errors' — with no further capability enumeration (writing/mapping appear only as triggers, not actions). This matches 'Names domain and 1-2 concrete actions, but not comprehensive' (score 3) rather than score 4, which would require several listed specific actions.

3 / 5

Completeness

Explicitly answers both: what ('Validate n8n expression syntax and fix common errors') and when ('Use when writing n8n expressions, using {{}} syntax, accessing $json/$node variables, troubleshooting expression errors, mapping data between nodes, or referencing webhook data in workflows'), with concrete trigger phrases — the exact pattern of the score-5 anchor.

5 / 5

Trigger Term Quality

Covers natural phrasings users would actually say: 'writing n8n expressions', 'using {{}} syntax', 'accessing $json/$node variables', 'troubleshooting expression errors', 'mapping data between nodes', 'referencing webhook data', 'configuring node fields that reference data from previous nodes', and even the edge trigger 'whether a complex expression hurts performance' — comprehensive coverage including synonyms (troubleshooting/fix, writing/using). It clearly beats score 4 ('a few natural terms missing').

5 / 5

Distinctiveness Conflict Risk

The n8n-expression niche is clear with distinct triggers ({{}} syntax, $json/$node variables), but '$json' is also central to n8n Code nodes, so a user asking about $json in a Code node could trigger this skill incorrectly — minor overlap risk with a closely related sibling skill, matching score 4 rather than the fully distinct score 5.

4 / 5

Total

17

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

skill_md_line_count

SKILL.md is long (600 lines); consider splitting into references/ and linking

Warning

relative_links

Relative link issues: 4 missing

Warning

Total

14

/

16

Passed

Repository
czlonkowski/n8n-mcp
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.