Add approval steps to a workflow
An approval step pauses a workflow run until a person signs off. Use it to put a human gate in the middle of an automation: archive stale tasks only after a manager confirms, or hold a status change until QA approves.
If you have not built a workflow yet, start with Build a workflow.
Add the step
Section titled “Add the step”-
In the workflow builder, add a step and pick the Approval kind.
-
Write a Summary. This text is shown to approvers with the request, so say what they are deciding and why.
-
Tick the Approvers. Any member can be an approver; they do not need to be workflow admins themselves.
-
Choose the decision mode. By default the first decision wins: one approval continues the run, one rejection stops it. Turn on Require ALL approvers for unanimous mode: every approver must approve, and any single rejection rejects.
-
Connect the two outcomes. The approved branch continues the happy path; the rejected branch can notify someone, add a comment, or simply end the run if you leave it unconnected.
Where approvals appear
Section titled “Where approvals appear”When a run reaches the approval step, it suspends and each approver gets an in-app notification. Pending requests collect in the Approval Inbox:
- On the Workflows page, an amber pending approvals counter appears in the header whenever something is waiting on you. Selecting it opens the inbox.
- The inbox itself lives at Workflows → Approval Inbox, with Pending, Approved, and Rejected tabs and a preview of the full run timeline for each request.
Approve or reject
Section titled “Approve or reject”From the Approval Inbox, open a pending request, optionally add a note for the record, and approve or reject. Your decision is stored with your name and note on the run’s timeline.
What happens next depends on the decision mode:
- First decision wins (default): the run resumes immediately down the approved or rejected branch.
- Require ALL approvers: the run stays paused until everyone has decided, unless someone rejects, which resolves it as rejected right away.
A paused run shows as waiting for approval in the Activity tab, so workflow admins can see exactly which step a run is stuck on and who has not decided yet.
Best practices
Section titled “Best practices”- Use first-decision-wins for fast workflows. A single approval = continue. Cuts latency. Reserve unanimous mode for genuinely-needs-everyone decisions.
- Designate 2-3 approvers per step. One = single point of failure (vacation = stuck). Three = redundancy. More = coordination overhead.
- Always wire the rejected branch. An unconnected rejected branch ends the run silently. Wire a notification or a compensating action so the rejection is visible.
- Write summaries explaining context. “Approve to delete archived projects from 2024” beats “Approve”. The approver shouldn’t need to investigate.
- Combine with delays for SLA enforcement. Approval → Delay 24h → If still pending, notify manager. Pattern catches stuck approvals.
Troubleshooting / common pitfalls
Section titled “Troubleshooting / common pitfalls”- Approval step skipped on save. No approvers selected. Always add at least one approver to a real gate.
- Approval notification not received. Two causes: (a) approver’s notification preferences disabled; (b) email delivery failed. See Manage notification preferences.
- Run stuck for days. Approver unresponsive. Workflow admin can cancel from Activity tab.
- All-approvers mode never resolves. One approver missed it. Cancel and reissue with first-decision mode, or add a delegate.
- Decision recorded but run didn’t advance. Race condition; refresh Activity tab. If persists, file bug.
How this combines with other features
Section titled “How this combines with other features”- Approvals + Workflows. Approvals are steps within workflows. See Build a workflow.
- Approvals + Delays. Pair approval
- delay for SLA-style escalation patterns.
- Approvals + Notifications. Approval requests trigger in-app + email notifications based on approver preferences.
- Approvals + Audit log. Every decision (approve/reject + note + timestamp + actor) lands in the audit log. See Read audit logs.
Coming from another tool
Section titled “Coming from another tool”| Tool | Mapping |
|---|---|
| Zapier approval steps | Direct concept |
| Microsoft Power Automate approvals | Direct |
| ServiceNow workflow approvals | Direct |
| Asana approval custom field | Less rich; Onplana approvals are workflow-native |
| Spreadsheet approval log | Onplana automates the gate |
Can a regular member be an approver? Yes. Approvers are picked per step from your members, and anyone assigned can open the Approval Inbox and decide, even if they cannot see the Workflows entry in the sidebar. The notification they receive tells them a decision is waiting.
What if an approver never responds? The run stays paused indefinitely; there is no automatic timeout on approval steps today. A workflow admin can cancel the stuck run from the Activity tab if it is no longer relevant.
Can I have several approval gates in one workflow? Yes. Each approval step is independent, with its own approvers, mode, and branches, so you can chain a team-lead gate before a director gate.
Can approvers delegate to someone else? Today: no delegation. Designating 2+ approvers per step is the workaround.
Is there email-based approval (no login)? No — approval requires opening the Approval Inbox in-app. Email notifies but doesn’t approve.
Can workflows query who approved later? Yes — the run timeline records every decision with actor + note + timestamp. Audit log is the durable record.
Related
Section titled “Related”- Build a workflow — workflow basics
- Manage notification preferences — controls approval notifications
- Read audit logs — durable decision record
Was this helpful?
Thanks for your feedback!