Release Notes – July 2026
Updates shipped from June 23 to July 10, 2026.
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.