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,/approvalsqueue 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.
Related
- Multi-party approvals
- Public approval links
- Flow control → Approval
- Recipe 04: Approval-routed purchase
Found something out of date? This page lives in the Flero docs content set.