Progress language, smarter notes, and communication controls
Deal progress language replaces sourcing terminology in more places, notes can mention teammates reliably, customer search drills into deal history, cancellation templates can CC selected team members, and write-up dates are easier to read.
Changes & improvements
This release is a broad clean-up pass across the surfaces managers and salespeople touch every day: deal detail, the pipeline, Sales Log editing, customer messages, notes, search, dashboard action items, and printed write-ups.
The main theme is making Autopilot use dealership language more consistently. "Sourcing" is now "progress" in the customer-facing and workflow-facing places where the old label made the pipeline feel narrower than it really is.
Deal progress is clearer across the app
Deal detail now refers to the old sourcing status as Deal progress in the delivery summary, status update prompts, progress section, sales-channel change warning, and copied deal summary.
The pipeline edit dialog now opens directly into the stage and value editor. The separate intro step has been removed so managers can get straight to renaming stages, ordering columns, and assigning progress values.
Pipeline help remains available from the page help control, but it no longer auto-opens on first visit or auto-starts the tour. That keeps the board quiet unless the user asks for help.
Pipeline explainers and help copy now describe progress values mapping to stages, including the deliberate manual override path for deals that are ahead of or behind their progress label.
Deal detail has cleaner ownership of profile and delivery fields
Vehicle information now has its own vehicle panel, while profile and registration checkpoints live together in a Profile & registration panel.
The Progress section now focuses on the pipeline stage and deal progress value. Registration, OEM Allocated, profile month, profiled, and profiled-on controls moved out of that section so the pipeline is easier to understand.
Delivered-on now sits with the delivery information, next to estimated delivery and delivery time. Override helper text is still preserved for cases where a delivered date needs to be corrected.
Signature toggles now respect row access and field edit permission together. If a user lacks access to the deal row, Autopilot now returns a clear permission error instead of behaving like the update silently worked.
Notes and mentions are more useful
Deal notes now include an @ mention picker. Typing @ or using the toolbar mention button searches dealership teammates and inserts the selected person cleanly into the note.
Mention notifications now understand the stored mention tokens as well as plain-text name mentions. That makes note notifications more reliable when the editor stores a structured mention.
Mention email previews now resolve chat tokens before trimming the note preview, so the email reads like a human note instead of exposing raw token text.
Search can open the right customer deal faster
Universal search now drills into customer results instead of only opening the customer page. Selecting a customer shows their customer profile plus recent visible deals, including deal number, order number, vehicle, status, and date.
Right arrow opens drill-down actions for customers and salespeople, left arrow backs out of a drill-down, and Escape still closes the palette after stepping back through any submenu.
Customer search results now load the matching customer's recent deals in the search action, so users can jump straight to the right deal detail page without first navigating through the customer record.
Recent-change labels now call the old sourcing field Progress, matching the rest of this release's language cleanup.
Cancellation feedback can CC selected people
Cancellation feedback templates now support a Custom CC mode. Managers can choose specific active team members to copy on cancellation feedback replies instead of only choosing managers, the salesperson, or no CC.
The custom CC picker shows selected recipients as removable chips and lists active team members with email addresses. Saved templates store the selected membership IDs and keep the dirty/saved state accurate.
Cancellation feedback sending now resolves those custom memberships at send time, ignores deactivated users, filters duplicate addresses, and avoids copying the customer's own address.
The Communication hub now passes the available CC recipients into the cancellation editor, and the email template schema has a new email_cc_custom_membership_ids column plus a custom check-constraint value.
Messages and automations use progress wording
The Messages hub now labels automatic progress emails as Progress Updates instead of sourcing updates.
Empty-state copy, message filters, and automation trigger labels now use progress language so customer communication lines up with the deal-detail and pipeline terminology.
Date of birth entry and print output are friendlier
Customer and joint-purchaser date-of-birth fields now use a dd-mm-yyyy text input in deal forms. The input accepts a readable local format while storing the canonical ISO date behind the scenes.
Printed write-up sheets now format customer and joint-purchaser dates of birth as dd-mm-yyyy, matching the way dealerships expect to read them on the form.
The same date-of-birth formatter is shared by the form and PDF output, reducing the chance that the app stores one date but prints another-looking format.
Addresses and inline editing got safer
Deal saves now allow structured customer address columns, including address line 1, address line 2, city, and region. That lets the form persist richer address data instead of flattening everything into one text field.
Inline address cells keep the display selectable and use an explicit edit affordance, reducing accidental edits while still making address correction quick from the grid.
Sales Log and detail copy now use Progress wording where users are choosing or reviewing the former sourcing status.
Dashboard action items explain empty filtered feeds
Dashboard action items now distinguish between "nothing to action" and "your custom action item settings filtered everything out."
When a custom action item configuration hides rows that would appear under the default role setup, the widget shows how many default items still exist. That makes it easier to tell the difference between a clean dashboard and an over-filtered one.
Write-up PDFs and viewer behaviour are tidier
Write-up PDF viewers now import the renderer BlobProvider directly while keeping the browser-only PDF canvas renderer dynamic. This simplifies the viewer path without changing the print/download controls.
Blank write-up sheet viewing follows the same renderer pattern as deal write-ups, keeping the two PDF viewer implementations aligned.
Help and docs were refreshed
Help articles for automated customer messages, incoming stock, inline editing, recording a deal, the pipeline, and the Sales Log were updated for the progress-language pass and the latest workflow behaviour.
The guided tour copy was updated so the onboarding and in-app tours no longer teach the old sourcing terminology.
Smaller fixes
The stock rebates workbench, promotions workspace, reports schema, gaps query, unsubscribe path, import mapper, and several message/template surfaces received small wording and consistency fixes as part of the same cleanup.
The dev script now uses the stable webpack dev server by default, with npm run dev:turbo available when Turbopack dev mode is wanted explicitly.