Lifecycle ยท Article 2.1
The proposal lifecycle, end to end
Every proposal goes through up to nine status transitions, with two actors (you and your client) handing off control along the way. This is the canonical map.

This is the most-bookmarked page in Clozo's docs. When you're not sure where a proposal stands, why an action isn't available, or what email just went out, find the current status on the diagram below and click through to its detailed article. Each status pill is a deep link.
Quick visual tour

Step 1: Every proposal starts here. Eight statuses ahead, two off-ramps.

Step 2: Status 1: Draft. Only you can see it. Edit freely.

Step 3: Status mid-flow: client signed, deposit paid, you're in work.

Step 4: Final invoice clears. Money lands in your account.

Step 5: Reach Completed โ the proposal is closed and archived.

Step 6: Two off-ramps exist: Declined (client says no) and Expired (90 days silent).
A status badge on every proposal in your dashboard, the Timeline on the proposal detail page, and a top-of-page banner ("Awaiting client signature", "Payment received", etc.) that gives a one-sentence status summary in plain language.
Why this works this way
The lifecycle is implemented as a finite state machine in the backend (backend/apps/proposals/models.py:Proposal.STATUS_*). The status field is the source of truth โ every UI element, email trigger, button visibility, and webhook handler reads from it. We expose the transitions in the diagram so you can predict what comes next without learning the implementation.
The two-actor swimlane format makes it explicit which transitions you can trigger and which ones the client triggers. Most freelancer-tool docs collapse this into a single linear flow, which obscures that key fact: from Sent through Signed, you're waiting on the client; you don't have a button to advance the state. Some statuses (like Viewed) only the client can trigger.
Troubleshooting
Keep reading
Lifecycle
Status: Draft โ the only status where you can edit everything
A draft is a proposal you've started but not yet sent. It's editable in every field; nothing has been emailed, no invoice exists, no audit trail beyond your edits.
Lifecycle
Status: Sent โ the proposal is in your client's inbox
You've clicked `Send`. The PDF is rendered, the email is on its way, the proposal number is assigned, and the audit trail starts here. Now you wait โ until the client opens it (`Viewed`) or signs (`Signed`).
Lifecycle
Status: Signed โ legally binding, audit trail captured
The client clicked Sign. Clozo collects an eIDAS-compliant evidence stack, generates the signed Service Agreement PDF, fires confirmation emails to both parties, and queues the deposit invoice. The proposal is now a contract.
Lifecycle
Status: Awaiting final payment, then Paid
You've issued the final invoice. The client now owes the remaining balance (full amount minus the deposit they already paid). When the money lands, status flips to `Paid` and the final receipt is generated.
Lifecycle
Timeline events: every event type explained
The Timeline component on every proposal detail page records 21+ event types. This is the canonical list with descriptions and triggers, useful when auditing what happened on a proposal.