Release notes
Driver groups from your own roster
Highlight
Driver groups from your own roster. Who drives from which depot, on which shift, usually lives in a workforce or HR system, and it changes every week. Until now the copy in Nash was kept by hand: someone opened the Portal and edited each group's list. Three new Fleet API endpoints let the system that owns the roster keep Nash's driver groups matched to it.
The figure here is a sequence diagram between your workforce system and Nash. Your system upserts a driver group and its full roster with PUT /v1/fleet/driver-groups/upsert, sending externalIdentifier, displayName, and driverIds. Nash creates the group and answers with created: true, the group's firstVersionContractId, and its drivers. Later, one driver changes depot. Your system moves that driver with one PUT /v1/fleet/drivers/upsert call carrying addFirstVersionContractIds and removeFirstVersionContractIds, with no need to send either roster again. It then reads the group back with GET /v1/fleet/driver-groups/{first_version_contract_id}, and each driver comes back with your externalIdentifier for them and whether they are enabled and on shift. The first call sets a whole roster; after that, a change to one driver is one call about that driver.
- Create and update groups by your own ID.
PUT /v1/fleet/driver-groups/upsertis keyed on yourexternalIdentifier: a new value creates a group, the same value updates it, andcreatedin the response says which happened. Fields you leave out keep their values. There's no delete call; sendisActive: falseto disable a group. - Set a roster in one call, or change one driver.
driverIdson the group replaces its whole list, which suits a nightly sync. When you hear about one driver at a time,addFirstVersionContractIdsandremoveFirstVersionContractIdsonPUT /v1/fleet/drivers/upsertadd or remove that driver and keep their other memberships. - Read back what Nash has.
GET /v1/fleet/driver-groupslists your groups, newest first, andGET /v1/fleet/driver-groups/{first_version_contract_id}returns one group with its drivers, each marked enabled or not and on shift or not.
See Manage your driver groups.
New & improved
Portal
- Routes has a grid layout. Routing UI, under Settings → Preferences → Routing, switches your organization from route cards to Grid: a table of routes with stops, service time, size, and percent of capacity, a table of their stops with time windows and departures, and the map. Tick or drag stops to move and reorder them, and switch the stop panel to Timeline to see where a driver waits for a window or arrives after it closes. (For organizations with Routes turned on.) See Plan routes on the Orders map.
- Recalculate on a route marked Times are out of date, and Calculate timing in a route's menu, work for every organization.
POST /v1/routes/{id}/calculate-timingno longer returnsroute_timing_not_enabled. (For organizations with Routes turned on.) - View Routes, on an optimization run on the Activities page and in the optimize review once routes are saved, opens Routes filtered to the routes that run wrote. (For organizations with Routes turned on.)
- On a job using a Dynamic Dispatch strategy, the quotes list marks the provider Dynamic Dispatch recommends, on the job's page and when you assign a provider.
- Deliveries has three more columns under Manage Columns: Assignment Time, Pickup Arrival Time, and Dropoff Arrival Time. Show Time Between Steps, in the table's settings, prints the time elapsed under each step. Actual Pickup Time and Actual Dropoff Time show when the event happened, not when Nash recorded it.
- The delivery windows calendar shows each window's maximum capacity on its card, and marks a window Dispatched once every order booked into it has been dispatched. The Shifts calendar marks a shift Dispatched when its route is. See Delivery windows.
- Export shifts or shift templates from Fleet → Shifts, edit the file, and upload it to update the same records. The export carries each record's
idand the columns CSV Upload reads, and a template upload changes only the columns in the file. (For organizations with Fleet turned on.) - On Execute, a route's exceptions sit in one Exception column, with Add exception on routes that have none. Hover it for a preview that lists them, with Acknowledge on each and Acknowledge all for those in Needs Triage. (For organizations with Execute turned on.)
- An activity a driver logs on a route reads by name in the job's route activity and on delivery timelines, such as "Lunch Break started".
- On the tracking page, your brand color sets the color of the header. The progress bar and timeline are always green, so progress reads the same on every merchant's page.
- The tracking page is easier to use with a screen reader and a keyboard: map markers and controls have names, the timeline says each step's state in words, focus returns to where it was after a dialog, and form borders and error text have more contrast.
- Error messages across the Portal are translated in Spanish, Polish, and Arabic, including the common ones the server returns, such as an expired session or a missing permission. Copy on an error message includes the request details support asks for.
- Reloading the Portal draws the sidebar and top bar straight away and fills the page in, in place of a series of full-page loading screens.
Orchestration
- A new trigger fires when an order's booked delivery window reaches its cutoff, or a number of minutes after: Delivery Window Cutoff in the workflow builder and Order Cutoff Time in Notifications. It moves with the order if the order is booked into another window. See Fire when a delivery window's cutoff passes.
- Only send once per order, on a workflow's email, SMS, Slack, and Send to destinations steps, sends a notification the first time and holds it back when the trigger fires again for the same order. A held-back step is marked Not sent: already sent for this order in the run. See Send a notification once per order.
- Workflow conditions can read where an order's dispatch stands: Current Task Status, Current Delivery Status, and Job Canceled are order fields, so a workflow on an order trigger can skip work that's already picked up or canceled.
Platform API
GET /v1/routes/nearby-couriersreturns the drivers on active routes nearest to a point, by straight-line distance from each driver's latest GPS position. Use it to find who can take over a route that needs help. See Find Nearby Couriers.- Order responses return
pickupEmailanddropoffEmail. The API accepted and stored both already; now it sends them back.
Nash Agent
- Files on a custom agent keep their history. Replace a document in an agent's Knowledge base, or a file attached under its instructions, and the file's version count opens every saved version, with Restore to make an earlier one live again. See Go back to an earlier version of a file.
- Stopping Nash Agent mid-answer keeps the conversation open. Send your next message and it carries on in the same chat. Runs of a custom agent still end when you cancel them.
- While Nash Agent is working on an answer, the chat shows how long it has been at it, such as "Working for 4m 10s".
- A confirmation card names what you're approving, such as "Cancel delivery …?" or "Reassign delivery … to a new provider?", in more cases that used to read "Confirm action?".
- The Nash MCP server has four tools for working on one provider attempt:
reassign_task,refresh_task_quotes,select_quote, andcancel_task, which cancels a single attempt and leaves the rest of the job alone. See Nash MCP server.
Fleet
Driver App version 1.13 is in the App Store and Google Play. Changes marked 1.13 need that version.
- When an order's dropoff instructions change while its route is underway, the driver gets a Delivery instructions updated notification naming the stop, and the app loads the new instructions.
- A newly assigned or newly offered delivery reaches the driver's phone within about 10 seconds, down from up to a minute, and the app shows it without a manual refresh.
- The dropoff package list can show each package's description under its category. Display package list description is under My Fleet → Pickup & Delivery, and can be set per driver group. (Opt-in.)
- The driver's choice of navigation app includes TomTom GO, DashTag Maps, and Trucker Path when they're installed. (1.13)
- Driver App 1.13 needs iOS 16.4 or later.
Fixes
Portal
- Execute's header and KPI cards count the routes inside the page's dates and filters, and the insight bar's headline counts every matching route, not the first page of them. View details in a route's panel opens the delivery in the same tab. (For organizations with Execute turned on.)
- The Shift Name filter loads its choices on the Ready to Dispatch view of Orders.
- Editing or dragging a delivery window with unlimited capacity keeps it unlimited. It used to save a capacity of 0, which closed the window to bookings.
- The street field on the create-order and create-job pages suggests addresses when the page is opened directly or reloaded.
- Changing a member's Portal role keeps their driver role, so a member who also drives stays signed in to the Driver App.
- With the theme set to System on a device in dark mode, the Portal uses the dark versions of its default color and integration logos, and follows the device when it changes.
Tracking page
- The headline, progress bar, timeline, and driver card agree for every delivery status. A canceled delivery reads Delivery canceled, a delayed delivery keeps the step it had reached, scans at a carrier facility read as in transit, and a return in progress no longer shows an earlier "Delivered" step.
- Suggestions a customer ticks on the feedback page arrive with their comment.
Orchestration
- A Send HTTP request step whose body carries a date and time on its own, such as a pickup window or a completion ETA, sends it as an ISO 8601 string. The request used to fail before it was sent.
- A workflow on an order-created or job-created trigger runs once for an order that arrives through an integration such as Shopify or a point-of-sale system. It used to run twice.
- A WhatsApp notification whose message has line breaks is delivered.
Nash Agent
- Images attached to a chat are read again on the Claude model options.
- Rejecting one confirmation card while the agent is still working no longer leaves the chat idle after you approve another.
Fleet
- A proof-of-delivery photo, proof-of-pickup photo, or signature stays done when a driver leaves a stop and comes back to it, including offline. (1.13)
- A GPS position the Driver App sends more than five minutes late is kept in the driver's history but doesn't move their current position or mark them arrived.
- A driver is at one stop at a time: starting on a stop sets any other stop they'd started back to pending.
- When merging or splitting a batch leaves a job with no orders, its route is removed, so the driver doesn't see a stop that can't be closed.
- An order added to a pickup stop the driver is already heading to takes that stop's status straight away.
Integrations
- A Dash order that no driver accepts is treated as canceled by the provider, so it's reassigned when your dispatch settings say to.