Proposals and PDFs
Preview, download, and send professional PDF proposals to your customers.
Proposals and PDFs
Every estimate in CleanEstimate Pro can be turned into a professional PDF proposal. The system generates PDFs automatically when you preview or send an estimate. Customers also get a web-based proposal link where they can view, accept, or decline.
Use Review & send on a draft to send its proposal. New V2 estimates use the same send flow as existing estimates; their record ID does not require a different action from the office.
When an estimate is sent, its customer-visible terms are frozen on that revision. The public proposal page and its PDF use the same saved terms, and later company-settings changes do not rewrite a sent or accepted revision. Sending a new revision captures the effective terms for that new revision.
For Holiday Lights, a non-empty design drawn in the current V2 web visual designer is frozen into the sent revision and appears on the secure web proposal, the signed-in customer account, and the downloadable proposal PDF. When the selected package has a reviewed Winter Wonderland preview, those customer views prefer its generated nighttime property image. Otherwise, the PDF uses a bounded, server-composed image of the frozen deterministic drawing. Customer-visible power-plan details can appear with that fallback, but outlet notes and private crew notes do not. If its retained property image or Street View background is temporarily unavailable, the PDF still downloads with the frozen pricing, scope, signatures, and payment terms. Public and office PDF image work pauses safely if the shared paid-provider quota guard is unavailable. Uploaded Holiday Lights property photos are decoded, metadata-stripped, and normalized to a bounded WebP before storage; malformed or oversized uploads do not enter a proposal.
Option A/B/C Proposals
Authoring your own options
Any estimate except Holiday Lights (which uses Good, Better, and Best packages instead) has a Proposal Options A/B/C button next to its actions. It opens the Proposal Options panel, where the office writes the choices the customer will compare:
- + Add option adds a choice, up to 12. Duplicate copies the open
one, Delete removes it (a proposal always keeps at least one), and Move option left / Move option right set the order customers see.
- Each option has a label, a description, and line items with Name,
Description, Qty, Unit, and Unit price; the panel shows the Line total, Subtotal, Discount, Tax, and Total as you type, and the server prices the same numbers again when you save and send.
- Seed from this estimate fills the open option with the estimate's own
services, add-ons, and custom items at their current prices.
- Recommended (exactly one) marks the choice the customer sees with a
Recommended badge. If none is marked, the first option is.
- Save keeps the set with the estimate. Once the proposal is accepted or
signed the panel is read-only.
- Use generated options drops the authored set, so the next send offers the
generated choices again.
Authored options follow the same Red Line rule as generated pricing: if any authored option totals under the estimate's floor, sending it needs the below-floor approval.
When an estimate with saved options is sent, those options replace the generated As requested and Complete Property Care choices. A Suds Club choice is still offered alongside them when the estimate has a maintenance plan, the same way it sat beside any package before. Sending an estimate with no saved options keeps the generated choices exactly as described below.
Customers see authored options as comparison cards in the saved order, each with its own description and line items, on the secure quote page, in their signed-in account, and in the PDF.
Clean Estimate V2 comparison presentation
The secure V2 proposal presents the actual saved choices as responsive comparison cards. It shows one, two, or three columns when that many choices exist and stacks the cards in the same saved position order on a phone.
When a residential estimate is published through the shared quote-core viewer as a requested-work, maintenance, and later-upsell comparison, that generated comparison is saved in this default order:
- As requested is first. This is the original one-time scope discussed
with the customer.
- A maintenance plan or Suds Club choice is second and marked
Recommended.
- A later expanded or upsell choice is third.
The residential comparison uses this same order throughout the hosted quote, customer portal, signature review, and accepted snapshot. It does not move Complete Property Care ahead of Suds Club or relabel the expanded work as the maintenance choice.
An office-authored Option A/B/C proposal is not forced into that default. If the office renames or reorders its saved options, the public proposal honors those persisted positions. A stored maintenance-plan option keeps its Recommended role wherever it was positioned.
Custom A/B/C choices without a saved requested/maintenance identity use a neutral Option label. Clean Estimate does not guess that a renamed package is the requested or enhanced choice.
Clean Estimate does not create a placeholder choice to fill the layout. A proposal with one or two saved offers shows only those one or two offers.
The saved option type controls this presentation. A one-time quote does not become a maintenance plan just because its custom name contains words such as "maintenance" or "Suds Club."
No choice is selected automatically when a customer first opens an unsigned proposal. The customer must select a card before Review and accept becomes available. If the proposal was already accepted, the stored accepted option remains selected and read-only when the page is reopened.
Each card uses the saved option's own stable ID, server-verified total, and exact amount due. Choosing a different card updates the signature summary and deposit or full-payment amount from that option without recalculating it in the browser.
When a customer selects an enhanced one-time option, its own customer-safe saved scope and totals appear in the scope section. Internal pricing controls remain excluded by the same proposal allow-list used for the original scope. Any untouched material or type dropdown is saved with the same default shown on screen, so the builder cannot display one choice while pricing another.
When a maintenance plan is selected, the lower scope section is labeled Original requested scope and marked as reference-only. The one-time scope is not presented as extra work included with the selected plan; the plan card and selected-plan total remain the acceptance terms.
Any saved estimate can now be sent as one proposal with multiple choices. This works across residential, generic, asphalt, fleet, commercial building, holiday lights, and source-linked maintenance proposals.
On the review step, save the draft and click Proposal Options A/B/C. CE Pro opens the estimate's Proposal Options workspace, where you can:
- turn the multi-option proposal on or off
- add, duplicate, delete, and reorder options
- rename options to Option A, Option B, Good, Better, Best, or any other label
- give each option its own description, line items, quantities, units, prices,
discounts, tax, and deposit
- mark exactly one option as Recommended
A proposal can contain 2 to 12 active options. Each option has a stable internal key, so renaming or reordering it does not break the customer selection.
Save the options before previewing or sending. The web proposal, email, and PDF then show every active option in the saved order. The customer chooses exactly one option before signing. CE Pro copies that option's scope and server-verified total into the accepted estimate, so the job, invoice, payment, and automation handoffs use the chosen package rather than adding all options together.
You can revise options while a proposal is a draft, sent, or viewed. Saving a revision clears any uncompleted selection and invalidates an older review session. Accepted and signed proposals are locked. For a declined or expired proposal in the single-screen estimate builder, use Change status to move it back to Draft, then edit and send a new revision. Proposal builders without that status action keep their terminal records locked; follow that builder's guide or duplicate the estimate to create a new version. CE Pro keeps proposal revision history and the signed acceptance snapshot for audit purposes.
For fleet, commercial building, and holiday lights, the button prepares the shared estimate record automatically before opening the option workspace. A source-linked robust maintenance plan uses the same shared estimate option workspace.
PDF Preview
From the single-screen V2 estimate workspace, save the first revision and click Preview to open its PDF in a new tab. The old residential multi-step wizard is not used for this workflow. Fleet and commercial-building proposals that still use a review step expose their preview from that review step instead.
The preview renders the full proposal exactly as the customer will see it. Use this to catch formatting issues, pricing errors, or missing information before sending.
In Holiday Lights proposal PDFs, the known roofline_eave service key prints as Roofline eave in legacy materials and price-book rows. Customer-authored text stays unchanged. This is a label correction, not a change to frozen pricing or an already-issued proposal.
What the PDF Includes
Each PDF proposal contains the following sections:
| Section | Details |
|---|---|
| Company header | Your company logo, business name, address, phone number, and email |
| Customer details | Customer name, property address, and contact information |
| Service breakdown | Each selected service listed as a line item with quantity, unit, and price |
| Add-ons | Any add-on items with individual pricing |
| Custom items | Manual line items added during the estimate |
| Project photos | Photos attached in the estimate's Photos panel, two per row with captions, only when at least one was attached |
| Pricing summary | Subtotal, discounts, sales tax, total, payments, and remaining balance when applicable |
| Terms and conditions | Your configured terms of service |
| Signature area | Paper signature, printed-name, title, and date lines; accepted standard estimates show the saved online signature |
The company header and terms come from Settings whenever a proposal revision is issued. Clean Estimate retains that exact company identity with that revision. Resending an estimate issues a new revision using the then-current Settings. Earlier revision records and generated content remain unchanged; the previous secure customer link is revoked when the new revision is issued.
Standard Customer Document Format
Estimate, invoice, and work-order PDFs use a compact business-document header instead of a stack of shaded boxes. The first page starts with:
- Company logo and contact information at the upper left.
- Document type, number, date, status, and key amount or service date at the
upper right.
- Prepared For or Bill To at the middle left.
- Service Location or Work Location at the middle right.
- One rule directly above the itemized scope.
Long scopes continue on later pages with repeated document identity, table headings where needed, and page numbers. Full terms stay with the document in a readable appendix instead of starting in a small leftover space at the bottom of the totals page.
Estimates include paper signature, printed-name, title, and date lines. On the standard estimate flow, a PDF generated after online acceptance also shows the saved signature and approval details. Invoices show balance and payment history rather than asking the customer to approve the sale again; the printable copy includes an optional paper acknowledgment area. Work orders show the service date, work location, authorized scope, and customer and crew completion lines.
Offline deposit arrangements appear as Deposit pending with the planned method. They are never added to paid totals until the office confirms receipt.
For an accepted Suds Club choice, the PDF uses the signed snapshot as its source for the membership and prices. It breaks out the one-time work total, one-time deposit, Club signup, signup tax, amount due at approval, payments received, and remaining approval balance. A Club-only PDF omits unapproved one-time work. Future monthly dues stay separate from the signup payment and approval balance. The authenticated office preview and customer download both use the selected option's persisted amount due, so a Suds Club signup cannot be replaced by a different proposal-wide deposit in the printable copy. For a monthly membership, visit amounts in the schedule are labeled as allocated service value rather than separate per-visit charges. The PDF prints the hosted signup amount, the regular monthly installment count and amount, and any different final reconciliation installment exactly as the saved Stripe Billing schedule will collect them.
For commercial building and fleet proposals, the default terms now come from Admin > Commercial > Settings whenever the proposal-level custom terms box is left blank. That keeps the office on one shared editable source instead of a hidden PDF-only fallback.
PDF Variants
CleanEstimate Pro generates different PDF layouts depending on the estimate type:
- Residential -- standard service-based layout with property details.
- Commercial -- includes multi-option pricing and site condition notes.
- Commercial Building -- shows surface-level line items and building-specific details.
- Fleet -- lists vehicle types, counts, and per-unit pricing. Seasonal fleet PDFs now break pricing into the standard cadence and alternate cadence separately, the service-plan page lists each month in the split schedule, and the cover page keeps the saved proposal date on the correct calendar day instead of shifting date-only records backward in some time zones.
- Generic Quote -- displays manual line items in a simple table format.
- Maintenance Proposal -- shows the visit schedule, per-visit pricing, and annual cost.
Sending Proposals by Email
The V1 review step sends an email summary, PDF attachment, and clickable online proposal link. In the current V2 single-screen builder, select Review & send, confirm the recipient and channel, and review the editable message copy. Email offers an editable Subject and Message. Text offers an editable SMS preview with a V1-style 160-character guide.
The V1 baseline includes:
- An email with a summary of the estimate and a PDF attachment.
- A clickable link to view the proposal online.
V2 adds the newly minted secure proposal link after the editable message. This protected suffix is intentionally not editable, so an office copy change cannot remove, corrupt, or replace the customer link. The customer can review and download the PDF from that page. Current V2 does not yet attach the proposal PDF to the email automatically.
Clean Estimate V2 customer proposal experience
The Clean Estimate V2 proposal link uses a focused, mobile-friendly review experience inspired by the established Clean Estimate proposal flow. The customer sees your organization name, their name and service address, the proposal status, sent date, revision, and expiration before reviewing pricing.
The proposal keeps the complete itemized scope, subtotal, discounts, any minimum service charge, tax, and total together so the displayed arithmetic reconciles. If the office sent more than one option, the customer can compare each option and its exact total. Maintenance options also show their year and visit schedule. Discounted annual subtotals reconcile to the exact per-visit charges shown in that schedule. When the customer selects a maintenance plan, the prominent summary switches to that plan total and hides the one-time line amounts so two different financial terms are not presented as the active choice. The selection card displays the exact deposit or full payment due for the option before acceptance.
Eligible residential proposals restore the established three-choice layout:
- As requested shows the one-time work the customer asked the estimator to
price, with each included service and amount.
- Suds Club sits in the middle as the emphasized best-value choice. It
shows the monthly membership price, three-payment signup amount, tax-inclusive plan total, four seasonal visits, included services, and savings.
- Complete Property Care shows the expanded one-time package on the right.
Services beyond the requested scope are marked Added, and the option has its own independently calculated total and immutable pricing snapshot.
The selected non-plan option's own frozen snapshot drives the signature view, downloadable PDF, payment amount, and job checklist. Suds Club visit jobs use the exact services frozen for that season instead of copying the original one-time request onto every visit.
The single-screen estimator has a separate Complete Property Care additions section. Select an optional service there and enter that service's own verified measurement. V2 never derives a roof area, window count, gutter length, deck, patio, fence, or other quantity from a different service's measurements. If no measured additions are configured, the proposal omits the right-hand option and keeps only the choices it can price safely.
The automatic Suds Club choice uses the approved default membership matrix. If an organization's customized one-time service floor or underlying service rate no longer matches that approved basis, V2 does not publish an unmeasured automatic choice. The estimator sees the reason and can review pricing settings or build a measured, manager-approved visit plan. Its saved signup charge is pretax; the PDF itemizes applicable signup tax separately, and their sum is the tax-inclusive amount due at signup. The saved plan total, nine later installments, and tax-allocated per-visit totals include the estimate's effective sales tax, so every accepted amount reconciles. The hosted signup checkout saves the customer's payment method for the connected-account Stripe Billing schedule. The ninth installment absorbs any final-cent rounding difference rather than drifting from the signed total.
The automatic Suds Club card is published only when the organization has a charge-ready Stripe connection. Without one, Clean Estimate Pro sends the valid one-time choices and withholds the automatic membership. A monthly membership that a representative explicitly added remains blocked until Stripe is ready; it is never silently removed from the requested proposal.
To accept, the customer:
- Selects the option they want.
- Enters their full name.
- Draws a signature with a mouse, finger, or stylus. Keyboard users can create
the signature from the typed name instead. Correcting that name clears the generated signature so the customer can create it again with matching text. The drawing area follows the pointer across narrow phone screens, and an accidental stationary tap does not discard an existing drawn signature.
- Confirms the acceptance.
- Uses the secure Stripe checkout when online payment is required. For a
non-membership deposit, the office can instead arrange check, another offline method, payment later, or waive the upfront payment; the accepted proposal then shows the corresponding pending or resolved state. A monthly Suds Club signup is different: it must complete the hosted checkout so CE Pro can save the payment method and create the signed Stripe Billing schedule. Deposit received and Waive cannot replace that signup.
Proposal checkout return links use the configured public application origin (NEXT_PUBLIC_APP_URL). If it is missing or is not a valid HTTPS origin, checkout does not start. Ask your administrator to review the public app URL configuration before trying online checkout again.
For an accepted Suds Club membership, the signup payment must settle before visits become schedulable. Settlement creates the nine later monthly charges starting one month after signup. Replayed payment webhooks reuse the same schedule. Cancelling the membership stops that Stripe schedule before Clean Estimate Pro marks the local plan and future visits cancelled.
Recorded payments take priority over the waiver label if an already-open checkout settles later. If the office resolves the payment outside the online provider and no payment row exists, the proposal says the payment was handled by the office without claiming an online amount was received or remains due. Provider payment records show their gross received and refunded amounts. A full refund therefore restores the upfront balance instead of looking like a no-record office resolution.
The acceptance page keeps the proposal PDF available for review and download. After acceptance, it shows the signed name, date, selected option, payment requirement, successful payments, and any refund amount reported by the payment processor. The retained PDF identifies the customer and service address and includes the exact captured signature when the customer signed online. When no online payment is required, it confirms that the office will follow up with the next steps.
If a customer returns from the signing step to compare options, the proposal clears the hidden signature image. They sign again after reopening the review step, so acceptance never submits a signature that is no longer visible.
Customers can decline an open proposal and optionally tell the office why. If another tab accepts first, the decline view reloads the accepted result instead of leaving stale decline actions on screen. Expired and withdrawn links stay read-only and explain that the customer should contact the office for an updated proposal.
The public page receives only a customer-facing projection of the proposal. It does not expose office notes, access instructions, internal pricing floors, commissions, contact methods, or private navigation.
Newly sent revisions also freeze the allow-listed organization, customer, service-address, location, and timezone labels used by the portal and retained PDF. Later CRM renames or address edits do not rewrite what the customer was sent or signed. Older proposal links continue to use their existing live-row fallback.
Current V2 residential, generic, commercial, and holiday-light estimates built in the single-screen workspace use Review & send before the first send and Review & resend before a later revision. The dialog shows the exact active primary email address and mobile number, including whether transactional consent makes each channel available. Staff choose Email and text, Email only, or Text only. The server repeats those checks while issuing the immutable revision and binds the approved method and destination to the durable delivery event. A later primary-contact change cannot silently redirect that revision or its scheduled follow-up.
When a channel is unavailable, open the customer profile and review its Service messages permission. A teammate may record an explicit customer grant or revocation there; marketing permission is separate and does not make estimate delivery eligible. The New Client and lead quick-create forms can also record explicit service permission, but both choices start unchecked and entering contact information alone never enables delivery.
Before an SMS reaches the provider, CE Pro converts saved customer phone numbers to international E.164 delivery format. A legacy number that cannot be converted fails locally and is recorded as failed instead of being sent to an ambiguous destination.
The dialog also restores the V1 email and text editing workflow for this send. Staff can edit the email subject, email message, and SMS message. The protected secure-link suffix is a deliberate V2 safety difference from V1 and cannot be removed. Message edits are frozen into this send's durable delivery work; any later Estimate sent → Quote follow-up run uses the separately reviewed, published revision in Automations. Editing the initial-send dialog does not rewrite the automation template, and editing an automation draft does not rewrite a run already enrolled on a published revision. Fleet and other separate proposal builders keep their documented send workflow until they move onto this V2 boundary.
The first quote always remains an office-reviewed manual send. After that successful durable send, the active quote-follow-up workflow may wait and send its configured email, SMS, or both while the proposal remains unanswered. It stops before another message when the proposal is accepted, declined, expired, withdrawn, or superseded, or when the customer already replied or booked. Preview and test in Automations never contact a provider.
Mobile reps keep the approved V1 interface unchanged. Existing mobile sends snapshot all currently eligible destinations without adding a new mobile recipient dialog, and in-person proposal presentation remains available.
Estimate send actions queue delivery and follow-up work in the background. The office success message says the revision was Queued by the selected channel(s); it does not claim the provider delivered the message. Check Messages for the actual email or text result.
If your office sends a large burst of estimates at once, CE Pro may briefly show the delivery as Queued or Processing while the background worker drains the send backlog.
When you save and send a quote from the Generic Quote Builder, the send step now reuses the customer token generated during the save response instead of regenerating it a second time. That keeps the new-quote send flow from failing on resend/retry paths and also surfaces provider misconfiguration as a real send failure instead of a false success.
The manual V2 send/resend flow creates a fresh immutable revision and durable delivery event together. If the reviewed recipient changes before commit, the send is refused with no revision or delivery event created. Provider failure after queuing remains visible in Messages and can be followed up manually or through a later reviewed resend.
Approval, decline, and resend safeguards
Every new estimate must resolve to a customer. If an older draft has no customer, attach one from the estimate builder before sending; CE Pro does not allow a customerless proposal to enter the delivery flow. If that draft is linked to a legacy lead that also has no customer, repair the lead first so the lead and estimate continue to identify the same customer.
When creating an estimate from the office New Estimate dialog, the saved property must belong to the selected location. The property picker shows only properties in the location where the customer was selected. To quote a property in another location, change the location first, then select the customer and property again. Manually changing the location clears the current customer and property so the new selections are validated together. Changing customers also clears the earlier property choice and ignores any late property-search result from the previous customer. The server confirms that the final property belongs to both the selected customer and location before it creates the estimate.
When a customer declines a proposal, the office estimate shows the optional reason they entered. If they leave the reason blank, the estimate says that no reason was provided. This lets the office respond before sending a new revision.
When a rep sends below Red Line, CE Pro files an approval request that includes the one-time total, affected services, and any maintenance-plan pricing that caused the request. The approval applies only to that exact priced content. A package or bundle discount is allocated across its included services before this check, including Complete Property Care, so a healthy undiscounted line cannot hide a below-floor accepted package price. A saved pricing, measurement, or maintenance-plan change on web or mobile retires the old pending request immediately, even if the rep stops editing without pressing Send again. The rep must submit the current price for a fresh approval. The builder shows Below-floor approval granted only when the approved request matches the pricing currently on screen. Older approvals stay in the audit history without being presented as authorization for an edited or legacy proposal.
If a teammate with below-floor approval permission sends the proposal directly while a matching request is pending, that send completes the gate and removes the request from the approval queue. It cannot be approved or denied after the proposal has already gone to the customer.
For a pending request, the approval queue identifies each authored option that is below the floor and shows its label, price, floor, and dollar difference. Approvers may add an optional decision note of up to 500 characters when they approve or reject; a nonblank note is saved with that decision.
For proposals sent from the single-screen estimate builder, a declined proposal can be sent again as a new revision. That flow creates a new customer link and retires the earlier link. Other proposal families keep the resend and link behavior documented in their own builder guides. The single-screen resend form starts with the previous revision's expiration and payment terms, including a no-expiration setting. Fixed deposits and custom percentage deposits are preserved exactly, while the office can still choose a different supported term before sending. If an older revision contains an invalid payment combination, CE Pro asks for an explicit choice instead of silently changing it to No deposit.
The office builder also offers a resend while a proposal is still sent. First choose Refresh price to resend. CE Pro recomputes the estimate with current workspace pricing and shows the resulting total without contacting the customer. Refreshing is read-only: leaving the page without confirming does not replace the sent amount in office estimate lists. Review that price, then choose Confirm resend to create the next immutable revision, rotate the customer link, and run the Red Line approval, expiration, and deposit checks. It never rewrites the revision the customer already received. If the refreshed price needs Red Line approval, office lists continue to show the last sent amount until approval is granted and the resend actually succeeds. If workspace pricing changes after the preview, or another tab or device changes the proposal status or sends a newer revision, the resend is refused until the office refreshes the price again.
Use Change status beside the estimate status for an office correction. An open proposal can be moved back to Draft, marked Declined, or marked Expired. Decline asks for an optional reason, and every terminal change asks for confirmation. Moving to Draft immediately closes the current customer link while preserving add-ons, custom items, notes, discounts, holiday-light setup premiums, and other saved draft details; edit the draft and use Send proposal to publish a new revision. Service cards on sent and terminal proposals are read-only, so opening or reopening the proposal cannot accidentally add a service to the restored draft. Declined or expired proposals can also be moved back to Draft. Sent remains a send action, not a manual status shortcut, and Accepted remains locked to the customer's signed acceptance and payment workflow. If another window resends the proposal first, CE Pro refuses the older window's resend or status change and asks the office to refresh so the newer revision is not changed by mistake. It also refuses a competing decline with a different reason instead of reporting the stale confirmation as successful. Marking a proposal expired closes it without rewriting the expiration terms stored on the immutable sent revision.
If secure estimate-link signing is not configured yet, the office can still send the estimate email. In that fallback mode, the PDF still goes out, and the send dialog warns that the online estimate link is temporarily unavailable instead of blocking the entire send action.
Downloading a PDF
You can download a PDF at any time from the estimate detail page.
- Open the Manage section in the admin sidebar, click Estimates, and open an estimate.
- Click Download PDF on the estimate detail page.
- The PDF downloads to your device.
This is useful when you need to print a proposal, attach it to a separate email, or save a copy for your records.
Browsing the Estimates List
Clean Estimate V2 workbench
The main Estimates list opens as the Estimate workbench. The top of the page highlights drafts to send, viewed proposals that need follow-up, unassigned estimates, and accepted estimates ready for handoff. Select a card to apply that queue as a real server filter.
The type row filters Residential, Generic Quote, Commercial, and Holiday Lights estimates. The toolbar supports:
- customer, email, phone, property-address, or stable
EST-reference search - Draft, Sent, Viewed, Accepted, Declined, and Expired status filters
- sales-representative and lead-source filters
- last 7, 30, or 90 days
- a custom updated-date range
Search ignores letter case for references and email text. Phone searches accept the same number with or without spaces, parentheses, dashes, or a leading country code.
Date presets and custom ranges use each estimate's service-location calendar, so work near midnight stays on the correct local day.
The Sent filter returns sent proposals the customer has not opened. The Viewed filter returns sent proposals the customer has opened, so the two result sets do not overlap. Viewed is customer engagement, not a lifecycle rewrite: the durable estimate status remains Sent until acceptance, decline, expiry, or an office action. Engagement applies only to the current sent revision, so a resend returns to Sent until the customer opens the new link.
Each desktop row shows its stable EST- reference, type, revision, customer, service address, total, source, status, payment state when applicable, sales representative, update date, and the next safe action. Accepted estimates link to the created job when one exists. On a phone, the same information becomes a compact card with the primary action kept in reach.
Estimate assignment labels use the current teammate name or email when available. If an estimate still has a saved assignee but the current member directory cannot supply a label, CE Pro shows Assigned team member; Unassigned means no representative is saved.
The workbench uses 25-row server pagination. Loading, filtered-empty, and failure states remain inside the workbench. A failed refresh leaves previously loaded rows available while the page offers Try again.
Use Customer tags to narrow the workbench to estimates whose linked customer has any selected shared label. Tag choices match any selected label, then combine with source, representative, type, status, engagement, search, and date filters. Estimate rows and mobile cards show the linked customer's first labels for quick context.
Clean Estimate V1 estimates list
The supported V1 Estimates list keeps its existing workflow while V2 reaches full parity. Its toolbar can filter by status, source, sales representative, estimate type, Tags, and date range. Search covers the estimate number, customer, email, and address.
V1 also keeps its bulk-selection actions for status changes, representative assignment, CSV export, and annual re-quotes. A completed bulk status change shows one accurate success or failure summary after the batch finishes.
V1 opens with 25 rows per page. Use the footer to switch between 25, 50, and 100 rows and move between server-backed pages. Load More remains available when you want to keep adding older estimates to the current list.
The V1 row action continues to reflect the estimate state. Depending on the record, it can send or resend the estimate, start a follow-up, create a job, create or copy a payment link, schedule work, request a review, or open the full estimate details.
Working from Estimate Detail
Open an estimate to use the single-screen workspace. The header keeps the customer, complete service address, estimate reference, status, type, current revision, source, sales representative, created date, lead schedule, and linked job in one place. During the successful send or resend session, it also shows the newly rotated customer link and its copy/open actions.
The available lifecycle controls depend on the current state:
- A draft can be edited and sent.
- A sent proposal can be withdrawn to Draft, marked Declined with an optional
reason, marked Expired, or resent through the current-pricing review.
- A Declined or Expired proposal can return to Draft for a new revision.
- An accepted estimate is locked to the signed revision. The office cannot
manufacture an acceptance with a status dropdown.
Moving a proposal back to Draft closes its customer link and immediately marks the issued revision as withdrawn in the lifecycle card.
The customer-response card shows the signed option, signer, accepted total, money actually collected after refunds, balance due, deposit state, and job handoff state. Before acceptance, it shows the last sent date, expiration, and deposit terms. The linked job opens directly when acceptance has created one.
Once accepted, the card also names how the customer accepted: through the emailed or texted link, in the customer portal, or in person on a rep's phone, and shows the signature captured for that acceptance. Acceptances recorded before this distinction was tracked show the emailed-link wording.
For any sent revision, Preview opens the current immutable customer-safe PDF in a new tab and Download PDF saves that same document. These office actions require an authenticated web member, resolve the estimate inside that member's organization and location access, and use the same customer-safe snapshot allow-list as the public proposal. Previewing does not mint or rotate a customer token and does not record a customer view.
After a successful send or resend, the page shows the newly rotated customer link with Copy link and View customer page actions. Clean Estimate only stores the token hash, so the raw link is intentionally shown for that send session rather than reconstructed later.
Draft sending now waits for the latest server autosave and submits the exact draft revision and content hash. The Send button stays unavailable while scope or measurement changes are saving, so a quick edit followed by Send cannot publish the prior scope.
Estimate files
Every estimate has an Estimate files section on its detail page, right after the Photos panel, for permits, signed approvals, scope documents, and other supporting files. It is available at any estimate status, unlike Photos, since these files are never frozen into a sent proposal. They are for office use only and are never shown to the customer or included in the proposal, PDF, or online quote page.
Anyone who can open the estimate can upload, view, and delete files here. V2 has no manage-estimates-equivalent permission the way invoices have manage invoices, so Estimate files stays open to the same audience as any other estimate edit.
Images, PDFs, text and CSV files, and Word, Excel, and PowerPoint files are accepted (thirteen file types in all), one at a time, up to 20 MB each and 50 per estimate, the same rules invoice attachments use. CE Pro reads the file's real type from its contents before saving it; a file whose contents do not match its type is refused with a plain message instead of being stored. Deleting a file marks it removed right away; it stays recoverable for 30 days, then a daily job permanently purges the file and its record. See Storage and Attachments for usage totals.
Bulk annual re-quotes for residential customers
Use the Estimate workbench to renew a group of standard residential customers without rebuilding their scopes one by one:
- Filter or search the Estimates list for the prior-year customers.
- Select the residential estimates you want to renew.
- Click Re-quote in the bulk action bar.
- Choose the target year and enter a price increase, such as 3%.
- Leave Send new quotes immediately off to review the new drafts first, or
turn it on to deliver the successfully created quotes through the normal estimate email system.
- Click Create renewal quotes.
Each renewal is a separate draft with a new estimate number. The original estimate and its history stay unchanged. CE Pro carries forward the customer, property, scope, maintenance choices, proposal options, assignment, and CRM links while applying the percentage increase to customer-facing prices. Internal redline and commission values are not inflated.
CE Pro tracks the source estimate, target year, and markup on each renewal. Selecting the same source again for the same year skips the existing renewal instead of creating a duplicate. The completion summary identifies created quotes, skipped renewals, unsupported estimate types, and delivery failures. Quotes that cannot be emailed remain drafts.
This bulk action is for standard residential estimates. Holiday-light customers use Re-Quote for New Season in the Holiday Lights workspace. Commercial building, fleet, asphalt, and generic proposal types keep their specialized quote flows.
Online Proposal Link
Sent residential, commercial building, fleet, generic, and Holiday Lights quotes now open in the same branded customer viewer. Each quote keeps the scope and pricing layout that fits the work, while the surrounding navigation, PDF action, approval state, and customer-account handoff stay consistent.
Every sent estimate generates a unique proposal URL. The customer can open this link in any browser.
Residential customer choices
Eligible residential proposals present As requested, Suds Club, and Complete Property Care side by side. When the customer first opens a sent proposal, no option is selected. The customer must choose the one-time scope, the complete package, or Suds Club before the final review and signature area opens.
Service quantities, manually entered service measurements, office price overrides, discounts, tax, and totals come from the saved estimate revision. Manual measurements remain attached to that service when the builder is reopened; property autofill does not replace them.
Opening the customer view while an estimate is still a draft now shows a clearly labeled Draft preview. The one-time service checkboxes remain available so the office can preview different service combinations and their totals without saving a customer decision. Package selection, Suds Club, decline, final-review, and signature controls stay off until the estimate is sent. Draft previews are not recorded as customer views and do not trigger customer-view alerts.
After a sent proposal's one-time services are adjusted, Final review stages the matching saved line items and current total together. The review no longer fails while copying the chosen service scope into the approval revision.
What the Customer Sees
The online proposal page displays:
- A branded header with your company logo.
- The full estimate breakdown with line items and pricing.
- A transparent pricing summary that shows subtotal, discount, taxable amount, sales tax, and total.
- Custom items inside the main estimate breakdown so they are included in the quote total the customer sees before payment options.
- An expiration notice if the proposal has a validity period.
- An Accept button that opens the e-signature capture.
- A Decline button to reject the proposal.
Generic quotes now use the same shared customer quote page under the unified quote-core path. Preview, email delivery, resend, and acceptance all point at that same persisted quote link, so the office no longer saves a generic draft through one route and opens it through a different customer-view path.
The mobile proposal shell now respects that broader estimate coverage too. Generic Quote and Asphalt Maintenance both open as native mobile builders and queue authenticated synchronization into the shared Estimates workspace. Generic Quote starts with customer information and then uses price-book or custom service, product, and equipment items. Asphalt Maintenance moves through property, measurement, services, and review while keeping field-entered pavement measurements explicit. After either estimate is saved and synchronized, it appears in mobile proposal lists. The normal estimate detail and customer-close flows make customer view, signature, and payment-link actions available when the estimate has met their delivery, acceptance, and payment prerequisites. Mobile close actions prefer the estimate/customer view first, which keeps holiday lights, fleet, commercial building, asphalt, and generic flows on the customer page that actually exists for that quote. Legacy Asphalt records without a native builder snapshot keep their existing office-editor route.
Mobile estimate detail layout
The mobile estimate detail screen puts the estimate lifecycle directly beneath the header as a compact row of connected dots. The property workspace follows it and opens in Satellite view by default; use Map for a standard map or Street View to open the ground-level Google view for the saved coordinates.
The customer card beneath the property visual is the single source of customer context on this screen. It shows the estimate number, status, total, customer name, full service address, email, phone, and direct call/text actions. Delivery history and a second customer-information card are intentionally not repeated farther down the page, keeping line items, payments, and closing actions closer to the top.
Line items are tappable and reopen the matching native estimate builder for editing. Estimate details and proposal-options summaries are not repeated as extra accordion sections. Signatures and Notes each include a direct add action; mobile notes save to the server-backed estimate for the whole team.
Payment information appears once. The Payment card includes the suggested deposit, paid amount, and balance, with + Add payment for deposit or balance entries. Choose Card, ACH, Check, or a tenant-configured Other method and enter the amount. Check and manual methods can be recorded in the app. Card and ACH create a secure payment request that remains on the estimate screen and can be shared, instead of automatically opening checkout on the employee's phone.
The header's three-dot button opens a real Estimate actions sheet. It keeps only additional actions—write a follow-up, copy to a new estimate, and open or find the customer—because Send, Preview, Approve, Edit, Call, and Text already have visible controls. Residential copies open the residential builder directly.
Follow-up drafts can be sent directly through SMS, Email, or Both. Both requires a phone number and email address and sends the edited message through the tenant's configured delivery services; it does not hand the rep to the phone's external SMS or email composer.
Every estimate type uses the same mobile disposition model: Draft is unsent; Pending is sent and waiting for approval; Approved means the customer signed or a representative manually approved it; Won is assigned automatically when the estimate is copied to a job; Declined records a customer or representative decline; and Archived covers expired, superseded, or unselected options. This applies to Residential, Holiday Lights, Commercial, Fleet, Asphalt, and Generic Quote estimates. Open Estimate disposition to change an eligible status or delete an eligible unsigned estimate. Estimates tied to jobs or retained acceptance records must be archived rather than deleted.
The mobile closing sequence is now direct: save and review the estimate, approve and capture the customer signature on the estimate screen, add payment, then use Copy to Job to choose the actual job date and start/end time. A rep may also use Copy to Job before a signature and explicitly approve for the customer; this records manual approval before creating the job. Won is never a manual shortcut. After conversion, the estimate's Scheduling section shows the linked job number, current job status, scheduled date, and scheduled time. Tap View job to open that attached job directly. The legacy Close Kit, estimate-options screen, arrival-window step, and Back to rep step are no longer part of the active mobile workflow. Use the visible Client action on the customer card to return to the linked client record.
For native Asphalt, Holiday Lights, Commercial, and Fleet saves, the canonical sync verifies the complete estimate, proposal mirror, and canonical line-item set before treating a repeated request or a lost-response retry as already committed. Missing or changed authoritative content returns a conflict instead of a false success. On first sync, the proposal mirror also adopts the server-issued estimate number so staff do not see a provisional proposal number beside the canonical estimate number.
When Include PDF is selected for a proposal linked to a canonical estimate, delivery creates a signed attachment URL from that estimate for every module, including Generic Quote and Asphalt Maintenance. If the requested PDF is missing or its URL is invalid, delivery stops in Review required instead of sending the message without the promised attachment. Generated Estimate and Generic Quote PDFs use the terms frozen on that sent proposal revision. A newly sent revision captures the then-effective organization terms rather than stale or empty estimate-level text.
Residential base estimate links are now beginning to use that same shared quote-core customer page too when the saved estimate has a persisted public quote token. Multi-option proposal pages and maintenance-plan pages still keep their dedicated customer screens for now, but the base estimate preview/open flow is no longer forced to stay on the older estimate-only route.
Customer-engagement alerts now distinguish between the email itself being opened and the customer document page being opened. When Resend reports that the email was opened, the outbound email row in Messages shows the tracked open time, total opens, and any tracked link click. When the customer then opens the quote, estimate, proposal, maintenance proposal, holiday-lights quote, fleet proposal, commercial building proposal, or linked shared quote page, CE Pro raises a separate live admin alert for that page open and records the viewed event in the thread.
The same customer-page open can raise a mobile push notification. Clean Estimate Pro resolves the explicit record source as well as the proposal type and organization. Current multi-option proposals stored with estimates and legacy direct proposals therefore use their own source records instead of an ambiguous cross-table lookup.
Only recipients with an active, non-archived membership in that same organization and an existing sign-in account are eligible. CE Pro prefers the assigned rep or other recorded proposal recipient, then falls back to active owners when no eligible assigned recipient remains. Deleted accounts are excluded, duplicate device tokens are removed, the recipient's Proposal Viewed opt-out is honored, and enabled quiet hours are evaluated in the organization's timezone before delivery. The post-response notification call is awaited within a short timeout: a slow or unavailable push service is safely contained without delaying or breaking the customer's proposal page. Supabase verifies the caller's signed platform JWT before the notification handler runs, and the handler accepts only the service_role claim. This keeps the internal delivery call authorized when platform service keys rotate without admitting anonymous or signed-in customer and teammate tokens.
E-Signature
When the customer clicks Accept, a signature pad appears. They draw their signature using a mouse, trackpad, or finger on a touchscreen. After signing, they confirm acceptance.
Only customer-facing estimates that have actually been sent or viewed can be accepted, declined, or signed through the public proposal link. Drafts and expired records are blocked from those customer-action paths until the office sends a live proposal.
Once signed:
- The estimate status changes to Accepted.
- You receive an in-app alert in the admin bell right away for commercial and fleet proposals. The bell now refreshes live on new signed-proposal alerts instead of waiting for the old polling interval.
- Any
proposal_acceptedwebhook subscriptions fire at the same time for commercial and fleet proposals. - The signature PNG is validated and saved before the acceptance completes, so the signed record keeps the captured signature instead of silently accepting without it.
- Follow-up tasks like activity logging, pipeline history, and linked-estimate automation no longer turn a completed customer signature into a false failed-sign response if one of those later bookkeeping steps has a temporary issue.
Office-recorded verbal acceptance
An authorized office teammate can record an actual agreement the customer gave in person or by phone. Use it only after the customer has verbally accepted. The teammate reviews the exact priced option and payment terms saved with that estimate revision, then records the customer's name and the teammate who took the call or conversation. The prepared date remains separate from the verbal-acceptance record. The customer-facing proposal record describes the agreement as verbal rather than as an electronic signature.
If the option, price, or terms changed after the preview was loaded, reload the estimate and review the current version before continuing. Recording verbal acceptance does not bypass a configured below-floor approval. Generic and Commercial estimates still show No price floor configured when no floor is set; this workflow does not invent one. A required deposit must still be satisfied before the job can be scheduled.
Recording verbal acceptance does not send a proposal or message, capture an e-signature, create a payment link, or collect payment. Customer signature acceptance remains a separate flow.
If the customer requests changes instead of fully accepting, the admin estimate detail page now shows a dedicated Customer Changes Requested card with:
- The interaction status and timestamp.
- The requested subtotal and accepted total.
- Any customer-wide note they submitted.
- The exact included and removed line items from their selection.
Proposal Expiration
You can configure how long proposals remain valid. After the expiration date, the online proposal page shows an expiration notice and disables the accept button. The customer must contact you for a new proposal.
Expired revisions are excluded from the dashboard's Awaiting an answer count even if nobody opened the old link after it elapsed. Dashboard day and revenue windows use the organization's default-location timezone, so an owner traveling in another timezone sees the same business date as the office.
A cron job runs daily to expire proposals that have passed their validity date.
Tips
- Always preview before sending. A two-second check prevents embarrassing pricing errors.
- Use the online proposal link instead of the PDF when possible. The web version is interactive and allows e-signature without printing.
- Download PDFs for in-person sales. If you are meeting a customer on-site, pull up the PDF on a tablet or print it beforehand.
- Use mobile proposal detail for live closes. Open the customer proposal from the phone or tablet, capture acceptance and signature, and then create a deposit or balance payment link while you are still with the customer.
- Check your company logo in Settings. The logo appears at the top of every PDF and online proposal.
Troubleshooting
The expected quote follow-up did not start
Open Automations and confirm Estimate sent → Quote follow-up is Active, then review Run history. Only a successful, office-reviewed proposal send can enroll the workflow; saving or previewing a draft cannot. Pausing prevents new enrollments, and activating later does not retroactively enroll older proposal sends.
If a run shows Stopped, review its outcome. The customer may already have accepted, declined, replied, or booked, or the proposal may have expired, been withdrawn, or been superseded. Those are safety exits, not missing sends. A failed email or SMS step remains visible as a failed outcome instead of being reported as delivered.
PDF is blank or missing sections
Make sure the estimate has at least one service selected with pricing greater than zero. A blank estimate produces a minimal PDF.
Customer says they cannot open the proposal link
Verify the link has not expired and check the estimate detail page for the current status. For an expired proposal in the single-screen estimate builder, choose Change status > Move to draft, make any needed edits, and then use Send proposal to generate a new link.
If the office sees a warning that secure estimate links are unavailable, the email can still be delivered with the PDF attachment, but the customer will not receive the browser-based estimate link until customer-link signing is configured again.
Company logo is not showing on the PDF
Go to Settings, find Branding, and upload a PNG, JPEG, or WebP logo up to 5 MB, then select Save Changes. Preview a newly issued proposal or invoice to confirm the new logo. A document sent before the replacement intentionally keeps the immutable logo it was issued with.
Documents issued after this release retain their original logo snapshot. Older legacy documents may not contain a historical company-branding snapshot.
Related articles
Was this article helpful?
Still need help? Contact support