Workflow Engine¶
Every Scroll workflow is a sequence of typed steps executed in order by the engine. A run moves through the steps, pausing at any human-approval gate, and finishes by sealing a tamper-proof record.
Step types¶
| Type | What it does |
|---|---|
| analysis | Calls the AI to read documents, extract data, check compliance, or draft text. Uses PII redaction for client data and live web search for current rules/fees. Output is stored as structured data + a human-readable summary. |
| gate | Creates a human-approval checkpoint (a Authorisation Layer escalation) and pauses the run until someone approves or rejects. |
| submission | Fires a government connector to file the application, only runs after the gate is approved. See Submission & Connectors. |
| seal | Appends a tamper-proof entry to the Provenance Vault. |
| coordination | Notifies an external party (e.g. a webhook or email). |
A typical submission workflow looks like:
Analysis-only workflows (e.g. document review) simply end after their analysis steps and a seal.
Run lifecycle¶
A run moves through these statuses:
| Status | Meaning |
|---|---|
running |
The engine is executing analysis/preparation steps. |
waiting_approval |
Paused at a gate, waiting for a human to approve or reject. |
completed |
All steps done; sealed in the Vault. |
failed |
A step errored; the reason is recorded and the team is alerted. |
The run view shows each step live (✓ done, ● running, ○ waiting) and expands to reveal the AI's output for each completed step.
Inputs¶
Each workflow defines an input schema, the fields and documents it needs (e.g. licence number, business name, a PDF). Inputs can be provided:
- Manually in the intake form,
- From a saved client or a connected CRM, which pre-fills the form, or
- By the client via a shareable intake link.
Required fields that are missing are highlighted, and you can request exactly those from the client in one click.
Background execution¶
Steps run asynchronously, so long AI or submission steps never block the UI. The run view polls for updates and reflects each transition in real time. If a step fails, the run is marked failed, the error is captured, and a notification is sent.