DEV Community

Pirate Prentice
Pirate Prentice

Posted on

n8n Move Binary Data Node: Rename, Copy, and Reorganize Binary Files in Your Workflows [Free Workflow JSON]

n8n Move Binary Data Node: Rename, Copy, and Reorganize Binary Files in Your Workflows [Free Workflow JSON]

The n8n Move Binary Data node (also called the Move Binary or Convert to/from Binary utility in older docs) lets you rename binary properties, move binary data between items, and convert between binary and JSON representations — without leaving your workflow. It's the plumbing node that keeps your binary pipeline clean when downstream nodes expect files under a specific property name or structure.

This guide covers every operation, common gotchas, and three production patterns with a free downloadable workflow JSON.


What the Move Binary Data Node Does

n8n stores files and binary content in item binary properties — named slots like data, attachment, file, or image. The Move Binary Data node lets you:

  • Rename a binary property (e.g., rename datareport so the next node can reference it cleanly)
  • Move binary data from one property to another, optionally deleting the source
  • Copy binary data to a new property name while keeping the original
  • Convert binary to JSON — extract the base64 string and metadata (mimeType, fileName, fileSize) into a JSON field
  • Convert JSON back to binary — rebuild a binary property from a stored base64 string

It does not transform file contents (use the Compression node, Crypto node, or a Code node for that). It only reorganizes how binary data is referenced within the item.


Operations Reference

Operation What it does Key fields
Move Renames a binary property (move source → destination; source is deleted) Source Property, Destination Property
Copy Duplicates a binary property under a new name Source Property, Destination Property
Binary to JSON Extracts binary property into a JSON field (base64 + metadata) Source Property, Destination Key
JSON to Binary Converts a JSON base64 field back to a binary property Source Key, Destination Property, MIME type override

Key Fields

Source Property — the binary property name on the input item (e.g., data). Check what your upstream node actually outputs by using the n8n expression editor or looking at the item inspector in the debug panel.

Destination Property — the new binary property name (Move/Copy) or JSON key name (Binary to JSON).

Keep Source (Copy only) — if disabled, the source property is deleted after copying (same behavior as Move).

MIME Type (JSON to Binary) — override the MIME type when reconstructing binary from JSON. If the original was stored without MIME metadata, set it explicitly here (e.g., application/pdf, image/png).

Encoding (JSON to Binary) — usually base64. Match whatever encoding was used when the data was serialized to JSON.


Gotchas

Wrong property name → empty binary output. n8n won't error if the source property doesn't exist — it will silently produce an item with no binary data. Always verify the exact property name from the upstream node before wiring Move Binary Data.

Binary to JSON stores base64 — watch item size. Converting a large binary file to JSON embeds the entire base64 string in the item. This can bloat memory and slow the workflow. For files over ~5 MB, prefer writing to disk (Read/Write Files node) or to storage (S3 node) instead.

Chaining multiple renames. If you need to rename several properties in one step, chain multiple Move Binary Data nodes (one rename per node) or use a Code node to manipulate $binary directly.

Upstream nodes vary in property names. HTTP Request returns binary as data by default; Telegram downloads use data; Google Drive downloads also default to data. Webhook file uploads land under the field name from the form. Always inspect the output before assuming a property name.

JSON to Binary requires correct encoding. If you stored binary data using Buffer → toString('base64'), you must use the base64 encoding option. Using the wrong encoding produces a corrupt file.


Pattern 1: Rename Binary for Clean Downstream Handling

Use case: An HTTP Request node downloads a PDF and stores it as data. The Send Email node expects a binary property named attachment. Rename before sending.

HTTP Request (download PDF)
  → Move Binary Data [Move: data → attachment]
  → Send Email (attach the file)
Enter fullscreen mode Exit fullscreen mode

This keeps the email node config static (attachment is always the correct property) even if the upstream download node changes.

Free workflow JSON:

{
  "nodes": [
    {
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "https://example.com/report.pdf",
        "responseFormat": "file"
      }
    },
    {
      "name": "Rename to attachment",
      "type": "n8n-nodes-base.moveBinaryData",
      "parameters": {
        "action": "move",
        "sourceBinaryDataPropertyName": "data",
        "destinationBinaryDataPropertyName": "attachment"
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Pattern 2: Store Binary as JSON for Database Persistence

Use case: You receive an image via webhook and want to store it in a Postgres or Airtable record as a base64 string. Convert binary → JSON, then insert.

Webhook (receives image upload)
  → Move Binary Data [Binary to JSON: data → imageBase64]
  → Postgres (INSERT with imageBase64 column)
Enter fullscreen mode Exit fullscreen mode

On retrieval, reverse the flow with JSON to Binary to reconstruct the file for download.

Key config:

  • Source Property: data
  • Destination Key: imageBase64
  • This adds imageBase64.data, imageBase64.mimeType, imageBase64.fileName, imageBase64.fileExtension, imageBase64.fileSize to the item

Pattern 3: Multi-Attachment Email from Multiple Downloads

Use case: Download three reports from three HTTP endpoints, rename each binary property uniquely, then pass all three as attachments in one email.

HTTP Request 1 → Move Binary Data [data → report1]
HTTP Request 2 → Move Binary Data [data → report2]  
HTTP Request 3 → Move Binary Data [data → report3]
Merge (combine all three items into one)
  → Code node (aggregate binary properties into single item)
  → Send Email
Enter fullscreen mode Exit fullscreen mode

The rename step is critical here: without it, all three downloads would land in data and overwrite each other after merge.


Free Workflow JSON Download

The complete workflow JSON (binary rename, binary-to-JSON, and multi-attachment pattern) is available in the n8n Workflow Starter Pack on Gumroad — includes 10+ ready-to-import workflows for common automation tasks.


Quick Reference

Task Operation Source Destination
Rename dataattachment Move data attachment
Duplicate binary Copy data dataCopy
Store binary in DB Binary to JSON data fileData
Restore from DB JSON to Binary fileData data

Related Guides

Top comments (1)

Collapse
 
pirateprentice profile image
Pirate Prentice

Are you using the Move Binary Data node to rename properties for email attachments, or to convert binary to JSON for database storage? What upstream node's output are you normalizing?