Workflow automation
Your approval policy, running by itself.
Drag out the steps, branch on what was answered, and let delays, reminders, and escalations handle the parts that used to require you remembering. Or describe the whole thing in a sentence and let the AI draw it.
Free plan, no card required. Submitters are always free.
Purchase approval
PublishedTrigger
Request submitted
approval:select-users
Line manager
approval:team
Finance
if-approved
Status: Approved
if-rejected
Email submitter
Nine node types. No scripting.
Small enough to hold in your head, expressive enough for the policies teams actually write. If your rule fits in a sentence, it fits on the canvas.
Approvals
approval:teamRoute to a team's reviewers
approval:select-usersRoute to named approvers
approval:groupRoute to a reusable reviewer group
Branching
decision:if-approvedContinue down the approved path
decision:if-rejectedContinue down the rejected path
Actions
action:set-statusSet a terminal or custom status
action:email-submitterEmail the person who asked
action:email-memberEmail a specific member
action:webhookCall an external HTTPS endpoint
Timing & notice
time:delayWait before continuing
notification:request-ownerNotify the submitter
Two ways onto the canvas
Generate it
“Purchases over $500 go to my manager, over $2,000 also need finance.”
That sentence is a complete specification, and Requester treats it as one — generating the nodes, the branch conditions, and the routing, then validating the result before it's saved.
- Streaming generation you can watch and correct mid-build
- Post-processing validates the graph rather than trusting the model
- Everything it produces is fully editable on the canvas afterwards
Prompt
“Purchases over $500 go to my manager, over $2,000 also need finance, and remind them after two days.”
- approval:select-users — line manager
- decision:if-approved
- condition — amount > 2000
- approval:team — finance
- action:set-status — Approved
✓ graph validated — 5 nodes, 2 branches, 1 SLA reminder
Or draw it
A canvas that shows the branch you forgot
Drag nodes, connect paths, and set conditions on field values and request metadata. Seeing the rejected branch sitting empty is usually the moment someone realises their policy never said what happens on a no.
- Conditional branching on any field value or request metadata
- Per-step execution tracking, so you can see where a request actually is
- A workflow map on every request showing the path it took
Condition
amount > 2000 && cost_centre == "ENG"
True
Finance approval
All of 2 reviewers
False
Auto-approve
Status: Approved
The engine that keeps working when nobody is watching
An approval process is mostly waiting. What you do during the waiting — remind, escalate, or nothing at all — is the difference between a process and a graveyard.
Delays
Wait a fixed period before continuing — for cooling-off windows, batching, or giving someone a chance to withdraw.
Step SLAs
Each approval step gets its own clock and its own reminders, rather than one blunt timeout for the whole request.
Workspace escalation
When a request breaches the workspace SLA, it escalates to admins instead of quietly ageing in someone's queue.
Durable & safe
Timers run on cron-backed durable state; executions take a per-execution lock so concurrent decisions can't corrupt a run.
A workflow step can leave the building
Outbound webhooks
Call an external HTTPS endpoint as a workflow step — provision the account, open the ticket, kick off the purchase order.
Learn moreEmails from the flow
Email the submitter or a named member at any point, branded with your workspace identity.
Status as an action
Set a terminal status — including your own custom labels — so downstream reporting reads your vocabulary, not ours.
Restart a run
Re-run a workflow that executed on stale information, with the restart itself recorded in the audit log.
Learn moreYour workspace can call it “Pending Legal”. The engine still knows it means In Review — which is why renaming a status never breaks your automation.
What people ask before building one
- Do I have to build a workflow to use Requester?
- No. A template can have zero or one workflow attached. Without one, a request still routes to the template's default approvers and gets the full record. Workflows are for when the routing has real rules behind it.
- What happens to a delay if the server restarts?
- Nothing. Delays and SLA reminders run on durable timers processed by a cron job rather than in-memory schedulers, so a wait of three days survives deploys, restarts, and scaling events.
- Can two approvals landing at the same moment corrupt the state?
- No. Execution is concurrency-safe: each workflow execution takes a per-execution lock and status transitions are conditional, so simultaneous decisions can't double-advance a request or skip a step.
- Can I use my own status names?
- Yes. Custom statuses let a workspace rename and recolour the defaults and add its own — “Pending Legal”, “PO Issued”. Each one maps to one of nine semantic categories, so the engine, analytics, and SLAs keep working with your vocabulary on top.
- Is multi-step approval a paid feature?
- No. Multi-step approvals and conditional logic are available on every plan, including Free. Paid plans gate volume and advanced fields, not the shape of your process.
The rest of the product
Intake & forms
27 field types, conditional logic, and six ways a request can arrive.
Approvals
Any, all, or N-of-M — decided in-app, from email, or by outside guests.
AI
Draft requests, generate workflows, summarize, and route — natively.
Tracking & audit
Dashboards, analytics, a full audit log, and shareable status pages.
Integrations
Slack, Teams, Discord, Google Chat, webhooks, Zapier, and the API.
Describe your approval policy. Watch it become a workflow.
One sentence in, a working multi-step process out — with reminders, branches, and escalation already wired. Multi-step approvals are on every plan, including Free.