Conditional rules

One policy that reshapes itself per request.


Conditions read the submitted form and shape the route before the first stage activates. They are evaluated once, at submission, and the resolved route is frozen onto the request, so later policy edits never disturb work already in progress.

When a stage runs

Every stage on the Approval route has a setting for When this step runs:

SettingEffect
Always runsThe stage runs on every request
Runs only whenThe stage runs only if its condition is met
Skipped whenThe stage runs on every request except when its condition is met

A condition is one or more clauses, each a field, a comparison and a value, for example “amount greater than 50,000”. With several clauses, choose Match all or Match any.

Branches in a parallel group are gated one by one, so a branch whose condition fails is skipped while its siblings run.

Comparisons

greater than, at least, less than, at most, equals, does not equal and contains. Conditions can only test fields the form actually has, so add fields on the Submit form step first.

Approving automatically

On the Conditions & outcome step, Add auto-approve creates a rule such as “if amount is less than 500, the request is approved automatically”. When it matches, the request is approved without going through the stages, and the decision is still recorded. An auto-approve rule does not change the steps of the route.

Older skip rules

Policies saved before stage conditions existed may carry a rule that skips a stage. Those rules still work exactly as before and are saved as they are; the builder marks them as retired. To move one across, give the stage a Skipped when condition and remove the rule.

Example

The Purchase Request template has one manager stage and a rule that adds a finance director stage when the amount is over 5,000. Requests under the threshold need one approval; larger ones need two. The same route can be built by putting the finance director stage on the route with Runs only when amount greater than 5,000, which keeps the whole route visible in one place.