CSV parser
Spreadsheet → rows
CSV parser reads an uploaded spreadsheet (CSV or Excel) and breaks it into individual rows, so a later step can run once for each row instead of treating the whole sheet as one lump.
How it works
A spreadsheet is a single file, but the meaning lives in its rows: each row is usually one customer, one order, one applicant. CSV parser is the step that reads the sheet and separates it into those rows, along with the column headings, so your workflow can act on each entry rather than on the file as a whole.
Once the rows are separated, downstream nodes can loop over them. A very common pattern is filling one PDF per row: the sheet holds a list of people, and each row's values drop into a template to produce one completed document per person.
It reads both CSV files (plain comma-separated text) and Excel workbooks, so your team can keep working in whatever spreadsheet tool they already use and still feed the results straight into a flow.
Common use cases
Real situations where this node earns its place in a flow.
Turn a spreadsheet into jobs
Parse an uploaded CSV or Excel into rows the workflow can process one at a time.
Import a list
Read a spreadsheet of customers or items to run work over each entry.
Feed a mail merge
Parse rows to fill a template once per line.
CSV parser in a workflow
A simple example of where this node sits in a flow.
What you set up
- Feed the node the uploaded spreadsheet, whether it is a .csv or an Excel file.
- Make sure the sheet has a header row so the column names come through and can be referenced later.
- Connect its rows to a step that should run per row, such as a PDF fill.
Common questions
Does the spreadsheet need column headings?
It works best with a header row, because those column names are what later steps use to grab the right value from each row (for example the 'Name' or 'Amount' column).
What is the difference between this and Batch?
CSV parser turns a spreadsheet specifically into rows. Batch is the more general splitter-and-screener for any bundle of records and can add a pass or fail filter on top.
Settings you configure on this node, stored under data.config in the workflow JSON. Leave a field unset to use its default.
This node has no configurable settings. Drop it into a flow and it works from its inputs alone.
How this node appears inside a workflow's nodes[] array (the shape you see in the Developer export / import). A full workflow is { nodes: [...], edges: [...] }.
{
"id": "csv-parser",
"type": "card",
"position": {
"x": 160,
"y": 120
},
"data": {
"type": "csv-parser",
"kind": "processor",
"title": "CSV parser",
"subtitle": "Spreadsheet → rows"
}
}