Try five live demosdemo.gravixar.com

Module library

Client sign-off flow

Client work moves through fixed steps: draft, internal review, internal approval, client review, client approval. If the client asks for changes, it loops back. Nobody can skip a step or mark work approved by editing a field.

Most status fields are a typed prayer: anyone can change them, and nothing checks. This is the version that holds up when a client says they never approved something, because every step is on record and none of them can be skipped.

Under the hood

Each transition is a single function with explicit pre-conditions (the source state must match) and side-effects (notification, email, audit row, downstream task fanout). No state is implicit. No admin can flip a deliverable to "approved" by editing a free-text field.

The CLIENT_REVISION_REQUESTED branch is the part that earns its keep. It loops the deliverable back to DRAFT for the assignee, preserves the prior approvals as audit history, and flags the deliverable so the next submission shows reviewers exactly what was changed. The discipline pays for itself the first time a client claims something was never approved.

Related modules

Also in Operations

Bring me a real operations problem. I will show you the system running before you sign anything.

The Ops Leak Audit is the fixed-price first step: I count the hours your tools cost your team, then price the fix. Rather talk first? Book a 30-minute call. If it is not a fit, you still leave with notes you can use.