Skip to content

Supported formats

File Input nodes accept the extensions below by default. You can limit accepted types in the File Input node settings. Parsed tabular data becomes JSONL datasets on the workflow engine (see Storage and processing).

Extension Category Processing
.csv Tabular and spreadsheets Parsed in-browser or on the workflow engine into JSONL datasets. Excel formats use server-side conversion.
.tsv Tabular and spreadsheets Parsed in-browser or on the workflow engine into JSONL datasets. Excel formats use server-side conversion.
.psv Tabular and spreadsheets Parsed in-browser or on the workflow engine into JSONL datasets. Excel formats use server-side conversion.
.xls Tabular and spreadsheets Parsed in-browser or on the workflow engine into JSONL datasets. Excel formats use server-side conversion.
.xlsx Tabular and spreadsheets Parsed in-browser or on the workflow engine into JSONL datasets. Excel formats use server-side conversion.
.json Structured data JSON arrays and objects load as structured records for downstream transforms.
.xml Structured data XML loads as structured records. Repeating sibling elements become one row each with dotted nested paths.
.fix Financial data FIX, SWIFT MT / MT940, and OFX/QFX parsed via the platform file-parser pipeline.
.swift Financial data FIX, SWIFT MT / MT940, and OFX/QFX parsed via the platform file-parser pipeline.
.mt940 Financial data FIX, SWIFT MT / MT940, and OFX/QFX parsed via the platform file-parser pipeline.
.ofx Financial data FIX, SWIFT MT / MT940, and OFX/QFX parsed via the platform file-parser pipeline.
.qfx Financial data FIX, SWIFT MT / MT940, and OFX/QFX parsed via the platform file-parser pipeline.
.pdf Office and PDF PDF and office documents route through Docling on the workflow engine for structure, tables, and text extraction.
.docx Office and PDF PDF and office documents route through Docling on the workflow engine for structure, tables, and text extraction.
.pptx Office and PDF PDF and office documents route through Docling on the workflow engine for structure, tables, and text extraction.
.txt Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.md Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.markdown Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.html Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.htm Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.adoc Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.asciidoc Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.asc Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.tex Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.latex Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.vtt Text, markup, and captions Plain text and markup sources for structured extraction and downstream transforms.
.png Images Raster images for OCR and document-ingest workflows via Docling.
.jpg Images Raster images for OCR and document-ingest workflows via Docling.
.jpeg Images Raster images for OCR and document-ingest workflows via Docling.
.tif Images Raster images for OCR and document-ingest workflows via Docling.
.tiff Images Raster images for OCR and document-ingest workflows via Docling.
.bmp Images Raster images for OCR and document-ingest workflows via Docling.
.webp Images Raster images for OCR and document-ingest workflows via Docling.

XML uploads on File Input parse to JSONL rows on the same path as JSON and FIX (browser and workflow engine).

  • Repeating records: the largest list of sibling objects (length 2 or more) becomes one row per item. Nested ISO 20022 files typically explode on Tx or RcrdSts, not on a shorter nested list.
  • Header fields: every value outside a repeating element is kept on each row, named by its dotted path from the root element (for example Hdr.AppHdr.BizMsgIdr). When a header name matches a record column, the header column takes the root element name as a prefix. A second repeating element in the same document is left out.
  • Nested fields: child elements flatten to dotted column names (for example New.TxId). Element text sits on the parent key; attributes sit beside it (New.Pric.Amt and New.Pric.Amt.Ccy).
  • Single-object documents: a document with no repeating list flattens into one row.
  • Invalid XML: File Input rejects the file. It does not treat markup as CSV lines.

A JSON file whose top level is an object loads as one row. A list inside it, such as rows in { "date": ..., "name": ..., "rows": [...] }, stays in one cell.

  • Rows from the list: in a Formula operation, splitRows(prop("rows"), "item") creates one row per item and copies the other fields onto each row. Read the item’s fields with prop("item").prop("isin").
  • Lists inside lists: split once per level.
  • Top-level arrays: a file that is an array of objects loads as one row per object with no further step.

Excel uploads (.xls / .xlsx) parse on the same File Input path as CSV and JSON.

  • One sheet: you get tabular rows (one workflow row per spreadsheet row). Date-formatted cells import as ISO dates; see File Input (Excel dates).
  • Several sheets: you get one workflow row whose keys are the sheet names. Each sheet keeps _sheetName and _sheetData with that sheet’s columns, so schema inference can describe Sheet 3 independently of Sheet 1. A Schema node item port under _sheetData (path ending in .0) unnests that sheet into tabular rows; the _sheetData field port stays one nested-array cell. File Input Data preview shows a tab per sheet; canvas hover includes the sheet count when there is more than one sheet. See File Input (Excel workbooks with several sheets).
  • Empty sheets: skipped. A workbook with only empty sheets is rejected.

FIX (Financial Information eXchange) log files load through the same File Input path as other structured imports.

  • One row per message - each FIX message becomes one workflow row.
  • Delimiters - SOH (ASCII 1), pipe (|), and escaped \x01 field separators are accepted in log files.
  • Field names - standard FIX tags map to readable column names such as MsgType and SenderCompID. Unknown tags keep the numeric tag; duplicate tags can appear as arrays.
  • Message boundaries - messages are recognised from 8=FIX. through the 10= checksum field.
  • Structured import - FIX rows are treated as already structured (one row per message). The importer does not suggest subgrid flattening for FIX sources.

Related finance formats on File Input: SWIFT (.swift, .mt940) and OFX/QFX use separate parsers in the same package. FIX round-trip export is supported on Egress via Save File Export.

SWIFT MT files (.swift, .mt940) load as one row per message.

  • Tags as columns: each field of the text block becomes a column named tag_ plus the tag, so :32A: is tag_32A. A field that spans several lines keeps its line breaks. FIN messages also carry block1 to block4 with the raw blocks.
  • Repeating tags: a tag that occurs more than once in a message, such as the :61: and :86: statement lines of an MT940, holds the list of its values in message order. A tag that occurs once holds text. splitRows in a Formula operation turns the list into one row per statement line; [prop("tag_61")].flat() gives a list in both cases.

PDF, office documents, and images load through Docling document extraction on the workflow engine. Loading uses no AI model.

  • One row per document: the row is the extraction result without its embedded images (page renders and picture crops), so the data that flows on stays small. document.md_content holds the text, and document.json_content.tables holds each table with its cells (data.grid is the table as rows of cells).
  • Rows from a table: in a Formula operation, splitRows over a table’s data.grid creates one row per table row, and prop("cells").at(0).prop("text") reads a cell.
  • Review tab: File Input shows the source page beside the extracted text and table cells, with hover linking the two.
  • Structuring with AI: when the values you need sit in free text, add an AI node after File Input with a prompt and an output schema. That step is optional and uses the model you choose.

The Learn extracting data from sources Workspace in the Workspaces explorer has one lesson per source, each with a sample file. Choose Clone Workspace to run them in your own copy: JSON envelopes, nested envelopes, multi-sheet Excel, XML, FIX, SWIFT MT, OFX, fixed-width text, and PDF.