While the contract status is 'pending', the page renders a branded hold: the builder's logo, a pulsing 'Details Received' pill, the headline 'Preparing your agreement', a bookmark callout, and a live indicator reading 'This page updates automatically — no need to refresh.' A 6-second poll re-reads the contract and re-renders straight into the sign UI on 'sent'.
Also called: waiting for contract · customer waiting screen · contract not ready yet
- 1SIGNABLE_STATUSES = sent, customer_signed, fully_executed. Anything else with no signature is 'pending'.
- 2The poll runs only while pending and stops as soon as the status becomes signable.
- 3The status flip re-renders in place — no refresh, no navigation.
- 4?print=1 deliberately refuses to auto-print a pending contract, since that would print the hold screen instead of the document.
The comment records both the funnel change and the mechanism: 'after the customer submits the intake form, the contract row is created with status "pending" (builder hasn't released it for signing yet). While pending we show the "Preparing your agreement" hold instead of the sign UI, and re-fetch the contract every 6s so the sign UI reveals automatically the moment the builder clicks Send.' The bookmark callout tells the customer why they don't need to dig up an email later.
- A dead end between intake and contract
- Customers emailing to ask whether anything happened
- Needing a second email to bring the customer back
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →