Workflows Overview
A workflow defines the processing pipeline for a project: which activities run, in what order, and how they are configured. Every transaction in the project is processed by walking its workflow from the first activity to the last.
You design workflows visually in Project Settings → Workflow, where each activity is a node on a canvas. You can enable or disable nodes, reorder them, configure each one, and add branching.
The processing pipeline
A typical document pipeline looks like this:
Import → OCR → Split → Classify → Extract → Validate → Review → Export
Each step consumes the output of the previous one:
| Stage | What it produces |
|---|---|
| Import | Normalized page images from the uploaded files |
| OCR | Machine-readable text (and optional barcodes) per page |
| Split | Page ranges grouped into documents |
| Classify | A document class (type) for each document |
| Extract | Structured field values for each document |
| Validate | Business-rule results (warnings and errors) |
| Review | A human decision (accept, reject, or redirect) |
| Export | Output files (PDF, JSON, and more) |
Not every project needs every stage. If your documents are already single-page and pre-classified, you can disable Split and Classify and go straight to Extract.
Activity categories
Activities fall into three groups:
- Processing activities do the document work: Import, OCR, Split, Classify, Extract, Validate, Review, Export, Notification.
- Transform activities reshape data programmatically: Data Transform runs your own JavaScript over the whole transaction.
- Control-flow activities change the path through the workflow: If, Switch, and For Each Document.
See the Activities section for one article per activity.
Enabling and disabling activities
Toggle any activity on or off from its node. A disabled node is skipped at runtime but stays on the canvas, so you can turn it back on without rebuilding it. This is the quickest way to trim a pipeline for a project that does not need a given stage.
Branching
Workflows are not limited to a straight line. Use control-flow activities to route transactions:
- If Condition sends the transaction down a true or false branch based on a condition.
- Switch routes to one of several named branches based on a value.
- Review can expose accept, reject, and custom send-to exits that jump to other steps.
Branches let you, for example, send high-value invoices to human review while auto-approving the rest.
Settings inheritance
Activity configuration follows an inheritance chain:
Project defaults → Workflow activity config → Per-transaction overrides
Set sensible defaults at the project level, tune them on the activity node, and override per transaction only when a specific document needs it.
How the engine runs a workflow
The workflow engine:
- Picks up transactions from the Redis queue.
- Runs each enabled activity in order, following any branches.
- Tracks status and duration per activity.
- Retries transient failures (for example, a temporary model rate limit).
- Reports completion, or stops on a terminal failure.
Monitoring progress
Open a transaction to watch its workflow. Each activity shows its status (pending, running, completed, or failed), its duration, and any error detail if it stopped. See Troubleshooting when a step fails.
Next steps
- Browse Common Workflows for ready-made pipeline recipes.
- Read the Activities reference for each node's settings.