A ApproveHub
Start free
Sign in
How it worksPricingAPIHelp
Browse the help centre
Workflows

Conditional approvals

Some requests do not need a human at every stage. A stage can carry conditions that read the submitted form, and when they hold the stage is approved automatically — nobody is asked, and the request moves straight on to the next stage.

Add conditions to a stage

Conditions live inside the stage itself, next to its approver groups, so a workflow needs at least one form field before you can set any.

  1. Open the workflow editor and go to step 2, “Approval flow”. Expand the stage you want to make conditional.
  2. Under “Skip automatically when”, press “Add condition set”. The first condition appears straight away.
  3. Pick a form field, a comparison and a value. Only the comparisons that suit the field type are offered, and choice fields only let you pick from their own options.
  4. Add more conditions or more sets, then save the workflow. Conditions are part of the versioned definition, so requests already under way keep the rules they were submitted with.

How sets combine

Conditions are grouped into sets, and every set decides for itself how its own conditions combine:

  • “all conditions match” — every condition in the set has to hold;
  • “any condition matches” — one is enough;
  • between sets it is always “or” — the stage is skipped as soon as one whole set holds.

A stage holds up to 5 sets, and a set up to 10 conditions. That is enough for “(amount under 50 000 and department is IT) or (not urgent)” without turning the screen into a formula editor.

What you can compare

The comparisons on offer follow the field type, so a date field never asks for a number and a select never asks for free text:

  • text, long text, email, link and phone — is, is not, contains, does not contain, starts with, ends with;
  • number — is, is not, greater than, at least, less than, at most;
  • date and time — is, is not, before, after, on or before, on or after; a date range compares its start or its end, or its length in days;
  • dropdown and radio — is, is not, is any of, is none of; checkboxes — is any of, includes all of, is none of. The value is always picked from the field's own options;
  • file — how many files were attached;
  • every type also has “is filled in” and “is empty”, which is the way to react to an optional field being left blank.

What happens when a request comes in

The form is fixed the moment a request is submitted, so the conditions are evaluated once, right then:

  • every stage whose conditions hold is marked as skipped, and its approvers are never notified;
  • the request page shows the stage as “Skipped automatically” together with the conditions that matched, and exports carry the same reason;
  • if every stage is skipped, the request is approved on submission — which is exactly how “purchases under 5 000 need no approval” is expressed.
Good to know. Conditions can only skip a stage, never add one. A stage whose conditions do not hold behaves exactly as it always did.

Editing fields later

A condition points at a specific form field. If you delete that field, or change it so the comparison no longer applies, the editor marks the condition and refuses to save until you fix or remove it — so a workflow can never quietly stop skipping what it used to skip. The editor also warns you when a set contradicts itself, for example when the same field is required to both be and not be the same value.