End Flow Node
The End Flow Node terminates a workflow execution path and sets a specific final status on the workflow item. Unlike the standard End Node (which simply marks the workflow as completed), the End Flow Node lets you choose the outcome — Completed, Rejected, Withdrawn, or Failed — giving you precise control over how the workflow item is recorded and reported.
When the End Flow Node executes, it does two things: it sets the workflow item's status to the configured outcome, and it cancels all other in-progress steps across the workflow for that item. This makes it a definitive termination point — once reached, no other branch of the workflow continues.
The End Flow Node has no output handles. It is always a terminal node on the canvas.
When to Use
Use an End Flow Node when your workflow needs to:
- Terminate with a specific outcome other than the default "Completed" (e.g., mark a request as Rejected after an approval denial, or Withdrawn after a user cancels).
- End a branch of the workflow and cancel all other in-progress steps for that item (e.g., when one branch reaches a final decision and remaining parallel branches should stop).
- Provide a clear, reportable status for the workflow item in dashboards, reports, and the progress tracker (e.g., distinguishing between successful completions and failures).
- Implement withdrawal flows where a user can cancel their own request, ending the workflow with a Withdrawn status.
- Mark a workflow as Failed when a critical action or condition cannot be met, so failure reports capture it.
Configuration
Item End Status
The primary configuration on the End Flow Node is the terminal status that will be applied to the workflow item when this node executes. Four options are available:
| Status | Label in Reports | Description |
|---|---|---|
| Completed | Successful | The workflow finished successfully. Use this when the path represents a valid, positive outcome (e.g., request fulfilled, process finished normally). |
| Rejected | Rejected | The workflow item was explicitly rejected. Use this at the end of a rejection path (e.g., after an Approval Node denial). |
| Withdrawn | Withdrawn | The workflow item was withdrawn, typically by the requester. Use this at the end of a withdrawal flow (e.g., when the user cancels their own request). |
| Failed | Failed | The workflow item failed due to an error or unrecoverable condition. Use this when a critical action could not be completed and the workflow cannot proceed. |
The status you select here directly determines how the workflow item appears in dashboards, reports, the progress tracker, and any analytics built on workflow item data.
Hide Status
A boolean toggle that controls the visibility of this node's status in the workflow's progress tracker.
| Setting | Behavior |
|---|---|
| Off (default) | The End Flow Node and its terminal status are visible in the progress tracker. The user can see that the workflow ended and what status it received. |
| On | The End Flow Node is hidden from the progress tracker. Use this when the terminal status is an internal workflow mechanic that shouldn't be exposed to end users — for example, a withdrawal flow that ends silently. |
When Hide Status is enabled, the End Flow Node is restricted to a single incoming edge. This prevents ambiguous display scenarios where multiple paths could converge on a hidden termination point.
End Flow Node vs. End Node
Both the End Flow Node and the End Node terminate a workflow, but they serve different purposes:
| Feature | End Node | End Flow Node |
|---|---|---|
| Terminal status | Always "Completed" (Successful) | Configurable: Completed, Rejected, Withdrawn, or Failed |
| Cancels other in-progress steps | No — only marks the workflow as completed | Yes — cancels all other in-progress node executions for the item |
| Configuration | No configuration needed | Requires selecting an Item End Status |
| Hide Status option | Not available | Available — can hide the terminal status from the progress tracker |
| Use case | Standard, successful workflow completion | Specific outcomes: rejections, withdrawals, failures, or completions that need to cancel parallel branches |
| Multiple incoming edges | Allowed (acts as a convergence point) | Allowed (unless Hide Status is enabled, which restricts to one incoming edge) |
| Data Center output | None — ignored by Data Center | None — ignored by Data Center |
When to use each:
Use the End Node when the workflow has a single, straightforward completion path and every item that reaches the end is considered successful.
Use the End Flow Node when the workflow has multiple possible outcomes (approval/rejection, completion/withdrawal, success/failure) and you need to distinguish between them in reports and the progress tracker. Also use it when reaching a terminal state should cancel all other in-progress branches for that item.
How It Works at Runtime
-
The End Flow Node is reached — the workflow execution engine arrives at this node through an incoming edge from an upstream step.
-
Execution status is determined — the node maps its configured Item End Status to an internal execution status:
Item End Status Execution Status Completed Executed Rejected Rejected Withdrawn Withdrawn Failed Action Failed -
Workflow item status is updated — the workflow item's status is set to the configured Item End Status (e.g., "rejected", "withdrawn"). A completion timestamp is recorded, and the item is flagged as completed by an End Flow Node.
-
All other in-progress steps are canceled — the system finds all node executions for this workflow item that are currently in progress and sets them to "Canceled" status. This means any pending Input Nodes, Approval Nodes, Delay Nodes, or other active steps are immediately stopped. They appear as "Cancelled" in the progress tracker with a timestamp.
Steps 3 and 4 happen simultaneously for efficiency.
-
No further traversal — because the End Flow Node has no output handles, the workflow execution engine stops. No downstream nodes are executed.
Progress Path
The End Flow Node appears in the progress tracker unless it is hidden or skipped.
The progress tracker shows the node's configured name (e.g., "Request Withdrawn", "Application Rejected") along with its execution status and timestamp. The specific status label depends on the configured Item End Status — for example, a Rejected status shows the node as rejected, which is distinct from a simple completion.
When other in-progress nodes are canceled by the End Flow Node, they appear in the progress tracker with a "Cancelled" status and a "Cancelled at" timestamp, along with the actor who triggered the cancellation (the system, in this case).
Visibility Rules
- Hide Status off: The node appears in the progress tracker for all statuses.
- Hide Status on: The node is hidden from the progress tracker entirely.
- Skipped execution: If the End Flow Node's execution was skipped (e.g., the workflow took a different branch), the node is filtered out of the progress tracker.
Common Patterns
Withdrawal Flow
The most common use of the End Flow Node is in withdrawal flows. When a workflow supports user-initiated cancellation, the Trigger Node's "withdraw" handle connects to a Synchronous Block (for any real-time processing), which then connects to an End Flow Node configured with Withdrawn status and Hide Status enabled.
This pattern is so common that it is automatically generated as a template when a workflow is created. The template creates a "Request Withdrawn" End Flow Node with itemEndStatus: Withdrawn and hideStatus: true, connected through a withdrawal Synchronous Block to the Trigger Node's withdraw handle.
Rejection Path
After an Approval Node, the "Rejected" handle connects to an End Flow Node configured with Rejected status. This clearly marks the workflow item as rejected in dashboards and reports, and cancels any other parallel branches (e.g., if the workflow had branched earlier and one branch is still processing).
Failure Termination
When a critical Action Node or Function Node fails and the workflow cannot recover, the Failure handle connects to an End Flow Node configured with Failed status. This marks the item as failed in reports and failure dashboards, making it easy to identify and triage.
Multiple Outcomes in a Single Workflow
A workflow can have multiple End Flow Nodes, each configured with a different status. For example, a leave request workflow might have: an End Flow Node with "Completed" at the end of the approval path, an End Flow Node with "Rejected" at the end of the rejection path, and an End Flow Node with "Withdrawn" at the end of the withdrawal path. This gives clear, distinct outcomes for reporting and tracking.
Validation Rules
The workflow builder validates End Flow Nodes at publish time:
- The node must have at least one incoming edge. An End Flow Node with zero incoming edges is considered abandoned and will fail validation.
- The node must have zero outgoing edges. Any outgoing edges trigger an edge mismatch error — the End Flow Node is always a terminal point.
- When Hide Status is enabled, the node is restricted to exactly one incoming edge. Attempting to connect a second incoming edge will be rejected at the edge creation level.
- When Hide Status is disabled, multiple incoming edges are allowed. The node can act as a convergence point where multiple paths terminate with the same status.
Data Center
The End Flow Node does not produce any output in the Data Center. It is explicitly excluded from the Data Center configuration — there are no execution data fields, no response fields, and no values for downstream nodes to reference (since there are no downstream nodes).
Best Practices
- Use specific statuses for distinct outcomes. Don't route all termination paths to a single End Flow Node with "Completed" status. Instead, use Rejected for denial paths, Withdrawn for cancellation paths, and Failed for error paths. This makes reporting and analytics meaningful.
- Enable Hide Status for internal termination mechanics that end users don't need to see — especially withdrawal flows and system-initiated cancellations.
- Name your End Flow Nodes descriptively. Since the node name appears in the progress tracker (unless hidden), names like "Request Withdrawn", "Application Rejected", or "Leave Approved" are much clearer than generic names.
- Remember that all other in-progress steps are canceled. When the End Flow Node executes, it cancels every other active step for that item. Design your workflow accordingly — if you have parallel branches, make sure reaching an End Flow Node on one branch is truly the final decision.
- Use the End Node for simple, successful completions. If the workflow has a single happy path and no special status is needed, the plain End Node is simpler and sufficient. Reserve the End Flow Node for workflows that need explicit outcome tracking.
- Place End Flow Nodes at the end of every distinct outcome path. If your workflow can end in approval, rejection, and withdrawal, each of those paths should have its own End Flow Node with the appropriate status. This ensures clean reporting and avoids ambiguous workflow item states.
- Be aware of the Hide Status edge restriction. When Hide Status is enabled, only one incoming edge is allowed. If you need multiple paths to converge on a hidden terminal status, either use a Merge Node before the End Flow Node, or disable Hide Status.
Updated 20 days ago
