CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

n8n-binary-and-data

Handle files and binary data in n8n correctly. Use when working with files, images, PDFs, attachments, uploads or downloads, base64, vision/multimodal input, or when an AI agent needs a file as tool input or output — and whenever the user mentions $binary, binaryPropertyName, "read the PDF", "attach the file", "send the image", Merge losing binary, or a CDN for chat images. Covers the $binary vs $json split, reading/writing binary, keeping binary alive across transforms with Merge, the agent-tool binary boundary, and the CDN/URL requirement for chat surfaces.

Quality

97%

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

SKILL.md
Quality
Evals
Security

Quality

Content

92%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.

A dense, highly actionable body: exact node/parameter names, executable Code-node snippets for both read and write, an explicit execution-inspection verification loop, and exemplary one-level reference routing with read-when conditions. The only cost is deliberate redundancy — the agent-tool and CDN rules each appear in three-plus places (rules, 'What's NOT available', anti-patterns, checklist, closing mnemonic).

Suggestions

Consolidate the 'What's NOT available' section: '$fromAI() cannot carry binary' is the only new fact there — 'Tool arguments and returns are JSON only' and 'n8n ships no CDN or public file host' already appear as rules 2/3 and in the CDN section, so fold them into the anti-patterns table or drop them.

Drop the closing 'Remember: two slots, side by side...' line — the opening paragraph and the Quick Reference Checklist already carry that mnemonic, and the checklist rows duplicate it a third time.

The anti-patterns table and the Quick Reference Checklist overlap on ~5 of 9 rows; consider keeping the table (with fixes) and trimming the checklist to only non-overlapping verification items.

DimensionReasoningScore

Conciseness

The body is efficient and assumes Claude's competence (no explaining what base64 or PDFs are; every section carries n8n-specific rules like responseFormat, combineByPosition, passthroughBinaryImages semantics), but there is real repetition: "Tool arguments and returns are JSON only" restates rule 2, "n8n ships no CDN or public file host" restates the CDN section, and the closing "Remember: two slots, side by side" line restates the intro and checklist. That places it at anchor 4 ('minor instances that could be trimmed') rather than anchor 5 ('every token earns its place').

4 / 5

Actionability

Fully executable, copy-paste-ready guidance: "const buffer = await this.helpers.getBinaryDataBuffer(0, 'data')" with "binary: $input.item.binary, // pass the binary through, or it's gone", a complete write example (Buffer.from(...).toString('base64') with mimeType/fileName/fileExtension), exact parameter names ("responseFormat: 'file'", includeOtherFields, binaryPropertyOutput, executeOnce: true), and a concrete tool-return JSON shape — matching anchor 5's 'specific examples cover the common cases'.

5 / 5

Workflow Clarity

Multi-step processes are clearly sequenced (numbered inbound upload/stage/inject/fetch steps with the re-merge synchronization barrier and executeOnce safeguard for N files) and validation is an explicit feedback loop: "n8n_executions to pull that execution, and inspect per-node output for the binary slot... The node where binary last appears is the node before the strip. That's where the pass-through or Merge goes", plus a 9-item checklist — anchor 5.

5 / 5

Progressive Disclosure

The body is an overview with well-signaled one-level-deep references: inline pointers at point of need ("See BINARY_BASICS.md for the full slot anatomy, mime types, and size limits"; "Full patterns, hash strategy, storage choices... are in AGENT_TOOL_BINARY.md") plus a dedicated "Reference files" table with per-file "Read when" conditions — exactly the anchor-5 pattern. Note: the four referenced .md files are not present in the submitted bundle (no references/ directory), so their contents could not be verified; the score reflects the SKILL.md's disclosure structure.

5 / 5

Total

19

/

20

Passed

Description

100%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.

An exemplary description: it explicitly states both what the skill covers and when to use it, packs in natural trigger terms including literal quoted user phrasings and n8n-specific tokens, and occupies a clearly distinct niche. No vague fluff, third-person voice throughout, and no over-claims.

DimensionReasoningScore

Specificity

"Covers the $binary vs $json split, reading/writing binary, keeping binary alive across transforms with Merge, the agent-tool binary boundary, and the CDN/URL requirement for chat surfaces" lists five concrete capability areas spanning the full lifecycle (produce, read/write, preserve, cross the agent boundary, deliver) — comprehensive coverage per the anchor-5 example, with no gaps that would drop it to anchor 4.

5 / 5

Completeness

Explicitly answers both: what — "Handle files and binary data in n8n correctly... Covers the $binary vs $json split, reading/writing binary..." and when — "Use when working with files, images, PDFs... or whenever the user mentions $binary..." with concrete trigger phrases, exactly matching anchor 5; the 'missing Use when' cap does not apply.

5 / 5

Trigger Term Quality

Includes generic terms ("files, images, PDFs, attachments, uploads or downloads, base64"), synonyms, literal quoted user phrasings ("read the PDF", "attach the file", "send the image"), and n8n-specific vocabulary ($binary, binaryPropertyName, "Merge losing binary") — comprehensive natural-term coverage including quoted phrasings users would actually say, matching anchor 5 rather than anchor 4's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

"Handle files and binary data in n8n correctly" plus highly distinctive tokens ($binary, binaryPropertyName, "Merge losing binary", "a CDN for chat images") carve a clear n8n niche with minimal conflict risk, matching anchor 5; the generic quoted phrases ("read the PDF") inherit the n8n frame, so anchor 4's overlap concern is marginal at most.

5 / 5

Total

20

/

20

Passed

Validation

100%

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

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

czlonkowski/n8n-skills

Path

skills/n8n-binary-and-data/SKILL.md

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.