Estimates
A commercial proposal before you invoice. Accepting a quote does not create a work order, does not schedule a technician, and does not create an invoice.
Sales → Estimates · /app/w/{workspace}/estimates · capability estimates · estimates.view / estimates.manage
An estimate is not required on every job. PDFs need a queue worker.
Create a draft
Section titled “Create a draft”- Sales → Estimates → New estimate. Copy: Start a draft estimate for a customer. You can add catalog lines and options on the next screen.
- Customer (required). Site and Title optional. Save draft.
- On the builder: Add line — From catalog or Custom line. Quantity, unit, unit price. Optional second option (Add another option) so the customer can pick.
- Discount is on the option (none / fixed / percentage), not on each line. Tax uses the option rate (workspace default from Settings → Commercial → Default tax rate).
Currency is the workspace Default currency. Issued later documents keep their code; changing the default does not convert amounts (no FX). Totals: Total = Subtotal − Discount + Tax (tax-exclusive, half-up). Labels: Subtotal, Discount, Tax (:rate%), Total.
Lifecycle
Section titled “Lifecycle”| Status | Meaning | Who / action | Editable? |
|---|---|---|---|
| Draft | Not shared. | Send or cancel | Yes |
| Sent | Customer has the snapshot. | Accept / Decline / Request changes (if enabled), or expire | No |
| Changes requested | Customer asked for edits. Public and portal actions are frozen until you send again. | Edit, then Send again | Yes |
| Accepted | Customer (or named signer) agreed. | Convert to work order or cancel | No |
| Declined | Customer refused. Not “Rejected”. | Can Send again | No |
| Expired | Sent and past Estimate validity (days) end of day. | Display state while still stored as Sent | No |
| Converted | A work order exists. | Terminal | No |
| Cancelled | Office cancelled the quote. | Terminal | No |
Each Send stores a new immutable snapshot. After accept: This quote can no longer be edited. There is no formal revision/duplicate button.
Send and customer decision
Section titled “Send and customer decision”- Send (
estimates.send). Confirm: Send this estimate? — The customer will receive this version. After sending, this snapshot can no longer be edited. Email subject Estimate :number, CTA Review estimate. - Share
/e/{token}or let a portal user open it. CMS preview is live JSON, not a rewrite of the sent file. - Customer: Accept estimate (option: Select this option), Decline, or Request changes (when Settings → Commercial → Allow customers to request changes is on). Optional Your name / Signature if Require a signature on approval is on.
Request changes needs a message (max 2,000 characters). Status Changes requested. Copy: We received your change request. / We will send an updated estimate. This version can no longer be accepted. Until you send again: This estimate cannot be accepted or updated right now.
Accepting from the office back-office does not send the staff customer-decision alert. Public/portal decisions do.
Convert
Section titled “Convert”Only after Accepted: Convert to work order (estimates.convert) creates a Draft work order with Planned lines (0..1). A site must exist on the estimate or the convert form. It does not schedule, assign, or create an invoice. Accept alone is not enough.
Then office Opens the job, adds an appointment, and dispatches as usual. Still no invoice until you issue one.
Related: Work orders, Invoices.