Extract
PDFs → structured data
The Extract node reads a PDF (or a scanned image of one) and pulls the numbers and text off the page into clean, structured data your workflow can actually use. It is the step that turns a document a person would read into a table a computer can work with.
How it works
Most documents that arrive in a business, bank statements, invoices, applications, are built for a human to read, not for software to process. Extract closes that gap. It reads each page, finds the values that matter, and lines them up into fields and rows.
For files that are just a picture of a document (a phone photo or a scan), Extract runs optical character recognition first, so it works whether the PDF has real text underneath or not.
Everything downstream, the rules you classify by, the analysis, the report, runs on what Extract produces. Get clean data here and the rest of the flow gets easier.
Common use cases
Real situations where this node earns its place in a flow.
Read bank statements
Pull balances, deposits, and daily activity off PDF statements so an underwriting flow can score cash flow automatically.
Digitize vendor invoices
Turn a stack of invoices, including scanned ones, into line items and totals your AP process can reconcile.
Lift fields off forms
Read a completed application PDF into clean fields so nothing has to be re-keyed by hand.
Extract in a workflow
A simple example of where this node sits in a flow.
What you set up
- Point it at the files coming in from the step before (an upload, an email, a form).
- It figures out the document layout automatically. For recurring formats it can learn the layout so repeat runs are faster and cheaper.
- The structured result is available to every node after it.
Common questions
Does it work on scanned documents and phone photos?
Yes. When a PDF has no real text underneath, Extract reads the image directly, so scans and photos work the same as native PDFs.
What if every document has a different layout?
Extract reads the layout of each file on its own, so a stack of statements from different banks all come through. For formats you see over and over, it can learn the layout to run faster next time.
Settings you configure on this node, stored under data.config in the workflow JSON. Leave a field unset to use its default.
schemaIdWhich extraction schema to parse each file with; empty falls back to the org's per-doc-type schema.
Type: stringbankParserPreferencePreferred deterministic bank parser to try before AI extraction; empty auto-detects from the top banks.
Type: stringocrFallbackRun OCR when a PDF has no readable embedded text before falling through to multimodal AI.
Type: booleanDefault:truemaxPagesPerFileOptional per-file page ceiling checked before extraction.
Type: numbercacheEnabledReuse this file's extraction by content fingerprint across the org; cache hits bill zero.
Type: booleanDefault:truecacheTtlDaysDays a cached extraction stays valid before expiring; empty uses the platform default.
Type: number
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": "extract",
"type": "card",
"position": {
"x": 160,
"y": 120
},
"data": {
"type": "extract",
"kind": "processor",
"title": "Extract",
"subtitle": "PDFs → structured data",
"config": {
"schemaId": "",
"bankParserPreference": "",
"ocrFallback": "true",
"maxPagesPerFile": "0",
"cacheEnabled": "true",
"cacheTtlDays": "0"
}
}
}