stepbase

By job

Who has to say yes, and did they?

An approval is a gate: someone can't proceed until a decision is made. stepbase decides who that someone is from the request itself, holds the work at the gate until they act, and keeps the decision on record afterwards.

Approval by email is a decision with no home

The rule is usually clear enough: under a thousand, your manager; over twenty-five, an exec. What's unclear is whether it was followed. The thread forked, two people replied "fine by me", one of them wasn't the right approver, and the request went ahead anyway. Then finance queries it at month end and the only proof anyone can produce is a forwarded thread containing two different answers.

Today

  • The threshold rule lives in a policy doc, and people apply it from memory
  • Approval is a reply-all that forks into two threads with different answers
  • A request stalls for a week because the approver is on leave and nobody knew
  • "Can you add the budget code?" becomes a thread, not a step
  • Small purchases get an exec signature, large ones skip one
  • "Who approved this and when?" means searching mail archives

On stepbase

  • The threshold is a condition on the submitted amount, applied every time
  • One approval at a time, in order, with the request held until it's decided
  • Approvals land in a team or role queue, so a single person being away doesn't stall it
  • Send-back is an action with a path, not a request buried in a reply
  • Each level of sign-off is triggered by the request itself, never by who noticed
  • "Who approved this and when?" is a timestamped line on the instance

How it works

Capture

Capture what the approver needs to decide

Build the request form around the decision: amount, budget code, justification, evidence. The approver opens one screen with everything on it instead of asking for the missing half.

Purchase Request #1042
Everything on one screen
Amount
Budget code
Justification
Evidence
Threshold

Set the threshold as a rule

A condition block reads the submitted data and picks the path. The bands are yours: an amount, a number of days, a risk score. Paths are checked in the order you set them and the first match wins, so "over $10,000" and "over $10,000 and off-contract" can be two different routes.

Amount$8,400
Condition · first match wins
1< $1,000
Auto-approve
2< $10,000
Director sign-off
3≥ $10,000
Exec + Finance
Routed to Director sign-off
Chain

Chain the sign-offs

Put each approver on their own stage so they act in sequence, or assign one stage to several people and require all of them, any two, or a percentage before it moves on.

JD
Manager
Jamie Doyle
Now
MK
SR
TN
Finance · Legal · Ops
Any 2 of 30/2
AL
Exec
Alex Lund
Send-back

Give rejection and send-back real paths

Approve, Reject and Request Changes each point somewhere. A send-back returns the request to the person who raised it, who revises and resubmits down the same chain.

RM
Requester
send-backresubmit
Approver · Purchase #1042
Approve
Request changes
Reject
Record

Keep the decision

Every approval, rejection and comment is recorded with the person, the timestamp, the stage and where it went next. Nothing to switch on, nothing to remember to log.

Audit trail · Purchase #1042

FAQ

Common questions

Yes, that's the common case. A condition block reads a field from the request (an estimated total, a number of days, a risk score) and routes to the level of approval that amount requires. Rules can combine with AND/OR, so "over $10,000 and outside the approved supplier list" is one path.
Assign the stage to a team or a role rather than one named person. A team assignment goes to a shared queue that any member can pick up, and a role assignment shows in every holder's task list.
Both. Give each approver their own stage and they act in sequence, each one seeing the last decision. Put them on one stage and they act in parallel, which is useful when a finance and a legal sign-off don't depend on each other. If you need several people scoring the same submission rather than approving it, that's a review.
The same request, with a comment field you can make mandatory. The comment stays on the instance and travels with the outcome, so the requester gets the reason rather than a bare rejection, and the reasoning is still there when someone reads the trail later.
Yes. An approval is stored as a decision, not a message: the outcome, the approver, and the time it was given sit on the request itself. For team queues it records the person who claimed and completed the task, not the queue it was offered to.

What process would you turn into an app?

Build it free, or start from a template and change what you like. No credit card, no setup fees.

Start from a template