File Transform Node

Converts files that arrive in the payload into something the rest of the flow can actually read: a PDF into text, a CSV into JSON, an image into a smaller image. It is the node that sits between “someone attached a document” and any node that expects data.

Operation

ValueIn the panelWhat it does
autoAutomaticLooks at what arrived and applies the matching transformation
pdfToTextPDF → TextExtracts the text of a PDF
csvToJsonCSV → JSONParses a CSV into JSON data
imageResizeImage ResizeResizes to target dimensions
imageCompressImage CompressCompresses with quality control

The panel only shows the settings the chosen operation actually uses — each section carries a badge saying which operations it belongs to. In auto the sections stay visible, because the operation is not known until an event arrives.

Source field

Which file to work on. Left empty it auto-detects from the payload, which is the normal case: an attachment from a trigger, or a file a previous node produced. Fill it in when the payload carries more than one file and you mean a particular one.


PDF → Text

One switch: Beautify extracted text. PDF extraction produces the words in the order the file stores them, which for a two-column layout or a table is rarely the order a human reads. Beautify tidies that up. Turn it off when you want the rawest possible text — for a checksum, or when a downstream parser expects the original spacing.

A PDF that is a scan of paper has no text to extract, only pixels. This node is not OCR: it will come back with nothing rather than fail, and the empty result is the clue.

CSV → JSON

  • Delimiter — the character that separates columns. Change it for the semicolon CSVs that European spreadsheets produce.
  • First row is header — on, each row becomes an object keyed by the header names. Off, rows are plain arrays. Almost always you want it on: it is what lets the rest of the flow say {{payload.rows.0.email}} instead of counting columns.
  • Strip ANSI escape codes — for CSVs that came out of a terminal and carry colour codes. They are invisible in a viewer and they poison every value they touch.

Images

Resize

Width and height in pixels. Leaving one empty keeps the aspect ratio from the other.

Output — shared by resize and compress

  • Format — JPEG, PNG or WebP.
  • Quality — 1 to 100.
  • Strip metadata — drops EXIF. Worth knowing that EXIF is where the GPS coordinates of a phone photo live, so stripping is the privacy-preserving default for anything a customer uploaded.
  • Progressive loading — the image renders blurry-first instead of top-down. Nice on slow connections, meaningless for an image nobody looks at.

Compression — compress only

  • MozJPEG encoder — smaller JPEGs for the same quality, at more CPU.
  • Lossless compression — no pixel is changed. Bigger files, exact image.
  • CPU effort — 0 to 6. Higher is slower and smaller.
  • Compression level — 0 to 9. Same trade, different knob.
Effort and level cost wall-clock on every event. On a flow that processes one image an hour, turn them up. Inside a Loop over two hundred images, the difference is minutes.

Post-processing

Delete source file after processing removes the original once the transformation succeeds. It is the setting that keeps a flow from filling your storage with PDFs whose text you already extracted and no longer need.

It deletes the file, not the payload reference that other nodes may still hold. If a later node in the same flow needs the original — attaching it to an email, uploading it to Drive — leave this off.

What it unblocks

  • Documents into a Vector Store. The store takes PDFs directly, but a DOCX or an XLSX does not — convert first. See Vector Stores.
  • An attached CSV into rows. CSV to JSON, then a Loop, and each row becomes an event.
  • User uploads into something postable. Resize and strip metadata before a Social Media node sends it anywhere.