Skip to content
Docs
flero.ai

Approval basics

The Approval node pauses a workflow and waits for a human decision, approve or reject. Combine with the rest of your workflow to build "human-in-the-loop" automations.

📸 Screenshot needed: approvals__queue.png, /approvals queue with two cards: each shows workflow name, requested data summary, time pending, and Approve / Reject buttons.


What you can do

  • Pause for sign-off before sending an email, charging a card, or committing a database change.
  • Route by amount: small purchases auto-approve; large ones require finance review.
  • Require multiple approvers for sensitive operations.
  • Share a public approval link with someone outside your workspace (no login needed), see Public approval links.

Anatomy of the Approval node

📸 Screenshot needed: approvals__node-config.png, Approval node inspector showing fields: Title, Message, Data to display, Approvers, Approval policy, Timeout, Public link toggle.

Configuration

Field Notes
Title Shown at the top of the approval card
Message Markdown-supported description of what's being approved
Data to show Pick fields from upstream nodes, these render as a key/value table on the approval card
Approvers One or more users, roles, or groups
Approval policy Any one (first response wins), All approvers, Majority
Timeout Optional. What happens if nobody responds in time: reject, approve, escalate to, or keep waiting
Notify on request Email, in-app, Slack, etc.
Public link Generate a shareable URL for external approvers
Custom buttons Optional. Replace "Approve / Reject" with up to 4 custom actions, each routed to a named output port

Outputs

Port Fires when
approved The configured policy is satisfied for approval
rejected A rejection happens (or the timeout policy triggers reject)
timeout Optional, only if you've set keep waiting doesn't apply
Custom ports If you set custom buttons, one per button

The data on the output is the original input plus a small approval metadata block:

{
  /* original input */,
  "approval": {
    "approvedBy":      ["ada@acme.example"],
    "approvedAt":      "2026-05-15T10:00:00Z",
    "comment":         "LGTM",
    "policy":          "any one",
    "approverCount":   1
  }
}

How approvers see it

When the approval node pauses, every configured approver gets a notification (per their preferences) with a link to either:

  • The internal approval card in /approvals, or
  • The public approval page (if a public link was enabled and shared with them).

The card shows:

  • Title and message (markdown rendered).
  • The data table you configured.
  • Workflow context: name, who requested, when, related execution.
  • Approve and Reject buttons (or your custom buttons).
  • An optional Comment field.
  • A link to the originating workflow / execution.

Clicking Approve or Reject resolves the approval. The workflow resumes on the corresponding output port.


The approvals queue (/approvals)

Every workspace user has access to the queue (filtered to approvals where they're a named approver). It shows:

  • Filter chips: All pending / Mine / All in workspace.
  • Sort: most recent first.
  • Search by workflow name, requester, or content.

Click any card to expand it inline; act in place.


Notifications

By default, Flero sends an in-app notification when an approval is requested for you. Enable email and/or Slack delivery under Settings → Notifications.

For high-stakes approvals, the workflow itself often also sends a deliberate Slack / email message before the Approval node, that gives you full control over the framing.


Tips & gotchas

  • Approvals can sit indefinitely. Without a timeout, a forgotten approval blocks the run forever. Set a timeout, even a generous one.
  • The data you show is a snapshot. It doesn't refresh, approvers see what was true at request time.
  • Don't show secrets in the Data to show fields. Anything you show is visible to everyone who can see the approval, including via public links.
  • Approvers must exist as workspace users (or be invited via public link). You can't approve as someone who doesn't have any kind of Flero access.


Found something out of date? This page lives in the Flero docs content set.