---
title: "Configuring Approval Workflows"
description: "Approval workflows decide which documents need sign-off and who has to sign."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.beelocity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuring Approval Workflows

Approval workflows decide which documents need sign-off and who has to sign. You configure them once, in the **Settings → Approval Workflows** screen, and every matching document is then routed automatically.

You need the **Approval Workflows** permission to open this screen. The built-in **Owner** and **Admin** roles include it. Custom roles can be granted it from **Settings → Roles**.

## What a Workflow Defines

A workflow has three parts:

- **A subject type** — the kind of document it reviews. Today: Purchase order, Sales order, Inventory adjustment, and Payment (gate high-value receipts and disbursements — see [Approving high-value payments](../treasury/receipts-and-payments.html#approving-high-value-payments)).
- **A match condition** — the rule that decides whether _this_ workflow applies to _this_ document. Empty matches everything; you build it from one or more conditions joined with AND, OR, or NOT.
- **A chain of steps** — the ordered list of approvers who must sign before the document is final.

When a user submits a document, Beelocity evaluates every active workflow's match condition against the document, picks the highest-priority match (lowest priority number), and runs its steps in order.

## Creating a Workflow

1. Go to **Settings → Approval Workflows**.
2. Click **New**.
3. Fill in the basics:
- **Name** — e.g. "Big POs over 5M DZD".
- **Subject Type** — pick the document this workflow approves.
- **Priority** — lower runs first. Use 100 for catch-all, 10 for specific overrides.
- **Default time to respond (hours)** — applied to any step without one of its own. Blank = no escalation.
- **Active** — leave checked. Uncheck to retire a workflow without losing history.
- **Auto-approve when no steps configured** — a matching workflow with zero steps approves the document on the spot. Useful for "below this threshold, no human review".

4. Build the **Match condition** in the rule builder.

5. Click **Save**. You land back on the workflow, and it appears in the list.

> **Tip — start with a catch-all.** Every subject type needs at least one workflow whose condition is empty (matches everything). Otherwise documents that match nothing get rejected at submit time. A common pattern: priority 100 catch-all with one default approver, plus priority 10 specific overrides for large amounts or risky partners.

## The Rule Builder

A rule is built from condition rows joined by a combinator:

- **All of (AND)** — every condition must match.
- **Any of (OR)** — at least one condition must match.
- **None of (NOT)** — wraps a single condition or sub-group and inverts it.

Each row has three parts:

| Part         | What it does                                                                                                               |
| ------------ | -------------------------------------------------------------------------------------------------------------------------- |
| **Field**    | The document attribute to test — Total amount, Supplier, Warehouse, etc. The list adapts to the subject type.              |
| **Operator** | `is`, `is not`, `is less than`, `is at most`, `is more than`, `is at least`, `is one of`, `is not one of`, `is set`, `is at least, sign ignored`, `is under, sign ignored`. |
| **Value**    | What to compare against. Numbers for amounts; warehouses and currencies come from a list; a partner is found by typing part of a name or a code and picking from what comes back. "Is one of" takes several, added one at a time and listed under the box. |

**The operators are words, in every language, and never comparison signs.** A sign like ≥ reverses direction when the page is read right to left, so the same rule would say the opposite of itself in Arabic. The two "sign ignored" operators compare the size of a figure and disregard whether it is positive or negative — useful on a stock adjustment, where a write-off and a write-on are both worth reviewing.

**Partners are searched, not listed.** A supplier or client file grows without limit, so the partner box asks for what you type instead of loading every partner into the page. Two or three letters of a name or a code are enough; matches come back a screenful at a time, and a partner already saved in a rule keeps its name whether or not it is among the matches showing.

You can nest groups by clicking **Add group** inside an existing group. Use this for combinations like _"PO over 1M AND (warehouse is W1 OR warehouse is W2)"_. The compiled rule is shown live below the builder so you can verify the shape before saving.

### Examples

**"Purchase orders of 5,000,000 DZD or more":**

- All of (AND), one row: Total amount `is at least` 5000000.

**"Sales orders to a strategic client OR over 10M":**

- Any of (OR), two rows:
  - Client `is one of` [Acme, Globex] (or whoever your strategic clients are).
  - Total amount `is more than` 10000000.

**"Damage adjustments above 100,000 DZD in absolute value":**

- All of (AND), two rows:
  - Adjustment type `is` Damage.
  - Total cost impact `is at least, sign ignored` 100000.

## Adding Steps

Open a workflow from the list to see its detail page. The steps grid is below the workflow header. Click **Add** to add an approver.

Each step has:

- **Level** — sequence (1, 2, 3, …). Steps run in level order.
- **Approver Type** — three options:
  - _Specific user_ — pick one organization member. The list is your own organization's people, each shown with their email beside their name, so two colleagues who share a name are told apart.
  - _Anyone with a role_ — anyone holding the named role can approve. The first to act wins.
  - _Originator's manager (N levels up)_ — `+1` is the direct manager, `+2` is the manager's manager, etc. Resolved via your hierarchy at submit time.
- **Time to respond (hours)** — overrides the workflow default for this step.
- **Escalation** — what happens if the time to respond runs out with no decision. Same three approver options, plus "No escalation" (the request just stays pending).
- **Notes** — free-form text shown to admins; not visible to approvers.

Steps can be edited or deleted at any time. Changes only affect future submissions — in-flight requests keep the chain they were assigned at submit time.

## Common Patterns

**Two-tier approval by amount**

- Workflow A — priority 10, condition `Total amount is at least 5000000`, two steps: department manager → finance director.
- Workflow B — priority 100, condition empty (catch-all), one step: department manager.

**Auto-approve below a threshold**

- Workflow C — priority 50, condition `is under, sign ignored 5000` on Total cost impact (for adjustments), zero steps, _Auto-approve when no steps configured_ on. Tiny adjustments approve automatically; everything else falls through to higher-priority workflows.

**Credit-checked sales orders**

- Workflow D — priority 10, condition `Client credit limit exceeded` (named expression that compares the client's outstanding balance + this order against their credit limit), one step routed to a "credit_controller" role.

The **Approval Workflows** list narrows on its **filter button** by **Subject**, **Active**, **Auto-approve**, or a **Priority** or **Time to respond** band — "active workflows for payments" is two picks ([Working with lists](../getting-started/working-with-lists.html#narrowing-the-list)). A workflow's **Steps** tab filters by **Type** (user, role or hierarchy), level or time to respond.

## Editing and Retiring Workflows

- **Edit** — click the workflow name (or use the row's _Edit_ action). Changes apply to _new_ submissions; in-flight requests are unaffected.
- **Retire** — uncheck **Active** in the workflow form. Inactive workflows are skipped during matching but their history is preserved. Prefer this over deleting.
- **Delete** — only if the workflow has never been used. Deleting a workflow with active or historic requests can break audit trails.

## What End Users See

Once a workflow is in place, the people who _submit_ the documents and the people who _approve_ them don't need to know any of this configuration exists. They use the document screens (Purchase Orders, Sales Orders, Inventory Adjustments, Receipts & Payments) and their Inbox. The workflow runs invisibly between them.

Source: https://docs.beelocity.com/en/approvals/configuring-workflows/index.mdx
