Workflows & Approvals
Workflows orchestrate multi-step processes like approval chains, conditional routing, notifications, and automated actions. Each workflow is attached to a table and runs against individual records.
Workflow triggers
Section titled “Workflow triggers”| Trigger | Description |
|---|---|
manual | Started by a user action |
on_create | Automatically when a record is created |
on_update | Automatically when a record is updated |
on_field_change | When a specific field changes |
webhook | Started by an inbound webhook |
poll | Started on a polling schedule |
Step types
Section titled “Step types”| Type | Purpose |
|---|---|
approval | Require one or more people to approve before proceeding |
condition | Branch the workflow based on record data |
automation | Run a script |
parallel | Run several steps concurrently |
external_action | Call a registered connector (provider action) |
transform | Set fields on the record |
code | Run inline code |
notification | Send a notification |
Approval steps
Section titled “Approval steps”Require one or more people to approve before proceeding:
{ "type": "approval", "name": "Manager approval", "approver_type": "role", "approver_role": "manager", "approval_mode": "any"}Approval modes (approval_mode):
| Mode | Description |
|---|---|
any | First approval is sufficient (default) |
all | Every approver must approve |
majority | More than half must approve |
Approver types (approver_type):
| Type | Resolves to |
|---|---|
user | A specific user (approver_id) |
role | Anyone with a specific role (approver_role) |
field | The user referenced in a record field (approver_field) |
script | Users returned by a script (approver_script_id) |
hierarchy | The approver’s manager(s) in the org hierarchy (hierarchy_levels) |
When no approvers can be resolved, the step follows on_no_approvers: error (default) puts the workflow into an error state, skip continues via on_approve.
Condition steps
Section titled “Condition steps”Branch the workflow based on data. Branches are evaluated in order; the first matching branch wins:
{ "type": "condition", "name": "Route by amount", "branches": [ { "condition": "gt(amount, 10000)", "next_step": "vp_approval" }, { "condition": "gt(amount, 1000)", "next_step": "manager_approval" } ], "on_false": "auto_approve"}Automation steps
Section titled “Automation steps”Run a script:
{ "type": "automation", "name": "Generate invoice", "script_id": "<script-uuid>"}Parallel steps
Section titled “Parallel steps”Run multiple steps concurrently:
{ "type": "parallel", "name": "Reviews", "parallel_steps": [ { "type": "approval", "name": "Legal review", "approver_role": "legal" }, { "type": "approval", "name": "Finance review", "approver_role": "finance" } ], "require_all": true}Set require_all to true to wait for every sub-step, or false to proceed as soon as the first completes.
Step transitions
Section titled “Step transitions”Steps connect to one another by name through transition fields, including on_approve, on_reject, on_timeout, on_success, on_error, on_true, on_false, and on_complete. Use the special targets complete_workflow and reject_workflow to finish a workflow.
Escalation
Section titled “Escalation”Configure automatic escalation when approvals stall. An escalation chain is a series of levels, each with its own approver and timeout:
{ "type": "approval", "name": "Manager approval", "approver_role": "manager", "timeout_hours": 48, "escalation_chain": [ { "approver_type": "role", "approver_role": "director", "timeout_hours": 24 } ]}Use escalation_notify to list additional users to notify when a step escalates.
Status mapping
Section titled “Status mapping”A workflow can keep a record’s own status field in sync with the workflow’s progress by declaring a status_mapping (submitted / approved / rejected / canceled / error values), so the record reflects the outcome without a separate rule.
Delegation
Section titled “Delegation”Users can delegate their approval responsibility to another user when they’re unavailable. Delegations can be scoped to all approvals, a single application, or a specific workflow, and can be time-bounded.
Workflow management
Section titled “Workflow management”- Cancel a workflow in progress (when the definition allows it)
- Recall a submitted workflow (initiator only, or admin — withdraws the workflow and cancels pending approvals)
- Admin override — approve or reject on behalf of another user
- Transfer pending approvals from one user to another
Audit trail
Section titled “Audit trail”Every workflow step transition is recorded: started, approved, rejected, delegated, escalated, transferred, canceled, and completed events, including who acted, when, and any comments provided.