Administration

Approval Flows

How Requisition and Purchase Order approval chains are configured, processed, and resolved.

Two separate flows

Approval Flows live under Settings → Approval Flows. Requisitions and Purchase Orders each get their own independently configured chain — enabling or editing the Requisition flow has no effect on the Purchase Order flow, and vice versa. Both are part of Equipt's procurement backbone, shared with Landscapt the same way Vendors are.

If no flow has been created yet for an entity type, the page shows an Initialize Default Flows button that creates an empty “Requisition Approval” and/or “Purchase Order Approval” flow with zero steps. A flow with zero steps means nothing is gated — the requisition or PO can move straight through without needing any approval at all.

Adding and configuring steps

Each flow is an ordered list of steps. Click Add Approval Step to append one, or the pencil icon on an existing step to edit it. Steps can be reordered by dragging them (the grip handle on the left) — order matters, since steps are processed strictly in sequence. Every field on a step:

FieldWhat it controls
LabelA short name shown on the step, e.g. “Manager Approval” or “Finance Sign-off.”
Required RoleFor Requisitions/POs: admin, manager, or purchaser. (Estimate Approval in the CRM uses its own CRM roles instead — see below.)
Assign ToEither a specific person, or “Any [role]” — every user holding that role is notified, and the first one to decide resolves the step.
Dollar ThresholdThe request total this step activates at. $0 means the step always runs. A non-zero amount means the step is skipped entirely for anything under that total.

Changes to a flow auto-save about 400ms after you stop editing (a Save Changes button also appears while a change is unsaved, in case you want to save immediately or navigate away right after editing).

Worked example: a 2-step requisition chain

Say you want small requisitions to clear quickly, but anything sizable to also get a named admin's sign-off. Configure the Requisition Approval flow with two steps, in this order:

  1. Step 1 — “Purchaser Review.” Required Role: purchaser. Assign To: Any purchaser. Dollar Threshold: $0 (always required). Every user with the purchaser role is notified; whoever decides first resolves this step.
  2. Step 2 — “Admin Sign-off.” Required Role: admin. Assign To: a specific named admin. Dollar Threshold: $2,500. This step only opens once Step 1 is approved, and only activates at all if the requisition total is $2,500 or more — a $400 requisition skips it entirely and goes straight to approved once Step 1 clears.

A $6,000 requisition submitted under this flow needs both a purchaser and the named admin to approve, in that order, before it reaches approved. A $200 requisition only needs the purchaser.

Dollar-threshold routing is a real, per-step setting (not a hypothetical) — it applies equally to Requisition and Purchase Order flows. A $0 threshold always runs; any other amount is a floor the request total must meet or exceed for that step to be required.

The approval state machine

FromToWhat causes it
draftpending_approvalRequester submits the requisition or PO for approval.
pending_approvalapprovedEvery step in the flow has been approved, in order — the last step's approval resolves the whole chain.
pending_approvalrejectedAny current-step approver rejects. This is immediate — later steps never get a chance to weigh in.
approvedorderedThe PO is sent to the vendor (requisitions convert to a PO at this point, or an already-approved PO is marked ordered).
orderedclosedReceiving/invoice matching for the PO is complete.

Only the current approver in the chain can approve or reject a given step — this is enforced server-side, not just hidden in the UI. A step skipped for falling under its dollar threshold doesn't block progress; the chain simply moves on to the next step as if it had approved.

Notifications

When a requisition or PO moves to pending_approval, a request row is created for every approver eligible on the first step (either the one assigned user, or everyone holding the required role). From there:

  • Approval requested — the next step's eligible approver(s) are notified in-app and by email as soon as their step becomes current.
  • Approved — once every step has cleared, the original requester is notified.
  • Rejected — the original requester is notified by email immediately, including the rejecting approver's comment.

Why can't I approve my own requisition?

This comes up often enough to spell out exactly what's happening, because the actual answer usually isn't what people expect.

There's no rule against self-approval. If a step is assigned to “Any Manager” and you hold the Manager role, you are listed as an eligible approver on that step — even on a requisition you submitted yourself. What's actually happening in the common case where someone expects to see an approve button and doesn't: another eligible approver on that step decided first. When a step allows any user with a given role to approve, all of them are notified, but the first decision resolves the step — the other eligible approvers' entries flip to superseded and are no longer actionable. Nothing was misconfigured; someone else on the team just got there first.

If you genuinely need a specific person to hold sole approval authority for a step (rather than “any manager,” which fans out to the whole team), set that step's Assign To field to that one named person instead of leaving it on “Any [role].”

How this differs from Estimate Approval (CRM)

Landscapt's Estimate Approval is a related but deliberately simpler concept — a single gate on an estimate, not a multi-step chain. An estimate's approval status is one of not_required, pending, approved, or rejected, and it does still support its own configurable chain of CRM-role based steps (Operations Manager, Sales, etc., rather than the admin/manager/purchaser roles used here) — but the concepts, roles, and gating rules are distinct enough from Requisition/PO approval that they're covered on their own page rather than repeated here.

See the Estimating guide for how Estimate Approval fits into the budget engine and estimate lifecycle.

© 2026 Landscapt. All rights reserved.