Lifecycle · Article 2.11
Status: Expired — 90 days passed without action
A proposal sat unviewed (or viewed-but-unsigned) for 90 days. Clozo automatically marks it `Expired`. The link still works for reference but the proposal is no longer considered active.

Where this fits in the lifecycle
Draft
Only you can see this. Edit anything.

Sent
Email landed in the client's inbox.

Viewed
Client opened the link — awaiting decision.

Signed
Legally binding. Audit trail captured.

Deposit paid
Money in escrow. You can start work.

In work
Project running. Final invoice ready when you're done.

Paid
Final invoice settled. Just one click left.

Completed
Closed. Archived. You did the thing.

The 90-day expiry is a hygiene mechanism, not a hard limit. It's there to keep your dashboard focused on active deals. An expired proposal isn't deleted, locked, or made invalid — the client can technically still sign it. Most freelancers prefer to send a fresh one rather than have a 4-month-old document signed; that's why we surface the Reactivate and Duplicate actions prominently.
Step by step
Day 90 hits.
Background job runs at 03:00 UTC daily. Any proposal still in
SentorViewedpast 90 days fromsent_atflips toExpired.No email sent.
You'll see the change in your dashboard; the client doesn't get a notification.
(Optional) Decide what to do.
Three paths: do nothing (proposal stays in
Expired), reactivate (resend the original — extends expiry by another 90 days), duplicate (new proposal number, fresh start — recommended).(Optional) Archive.
Move the expired proposal out of default views.
Why this works this way
The 90-day window starts from sent_at. If the client viewed it on day 30 and just never signed, day 90 still triggers expiry — the clock measures action, not viewing. We send no email at expiry (no point — the client clearly isn't engaging), but we record a Timeline event so you know exactly when it happened.
If you want a different expiry window (some industries have 30-day quoting standards, others 6 months), this is currently fixed across all proposals; per-proposal customisation is on the roadmap.