Reference · Tools

Write Binary File

Writes binary data from an input item to a file on the local filesystem. Deprecated — use Read/Write Files from Disk instead.

Action (binary) Core Nodes v1 Binary data

Write Binary File writes the binary data on an item out to a file in the execution's files directory. It is kept for existing workflows — **Read/Write Files from Disk is the node to use now**, since it writes the same way and reads as well.

Node type
Action (binary)
Parameters
4
Outputs
Output, Error
Credentials
None required

Write Binary File

Write binary data to a file on disk

Overview

The Write Binary File tool reads binary data from an input item’s binary property and writes it to a specified file path within the execution files directory. Supports both overwrite and append modes. This is the legacy single-file writer — the modern replacement is the read_write_file tool. All write operations are sandboxed to the execution-scoped directory to prevent directory traversal attacks. The tool preserves all original JSON data and binary properties on the output, adding the written file path as a confirmation field.

Category: Core Nodes
Tool Name: write_binary_file
Version: 1

Appearance: Icon: lucide-FileUp | Color: #6b7280

Node Type

Action (Binary) — handles file/binary data operations

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool does not require any credentials.

Parameters

ParameterTypeRequiredDefaultDescription
File NamestringYesPath to which the file should be written, relative to the execution files directory. Include the file extension. Supports expressions like {{ $json.fileName }}.
Property NamestringYesdataName of the binary property on the input item which contains the data to write to the file.
OptionscollectionNo{}Extra write settings.
— AppendbooleanNofalseWhether to append to an existing file instead of overwriting it. If the file does not exist, it is created.
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

One output item per input item. The input item JSON passes through unchanged, with one field added:

  • fileName — the path you asked to write, exactly as you supplied it (relative, including any subdirectories).

The written file is also attached back to the item as binary data under the same name as Property Name, with its fileName, mimeType and fileSize in bytes, merged with any binary the item already carried. Binary properties other than the one you wrote are untouched.

Reference the write downstream by expression, e.g. {{ $json.fileName }}.

Usage Examples

  • Write a downloaded PDF to a file on disk
  • Save an image attachment to the filesystem
  • Append log data to a text file
  • Export a generated report to a file

Example Configuration

Write the item’s data binary to a file:

{
  "type": "write_binary_file",
  "parameters": {
    "fileName": "output.bin",
    "dataPropertyName": "data",
    "maxConcurrency": 5
  }
}

Append to an existing file:

{
  "type": "write_binary_file",
  "parameters": {
    "fileName": "logs/system.log",
    "dataPropertyName": "logData",
    "maxConcurrency": 1,
    "options": {
      "append": true
    }
  }
}

Write a named binary property into a subdirectory:

{
  "type": "write_binary_file",
  "parameters": {
    "fileName": "files/document.pdf",
    "dataPropertyName": "pdfContent",
    "maxConcurrency": 3,
    "options": {
      "append": false
    }
  }
}

Give each item its own file:

{
  "type": "write_binary_file",
  "parameters": {
    "fileName": "uploads/{{ $json.id }}.jpg",
    "dataPropertyName": "imageData",
    "maxConcurrency": 5
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Write binary data from an input item to a file in the execution files directory (deprecated — use read_write_file instead).

Behavior notes

  • Prefer Read/Write Files from Disk. This node is kept for existing workflows; the newer node writes the same way and reads as well.
  • The item must actually carry the binary property. If the property named by Property Name is missing, the item fails — check the upstream node’s Binary Data panel for the exact, case-sensitive name.
  • Subdirectories are created for you. reports/2026/summary.pdf works without a separate step; the parent folders are made if they do not exist.
  • Paths are relative and sandboxed. Every write is resolved inside this execution’s own files directory. An absolute path, or one that climbs out with .., is rejected.
  • Give every item a distinct path when writing in parallel. With a fixed File Name and several items, each write overwrites the last — put an expression such as {{ $json.id }} in the path, or set Append and Max Concurrency to 1 when you really want one accumulating file.
  • Files live for the run. The execution files directory is scoped to the execution, so a later step in the same workflow can read the file back — but to keep it, upload it or attach it as binary before the run ends.

Frequently asked questions

Should I use this in a new workflow?

No. Prefer Read/Write Files from Disk, which covers writing and reading in one node. This exists for workflows that already depend on it.

Why did my item fail?

The item must actually carry the binary property. If the property named by Property Name is missing, there is nothing to write.

Where does the file go?

Into the execution's own files directory, which is sandboxed — later nodes in the same run can read it back.

Does it need credentials?

No.

Build with the Write Binary File node

Drop it into a workflow, wire it to an agent, or call it on a schedule.

Open BusyBot

Last updated . Spotted something wrong? Tell us.