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
data→reportso 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)
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"
}
}
]
}
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)
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.fileSizeto 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
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 data → attachment
|
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
- n8n Read/Write Files Node — read and write binary files on disk
- n8n Compression Node — ZIP/GZIP binary data
- n8n HTTP Request Node (Advanced) — download files from APIs
- n8n S3 Node — upload binary to S3
Top comments (1)
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?