At a glance
- A new Split page under Settings > Dispatch sets how split manifests are numbered, with a live preview
- Every split manifest shows the chain it belongs to, and a lineage page and the map follow the whole trip
- Batch invoices show one readiness panel, report what validation found and let you resolve findings in place
- The documents review page has a dedicated review mode with keyboard shortcuts
- Charge extra, credit back and collect the rest from the settlement, with money columns laid out as a ledger
New features 1
Split manifests: choose how every leg is numbered
A new Split page under Settings > Dispatch decides how the manifests a split creates are numbered: a letter suffix (50350-A, 50350-B), a number suffix (50350-1, 50350-2) or the next available number, with a live preview of the result. Every split manifest also shows the chain it belongs to, and a lineage page follows the whole trip.
Improvements 107
Charge extra, credit back, and collect the rest, from the settlement
- Why we changed it
- Adjusting a settlement meant creating transactions elsewhere and coming back, with nothing tying them to the settlement in front of you.
- How it helps
- Deductions, credits and the remaining balance are handled where you are already looking at the driver's pay.
- How to use it
- Open a settlement and use the charge, credit and collect actions on it.
Payout batch and payout editing controls appear only for users with the matching payout permissions
- Why we changed it
- The controls were shown to everyone, so users without permission could click actions that would fail.
- How it helps
- The screen shows only the payout actions the signed-in user can actually carry out.
- How to use it
- Assign the payout batch edit, create and payout edit permissions to the roles that need them.
Recurring transactions can be set up as a balance, with its limit used as the target
- Why we changed it
- Recurring transactions only covered fixed amounts, so balance-style arrangements had to be tracked outside the system.
- How it helps
- Balance arrangements are set up once and the limit is treated as the target to reach, with no side bookkeeping.
- How to use it
- Create a recurring transaction and pick the balance kind.
Recurring transactions show their name, number and kind in the dashboard
- Why we changed it
- Recurring transactions were listed without the fields needed to tell one from another.
- How it helps
- Accounting staff can identify a recurring transaction at a glance instead of opening each one.
- How to use it
- Open recurring transactions in the dashboard.
Settlement dialogs load on demand again instead of being pulled in up front
- Why we changed it
- The dialogs had been bundled into the main load, which made the app heavier for everyone including people who never open settlements.
- How it helps
- Pages load faster, and settlement dialogs still open when needed.
- How to use it
- Nothing to switch on.
Settlement money columns read as a ledger, with debits and credits laid out consistently
- Why we changed it
- The amount columns mixed signs and formats, so checking a settlement meant working out which figure was a charge and which a payment.
- How it helps
- Payroll and settlement staff can scan a settlement and reconcile totals without recalculating each line.
- How to use it
- Open a settlement; the columns are already laid out this way.
Switching tabs in the settlement dialog is faster, and Sync is disabled on read-only settlements
- Why we changed it
- The settlement dialog reloaded more than it needed when moving between tabs, and Sync stayed clickable on settlements that cannot be changed.
- How it helps
- Payroll staff move through settlement tabs quicker and cannot trigger a sync that would not apply.
- How to use it
- Open a settlement and switch tabs; Sync appears greyed out on read-only settlements.
The recurring transaction dialog explains what a preset does and shows the amount it will post
- Why we changed it
- Presets were named but not described, and the dialog did not show the money involved, so you had to save and check.
- How it helps
- You can tell which preset you want and confirm the amount before the transaction is created.
- How to use it
- Create or edit a recurring transaction; the description and amount appear in the dialog.
An assistant connection request survives sign-in and the consent screen spells out what is being granted
- Why we changed it
- If you were not signed in when the assistant asked to connect, the request was lost, and the consent prompt did not make clear what access it covered.
- How it helps
- You can sign in mid-request and finish the connection, and decide with the permissions in front of you.
- How to use it
- Start the connection from the assistant; sign in if prompted and review the consent screen.
The assistant suggests the areas to narrow a selection to, so you can start from its suggestion
- Why we changed it
- Narrowing a selection meant picking areas yourself with no guidance from the assistant.
- How it helps
- You start from a suggested set of areas and adjust from there, which is faster than building the selection from scratch.
- How to use it
- Start a narrowed selection in the assistant and pick from the suggested areas.
A factoring submission that stops progressing is reported instead of sitting silently
- Why we changed it
- If a batch submission to factoring stalled, nothing on screen said so and the batch appeared to still be in flight.
- How it helps
- Billing staff find out that a submission is stuck and can act on it rather than waiting on payment that is not coming.
- How to use it
- Submit an invoice batch to factoring; a stalled submission is flagged in the batch.
Batch invoice sending shows what its own validation found before the send goes out
- Why we changed it
- When a batch send rejected invoices, the reasons were not surfaced, leaving staff to guess which invoice was at fault.
- How it helps
- Billing staff see exactly which invoices failed validation and why, and can fix them before resending.
- How to use it
- Start a batch invoice send; validation results appear in the dialog.
Batch invoices show one readiness panel instead of two stacked warnings
- Why we changed it
- Readiness problems were reported in two separate warning blocks, which pushed the invoice content down and made it unclear what actually had to be resolved.
- How it helps
- You see everything blocking a batch in one place and can work through it without reading two overlapping warnings.
- How to use it
- Open a batch invoice that is not ready to send.
Batch invoices show when a factoring submission has stalled
- Why we changed it
- A factoring attempt that stopped progressing looked the same as one still in flight, so nobody knew to act on it.
- How it helps
- Billing staff can spot stuck submissions and resubmit instead of waiting.
- How to use it
- Open the batch invoices list and check the status on the submission.
Choose which columns the orders table shows when building batch invoices, and see readiness findings ordered by cost
- Why we changed it
- The orders table showed a fixed set of columns and readiness findings arrived in no useful order, so the costly problems were buried.
- How it helps
- You see the fields your billing work needs and deal with the findings that hold up the most money first.
- How to use it
- Open a batch invoice, use the column chooser above the orders table; findings are sorted for you.
Each invoice submission in a batch now shows its own activity log, with the most serious lines first
- Why we changed it
- Batch invoice submissions shared one undifferentiated log, so finding which invoice failed and why meant reading through everything.
- How it helps
- Billing staff can see per-submission history and spot errors and warnings immediately instead of scanning the whole batch.
- How to use it
- Open a batch invoice and expand a submission to see its activity list.
Invoice date filtering applies on its own, regardless of what is selected in the list
- Why we changed it
- The date filter took the current row selection into account, so results changed depending on what happened to be selected.
- How it helps
- Filtering invoices by date returns the same, predictable set every time.
- How to use it
- Filter invoices by date as usual.
Sending a single settlement now copies the company CC recipients by default
- Why we changed it
- The company CC list was applied to batch sends but had to be added by hand when sending one settlement.
- How it helps
- The same people are kept in the loop whether a settlement goes out alone or in a batch, with no manual re-typing.
- How to use it
- Send a settlement individually; the company CC addresses are prefilled and can still be removed before sending.
The invoice payment balance stays visible with an explanation when you lack permission to see the figures
- Why we changed it
- Users without the payment permission saw the balance area disappear with no indication why.
- How it helps
- Staff know the balance exists and who to ask for access instead of assuming the invoice is incomplete.
- How to use it
- Open an invoice without the payment permission; the balance area explains itself.
The recurring charge preset dialog lists one line per charge and shows the totals
- Why we changed it
- The preset dialog crowded charges together and never said what the run would add up to, so staff had to total it themselves.
- How it helps
- Billing staff can read each charge on its own line and check the total before saving a recurring preset.
- How to use it
- Open a recurring invoice preset in Billing; the charges and totals are laid out there.
The recurring preset dialog puts the charge direction next to the amount and the actions inside the card
- Why we changed it
- The dialog's heading took up room and it was not obvious whether a line was a charge or a credit.
- How it helps
- The direction of each amount is readable at a glance and the save and cancel actions sit where the work is.
- How to use it
- Open a recurring preset in Billing.
Unassign every order named by a batch invoice finding in one step
- Why we changed it
- Clearing a finding meant removing each order from the batch by hand, one at a time.
- How it helps
- A finding that names a dozen orders is resolved with a single action.
- How to use it
- Open the finding on a batch invoice and choose to unassign the orders it lists.
Validating a batch of invoices reports what it found
- Why we changed it
- Validation ran without telling you what it had checked or which invoices had problems.
- How it helps
- Billing staff see the issues before sending a batch, instead of discovering them after submission.
- How to use it
- Run validation on an invoice batch and read the reported results.
Verify the paperwork a batch invoice finding names without leaving the finding
- Why we changed it
- A finding about missing or unverified documents sent you off to find each order and check its paperwork elsewhere.
- How it helps
- You clear document findings in place, which shortens the path from a blocked batch to an invoice.
- How to use it
- Open the finding on a batch invoice and verify the documents it lists.
A manifest shows how each of its orders came to be on it
- Why we changed it
- Once orders were on a manifest there was no way to tell which were added directly and which arrived another way.
- How it helps
- Dispatchers can see the origin of every order on a manifest before changing it.
- How to use it
- Open a manifest and look at the orders list.
A manifest shows the split chain it belongs to
- Why we changed it
- After a manifest was split or merged there was no way to see which manifests it came from or led to.
- How it helps
- Dispatchers can follow how a load was divided or recombined without piecing it together from history.
- How to use it
- Open a manifest that has been split or merged; the related manifests are listed on it.
A split manifest has its own lineage page showing the full chain
- Why we changed it
- The relationship between an original manifest and the legs it was split into was only visible piece by piece.
- How it helps
- One page shows how a load was split and what each leg carries, so the history of a load is easy to explain.
- How to use it
- Open a manifest that was split and follow the link to its lineage.
An order's notes feed opens on the most recent note
- Why we changed it
- The notes panel opened at the top of the thread, so on busy orders you had to scroll to reach the latest entry.
- How it helps
- The newest note is the first thing you see when you open an order's notes.
- How to use it
- Open any order and its notes panel.
Each leg of a split manifest now carries its own stops into the dashboard
- Why we changed it
- Leg records reached the dashboard without their stops, so a split chain could not be read leg by leg.
- How it helps
- Stops appear under the leg they belong to, which makes the split chain readable where the work is planned.
- How to use it
- Open a split manifest and look at any leg.
Fields are open by default and empty states read more clearly
- Why we changed it
- Sections started collapsed, so people clicked through them to see what was there, and blank sections gave no hint about what belonged in them.
- How it helps
- The form shows its content straight away and says what is missing where nothing has been entered yet.
- How to use it
- Nothing to switch on. Open the form.
Fields start collapsed and documents are attached from a searchable picker
- Why we changed it
- The form opened fully expanded, and attaching a document meant finding it without search.
- How it helps
- The form is shorter to scan and the right document is found by typing part of its name.
- How to use it
- Open the form, expand the section you need and use the document picker.
Manifest split chains are available in the dashboard
- Why we changed it
- The dashboard could not see how a manifest had been split, so the chain of resulting manifests was not visible.
- How it helps
- Dispatchers can follow a split manifest through its chain instead of piecing the relationship together by hand.
- How to use it
- Open a manifest that has been split; the chain is shown with it.
Order list counts and filters load faster because the statistics are calculated in parallel
- Why we changed it
- The counts shown beside order filters were computed one after another, which delayed the list on large order volumes.
- How it helps
- Dispatchers see order counts and filtered lists sooner, especially on busy boards.
- How to use it
- Nothing to switch on; visible on the orders list.
Split manifests are numbered with a letter suffix by default
- Why we changed it
- There was no shared default for how the pieces of a split manifest were numbered, so numbering varied.
- How it helps
- The legs of a split load carry predictable numbers that match what staff say on the phone.
- How to use it
- Split a manifest and check the numbers on the resulting legs; the default can be changed in company settings.
Split settings move under Dispatch, default to a letter suffix, and show a live preview of the label
- Why we changed it
- Split configuration sat away from the work it affects and gave no indication of what the resulting label would look like.
- How it helps
- Settings are where dispatchers expect them, new splits are labelled with letters by default, and the preview shows the naming before you save.
- How to use it
- Open Settings under Dispatch and adjust the split options.
The manifest list can be filtered to split legs and to unmerged manifests
- Why we changed it
- Split legs and manifests still waiting to be merged were mixed into the full list with no way to single them out.
- How it helps
- Dispatchers can find the loads that still need attention after a split without scanning the whole list.
- How to use it
- Open the manifest list and use the new filters.
The orders table scrolls natively, so long lists move smoothly
- Why we changed it
- The orders table scrolled through a custom scrollbar layer, which made scrolling through large order lists feel heavy.
- How it helps
- Scrolling long order lists is faster and behaves the way scrolling does everywhere else, including with a trackpad or touch screen.
- How to use it
- Open the orders list and scroll; nothing to switch on.
When order extraction cannot identify the broker, order create suggests a likely match to pick from
- Why we changed it
- If automatic extraction failed to match the broker, the field was simply left empty and had to be searched by hand.
- How it helps
- Dispatchers confirm a suggestion instead of looking the broker up, so orders get created faster and with fewer mismatches.
- How to use it
- Create an order from a document; if the broker could not be matched, choose from the offered suggestion.
You can add a new broker without leaving order building
- Why we changed it
- The broker field only offered existing records, so a new broker meant leaving the order, creating the record, and starting over.
- How it helps
- Dispatchers build orders for new brokers in one pass.
- How to use it
- In order building, open the broker field and choose the option to add a new broker.
You can switch between legs inside the manifest dialog, with clearer map pins on the lineage page
- Why we changed it
- Reaching another leg of a split chain meant leaving the dialog, and the pins on the chain map were hard to tell apart.
- How it helps
- The whole split chain can be reviewed without losing your place, and the map pins say which leg they belong to.
- How to use it
- Open a split manifest and use the leg switcher in the dialog, or open the lineage page directly by its link.
Driver profiles have a phone note field
- Why we changed it
- There was nowhere to record context about a driver's phone number, such as whose phone it is or when to call.
- How it helps
- Dispatchers see the note next to the number instead of keeping it elsewhere.
- How to use it
- Open a driver profile and fill in the phone note field.
Drivers with disabled app access are flagged in the driver list and access can be restored from there
- Why we changed it
- There was no clear indication that a driver had lost access to the phone app, and restoring it was not obvious.
- How it helps
- Dispatchers can see at a glance who cannot log in to the driver app and give access back without leaving the list.
- How to use it
- Open Fleet, go to Drivers, and look for the disabled-access alert on a driver row to restore access.
Fleet data on screen updates itself as it changes, available behind a switch
- Why we changed it
- Fleet lists only showed what was loaded when the page opened, so dispatchers reloaded to see current data.
- How it helps
- Truck and driver information stays current on screen without a manual refresh.
- How to use it
- Ask to have the fleet live sync switch turned on for your company.
The driver list stays responsive while live fleet updates stream in
- Why we changed it
- Every incoming fleet update rebuilt all rows in the driver list, which made the page stutter on larger fleets.
- How it helps
- Scrolling and clicking in the driver list stay smooth while positions and statuses keep updating.
- How to use it
- Nothing to switch on; open the driver list.
The truck list stays responsive while live fleet updates stream in
- Why we changed it
- Every incoming fleet update redrew all rows in the list, which made scrolling and clicking stutter on larger fleets.
- How it helps
- Dispatchers working a long truck list keep smooth scrolling and selection while positions and statuses update.
- How to use it
- Nothing to switch on; open the truck list and it applies.
The truck page has separate Fuels and Tolls tabs
- Why we changed it
- Fuel and toll charges for a truck were shown together, which made it slow to review either one.
- How it helps
- Fleet staff can review fuel spend and toll spend for a truck separately without filtering.
- How to use it
- Open a truck and use the new Fuels and Tolls tabs.
Trailer type changes appear straight away in every open tab
- Why we changed it
- Adding or renaming a trailer type only showed up after a reload, so lists could disagree between tabs and users.
- How it helps
- Everyone works from the same trailer types without reloading the dashboard.
- How to use it
- Nothing to switch on.
Trailer types stay current everywhere without a page reload
- Why we changed it
- Trailer types were not part of the live data feed, so newly added or changed types showed up late.
- How it helps
- Trailer type lists match what is configured, wherever they are used.
- How to use it
- Nothing to switch on.
You can create a facility directly from the location row you started from
- Why we changed it
- Adding a facility meant leaving the location list and re-entering details that were already on screen.
- How it helps
- Fewer steps and no retyping when turning a known location into a facility.
- How to use it
- Use the create-facility action on the location row.
A document refreshes on screen as soon as its AI read finishes
- Why we changed it
- After the automatic read completed, the page kept showing the old state until it was reloaded by hand.
- How it helps
- Extracted fields appear as soon as they are ready, so there is no guessing about whether processing is done.
- How to use it
- Nothing to switch on; leave the document open and it updates itself.
Saving a draft no longer redraws the whole message form
- Why we changed it
- Every draft save re-rendered the entire composer, interrupting typing and moving the cursor.
- How it helps
- Drafts save quietly in the background while you keep writing.
- How to use it
- Nothing to switch on; write a message and let it save.
The document view in edit dialogs uses the full width of the page
- Why we changed it
- The embedded document view was cramped, so scans had to be zoomed and panned to be read.
- How it helps
- Documents are legible while editing, with less zooming.
- How to use it
- Open an edit dialog that shows a document.
The document viewer jumps to the part of the page a field was read from and moves on once you decide
- Why we changed it
- The viewer stayed where it was while you checked a field, so you had to hunt for the matching spot on the scan yourself, and nothing advanced after a decision.
- How it helps
- Each field points at its evidence, values are compared against a fresh read, and the queue advances on its own once you accept or reject.
- How to use it
- Open a document in review; selecting a field scrolls the viewer to its source.
The documents review page has a dedicated review mode with keyboard shortcuts
- Why we changed it
- Reviewing incoming documents meant clicking through every field and control with the mouse, which was slow for anyone working a large queue.
- How it helps
- Reviewers can move through documents and act on them from the keyboard, so a stack of documents takes fewer steps to clear.
- How to use it
- Open the documents review page and switch to review mode; the available shortcuts are shown on the page.
The review list shows how far along each document's fields are
- Why we changed it
- From the list there was no way to tell which documents were partly reviewed and which had not been touched.
- How it helps
- You can pick up where you left off and see at a glance what is left to review.
- How to use it
- Open the documents review list; progress is shown on each row.
The review shows which values the automatic run accepted on its own
- Why we changed it
- There was no way to tell which fields a person confirmed and which the system filled in and accepted without review.
- How it helps
- Reviewers can focus on what still needs a human eye and audit what was decided automatically.
- How to use it
- Open a reviewed document; automatically accepted values are marked.
Typing in the message composer no longer lags as the rest of the form keeps up
- Why we changed it
- Each keystroke in the composer re-rendered surrounding fields, so text appeared behind what was typed.
- How it helps
- Messages can be written at full speed without dropped or delayed characters.
- How to use it
- Nothing to switch on; open a conversation and write.
Live positions start loading as the app opens rather than after the session and stream are ready
- Why we changed it
- Live data was only read once the session and the stream had settled, adding a delay before anything appeared.
- How it helps
- Vehicles show up on screen sooner after opening the dashboard.
- How to use it
- Nothing to switch on.
The map shows the whole split chain of a manifest behind Show details
- Why we changed it
- When a manifest had been split, the map only showed the leg in front of you, with no way to see the rest of the chain.
- How it helps
- Dispatchers can follow a split load end to end on one map instead of opening each leg separately.
- How to use it
- Open a manifest on the map and choose Show details.
The money codes table scrolls smoothly on large lists
- Why we changed it
- Every row was rendered at once, so long lists were slow to open and scroll.
- How it helps
- Carriers with many money codes can work through the table without waiting.
- How to use it
- Open the money codes list.
A company can give a document type its own fields
- Why we changed it
- Document types carried a fixed set of details, so anything a carrier tracked beyond that had to live in notes or outside the system.
- How it helps
- Each document type can capture exactly the data the company needs, and those fields can then be filled in and searched.
- How to use it
- Open the document type in settings and add the fields you want it to hold.
A document shows its own fields
- Why we changed it
- Documents were displayed with a generic set of details, so information specific to a document type was not visible.
- How it helps
- You can see the details that belong to the document you opened without going elsewhere.
- How to use it
- Open a document from any record that carries one.
A forced update now says an update is required and counts down to the reload
- Why we changed it
- When a new version had to be loaded, the app reloaded with little explanation of what was happening.
- How it helps
- You know why the page is about to reload and how long you have to finish what you are doing.
- How to use it
- Nothing to switch on; the message appears when a required update is released.
A guided tour can be opened straight from a link with a tour id in the URL
- Why we changed it
- Tours could only be started from inside the app, so there was no way to point someone at a specific one.
- How it helps
- Support and colleagues can share a link that opens the exact walkthrough someone needs.
- How to use it
- Append ?tourId= and the tour's id to a dashboard URL.
A workspace list that is cut off at the first hundred entries now says so
- Why we changed it
- Long workspace lists were silently truncated, so people assumed a missing workspace did not exist.
- How it helps
- People with many workspaces know the list is partial and can search for the one they need.
- How to use it
- Open the workspace list with more than a hundred workspaces; the notice appears above it.
Activity notes group field changes together when several were edited at once
- Why we changed it
- When one action changed several fields, the activity feed listed each change as its own separate note, which made the history hard to scan.
- How it helps
- Related field changes from the same action now read as one grouped entry, so it is quicker to see what happened and who did it.
- How to use it
- Open the notes or activity panel on any record; grouping happens automatically.
An integration left half set up is shown as unfinished and its credentials can be tested from there
- Why we changed it
- A provider setup that was started but never completed looked the same as a working one, with no way to check it.
- How it helps
- You can spot the integrations that still need attention and verify the credentials before relying on them.
- How to use it
- Open integration settings; unfinished setups are marked and offer a credential test.
Background tabs stop refreshing data until you switch back to them
- Why we changed it
- A number of screens kept polling for updates even when their tab was hidden, using bandwidth and slowing the tab you were actually working in.
- How it helps
- Machines with several dashboard tabs open stay quicker, and data still refreshes the moment you come back to a tab.
- How to use it
- Nothing to switch on.
Companies can set a default language for everyone working in the account
- Why we changed it
- The language was only a personal choice, so every new colleague had to find the setting themselves and shared screens showed whatever each person had picked.
- How it helps
- An admin sets the company language once and it becomes the starting point for people in the account, while anyone can still switch their own.
- How to use it
- Open company settings and choose the language.
Company lists load faster by fetching each company's primary identity in a single query
- Why we changed it
- The service looked up the primary identity separately for every company, so pages listing many companies slowed down as the list grew.
- How it helps
- Screens that list companies come back quicker, and the slowdown no longer grows with the number of companies.
- How to use it
- Nothing to switch on; open any screen that lists companies.
Document preview opens at a sensible default size and can be zoomed
- Why we changed it
- Previews opened at a fixed size with no way to enlarge them, so small scans and dense paperwork were hard to read.
- How it helps
- Staff can read documents in place instead of downloading them to check a number.
- How to use it
- Open any document preview and use the zoom control.
Document status counts are calculated in one pass, so the totals on the documents list stay accurate
- Why we changed it
- The counts next to each document status were assembled from the loaded page rather than the full set, so they could disagree with what the list actually contained.
- How it helps
- Staff can trust the number beside each status when deciding what still needs handling.
- How to use it
- Open the documents list; counts update on their own.
Documents show whether they can be read with AI
- Why we changed it
- Nothing indicated which documents the AI could read, so users guessed before trying.
- How it helps
- It is clear up front which files can be processed, which saves attempts that were never going to work.
- How to use it
- Nothing to switch on. Open a record's documents.
Dropdown lists open immediately when you click them
- Why we changed it
- Opening a select menu did its work in the same frame as the click, so large lists felt sluggish to open.
- How it helps
- Pickers with many options, such as trucks, drivers or customers, respond right away.
- How to use it
- Nothing to switch on.
Empty tables show a reachable action and a single lighter illustration
- Why we changed it
- Empty states shipped a large set of artwork and their call to action could be out of reach, so an empty list was heavy and offered no clear next step.
- How it helps
- When a list has nothing in it you get a clear action you can click, and the page loads lighter.
- How to use it
- Open any list with no records; nothing to switch on.
Equipment and truck type lists load from the live store instead of being polled repeatedly
- Why we changed it
- These lookups were refetched on a timer, which added needless load and could still show stale values between polls.
- How it helps
- Dropdowns for equipment and truck types open faster and reflect changes immediately.
- How to use it
- Nothing to switch on.
Filter lists stay responsive when toggling options, with no pause on long option lists
- Why we changed it
- Changing one filter re-rendered every option row, which made large filter panels stutter.
- How it helps
- Selecting filters on big lists is immediate, even with many options.
- How to use it
- Nothing to switch on.
Initial data load after sign-in fetches its entity types together and finishes sooner
- Why we changed it
- The bootstrap loaded each entity type one after another, which made the first screen after sign-in slow.
- How it helps
- Less waiting before the dashboard is usable.
- How to use it
- Nothing to switch on.
Integration settings show whether a provider is connected and let you test its credentials
- Why we changed it
- There was no way to tell from the dashboard whether a provider connection was live or its credentials still valid until something failed.
- How it helps
- You can confirm an integration works when you set it up, rather than finding out from a failed transfer.
- How to use it
- Open integration settings, pick a provider and run the credential test.
Notes feed moves with the arrow keys and stays fast past the first page of entries
- Why we changed it
- The notes feed had no keyboard navigation and slowed down once a record had accumulated many entries.
- How it helps
- Staff can move through notes without reaching for the mouse, and long histories stay responsive.
- How to use it
- Open the notes feed on any record and use the arrow keys to move between entries.
Roles and equipment types update live, without a page reload
- Why we changed it
- Changes to roles and equipment types only appeared after a manual refresh, so lists and pickers could show stale options.
- How it helps
- Dispatchers and admins see new or edited roles and equipment types right away across open screens.
- How to use it
- Nothing to switch on; the values refresh as they change.
Sign-in loads faster by fetching only what the sign-in screen needs
- Why we changed it
- The sign-in page pulled settings and steps for the whole app and its preloads competed with routing, which slowed the first screen.
- How it helps
- Getting into the dashboard takes less time, particularly on slow connections.
- How to use it
- Nothing to switch on; visible at sign-in.
Tables load faster because empty-state artwork is fetched only when a table is actually empty
- Why we changed it
- Every table pulled its empty-state illustration up front, even when it had rows to show.
- How it helps
- Lists and tables across the dashboard open with less to download and appear sooner.
- How to use it
- Nothing to switch on.
Tables load only the images the table on screen needs, so large lists appear faster
- Why we changed it
- Opening a table pulled in artwork for every table in the app, adding load time before anything was usable.
- How it helps
- Lists and grids render sooner, especially on slower connections.
- How to use it
- Nothing to switch on.
Tables stay responsive while you type in search instead of redrawing the whole list
- Why we changed it
- Every keystroke in a table search rebuilt the column headers and remounted the rows, so large lists stuttered and scroll position jumped.
- How it helps
- Searching long lists of orders, trucks or invoices now filters smoothly, with less waiting between keystrokes.
- How to use it
- Nothing to switch on; open any table and use its search box.
The country picker opens and scrolls without lag across its full list
- Why we changed it
- All 242 countries were rendered at once, which made the dropdown slow to open and stutter while scrolling.
- How it helps
- Choosing a country in addresses and settings is quick.
- How to use it
- Open any country dropdown.
The dashboard responds faster on pages with timers and animations
- Why we changed it
- Error monitoring was wrapping every timer and animation frame in the app, which added overhead to anything that updated on screen.
- How it helps
- Screens that refresh on a timer or animate feel lighter, especially on slower machines.
- How to use it
- Nothing to switch on.
The document review list can be searched and filtered by a document's fields
- Why we changed it
- The review list could only be scrolled, so finding one document in a long queue meant paging through it.
- How it helps
- Staff working through documents can go straight to the ones they need instead of reading the whole list.
- How to use it
- Open the document review list and use the search box and field filters above it.
The main image on the integrations page loads faster in modern formats
- Why we changed it
- The page's hero image was served in a heavy format and without loading priority, so it arrived late.
- How it helps
- The page looks finished sooner and uses less bandwidth.
- How to use it
- Nothing to switch on.
The notes feed adds filters, sticky day headers and a clear status for each stage of an activity
- Why we changed it
- Long feeds were hard to scan: there was no way to narrow them down, the date scrolled out of view and the stage of an activity was not shown.
- How it helps
- Staff can filter to what they care about, always see which day they are reading, and tell at a glance where an activity stands.
- How to use it
- Open the notes feed and use the filters at the top; the day headers and status labels appear on their own.
The notes feed shows comments and activity in one list instead of behind a filter row
- Why we changed it
- The All / Comments / Activity switch split the history and hid part of it by default.
- How it helps
- The full history of a record reads in one place, in order.
- How to use it
- Open the notes feed on any record.
The sign-in page loads faster
- Why we changed it
- The page pulled in more code than it needed and fired a burst of prefetch requests before anyone signed in.
- How it helps
- Signing in starts sooner, especially on slow connections.
- How to use it
- Nothing to switch on; visit the sign-in page.
The sign-in screen shows the latest release notes immediately instead of waiting on a request
- Why we changed it
- The changelog on the sign-in page was fetched each time, so it appeared late or not at all on a slow connection.
- How it helps
- You see what changed as soon as the sign-in page paints, and the page itself loads faster.
- How to use it
- Open the sign-in page.
The signed-in workspace loads without the marketing tag manager script
- Why we changed it
- An analytics tag manager was being loaded inside the working area of the product, where it served no purpose and cost load time on every page.
- How it helps
- Pages inside the workspace start quicker and carry less third-party script.
- How to use it
- Nothing to switch on.
The workspace picker opens without delay
- Why we changed it
- The release notes were being loaded while the workspace picker opened, which held up the menu.
- How it helps
- Switching between workspaces is immediate.
- How to use it
- Open the workspace picker from the top of the dashboard.
You can test a saved integration connection from its settings page
- Why we changed it
- After saving integration credentials there was no way to confirm they worked without waiting for the next sync to fail.
- How it helps
- You can confirm credentials and reachability right away and fix a bad connection before it affects work.
- How to use it
- Go to the integration's settings page and use the test action next to the saved connection.
Fuel and toll exports can be scoped to specific trucks
- Why we changed it
- Exports covered the whole fleet, so anyone checking a few trucks had to filter the file afterwards.
- How it helps
- You pull only the fuel and toll records for the trucks you care about, which makes reconciliation and dispute checks faster.
- How to use it
- Pick the trucks when starting a fuel or toll export.
Fixes 92
A failed settlement load offers Retry instead of claiming there are no cycles
- Why we changed it
- When the settlement cycles failed to load, the page showed an empty state saying there were no cycles, with no way to try again.
- How it helps
- You can tell a loading failure from an empty list and retry without reloading the page.
- How to use it
- If settlement cycles fail to load, use Retry on the message.
Downloading a payout batch and editing payouts now require payout permissions
- Why we changed it
- The payout batch download and payout write endpoints did not check payout permissions, so users without them could reach payout data.
- How it helps
- Payout information is limited to the people your roles allow.
- How to use it
- Check that the staff who need payouts have the payout permissions on their role.
Invoices synced to the accounting integration carry their order reference again
- Why we changed it
- A number of synced invoices lost the order reference, making them hard to match back to the load.
- How it helps
- Accounting can tie each synced invoice to the order it came from.
- How to use it
- Nothing to switch on.
Pay setup screens show the settlement figures as they are actually configured
- Why we changed it
- Pay setup displayed values that did not always match what the settlement run would use.
- How it helps
- Payroll staff can trust the pay setup screen when checking how a driver or carrier will be paid.
- How to use it
- Open pay setup on a driver or carrier.
Settlement email settings are readable, show loading and error states, and the send dialog blocks incomplete sends
- Why we changed it
- The email settings screen gave no feedback while loading or failing, and the send dialog let sends go out without the details it needed.
- How it helps
- Payroll staff can see what is happening and cannot send a settlement email that is missing something.
- How to use it
- Open settlement email settings and the send dialog.
The settlement period list closes right away when you pick a period
- Why we changed it
- Closing the list was delayed along with opening it, so the dropdown lingered on screen after a selection.
- How it helps
- Choosing a settlement period feels immediate instead of sticky.
- How to use it
- Nothing to switch on.
Opening a BI link goes straight to the BI app instead of stalling on a cached shell
- Why we changed it
- The offline cache intercepted navigations to the BI section and served the wrong app shell.
- How it helps
- BI links and bookmarks load the reporting app the first time, with no reload needed.
- How to use it
- Open any BI link or bookmark; reload once if an old cache is still active.
A delivered order can be invoiced even when no truck is assigned to it
- Why we changed it
- The invoice option only appeared for delivered orders that had a truck on them, so orders without one could not be billed.
- How it helps
- Billing staff can invoice every delivered order without first attaching a truck to it.
- How to use it
- Open a delivered order with no truck assigned and create the invoice as usual.
Accounting sync processes every invoice in a batch instead of stopping at 30
- Why we changed it
- Batches sent to the connected accounting system stopped after 30 invoices, leaving the rest unsynced without a clear sign.
- How it helps
- Large invoice batches reach the accounting system in full, so billing staff stop re-running syncs and hunting for missing invoices.
- How to use it
- Nothing to switch on; run a sync as usual.
An order that has not been invoiced no longer shows as paid in full
- Why we changed it
- Orders with no invoice were displaying a fully paid status, which misrepresented what was still owed.
- How it helps
- Billing staff can trust the payment status on an order and chase what is genuinely outstanding.
- How to use it
- Open an order that has not been invoiced yet and check its payment status.
Batch invoice tabs and factoring panels line up correctly again
- Why we changed it
- The tab underline sat flush against the labels and the factoring surfaces were visually inconsistent.
- How it helps
- The batch invoicing screens are easier to read and scan when working through a batch.
- How to use it
- Nothing to switch on. Open batch invoices.
Four billing defects reported through usage tracking are fixed
- Why we changed it
- Usage measurements surfaced four defects in billing screens that blocked or misreported work.
- How it helps
- Billing staff can complete the affected flows without workarounds.
- How to use it
- Nothing to switch on; open Billing as usual.
Invoice statistics on batch invoices wrap onto another line instead of hiding fields
- Why we changed it
- When the totals row ran out of width, some figures were cut off rather than moved onto a second line.
- How it helps
- Billing staff see every figure in the batch invoice summary at any window width.
- How to use it
- Open batch invoices and look at the statistics row.
Invoice status labels are no longer clipped and empty statistics line up properly on the batch invoice screen
- Why we changed it
- Longer status labels were cut off and statistic tiles with no value sat out of alignment.
- How it helps
- Invoice status can be read at a glance without guessing at truncated text.
- How to use it
- Nothing to switch on. Open batch invoices.
Review orders opens with exactly the orders it lists selected
- Why we changed it
- When starting a batch invoice review, the selection did not always match the orders named on the screen.
- How it helps
- You invoice the orders you meant to invoice, without re-checking the selection by hand.
- How to use it
- Select orders and choose Review orders in batch invoicing.
Settlement letterheads show the company phone, fax and email again
- Why we changed it
- Those contact details were saved in settings but not returned, so they were missing from the settlement letterhead.
- How it helps
- Settlements go out with complete contact details, so drivers and carriers know where to reply with questions.
- How to use it
- Check the letterhead details in settings; they now appear on generated settlements.
The batch settlement dialog can turn off the company CC list
- Why we changed it
- Once the company CC recipients were applied, the dialog gave no way to remove them, so settlements went out to people who should not receive them.
- How it helps
- Staff sending settlements control exactly who is copied on each batch.
- How to use it
- Open the batch settlement dialog and clear the company CC option before sending.
The fix action in the batch invoice readiness column is no longer clipped
- Why we changed it
- The readiness cell cut off its action, so the control to resolve the problem could not be reached.
- How it helps
- Billing staff can act on an invoice that is not ready from the list itself.
- How to use it
- Open batch invoices and look at the readiness column.
The invoice attempt header wraps instead of squeezing the amount out of view
- Why we changed it
- On narrow screens the header crushed the amount so it was cut off or unreadable.
- How it helps
- The attempt amount stays readable at any window width.
- How to use it
- Nothing to switch on.
The invoice list says when it failed to load instead of reporting that there are no invoices
- Why we changed it
- A failed request showed the empty state, so it looked like the system held no invoices at all.
- How it helps
- Billing staff can tell a loading problem from an genuinely empty list and retry instead of doubting their data.
- How to use it
- Nothing to switch on; the message appears if the invoice list cannot load.
The readiness action on batch invoices stays visible instead of being cut off
- Why we changed it
- On the batch invoice screen the readiness action was clipped by its container, so it could not be reached.
- How it helps
- You can act on invoice readiness directly from the batch screen without resizing or scrolling around the panel.
- How to use it
- Open a batch invoice; the readiness action sits in the panel.
The submission logs section in batch invoices shows its heading instead of a blank label
- Why we changed it
- The heading pointed at a label that did not exist, so the section came up without a title.
- How it helps
- The submission history in a batch invoice is labelled and easier to find.
- How to use it
- Open a batch invoice and look at the submission logs section.
Clicking the already selected day in the appointment picker applies that appointment
- Why we changed it
- Re-clicking the selected day did nothing, so the appointment was not set and dispatchers had to pick another day and come back.
- How it helps
- Setting an appointment takes one click, whatever day was highlighted first.
- How to use it
- Open an order, set an appointment and click the highlighted day.
Dispatching a draft sends the whole truck roster, not just the primary driver
- Why we changed it
- When a truck had more than one driver assigned, dispatching from a draft only passed the primary driver along.
- How it helps
- Co-drivers and team assignments carry through on dispatch, so the load shows the right people without manual correction.
- How to use it
- Dispatch a draft for a truck with more than one driver.
Editing manifest miles now requires the Override Distance permission, on the page and on save
- Why we changed it
- The miles field on manifest expenses could be edited by users without the Override Distance permission, and the server accepted the change.
- How it helps
- Distance-based pay and billing stay under the control of the people allowed to change them.
- How to use it
- Grant Override Distance to the roles that should edit manifest miles; others see the field locked.
Leaving a new order no longer triggers an unsaved-changes prompt from a screen you already closed
- Why we changed it
- A leave guard from a closed order view stayed active and could block or interrupt navigation afterwards.
- How it helps
- Navigation after creating or abandoning an order behaves as expected, without stray prompts.
- How to use it
- Nothing to switch on.
Looking up a location returns the facility it is linked to
- Why we changed it
- The location lookup left out the facility link, so callers and screens relying on it saw nothing.
- How it helps
- Locations show their facility wherever they are used.
- How to use it
- Nothing to switch on.
Manifests and tracking pages keep your place in the list when you page through results
- Why we changed it
- The paging keys were being dropped on the manifests and tracking pages, so moving between pages reset the view instead of continuing where you were.
- How it helps
- You can work through long manifest and tracking lists page by page without losing your position or seeing repeated results.
- How to use it
- Open the manifests or tracking page and page through the list as usual.
Notes delivered over the live feed arrive intact for everyone watching the same order
- Why we changed it
- A relayed note event was being altered while it was shared across open streams, so some viewers saw a changed or incomplete note.
- How it helps
- Everyone with the order open sees the same note text as it was written.
- How to use it
- Nothing to switch on; applies to notes as they arrive.
Order and invoice lists say when loading failed instead of showing an empty board
- Why we changed it
- When a list failed to load it rendered as empty, which looked the same as having no orders or invoices at all.
- How it helps
- You can tell a real empty list from a failure and retry instead of assuming work has disappeared.
- How to use it
- Nothing to switch on; the error message appears when a list fails to load.
Order create now asks for a date on stops marked "Need to Set" instead of letting them through empty
- Why we changed it
- A stop flagged as needing a date could be saved without one, leaving the order incomplete downstream.
- How it helps
- Dispatchers catch missing stop dates at creation rather than when planning or the driver hits the stop.
- How to use it
- Create an order with a stop marked "Need to Set"; the date is requested before you can continue.
Order flags show the time they were raised in the company's time zone
- Why we changed it
- Flag timestamps were rendered in a different zone, so dispatchers read the wrong hour.
- How it helps
- The time on a flag matches the clock everyone on the team is working to.
- How to use it
- Open an order with a flag and read its raised-at time.
The appointment popover on order creation waits for a date before applying the appointment
- Why we changed it
- The popover could apply an appointment before a date was entered, leaving orders with incomplete appointment information.
- How it helps
- Appointments saved on new orders always carry the date the dispatcher meant.
- How to use it
- Create an order and open the appointment popover on a stop.
Unmerge offers only the orders that a merge actually brought onto the manifest
- Why we changed it
- The unmerge picker listed orders that were never merged in, so it was possible to pull the wrong order off.
- How it helps
- Dispatchers can undo a merge without picking through orders that do not belong in the list.
- How to use it
- Open a merged manifest and choose unmerge.
A deleted vendor still shows in the record that references it instead of leaving the field blank
- Why we changed it
- Once a vendor was deleted, fields holding it went empty, so records lost the history of who the vendor was.
- How it helps
- You can still see which vendor a record was tied to after that vendor is removed.
- How to use it
- Nothing to switch on; open a record that references a deleted vendor.
A truck's details refresh right away when it is added to or removed from a team
- Why we changed it
- Team membership changes left stale truck data cached, so the truck still showed its old team until a reload.
- How it helps
- Team assignments are reflected immediately wherever the truck appears.
- How to use it
- Nothing to switch on; add or remove a truck from a team and the change shows at once.
Deleting a vendor unlinks the fleet assigned to it
- Why we changed it
- Trucks and equipment stayed attached to vendors that no longer existed, leaving stale links on fleet records.
- How it helps
- Fleet records stay clean after a vendor is removed, so vendor assignments reflect the vendors you actually work with.
- How to use it
- Delete a vendor; linked fleet is released automatically.
Driver, truck and trailer lists say when loading failed instead of spinning forever
- Why we changed it
- If the list request failed, the page kept showing a loading state with no indication that anything had gone wrong.
- How it helps
- You know to retry instead of waiting on a screen that will never finish.
- How to use it
- Nothing to switch on.
Fleet data syncs use the signed-in user's own dashboard access
- Why we changed it
- The fleet read did not pass the caller's dashboard credential, so syncs could fail or return data that did not match the user's access.
- How it helps
- Fleet lists and synced fleet data now reflect what the signed-in user is allowed to see, without unexplained sync failures.
- How to use it
- Nothing to switch on.
Fleet reference data keeps updating live instead of going stale until a reload
- Why we changed it
- Live updates for a fleet reference type depended on a logged row rather than on the type being declared, so updates could stop arriving.
- How it helps
- Truck and driver reference lists reflect changes as they happen without a manual refresh.
- How to use it
- Nothing to switch on.
Quantity on fuel transaction forms accepts decimals without the leading zero getting in the way
- Why we changed it
- The field was pre-filled with a default of 0, which stuck to whatever was typed and mangled decimal amounts like 12.5.
- How it helps
- Fuel quantities are entered once and recorded as typed.
- How to use it
- Enter the quantity on a fuel transaction as normal.
Reloading a fleet table brings back its rows instead of an empty table
- Why we changed it
- Refreshing the page on a trucks or drivers table could restore the saved view with no rows in it.
- How it helps
- A reload returns the list you were looking at, so nothing looks like it disappeared.
- How to use it
- Nothing to switch on.
Searching fleet notes matches the words you see, not the formatting behind them
- Why we changed it
- Note search indexed the raw markup, so formatting characters interfered with matches and some notes could not be found.
- How it helps
- Searching a note's text finds it, regardless of how the note was formatted.
- How to use it
- Search notes on a truck or driver as usual.
The tooltip explaining why a driver's app access is off points at the control again
- Why we changed it
- The tooltip on the app-disabled indicator lost its arrow, so it floated free of the control it described.
- How it helps
- It is clear which driver row and which control the explanation belongs to.
- How to use it
- Hover the app-disabled marker on a driver in the drivers list.
The summary composer opens on the letter that is actually sent
- Why we changed it
- The composer could open on a different draft than the one going out, so edits landed on the wrong text.
- How it helps
- What you see and edit in the composer is the message the recipient gets.
- How to use it
- Open the summary composer as usual.
Live positions clear on logout and the map never shows data that has stopped refreshing
- Why we changed it
- Live data stayed in memory after logout and could be drawn on screen even when nothing was updating it, so stale positions looked current.
- How it helps
- What you see moving on the map is actually live, and the next person to sign in on the same machine starts clean.
- How to use it
- Nothing to switch on.
Live truck locations come from the fleet service that owns them
- Why we changed it
- Locations were read from a second source that could lag behind or disagree with fleet records.
- How it helps
- Positions on the map match what fleet holds, with fewer stale or conflicting pins.
- How to use it
- Nothing to switch on.
The start location field in planning responds to a single click
- Why we changed it
- The start location field ignored the first click and only opened on the second.
- How it helps
- Planning a trip takes fewer clicks and feels predictable.
- How to use it
- Nothing to switch on.
A change notice refreshes a lookup right away instead of waiting out the caching window
- Why we changed it
- Lookups were held for a minute after being read, so an edit made elsewhere could take up to a minute to appear.
- How it helps
- Newly added or edited reference data shows up in lists as soon as it is saved.
- How to use it
- Nothing to switch on.
A company shows its real identifier instead of falling back to an MC number when one exists
- Why we changed it
- Companies that had a proper primary identifier were sometimes displayed with their MC number instead.
- How it helps
- Company records read consistently, so staff match a company to the right paperwork without second-guessing the number on screen.
- How to use it
- Nothing to switch on; open any company record.
A failed field load on documents shows an error instead of an empty result
- Why we changed it
- When fields could not be loaded the screen claimed there were none, which looked like missing data.
- How it helps
- Users can tell a loading problem from an empty set and retry.
- How to use it
- Nothing to switch on; the error appears when the load fails.
A page tab keeps the underline style the page asks for
- Why we changed it
- The tab component overrode the underline requested by the page, so some tab strips looked inconsistent.
- How it helps
- Tab strips look the same across the product and the active tab is easier to spot.
- How to use it
- Nothing to switch on.
A required app update waits until your unsaved work is finished before reloading the page
- Why we changed it
- The forced reload for a new app version could fire while a form was still open, discarding what had been typed.
- How it helps
- You keep what you were working on; the reload happens once the editor or form releases it.
- How to use it
- Nothing to switch on; it applies the next time a required update arrives.
Accordion sections no longer cut off content that grows after the section is opened
- Why we changed it
- An open accordion kept the height it had at opening time, so content loaded or added afterwards was clipped.
- How it helps
- Expanded panels show everything inside them, including content that arrives late.
- How to use it
- Nothing to switch on.
Activity notes no longer show a dash and arrow when a field had no previous value
- Why we changed it
- A newly filled field was rendered as if something had been replaced, showing an empty old value with an arrow.
- How it helps
- The history reads correctly for values that were set for the first time.
- How to use it
- Nothing to switch on.
Browsers now pick up a new app version instead of holding on to a stale one
- Why we changed it
- The file used to detect a new release was served in a form browsers cached too aggressively, so sessions could stay on an old build.
- How it helps
- You get the current version without clearing the cache or hard-reloading.
- How to use it
- Nothing to switch on; the reload prompt appears when a new version ships.
Company screens show the identifier the backend resolved instead of an outdated stored value
- Why we changed it
- The screen read a legacy column, so it could display an identifier that no longer matched what the system actually used.
- How it helps
- The identifier you see matches the one the rest of the product works with, so it is safe to quote and search on.
- How to use it
- Nothing to switch on; the company screens read the resolved value.
Count badges are back to their square corners and tighter fit
- Why we changed it
- Count badges had picked up rounded corners and extra padding, making them larger and inconsistent with the rest of the interface.
- How it helps
- Counts in navigation and lists read at a glance and line up with surrounding elements again.
- How to use it
- Nothing to switch on.
Documents are no longer rejected for a missing PDF header when they are not PDFs
- Why we changed it
- The upload check looked for a PDF header on files that were never meant to carry one, so valid documents were refused.
- How it helps
- Attachments and scans upload on the first try instead of failing validation.
- How to use it
- Upload the document as usual.
Dropdown lists open right away when you use the keyboard or start typing
- Why we changed it
- Opening a selection list was delayed for all input methods, which made keyboard use feel unresponsive.
- How it helps
- Keyboard-driven work in pickers and search fields reacts immediately, while mouse opens stay smooth.
- How to use it
- Nothing to switch on; tab into any dropdown and type.
Dropdowns that open and close on click work again, including the edit-order dialog
- Why we changed it
- A change to how dropdown popups load broke toggle-on-click triggers, so some selectors would not close or would not open the dialog behind them.
- How it helps
- Selecting values behaves as expected across forms, and the edit-order dialog opens from its selector.
- How to use it
- Nothing to switch on; use any dropdown that toggles on click.
Lists say the request failed instead of showing an empty state when data cannot load
- Why we changed it
- On 17 more lists a failed load looked identical to having no records, so people assumed data was missing.
- How it helps
- Users can tell a connection problem from a genuinely empty list and retry instead of doubting their data.
- How to use it
- Nothing to switch on; the message appears when a list fails to load.
Live note updates carry only identifiers, so note text is never pushed to people who should not read it
- Why we changed it
- The live event stream included the body of a note, which meant note text travelled to clients regardless of who could see the record.
- How it helps
- Note contents stay behind the permission check that loads them.
- How to use it
- Nothing to switch on.
Live updates retry after a failed catch-up instead of staying stale for the rest of the session
- Why we changed it
- If the catch-up request that reloads missed updates failed once, the tab stopped trying and the screen quietly went stale until it was reloaded.
- How it helps
- Screens recover on their own after a brief network problem, so you are less likely to act on out-of-date data.
- How to use it
- Nothing to switch on.
Lookup lists refresh as soon as they change instead of showing stale entries
- Why we changed it
- The client trusted its local store for types the change log did not feed, so edits to reference data could sit unseen until a reload.
- How it helps
- Dropdowns and reference lists show current values without refreshing the page.
- How to use it
- Nothing to switch on.
Losing access during sign-in moves you off the page instead of leaving you on it, and long document labels no longer overflow their chip
- Why we changed it
- A permission denial that arrived while the app was still starting left the user sitting on a page they could not use, and a hidden-document chip stretched past its pill when the label was long.
- How it helps
- Access changes now land you somewhere you can work, and document chips stay readable.
- How to use it
- Nothing to switch on.
Note bodies load in full instead of relying on what the live stream delivered
- Why we changed it
- Note text taken from the update stream could arrive truncated or missing, so a note looked empty or incomplete.
- How it helps
- Notes show their complete text every time they appear.
- How to use it
- Nothing to switch on.
Note previews render consistently everywhere, with mentions and formatting no longer showing as stray markup
- Why we changed it
- Some preview spots still stripped note text with a crude text replacement, which could leave broken markup or drop mentions.
- How it helps
- Note previews read the same wherever they appear, so staff can scan them without opening each note.
- How to use it
- Nothing to switch on; previews render the new way.
Pages no longer discard resources the app is about to need, removing occasional blank or slow screens
- Why we changed it
- An idle cleanup pass was removing preload links the framework still owned, so some views had to re-fetch code before rendering.
- How it helps
- Navigation is steadier and avoids re-downloading chunks that were already on the way.
- How to use it
- Nothing to switch on.
Pages no longer flicker or fail to load resources when the browser preloads them
- Why we changed it
- The app was interfering with preload links that the framework already manages, which could cause duplicated or broken resource loading.
- How it helps
- Page loads are more reliable and assets arrive once.
- How to use it
- Nothing to switch on.
Permissions stay denied until the permission map has loaded, so restricted actions no longer flash on screen
- Why we changed it
- Right after sign-in the app treated a not-yet-loaded permission map as permissive, briefly showing buttons and screens a user is not allowed to use.
- How it helps
- Users only see the actions they actually have, and no longer click something that then fails.
- How to use it
- Nothing to switch on; it applies from sign-in.
Secondary text and count badges show their intended colours again
- Why we changed it
- A rewrite of the older dropdown component dropped the secondary text colour and the tinted count badge, leaving those elements flat and hard to read.
- How it helps
- Lists and dropdowns read the way they used to, with counts and supporting text visually distinct.
- How to use it
- Nothing to switch on.
Signing in without a workspace yet keeps you on the page you opened instead of dropping you elsewhere
- Why we changed it
- A visitor who opened a deep link before belonging to a workspace was redirected away, losing the page they came for.
- How it helps
- Shared links still work for people who are being set up, and they land where they were sent once access is in place.
- How to use it
- Nothing to switch on. Open any link as a user without a workspace and the destination is kept.
Status chips have their square corners back
- Why we changed it
- A styling change rounded the status chips, so they no longer matched the rest of the interface.
- How it helps
- Statuses look consistent again across lists and detail screens.
- How to use it
- Nothing to switch on.
Status chips show a visible focus ring again when moved through with the keyboard
- Why we changed it
- The focus outline had been lost, so keyboard users could not tell which status chip was selected.
- How it helps
- People working without a mouse can see where they are before pressing enter.
- How to use it
- Tab to any status chip; the ring appears.
Tab labels use their original weight again, so the active tab stands out
- Why we changed it
- After the tab component was rebuilt, label weight was lost and the selected tab was hard to pick out.
- How it helps
- You can tell at a glance which tab you are on.
- How to use it
- Nothing to switch on.
Tabs keep their active underline and hover shading in dark mode
- Why we changed it
- In dark mode the active tab underline and the hover background were washed out, so it was hard to tell which tab you were on.
- How it helps
- The selected tab is readable at a glance for anyone working with the dark theme.
- How to use it
- Switch to the dark theme and open any screen with tabs; nothing to turn on.
Tabs no longer darken to near-black on hover, and the active underline sits where the screen places it
- Why we changed it
- Hovering a tab turned it almost black, and the underline ignored the position the screen asked for.
- How it helps
- Tab bars across the dashboard read consistently and the selected tab is easier to see.
- How to use it
- Nothing to switch on; visible on any screen with tabs.
The document field filter reports a failed load and fits on a narrow screen
- Why we changed it
- When the list of fields failed to load the filter looked empty, and on small screens the control was cut off.
- How it helps
- Users know to retry instead of assuming there are no fields, and the filter is usable on a laptop or tablet.
- How to use it
- Open the documents list and use the field filter; nothing to switch on.
The header shows the same company identity as the company list
- Why we changed it
- The header resolved the account's company differently from the list, so the two could disagree about which company you were in.
- How it helps
- You can trust the company shown in the header to be the one you are working in.
- How to use it
- Nothing to switch on; the header updates itself.
The notes feed stays pinned to the newest entry when a note grows past the bottom of the panel
- Why we changed it
- When a note's content made the feed taller than the panel, the view drifted away from the newest entry and had to be scrolled back by hand.
- How it helps
- The latest note stays in sight while the feed fills up, so nothing is missed while reading or writing.
- How to use it
- Nothing to switch on. Open the notes panel on any record.
The two sign-in controls that did nothing when clicked now work
- Why we changed it
- Two controls on the sign-in screen looked clickable but had no effect.
- How it helps
- People signing in get the action they expect instead of a dead control.
- How to use it
- Go to the sign-in screen.
The workspace list can be reached with the keyboard and no longer shifts when the scrollbar appears
- Why we changed it
- Listed workspaces could not be tabbed to, and the list jumped sideways once it became long enough to scroll.
- How it helps
- Keyboard users can switch workspaces without a mouse, and the list stays still as it grows.
- How to use it
- Open the workspace switcher and tab through the list.
The workspace list is a single tab stop, with arrow keys to move between workspaces inside it
- Why we changed it
- Every workspace in the list took its own tab stop, so keyboard users had to tab through the whole list to reach anything after it.
- How it helps
- Keyboard navigation through the header and settings is much shorter, and the list behaves the way other grouped controls do.
- How to use it
- Tab to the workspace list and use the arrow keys to move within it. Nothing to switch on.
Tooltips have a visible edge in dark mode
- Why we changed it
- In dark mode a tooltip blended into the background behind it, making its boundary hard to see.
- How it helps
- Tooltips stay readable for people working in dark mode.
- How to use it
- Nothing to switch on; use the product in dark mode.




