26.13

Kaseya Quote Manager release notes

The Kaseya Quote Manager (KQM) team is excited to announce the following new features and/or fixes:

New features

Itemized payment summary

The quote summary now displays discounts broken down by payment frequency (One Off, Monthly, Quarterly, Yearly) rather than showing a single lump-sum discount. This applies to both the public client-facing quote page and the admin merchant preview.

What's changed:

  • Each payment frequency now shows its own discount line with both the dollar amount and percentage

  • The single "Discount" row previously shown below all frequency lines has been removed

  • The PDF download reflects the same per-frequency layout as the web page

  • The admin quote preview now matches what the client sees, making it easier to verify before sending

This gives clients a clearer picture of exactly what they owe and when, and lets merchants confirm the breakdown before sharing the quote.

Fixes

  • Decline-quote notification emails were not delivered when a notification rule targeted a specific email address. Email notifications for quote declines now send correctly for all configured recipients.

  • Opportunity sync failed when a product name contained trailing tab characters, causing the same quote to be added as a duplicate on every resync. Product names are now trimmed before sync, preventing the mismatch and duplicate-creation error.

  • The account lockout mechanism has been updated to block by IP address rather than by account. Previously, five failed login attempts locked the targeted account, allowing anyone who knew a user's email address to lock them out. Now, repeated failures from the same IP address trigger a CAPTCHA check after three attempts and a temporary block after five, protecting accounts without exposing them to denial-of-service via lockout.

  • Estimated totals on a quote were not recalculated after confirming the Project Labor removal modal when the organization was changed. Totals now update immediately after the Labor block is removed.