June 30th, 2026

Release notes v217 - 30 June 2026

This release introduces 6 customer-visible features — faster widget handling, clearer quote approvals, deeper Halo support, account-manager filtering across overviews, a cleaner multi-currency editor, and a stronger public API — plus a heavy round of performance, sync, and stability fixes.

🧩 Widgets — quicker to create, reuse, and insert

Working with widgets in quotes and templates is now much faster across the board. You can:

  1. Add multiple widgets at once - select several widgets at once and insert them in a single action (in the order you pick them).

  1. Add a single widget - double-clicking a single widget inserts it immediately — no separate save step.

When you save a widget as a template, Salesbuildr now automatically links it back to the source so it stays in sync, pre-fills the template name with the widget's title, and keeps the language you were already working in.


What this improves

  • Build quotes and templates faster — bulk-insert instead of one widget at a time

  • Saving a reusable widget is now a single, predictable step that keeps everything linked

  • No more re-typing names or losing the language on a freshly saved widget

🔐 Quote Approvals — a clearer rule overview

Building on the sequential approval rules from v215, we've reworked the approval rules overview in Settings: rules now show as numbered steps with condition chips and approver pills, so the execution order and who signs off on what is clear at a glance — without expanding each rule. Internal-approval notifications are also more reliable now, so the quote owner is told the moment their quote is internally approved and ready to send.


What this improves

  • Order rules - critical with sequential processing — is visible immediately

  • Fewer misconfigured rules, because conditions and approvers are shown up front

  • Quote owners get a dependable heads-up the moment an approved quote is ready to go out

🔗 Halo — parent/child company hierarchy

Halo customers with parent/child company structures — school boards and their individual schools, holding companies and subsidiaries, franchises — now have that hierarchy imported and kept in sync in Salesbuildr. Parent companies are imported first, then child companies are linked beneath them.


What this enables

  • See and filter by parent company, and view parent contracts from a child company

  • Full use of Salesbuildr's existing parent/child features for Halo tenants

  • No more flattened, context-less company lists for grouped account structures

📋 Opportunities & Quotes — filter by account manager

The opportunity and quote overviews now have an Account Manager filter, matching the one that already exists in the company overview. Until now those views only offered an "Owner" filter — the Salesbuildr user who created the record. Account Manager and Quote Owner (quote creator) can now be filtered separately.


What this enables

  • Sales teams can see only the opportunities and quotes for their accounts

  • Consistent filtering across company, opportunity, and quote overviews

🧾 Multi-currency — a cleaner internal quote editor

When you quote in an alternate currency, the MSP-facing editor used to show both the alternate and your default currency side by side, which was confusing and led to discounts being applied against the wrong currency. The internal editor now shows only the currency you're actively quoting in. The customer-facing quote is unchanged. We've also added Currency to the company bulk-edit options, so you can set or correct it across many companies at once instead of one at a time.


What this improves

  • No more discount errors from mixing up which currency a value is in

  • A clearer, less cluttered editor for multi-currency tenants

  • Faster onboarding and clean-up when setting currency across large company lists

🔗 Public API — new opportunity and widget endpoints

The public API gains several requested endpoints. You can now create opportunities and look them up by your own external identifier (GET /public-api/opportunity/ext/{externalIdentifier}), as well as set an external identifier on an existing record. We've also added a DELETE endpoint for quote widget templates, so integrations can clean up duplicate or obsolete widgets programmatically instead of leaving them to accumulate.


What this enables

  • Sync opportunities both ways using your external system's IDs — no client-side filtering

  • Automated housekeeping of large widget libraries via the API

  • More complete coverage for teams building on top of Salesbuildr

🛠️ Under the hood

This release also includes meaningful performance and platform work:

  • Product search is faster and more reliable — and now also matches on category names, so results are more complete

  • Pax8 pricing in the quote variant picker is near-instant — reduced from ~3.4 seconds to ~250 ms by reading stored prices instead of live API calls

  • Ingram Micro hourly stock files are now processed, so tenants on the hourly feed get more frequent stock updates

  • More efficient Autotask inventory and opportunity imports, plus per-tenant webhook isolation for safer, more reliable sync

  • A security hardening pass — ConnectWise private keys are now masked in the admin configuration view

  • The PSA Synchronize tab now explains what each sync option does — and points you to the Products tab to sync your catalogue

🛠️ Stability improvements

  • Quotes & editor — fixed bundle products showing $0 cost/sell, a multi-year service license missing from totals, a 1-cent rounding mismatch on monthly totals, a missing setup fee on customer-facing line items, quotes occasionally failing to open, expired quotes wrongly flipping to Declined, and several send-dialog and "configure defaults" link issues

  • Halo — resolved adding items to contracts, a circular company/contact sync dependency, quotes blocked as "unsynchronized" despite valid IDs, repeated session logouts, rich-text being stripped on opportunity write-back, and an incorrect "set category" prompt

  • Autotask & ConnectWise — fixed billing-code and custom-field persistence and webhook signature errors on Autotask, and discount sync, ticket subtype validation, quote status updates, and primary-contact changes on ConnectWise

  • Distributors & marketplace — resolved stalled feeds (Ingram Micro, Travion), a Jarltech stock lag, ScanSource price/inventory gaps, distributor-switch pricing and preferred-distributor fallback, and several marketplace crashes and list/detail availability mismatches

  • Search — accented characters and company names with trailing periods now return the right results, and newly imported Pax8 products are searchable without a manual refresh

  • Storefront — fixed swapped left/right image alignment, settings leaking when the storefront flag is off, and oversized product thumbnails

  • Email & notifications — approval-request and access-request emails now point to the right place, and public comments on an unpublished quote no longer trigger customer emails

  • Procurement & API — fixed purchase-order submission failures, a D&H USD/CAD currency mix-up, and an empty taxes array on the product public API for dynamic-tax products

These changes don't add major new functionality, but they reduce friction and improve day-to-day trust in the platform.

🔭 In progress

  • Spreadsheet View for Quotes — the fast, grid-style line-item editor continues to take shape; the core table and architecture are in place and inline editing and bulk actions are actively being built

  • Error Registry — clearer, actionable in-app error messages with a "View help" link and a central place to track recurring issues; the foundations are live and the customer-facing messaging is on the way

  • Quote Approvals V1 — the full rework continues with approval status visibility, a preview of the approval flow, and a richer multi-approver experience

  • Halo custom fields (UDF) — import, mapping, and sync of Halo user-defined fields

Features are subject to change — follow along in the feedback portal for updates.