Skip to content

Parse node

The Parse node turns a string — an HTTP response body, an uploaded file, a form field — into structured data the rest of the flow can read. Point it at a JSON or CSV string and it hands back an object or a list of rows.

Component id: flowrunner/parse.

How it works

Parse reads a source (a dotted reference to a string), parses it in the chosen format, and writes the result to a result variable.

  • JSONJSON.parse the string. An object is stored as-is (data.field); an array or scalar is wrapped as { value } (data.value).
  • CSV — parsed into a list of rows. With header on (the default), the first row names the columns and each later row becomes an object ({ name: "Alice", age: "30" }); with header off, each row is an array of cells. Quoted cells with embedded commas and newlines, and "" escapes, are handled (RFC 4180). The list is stored as { value: [ ...rows ] } — read it as <resultVar>.value.

If the string can't be parsed, the node routes to its error port (or surfaces the error if that port is unwired).

Config

FieldRequiredDescription
formatNo (default json)json or csv.
sourceYesDotted reference to the string to parse, e.g. response.body or start.upload.
csvHeaderNo (default true)CSV only — treat the first row as column headers.
resultVarNo (default parsed)The variable the parsed data is written to.

Ports

next and error.

Examples

Parse an uploaded CSV, then loop over the rows:

text
Parse    format: csv   source: start.file   resultVar: rows
ForEach  collection: rows.value   itemVar: row

Parse a JSON API response into an object:

text
HTTP   url: https://api.example.com/order/123   resultVar: response
Parse  format: json   source: response.body   resultVar: order
# → refs.order.total, refs.order.customer, …

TIP

The Code node also parses JSON (return JSON.parse(input.response.body)), but it can't parse CSV — the sandbox has no CSV library. Reach for Parse for CSV, or when you'd rather not write code.

See also

FlowRunner — the no-code platform for small businesses.