Latest updates from the Dubsado team

June 26, 2026 - Changelog

Becca avatar
Shared by Becca • June 26, 2026

Here's the complete changelog with all four new fixes folded in.


Improvements

Invoice line item and header polish. Squinting at tiny invoice notes and hunting for the delete button slows down your billing. We widened the bill-to and note previews and moved line-item actions to more obvious spots, so you can get invoices out the door faster.

Invoicing safeguards and clarity. Clicking away and losing your invoice line items is a gut punch. We added a safeguard to protect unsaved changes, plus a note that clarifies exactly how invoice titles appear in the client portal, so you can bill with confidence.

Cleaner invoice line item layout. Cluttered invoices make it hard for clients to see what they are actually paying for. We adjusted line item spacing and made category chips easier to read, giving your invoices a cleaner, more professional look.

Specific QuickBooks sync error messages. A generic "sync failed" message leaves you guessing. You'll now see the specific reason a QuickBooks sync failed, so you know exactly what to fix.

Updated device verification email copy. The device verification email now accurately reflects that verification can be triggered by a new device or by an expired previous verification.

Hide or show the payments panel in invoices. A new button lets you collapse the payments column while you edit line items, and your preference is saved across page loads.

Recorded meeting notes link to the right project automatically. Notes from recorded appointments booked through a project-linked scheduler now appear on that project, not just in your standalone notes list.

Active hours validation in flows. The active hours modal now blocks saving an invalid range, like a start time at or after the end time, and shows an inline error so the misconfiguration gets caught before it affects your automations.

Unsaved line items now hold payment plan and transaction actions. Creating a payment plan or logging a transaction against an invoice with unsaved line items used to put stale data on your installments. We now hold those actions until you save, so your installments always reflect the real numbers.

Dates display in your brand's timezone. Form response dates, project custom date fields, and project table dates now consistently show in your brand timezone instead of the viewer's local browser time.

Saving a discounted invoice as a package keeps the package clean. Discount state is now stripped when you save an invoice to a package, so any proposal or invoice built from that package won't inherit stale discount data.

Brand owner tasks show when grouping by assignee. The tasks board and grouped table now include the workspace owner's tasks under the assignee grouping.

Longer, customizable call summaries. Call summaries no longer get cut off mid-sentence, and your brand voice preferences can now rename, reorder, add, or remove the summary's sections.

Bug fixes

More reliable CSV exports. Exporting your data shouldn't end in an error just because you used a filter. CSV exports for projects, contacts, and categories now process successfully even with custom sorting applied.

Email sending validation fix. A validation error was stopping emails from sending when you used your business name as the sender but hadn't saved a business email address. Emails now send using your connected account email as a backup.

Conferencing link status and management restored. Guessing whether a video link actually generated is a stressful way to start a client call. We restored the conferencing toggle on individual appointments and added clear status indicators, so you always know if a link is ready.

PDF preview fixes. Opening a client PDF to a blank screen is not the moment you want. We fixed the blank preview issue and upgraded the viewer with high-resolution support, so your documents look crisp and fit the screen.

Delete paid installments in payment plans. A small adjustment to a payment plan shouldn't mean deleting the whole thing and starting over. You can now delete paid installments individually without scrapping the entire schedule.

Invoices respect your brand currency. The installment progress text and a few other spots in the new invoice UI showed USD no matter your brand currency. Everything now formats in your actual currency.

Currency format preview fix in brand settings. The currency preview in brand settings was defaulting to USD instead of your actual local currency. We fixed it, so you get an accurate look at exactly what your clients will see.

Lead and job statuses back in sync. Some projects showed up as leads while sitting in a job status, or the reverse. Those projects have been corrected, and dashboards and filters now reflect the right status.

Applying a proposal creates the invoice again. Applying a proposal form to a project with no invoices was failing to auto-create one because of a broken internal link. That works again.

Recurring invoice update fix. Updating a recurring invoice that used an older payment plan was throwing an error. We fixed it, so you can make your updates directly without untangling the payment plan first.

Invoice and package template notes save properly. Notes typed on invoices and package templates in 3.0 were sometimes not saving. They now save reliably.

Rejecting a team invitation works. Rejecting an invitation could fail with an error. The reject button now behaves correctly.

Restoring archived projects works with payment plans. Restoring an archived project failed with "oops something went wrong" when its invoice had a payment plan with paid divide-equally installments. Restore away.

Fully discounted invoices show as Paid. When a 100% discount brings an invoice total to $0, the invoice and all its payment plan installments now correctly show as Paid instead of staying unpaid.

Longer form title character limit. Long template titles were getting locked and becoming uneditable in the form builder. We raised the limit to 200 characters, so you can name your templates whatever makes the most sense for your business.

Scheduler invite links use the correct project-specific scheduler. Scheduling links sent from a project were incorrectly using the public scheduler link. They now use the project-specific link, so clients land in the right place.

QuickBooks tax codes apply in the redesigned invoice builder. Tax codes from your QuickBooks integration were missing from the invoice builder after the redesign. They now apply correctly.

Task workflow actions show the correct status label. Workflow actions that create a task showed "Sending on..." while the task was pending. They now correctly display "Awaiting completion".

Delayed emails in threads send without errors. Scheduled and delayed emails that were replies in a thread were failing to send because of an unhandled format in the recipient field. Fixed.

Email stats no longer time out for large inboxes. The unread count query was timing out for accounts with big inboxes. We split it into two optimized queries to resolve it.

Team members added in 2.0 can see their data in 3.0. When a team member is added to a brand through the legacy app, their pages now load normally on the next request instead of showing up empty. No logout or re-login needed.

Package quantity box shows in the form editor. The quantity input on a proposal package is now visible on the editor canvas, not just in preview.

Invoice CSV export respects the date filter. Exporting invoices while filtered by created date now downloads only the invoices in that range instead of all of them.

Custom scheduler durations work as expected. You can now type custom durations like 150 minutes without them snapping back to a preset, and durations can use decimal hours such as 2.5.

Firefox link placement fix. In Firefox, adding a link in the email editor was making it jump to the bottom of your message. We fixed it, so your links stay right where you type them.

Scheduler invite link no longer breaks. The default Send Scheduler email now renders a working scheduler link instead of showing the raw smart-field text.