Using Human Approval Nodes
Add human-in-the-loop approval steps to your workflows.
Overview
A Human approval node pauses your workflow at a checkpoint and waits for a person to approve or reject before downstream nodes run. The execution is held - not failed and not retried - until an approver responds or the configured timeout elapses.
Use approval nodes whenever automation should not act unilaterally: large payments, customer-facing communications, bulk data changes, deletions, anything where you want a human to confirm before the workflow proceeds. The approval shows up in the Approvals page in Spojit and (optionally) by email or notification, so reviewers can act without opening the workflow editor.
Before You Start
- You need at least one teammate who can approve - they must be a workspace member.
- Consider what should happen if no one responds in time - the workflow fails at the approval step on timeout.
Configuration
- Add a Human approval node to the canvas and wire it between the step that needs review and the step that should run after approval.
- Choose the approvers - one or more workspace members. Any one named approver can resolve the request.
- Write a notification message explaining what the approver is being asked to confirm. Reference upstream data with templates.
- Set an urgency level (low, normal, high).
- Set a timeout - how long the workflow waits before the approval expires.
Settings
- Approvers - One or more workspace members. Any one of the eligible approvers can act on the approval.
- Notification message - The text the approver sees. Supports template variables, so you can include the value being approved (for example
{{ getOrder.total }}). - Urgency -
low/normal/high. Affects sort order on the Approvals page and the notification styling. - Timeout - Duration before the approval auto-expires. Common values:
1h,24h,72h.
The Approval Process
- Execution reaches the approval node and pauses.
- Eligible approvers are notified.
- The approval appears on the Approvals page.
- An approver opens the approval, reviews the details, and clicks Approve or Reject.
- If approved, the workflow continues from the node's downstream connection. If rejected or timed out, the workflow fails at the approval step.
Example: Refund Approval
Wire an approval node between "calculate refund amount" and "issue refund". Notification message: "Approve refund of {{ calc.amount }} to {{ input.customerEmail }} for order {{ input.orderId }}?". Approvers: name two finance leads so any one of them can resolve. Urgency: normal. Timeout: 24h. The workflow holds until one of them reviews; refund only fires on approval.
Tips
- Put the data the approver needs to decide directly in the notification message. Forcing them to open the workflow editor slows down every approval.
- Name two or three approvers per Human node so the workflow keeps moving when one person is on leave.
- Match the timeout to how time-sensitive the action is. A 1-hour timeout for a weekend approval is a recipe for unintended rejections.
- For workflows with several approvals, label each node clearly so reviewers know which step they are acting on.
Common Pitfalls
- No approvers available - If every named approver is deactivated or out, the approval ages out at the timeout. Name more than one approver per node.
- Timeout treated as approval - Timeouts always fail the workflow. There is no "auto-approve on timeout" mode; if you want that behaviour, use a Condition node instead of an approval.
- Sensitive data in the message - The notification message is visible to every eligible approver. Avoid including secrets or data the approver should not see.
- Edits to a paused workflow - Saving the workflow while an approval is pending only affects future executions. The paused execution keeps the version it started on.
Related Articles
- Understanding Workflow Approvals
- Configuring Approval Requirements
- Reviewing and Responding to Approvals
- Viewing Approval History
- Using Condition Nodes