Approval Node
Suspend a workflow and route execution based on a structured human approval decision — approve, reject, escalate, or abstain.
Two-Phase Execution
The Approval node operates in two distinct phases separated by an indefinite suspension period. This suspend-and-resume pattern is fundamental to Human-in-the-Loop (HIL) workflows and is what makes BizFirstAI workflows truly collaborative between automated systems and human decision-makers.
Request Creation
- Creates an EngageSession linked to this workflow execution instance
- Creates an InboxItem for each actor in the actors list
- Sends notification to each actor (in-app, email, or push)
- Workflow execution is suspended and yields the CPU
- The "waiting" output port fires immediately to signal suspension
Decision Processing
- Actor opens their inbox and reviews the approval request
- Actor submits a decision: approve, reject, escalate, or abstain
- BizFirstAI engine resumes the suspended workflow
- Decision data (approver, time, comments) is injected into node output
- Execution continues on the matching output port
timeout_minutes period elapses without a decision, the node automatically fires the escalated port (if configured) or the error port. This ensures workflows do not remain suspended indefinitely and that time-sensitive processes are escalated appropriately.
Key Capabilities
- Supports multiple actors simultaneously — any single actor's response can resume the workflow, or require all actors to respond based on the
allow_multiple_approvalssetting. - Four decision paths: approved, rejected, escalated, and abstained — each maps to a dedicated output port for precise downstream routing.
- Full audit trail: every decision is timestamped, attributed to the acting user, and stored with any free-text comments they provided.
- Role-based assignment: actors can be specified as individual user IDs or as role IDs — all members of the role receive the approval request in their inbox.
- Configurable timeout with automatic escalation routing — prevents workflows from stalling on unresponsive approvers.
- Rich approval request display: title, message, and detailed description are shown to approvers with full workflow context.
- BizFirst expression support on all text fields — dynamically embed workflow variables into the title, message, and description at runtime.
- Fully durable: the suspended workflow survives application restarts, deployments, and server reboots without losing state.
Output Ports
The Approval node exposes six output ports. Each fires exclusively depending on the situation:
waiting Fires immediately when the approval request is created and the workflow suspends. Use this to notify stakeholders that the workflow is awaiting a decision.
approved Fires when an actor submits an approve decision. This is the happy path — continue with the approved action.
rejected Fires when an actor submits a reject decision. Route to rejection handling: notifications, rollback actions, or alternative paths.
escalated Fires when an actor escalates the request to a higher authority, or when the timeout expires. Route to a higher-level approval or notification.
abstained Fires when an actor abstains from the decision. Useful in committee-style approvals where abstention is a valid recorded outcome.
error Fires when the node encounters an internal error (e.g., an actor ID does not resolve, or a critical timeout occurs). Route to error handling.
Business Benefits
Modern business processes rarely allow fully automated end-to-end execution without human checkpoints. Purchase thresholds, regulatory requirements, and risk management policies all demand that certain actions receive explicit human sign-off before proceeding. The Approval node makes these checkpoints first-class citizens of your workflow — not ad hoc email threads or manual process steps outside the system.
By embedding approval gates directly in the workflow graph, every approval becomes traceable, auditable, and enforceable. The system can prove — with timestamped records — who approved what, when, and what comments they provided. This audit trail is invaluable for compliance with regulations such as SOX, GDPR, ISO 27001, and internal governance policies.
Approvers interact through the BizFirstAI Engage inbox, which is purpose-built for decision workflows. They see the full context of what they are approving — the title, detailed description, and any supporting data embedded in the message — without needing to navigate to external systems or piece together context from email chains.
Timeout and escalation configuration ensures that SLA commitments are met even when individual approvers are unavailable. A purchase order that must be reviewed within 4 hours will automatically escalate to the next approver in the chain rather than silently blocking the workflow.
Use Cases
Purchase Order Approval
Any purchase order exceeding $10,000 is automatically routed to the CFO for approval before the procurement system is updated. The Approval node receives the PO details, creates an inbox item for the CFO, and suspends. On approval, the downstream nodes update the ERP and notify the procurement team. On rejection, the requester receives an automated notification with the CFO's comments.
Employee Leave Request
When an employee submits a leave request in the HR portal, the Approval node routes the request to their direct manager. The manager receives an inbox notification with the dates, reason, and remaining leave balance. Approval triggers calendar blocking and payroll notifications. Rejection sends the employee a message with the manager's reasoning.
Contract Sign-Off
Before a new vendor contract is sent for external signature, it must be approved by both the Legal team and the Finance Director. Using role-based actors and allow_multiple_approvals: true, the Approval node waits for both parties to approve before the document is dispatched via the e-signature integration. Any rejection from either party pauses the process for amendment.
Expense Claim Approval
Employee expense claims above the policy threshold are reviewed by the Finance team. The Approval node embeds the expense total, category, and attached receipts in the inbox item description using BizFirst expressions. Finance approvers can approve with a single click or reject with mandatory comments. Approved claims are automatically queued for the next payment run.
Document Publication Approval
Before any new policy document, marketing asset, or compliance report is published to the company intranet, it must be reviewed by the relevant department head. The Approval node suspends the publishing workflow while the approver reviews the document link embedded in the notification. Approved documents are automatically pushed to the CMS; rejected ones are returned to the author with comments.
IT Change Request Approval
Infrastructure changes — such as firewall rule modifications, server provisioning, or access grants — require approval from the IT Change Advisory Board (CAB) before execution. The Approval node creates inbox items for all CAB members. With allow_multiple_approvals: true, only unanimous approval triggers the automated deployment pipeline, ensuring rigorous change control.
In This Guide
Configuration
All configuration properties — actors, timeout, message templates, approval mode — with types, defaults, and expression support.
Input & Output
Output ports reference, decision data structure, and data flow examples showing what each port delivers to downstream nodes.
Examples
Ready-to-use configuration examples: PO approval, leave requests, contract sign-off, and multi-approver scenarios.