Skip to main content

Release Notes – July 2026

Updates shipped from June 23 to July 10, 2026.

Written by Hayden Lewis

Highlights

  • Quantities for Services. Services now support quantities, matching the controls already available for upgrades and supplies. Quantities carry through quote setup, presentations, proposal PDFs, checkout, and ServiceTitan sync.

  • More useful reporting exports. Report CSVs now include a sales commission column and can be filtered by team member and quote status, so you can reconcile payroll without opening each job. Non-owners export only their own quotes.

  • ServiceFusion integration (beta). Teams with access can connect ServiceFusion, map fields, and sync quote and customer activity, with clearer status messages in SetSale.

  • SetSale visual refresh. Updated logos, brand color, favicons, navigation, dashboard cards, proposal PDFs, and email styling create a cleaner, more consistent experience.

Improvements

  • Clearer Palmetto setup guidance. Contractors who have not connected Palmetto Comfort Plan now see financing-page guidance explaining the integration and how to get started.

  • Cleaner quote settings. The Quote General settings page is now organized into independent save cards, so you can update one area at a time.

  • Feature text stays current. SetSale now prompts you to regenerate feature text when the equipment on a quote changes, so descriptions never reference old equipment.

  • Recoverable quote deletions. Deleting a quote is now a soft delete with an admin-only audit trail, so removed quotes can be recovered and deletions are tracked.

  • More reliable JB Warranties quoting. SetSale keeps a longer-lived warranty catalog cache and can continue quoting from the last good catalog during temporary JB Warranties outages.

  • ServiceTitan sync resilience. Failed quote syncs are now retried automatically by the scheduled sync flow, and quote activity shows friendlier error messages instead of raw technical details.

  • JB Warranties reporting accuracy. The live warranty dashboard now calculates detach rate from the actual signal captured when a salesperson removes an auto-suggested warranty from a won quote.

  • Easier navigation. Nested drill-down pages now include back navigation, brand dropdowns on the equipment pricebook are sorted alphabetically, and long select menus inside dialogs scroll reliably.

Fixes

  • Fixed a live quote pricing mismatch where the price shown during presentation and checkout could drift from the contractor-authored option price when the selected financing plan used a different dealer fee.

  • Fixed accepted quotes so stale edit sessions can no longer change the selected repair or replacement option after checkout, keeping the app total aligned with the signed agreement.

  • Fixed mixed-system quotes so warranties recalculate correctly after systems are edited, and furnace BTU details are preserved when one system requires them and another does not.

  • Fixed generated feature text so AC and furnace systems are no longer mislabeled as heat pump or dual fuel when matchup data is incomplete.

  • Fixed the Warranties section so rows keep a stable order when you edit a single warranty, instead of reshuffling on multi-system quotes.

  • Fixed distributor price and inventory imports to safely repair duplicate distributor catalog rows instead of skipping valid updates.

  • Fixed the new-quote flow to warn when a linked customer is archived and to surface load errors instead of showing an empty form, and fixed date custom fields that could shift by a day.

  • Fixed rare crashes in presentation and quote overlays caused by malformed scroll events.

  • Fixed the avatar dialog so it closes after saving during onboarding.

  • Fixed remaining admin activity views to keep customer data anonymized.

Maintenance

We also shipped behind-the-scenes work: design-system documentation, a TypeScript 7 upgrade, database and logging performance improvements, and dependency and security updates.

Did this answer your question?