Approvals, deposits, and pre-lien (Stage 3)
Stage 3 is the hard gate between "the customer said yes" and "we start provisioning the job." Before Flow lets a job move forward, three things must be true at the same time:
- The bid is signed.
- The initial deposit has cleared.
- The pre-lien notice is filed (or explicitly marked not required).
Only when all three are green does the Advance to provisioning button appear. Until then, the job sits in Stage 3 and cannot move. This is by design — it's a gate, not a reminder.
You'll find this screen at the job's Stage 3 — Approval page. It shows three cards, one per gate, and nothing else you can act on.
The three gates, exactly
Each card turns green (✓) the moment its underlying record exists. Here is
precisely what Flow checks:
| Gate | Passes when | Shows |
|---|---|---|
| Signed bid | The job has a bid whose status is signed | v{n} signed and the signed date |
| Initial deposit | The job has a deposit of kind initial whose status is cleared | ${amount} cleared and the cleared date |
| Pre-lien filed | The job has a pre-lien filing whose status is filed or not required | Filed — ref: …, or Not required for this state |
If a card is grey (○), that gate hasn't passed yet, and the card shows the
action still outstanding.
A note on the pre-lien gate: "not required" counts as passing. Not every job in every state needs a pre-lien notice. When a job legitimately doesn't need one, marking the filing not required clears the gate the same as filing it would. Flow does not decide for you whether a filing is required — see the limits below.
What "Advance to provisioning" does
When all three gates pass, click → Advance to provisioning. Flow then:
- Runs the job through the state machine, moving it to ready for provisioning (the start of Stage 4).
- Writes an entry to the audit log recording the status change, who made it, and when — atomically, in the same database transaction as the status update. If the audit write fails, the status change is rolled back too.
- Sends you to the Stage 4 screen for that job.
The button disables itself and shows "Advancing…" while this happens, so you can't double-click it.
The state machine re-verifies the gate on the server before it lets the job move — the green cards aren't the only thing standing between the job and Stage 4. So even if two people had the page open, a job can't be advanced twice or advanced out of order.
What a blocked job looks like
If any gate is still grey, the Advance button is not shown at all. In its place you'll see:
Complete all three gates above to advance to provisioning.
Each unfinished card names what's outstanding:
- Signed bid — "Customer must sign the bid at the tokenized URL."
- Initial deposit — "Record deposit payment once cleared."
- Pre-lien filed — "File the pre-lien notice and record the filing reference."
There is no override on this screen. If a gate hasn't passed, the job waits. (The underlying state machine does support an owner-only override with a written reason, but v1 does not expose that path from the Stage 3 screen — see below.)
Who can do this
Anyone on your team who can open the job can view the Stage 3 gates and advance the job once they pass. In practice this is your ops lead (Linda's job — she watches for the deposit clearing and the pre-lien getting filed) or the owner. The action is attributed to whoever clicks it in the audit log.
What's thin or manual in v1
Being straight with you: the gate checks are real and enforced, but the tools to satisfy the gates are not built into this screen yet. In v1, the three records get created outside the Stage 3 page — by seed data, admin tooling, or direct data entry — not by a button here.
- No in-app signing yet. The customer-facing bid page (the tokenized URL) is view-only — the customer can read the bid and text you, but there is no e-sign button and no "Sign" action. A bid's status becomes signed through back-office/manual means in v1, not through the customer tapping a button. Stripe / Apple Pay signing UX is roadmap, not shipped.
- No deposit collection yet. There is no Stripe checkout, no "record a check" form, and no webhook wired to this screen. The "Record deposit payment once cleared" text describes the intended step, but the deposit record itself is created elsewhere in v1. The card only reads whether a cleared initial deposit exists.
- No pre-lien filing tool yet. There is no template editor, PDF generator, or filing tracker on this screen. "File the pre-lien notice and record the filing reference" describes the manual step; the filing record is created elsewhere. Flow also does not determine whether a pre-lien is required for a given state — a human decides and records filed or not required.
- Owner override not surfaced here. The state machine can let an owner push a job past a failed gate with a structured reason code (written to the audit log as an override). The Stage 3 screen doesn't offer that button in v1; the only way forward on this screen is to clear all three gates honestly.
So think of Stage 3 today as an accurate gate over records that are populated by hand. The enforcement you can trust; the data-entry conveniences are still coming.
Related
- Setting your labor rates — the costs that fed the bid now sitting at this gate
- Building a bid (coming soon) — how a bid gets to "signed"
- Provisioning a job (Stage 4) (coming soon) — where the job goes after it clears these gates