Appearance
Workflow Designer reference
The Workflow Designer builds workflow definitions: the stages, tasks, transitions, deadlines and triggers described in How workflows work. This page documents the screens: the workflow list and the designer itself.
Where to find it
Workspace > Business Logic > Workflows. Opening a workflow from the list opens the designer. Page key workflows.
Workflow list
| Control | Description |
|---|---|
| New workflow name | Required to create. |
| Start from | A template, or blank. Choosing a template shows a Template preview. |
| Create | Creates a draft and opens it in the designer. |
| Describe the workflow | A sentence or two. Generate with AI drafts stages, tasks and transitions, using approver roles that exist in the workspace, and opens the draft for review. It is never published automatically. |
Templates:
| Template | Category |
|---|---|
| Expense approval | Finance |
| Leave approval | HCM |
| Employee onboarding | HCM |
| Purchase order approval | Procurement |
| Vendor onboarding | Procurement |
| Ticket escalation | Service |
| Discount approval | CRM |
Designer layout
| Area | Content |
|---|---|
| Toolbar | Back to the artifact list; artifact name; chip v<version> · <status> · rev <revision>; autosave state; Undo, Redo; Save draft; Publish; Simulate. |
| Identity bar | Description (edited in Properties), version dropdown, Business object (the record type the workflow acts on, which makes its fields available to conditions and mappings). |
| Left | The node palette (below) and the Business objects panel. |
| Canvas | Stages as boxes holding tasks, transitions as arrows. Canvas tools: Zoom out, Zoom in, Fit to screen, and a layout direction toggle (Top to bottom, Left to right). |
| Inspector (right) | Three tabs: Properties, Variables, Advanced. |
| Bottom dock | Tabs Comments, Configuration, Data Mapping, Runs and Versions. |
Keyboard: Ctrl+Z undo, Ctrl+Shift+Z or Ctrl+Y redo (not while typing in a field). Edits are undoable in single steps; renaming a stage rewrites every task, transition, SLA and escalation that refers to it as one undo step.
Saving and publishing
- Autosave saves the draft when you stop editing. The toolbar shows
Draft · savedorDraft · unsaved changes (autosaves when idle), orautosave paused. - Save draft is disabled once the version is published (
Already published). - Publish is disabled while any problem exists (
Publish is blocked while problems exist) and for an already published version. Warnings do not block publishing. - If someone else saved a newer revision, the designer shows
Stale draft — someone else saved a newer revision.with Reload latest and Save mine anyway. - If review is required for the workflow and its status is not
approved, publishing is refused (see Comments).
Node palette
Search filters by label and hint. Drag a tile onto a stage to add it, or select it to add to the current stage.
| Group | Tiles |
|---|---|
| Structure | Stage |
| Triggers | Record Trigger (start when a record is created, updated or deleted), Schedule Trigger (start on a timetable), Webhook Trigger (let an outside system start it), API Trigger (start it from a script or another system) |
| Human Tasks | Approval |
| Logic | Condition (branch into Yes and No), Switch (several cases and a default), Parallel (run branches side by side, then join), For each, Calculate, Set variables |
| Actions | Action, API Call, Sub-workflow, Create record, Update record, Delete record, Get record |
| Integrations | Connector or flow |
| Notifications | Send email, Send SMS, Slack message, Teams message, In-app notification |
| Timers | Delay, Wait until |
| AI & Others | The AI nodes (prompt, classify, retrieve, answer from knowledge, agent, guardrail), Script, Code (JavaScript), Generate document, Export to CSV |
Each tile's fields are in the Node reference.
Inspector, Properties tab
Stage
| Field | Description |
|---|---|
| Stage id | The stage's name. Renaming rewrites every reference. |
| SLA duration (minutes) | Empty means no SLA on this stage. |
| On breach, route to stage | Optional. Forces the instance into this stage on breach instead of only escalating (a boundary timer). |
| Escalate to | The fallback approver every pending task delegates to on SLA breach. |
| Escalation ladder | Levels with their own delay (minutes) and target. Each level must be at least 1 minute and later than the one before, and needs someone to hand the work to. |
| Wait for parallel branches | Leave empty for a normal stage. Set 2 or more when branches from a parallel fork converge here: the stage runs once, when that many branches have arrived. |
Task
| Section | Fields |
|---|---|
| General | Task key (the idempotency identity within an instance), Task type, Stage, Max attempts (default 5). |
| Condition (optional) | Entry condition for the task. |
| Details | Depends on the type. For a sub-workflow: Target workflow name. For a node: its own fields. |
| On Rejection | What happens when an approver rejects. |
| On Return (Rework) | What happens when work is returned. |
| Error Handling | Retry (exponential or fixed, interval, maximum delay) and what happens when attempts run out: fail, continue or go to a stage. |
Approval task
| Field | Description |
|---|---|
| Candidate approvers | Roles, ${context.x} values or ${rule.name} tokens. |
| Approval object (by role) | Optional. Names what is being approved, for example expense.claim. The approvers are then whoever your Approval Permissions allow for it. |
| Amount | Picks the approval tier. A number of zero or more. |
| Add approver | Adds a candidate. |
| Approval mode | first-response, all-must-approve, quorum, majority, percentage, sequential. |
| Approval percentage | The share of approvers who must approve, rounded up: 60 with 5 approvers needs 3. |
| Quorum count | How many approvals carry the decision. |
| Due in (seconds) | Optional. Sets the human task's due time when dispatched. |
| Dynamic approver expression | Not available in this release. The runtime resolves static approver lists, ${context.x} and ${rule.x}. |
| Payload (JSON) | Handed to the task handler as written. |
Transitions
Each transition has From stage, To stage, an optional condition (conditional and unconditional transitions are marked differently), and Parallel, which makes it fire together with every other parallel transition from the same stage. Pair a fork with a join on the converging stage.
Condition operators: eq, neq, gt, lt, gte, lte, contains, startsWith, endsWith, in, notIn, between, isEmpty, isNotEmpty, with all, any and not groups.
Inspector, Variables tab
Lists the variables the workflow reads and writes: record fields of the business object, values set by Set variables and Calculate nodes, and the results each task adds under its task key. Use them as ${context.name}.
Inspector, Advanced tab
| Section | Description |
|---|---|
| Triggers | Record triggers: Entity, Event (created, updated, deleted, changed), Field with From and To for changed, and a Filter. |
| Webhook | Turns the webhook trigger on or off and manages its token. |
| Schedules | Cron, Time zone, Context and Catch up. |
| Identity | Workflow name (fixed after creation), Description, Metadata version. |
See Start a workflow for what each trigger does.
Bottom panels
| Panel | Content |
|---|---|
| Problems | Problems that block publishing (below). |
| Warnings | Advice that does not block publishing. |
| Simulate | Sample context (JSON), for example {"financeImpact": true, "managerEmail": "jane@example.com"}. Run shows the path through the stages and the approvers, forks included. A chip says Reaches completion or Does not complete, and Cycle detected — stopped early for loops. Nothing is written. |
| Instances | Running and finished instances of the published definition, with counts by state. |
| Comments | Review status (draft, in-review, changes-requested, approved), reviewer, note, and comments pinned to the design, a stage or a task. Open comments show as a count. |
| Configuration | Form fields the workflow collects when started. |
| Data Mapping | Maps workflow data to the business object's fields. |
| Runs | The run viewer: counts by state and the step-by-step timeline with the attempt number of each failure. |
| Versions | Version history with diff between versions. |
Problems that block publishing
| Message | Cause |
|---|---|
A workflow definition requires a name | No name. |
A workflow needs at least one stage | No stages. |
A stage id cannot be blank / Stage "<id>" is declared twice | Stage naming. |
A task requires a taskKey / duplicate task key | Task identity. |
Task "<key>" requires a taskType | Missing type. |
| Task refers to an undeclared stage | A task, transition, SLA, escalation or on-error target names a stage that does not exist (SLA declared for undeclared stage "<id>"). |
invalid-condition messages | A condition must be an object, A condition clause requires a field, A condition clause requires a value, Operator "<op>" needs a list of values, Operator "between" needs exactly two numbers [low, high], Operator "<op>" takes a single value, not a list. |
| Approval problems | Human task without approvers; The approval amount must be a number of zero or more; unknown approval mode; invalid percentage; invalid quorum count. |
| Retry and error handling | Unknown retry backoff "<x>" (supported: exponential, fixed); Retry interval must be at least 1 second; The retry maximum delay cannot be shorter than the interval; Unknown error action "<x>" (supported: fail, continue, goto); Pick the stage to go to when this task fails. |
| Escalation | Level times and targets as in the stage table. |
| Triggers | A trigger needs the entity it watches; "<x>" is not an entity name; Unknown trigger event; A "changed" trigger needs the field it watches; bad cron; Catch up can look back at most 7 days (10080 minutes); "<zone>" is not a time zone the system knows. |
| Joins | Join declared for undeclared stage "<id>"; Join on stage "<id>" must wait for at least 2 branches. |
| Node configuration | The node's own required fields, for example a missing entity for a record node. |
| Required review | The review-required problem when review is required but not approved. |
Permissions
Designing workflows is an authoring action on the workflow artifact type. Running them is governed by the workflow:<name> resource. See Workflow Permissions.
API and CLI
/api/v1/authoring/workflows for drafts, publishing and versions; POST /api/v1/authoring/workflows/ai-generate for AI drafts; /api/v1/workflows for running instances. CLI: erp workflow validate|test|list|instance|tasks|history and erp artifact ... --type workflows.
Related
How workflows work, Start a workflow, Node reference, Add an approval workflow.
