Loopfour
Blocks

Approval Block

Pause workflow execution for human approval before continuing

The Approval block implements human-in-the-loop workflows. It pauses execution and waits for a human to approve or reject before the workflow continues. Use it for high-value transactions, sensitive operations, or compliance-required review steps.

Configuration

OptionTypeDescription
titlestringTitle displayed in the approval request
descriptionstringDetails about what is being approved (supports template variables)
notifyChannelstringSlack channel to post the approval request
approversarrayList of users who can approve
timeoutstringHow long to wait for a decision, for example 48h or 7d (default 7d)
timeoutActionstringWhat happens at the timeout: fail (default), reject, approve, or escalate

How It Works

  1. The workflow reaches the Approval block and pauses execution
  2. A notification is sent to the configured channel with approve/reject buttons
  3. An authorized approver clicks Approve or Reject
  4. An approval continues the workflow. A rejection fails the run at this step unless the step's error handling is continue, in which case later steps branch on decision.approved (Taking the rejected path)

Outputs

OutputTypeDescription
decision.approvedbooleanWhether the request was approved
decision.reasonstringThe approver's comment, or Auto-rejected due to timeout
decision.decidedBystringWho decided (system for a timeout)
decision.decidedAtstringTimestamp of the decision
timedOutbooleanWhether the decision came from the timeout

Example Patterns

High-Value Invoice Approval

Stripe (create invoice) -> Condition (amount > $5,000?)
    -> True: Approval (finance manager review)
        -> Approved: Stripe (finalize and send)
        -> Rejected: Slack (notify requester)
    -> False: Stripe (finalize and send)

Discount Authorization

HubSpot (deal with discount) -> Condition (discount > 20%?)
    -> True: Approval (VP Sales review)
        -> Approved: Stripe (create invoice with discount)
        -> Rejected: Slack (notify sales rep)

Best Practices

  • Set timeouts for time-sensitive workflows. A 48-hour timeout prevents workflows from hanging indefinitely when approvers are unavailable.
  • Include context in the description. Use template variables to show the approver exactly what they are approving: amounts, customer names, and relevant details.
  • Notify via Slack for fast response. Approval requests sent to Slack channels get faster responses than email notifications.

Frequently Asked Questions

It follows timeoutAction. With reject, the request is auto-rejected and handled like any rejection: the run fails at this step unless its error handling is continue, which sends it down the rejected path. With fail (the default), this step fails; if it continues on error, later steps read its fallback output instead of a decision.

The current implementation requires a single approval. The first authorized approver to act (approve or reject) determines the outcome. For multi-level approvals, chain multiple Approval blocks.

Approval requests are sent as interactive Slack messages to the configured channel. Approvers can click Approve or Reject directly in Slack. The approval status is also visible in the workflow execution dashboard.

Yes. Approval requests can be resolved programmatically via the REST API, which enables custom approval interfaces or integration with existing approval systems.

On this page