Release Notes

Stay up to date with the latest features, improvements, and fixes

Signed quotes, lead estimates, and public intake forms

August 09, 2026

Latest

Signed quotes

Customers can now sign a quote instead of just clicking Accept.

Turn it on under Settings → Brand & Docs → Extra Docs with Require signature to accept quotes, or set it per quote on the quote form. Your waiver and disclaimer can now be either typed text or an uploaded PDF — upload, replace, preview, or remove each one independently.

When a customer accepts, they review each required document, then draw or type their signature, agree to the electronic-record consent, and sign. This works on the public quote link, in the customer portal, and in the mobile app.

Everything is captured on a Signature & audit card on the quote: the signature itself, who signed, drawn or typed, when, IP address, consent version, and where it came from. Settings → Acceptance Audit lists every acceptance across your account and is searchable by signer name or email.

The documents a customer signed are frozen at the moment of signing. Editing your waiver or disclaimer later never changes what someone already signed, and every signed quote produces a downloadable signed package PDF containing the quote, the exact terms agreed to, the consent text, and the signature block.

Signatures and PDF documents need the PRO plan.

Guide: Configure quote waivers, disclaimers, and signature defaults.


Lead estimates

Send a priced estimate to a lead before they’re a customer.

Open a lead, go to Estimates, and choose New Estimate. Build line items, set a valid-until date, then send it by email or text. The lead gets a branded page where they can view the estimate, download the PDF, and Accept or Decline — you’ll see it move through Draft, Sent, Viewed, Accepted, Declined, and Expired. Estimates past their valid-until date lapse on their own.

When one is accepted, Convert to Quote creates the customer from the lead and a draft quote from the estimate’s line items in one step.

Technicians can create and update estimates for leads assigned to them.

Guide: Create, send, and convert a lead estimate.


Public intake forms

Collect work straight from your website.

Under Settings → Public Forms, build a branded form for a New Lead, an Estimate Request, or a New Customer. Choose which fields appear and which are required, write your own title, intro, consent, and thank-you copy, and preview it as you go.

Publish it three ways from one link — iframe embed, hosted link, or QR code. New Lead and Estimate Request submissions create a lead automatically. New Customer submissions go to a Review Queue so you can approve or reject them. Everything lands in a searchable Submissions list, and you get a notification on every submission.

Forms are protected against spam with a hidden trap field, a minimum fill time, rate limiting, and a CAPTCHA. You can disable a form, rotate its link (which retires the old embed, link, and QR code at once), revoke it, archive it, or delete it permanently.

Public forms need the PRO plan.

Guides: Create and share a public intake form and Review and approve form submissions.


Recurring jobs, rebuilt

The repeat schedule is now one consistent set of controls on web and mobile.

  • Repeat every N days, weeks, or months. Weeks let you pick specific weekdays; months let you pick either a day of the month or a pattern like the 3rd Thursday.
  • Ends: Never, after a number of occurrences, or on a date.
  • Skip public holidays stays available.
  • A preview under the controls always shows the schedule in plain English plus the next few dates, and Preview all dates opens the full list. Never-ending series show the next 12 months and extend automatically each month.
  • Errors now appear next to the control that caused them instead of only on save.

Fixes that come with it:

  • Occurrences generated by the monthly roll-forward now carry the job’s line items, so extended jobs are no longer priced at nothing.
  • A series now ends exactly where the rule says, instead of running past its last date when dates were skipped.
  • Scheduling a series no longer double-books a time that’s already held, and dragging a single job out of a series no longer makes the series grow without limit.
  • On mobile, Cancel in the repeat sheet is now really a cancel — an abandoned edit no longer rewrites the series or wipes its notes and time logs.

Guide: Schedule and manage a recurring job.


Scheduler

  • Drag and drop a job to reschedule it, with an Undo on success and a clear error (and a snap-back) if it can’t be moved.
  • Lead appointments now appear on the calendar next to jobs, on both the office and technician schedules.
  • Click a card to open a preview pane with the job’s details — including a full breakdown of its repeat schedule — without leaving the calendar.
  • Technicians can drag-reschedule their own assigned lead appointments.

Public links

Quotes, invoices, jobs, and estimates now share one public-link model: one live link per record.

The actions menu has Replace public link (retires the old link and immediately issues a new one) and Revoke public link (retires it with no replacement). Sending a record whose link was revoked is blocked with a prompt to replace the link first. Both are available on web and mobile.


Also in this release

  • Money is now exact. Quote, invoice, maintenance-plan, and promo-code amounts are stored at exact cents, ending small rounding drift in stored totals, analytics, exports, and dashboard figures.
  • Invoice and quote PDFs show a per-line Discount column when any line uses one, and percentages print cleanly (8 instead of 8.00).
  • Payment receipts itemize Surcharge and Gratuity instead of folding them into the total.
  • Lead notes can now be edited and deleted, not just added.
  • Long values in lead fields (name, source, next action, address) are accepted instead of being cut off or rejected.
  • Search over quote descriptions and notes, customer name, company, and email is faster and matches more reliably.
  • Fixed: inserting saved line items into an invoice failed when filtering by template category.
  • Fixed: the customer-portal quote preview now totals exactly the same way as the rest of CleanOps.
  • Fixed: a deleted promo code no longer lingers on customer-facing pages.
  • Consistent pagination, tabs, and money formatting across campaigns, promo codes, segments, search, job history, leads, and customer detail.
  • Dates on public pages, PDFs, and notifications now consistently use your business’s timezone, set at Settings → Account.

Update mobile app to CleanOps 1.2.7 (Build 81).