Guide

An approval workflow template
you can copy

If you have already decided to build this natively and just want somebody else to have made the structural decisions, here they are. Five columns, seven labels, four automations. Ten minutes.

Columns

Five, and no more.

Every column you add is one more thing to keep true.

StatusStatus

The one column that says where the work is. Labels below.

OwnerPeople

Who is responsible for the work — not who approves it.

Stage enteredDate

Set by an automation whenever the status changes. Without it you cannot see what has been sitting somewhere too long, which is the only operational question that matters.

RoundNumbers

Only if things go back and forth — creative work, drawings, contracts. Saves a status per round.

DocumentsFiles

What is being approved. Name files with a revision and never overwrite one.

Labels

One status column. Seven labels.

Describing where the work is, not who has it.

Not startedGrey

Nothing has been asked of anybody yet.

With marketingPurple

One label per approving group, in the order they are asked.

With legalBlue

Same. Add or remove these to match your stages.

With financeDark blue

Same again.

Changes neededOrange

The one everybody forgets. Not a softer word for rejected.

ApprovedGreen

Finished and agreed.

RejectedRed

Finished and refused. Rare, and it should be.

Add and remove the With … labels to match your own stages. Everything else stays the same whatever you are approving.

Automations

Four sentences.

Board → Automate → Add automation, then find each of these.

When Status changes to With marketing, notify Person

One per stage. Use the specific label, never plain “status changes”.

When Status changes, set Stage entered to today

The only automation that may use plain “status changes”, because it is the one thing that genuinely should fire on every movement.

When Status changes to Changes needed, notify Owner

Sends it back to whoever asked, rather than back to the start.

When date arrives and Status is not Approved, notify Owner

Set on Stage entered plus three days. This is the automation that stops things disappearing.

The mistake this template avoids

Never use plain “when status changes”.

Except for the date, where it is the correct trigger.

Plain when status changes fires on every movement of that column, including the one your own approval makes when it finishes. Build a notification on it and approving something sends a fresh approval request about the thing just approved — forever, until somebody notices the loop.

Name the label. When status changes to With legal fires once, when it should, and stops.

Questions

The ones that follow.

How many approval stages should we have?

Two or three. Every stage adds a person who can be on holiday, and the cost of a fourth is usually a week. If a stage exists because somebody wants to be informed rather than because they can say no, make it a notification instead of a stage.

Should approvers be a People column or the status label?

The label, for the stage — and a People column only if you need to name a specific individual rather than a group. A People column per approver is how boards end up with eleven columns nobody reads.

What if different items need different approvers?

That is the point at which a status column stops being enough. Natively you would build a second board or a set of conditional automations per case. Both work and both grow faster than the thing they are managing.

Where this template runs out

Three things no arrangement of columns can do.

Worth knowing now rather than in four months.

A status column holds one value, so it cannot represent two of the three have agreed. It cannot show somebody the document they are approving — a Files column is a filename and an Open button. And it records the last click rather than the decision, so it cannot tell you which version of a drawing an approver had in front of them, or that the drawing was replaced on Thursday.

Signoff does the third one. Approvals routed in order, the documents previewed inside the request, and a record of which file versions each person saw — including reopening the approval when a file is replaced after somebody signed off, keeping their original decision as evidence of what they actually looked at.

Build it natively first.

This page is enough to do that, and for a lot of teams it is the right answer. If you get to the third limitation, Signoff is free for three approvals a month with every feature turned on.