A modal showing the frozen agreement (with the customer's initials rendered in), the customer's typed name, drawn signature and signing date, then the builder's own signing block: an acknowledgment checkbox, typed full name and a signature pad — or a one-click sign with a saved signature. Signing flips status to fully_executed, resolves the nagging alert, and fires the downstream automations.
Also called: countersign · builder signature · execute the contract · both parties signed
- 1Open from the dashboard alert banner, the project modal's Contract tile, or the estimate funnel checklist.
- 2Review the frozen body 'rendered through the same styled markdown component the customer sees'.
- 3Sign manually (name + ink + acknowledgment) or one-click with the saved signature.
- 4counterSignContract() writes the signature, user id, timestamp and user agent, then resolves every open alert for that contract.
- 5The UI chains a call to the counter-sign automation endpoint, fire-and-forget so automation failures never block the close.
The modal's purpose is stated plainly: it 'Captures Chris's typed name + drawn signature, flips the contract status to fully_executed, and resolves all admin alerts pointing at this contract so the persistent reminder finally clears.' The alert-clearing was a real fix — 'the counter-sign is the action the persistent "counter-sign required" alert was nagging about — clear it now that it's done. (Previously omitted, which left the alert open forever even after the contract was fully executed.)'
- Contracts stuck customer-signed with no builder signature
- Reminders that never cleared after the action was taken
- Counter-signing without seeing what the customer actually signed
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 →