Setting Up Approvals

An approval asks one or more people to decide on a document before it moves on, for example "anything over 5,000 needs the finance manager". This page explains the three ways to set one up, how to pick the right one, and how to try it on a real document before it runs.

All three use the same building block: conditions. A condition on a move decides whether the move happens, a condition on a workflow step decides whether the step runs, and a condition can read what an approval decided.

Before you build

Answer these questions first. They decide which way fits.

  1. Who approves? One person, a chain of people one after another, or different people for different departments, projects or categories?
  2. What decides the route? An amount, the document type, a dimension on the document or on its lines?
  3. Whole document or own lines? Does each approver decide the whole document, or only the lines that belong to them (for example their own cost centre)?
  4. Limits. Are there amounts above which more people join? A limit always looks at the total of the lines an approver covers, so splitting one cost over several lines does not get around it.
  5. On rejection. Does the document go back, is someone told, is a field set?
  6. When nobody decides. Should the request expire after a time, and then count as approved, rejected or escalated?
  7. What needs no approval. A document no condition matches simply asks nobody.

Way 1 · An approval on a move

The simplest way, with no workflow at all. In Workspace Settings › Lifecycles, open the lifecycle, open a move such as Send for Approval and choose Add Action › Approval. Set Who approves and How many must approve. Then add moves out of the approval's status whose conditions read its result under Outcomes: approved, rejected or timed out.

Use it when one rule covers everything, for example "the manager approves every invoice over 500".

Way 2 · A workflow for each kind of approval

Each workflow carries its own logic, for example "Marketing approval" and "Administration approval". A workflow starts when a document matches its condition, or when a move starts it. The lifecycle's moves read the workflow's result under Outcomes: completed, rejected or cancelled.

Use it when you have a handful of separate rules that different people look after.

Way 3 · One workflow with many routes

One workflow holds every route. Steps with nothing before them start side by side, each with its own condition (a department, a category, a partner, on the document or on its lines). Later steps add people above a limit, for example when the total of the covered lines is at least 500. The lifecycle names this one workflow.

Use it when there are many routes and you want one place to keep them.

What an approver sees

An approver's request shows the message you write and the lines their decision covers, with their total. Choose what goes on it under What they see on the approval step, and click Preview to see the request exactly as an approver will, on one of your documents. See Actions for how people answer.

Trying it before it runs

  • On any condition, choose Test on a Document, pick a document, and each condition shows Matches, Does not match or Cannot be decided, with the reason.
  • On an approval step, Preview shows the request a chosen document would raise.
  • Save your changes as a draft. Nothing runs until you Publish, and publishing checks the setup and names each problem with the step it is on.
  • An AI assistant connected to Finpilo can build any of the three ways for you. For a workflow it shows the plan for a real document first: which steps run, which are skipped and why, who is asked, and the lines and total each person sees. For an approval on a move it shows who the move would ask. Nothing is saved until you agree. See AI Assistants.

Then run one real document through and open its request: the right people, the right lines, and a document that moves once they decide.

Mistakes to avoid

  • A route whose first approver drops out asks nobody. If the first person in a chain submitted the document or left, the document waits on no one. Give every chain someone to fall back on.
  • A decision with nowhere to go stops the document. Make sure every result (approved, rejected, timed out) leads somewhere.
  • A limit compares the number, not the currency. 5,000 USD and 5,000 EUR both pass "over 5000". If you take several currencies, add a currency condition next to the amount.