Analyze
Underwriting pass
The Analyze node is the thinking step. It takes the structured data from earlier in the flow and produces a judgment: a written assessment, a score, or a recommendation, the way a trained reviewer would, but in seconds and the same way every time.
How it works
Extract gets the data off the page. Analyze decides what it means. It reads the numbers in context and writes up the finding your team actually needs, for example whether a business's deposits and cash flow support the amount they asked for.
Because it follows the same instructions on every job, the output is consistent. Two similar files get judged the same way, which is hard to guarantee when the work is done by hand across a busy team.
Analyze is an AI step, so it is one of the paid parts of a workflow. It is worth reserving for the moment where judgment is actually needed, after cheaper steps have filtered out anything that should not reach it.
Common use cases
Real situations where this node earns its place in a flow.
Draft an underwriting write-up
Turn extracted statement data into a written cash-flow judgment and a recommended amount, produced the same way every time.
Prepare a committee brief
Summarize a family's financials into a verification brief a scholarship committee can read at a glance.
Flag invoices that look off
Read reconciled invoice data and call out anything that does not fit the expected pattern.
Analyze in a workflow
A simple example of where this node sits in a flow.
What you set up
- Connect it after the step that produces the data (usually Extract).
- It writes up its assessment and can attach a score or recommendation.
- Feed the result into a report, a document, or a delivery step.
Common questions
Is the result the same every time?
It follows the same instructions on every job, so similar inputs get consistent assessments, unlike hand review that varies by who did it and how busy they were.
Does every job need to run Analyze?
No, and it is usually cheaper not to. Put a Classify or File router step in front so only the jobs that genuinely need judgment reach the AI step.
Settings you configure on this node, stored under data.config in the workflow JSON. Leave a field unset to use its default.
modelOverride the judgment model used for the analysis; empty uses the platform default.
Type: stringextendedThinkingLet the model reason internally before responding.
Type: booleanDefault:truecustomSystemPromptExtra instructions appended to the default analyze system prompt.
Type: stringreportTemplateReport template id to render with; empty uses the org template or the built-in one-pager.
Type: stringcompareToGoldDiff a run's output against a saved gold fixture for regression testing.
Type: booleanDefault:falsecacheEnabledReuse the analysis when the same data and config run again; cache hits bill zero.
Type: booleanDefault:truecacheTtlDaysDays a cached analysis 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": "analyze",
"type": "card",
"position": {
"x": 160,
"y": 120
},
"data": {
"type": "analyze",
"kind": "processor",
"title": "Analyze",
"subtitle": "Underwriting pass",
"config": {
"model": "",
"extendedThinking": "true",
"customSystemPrompt": "",
"reportTemplate": "",
"compareToGold": "false",
"cacheEnabled": "true",
"cacheTtlDays": "0"
}
}
}