Release notes
Edit live routes without starting over
Highlight
Edit live routes without starting over. Once a route is out the door, the day keeps changing, a stop has to move, an order jumps the queue, one route is suddenly overloaded. Until now, adjusting a dispatched route meant canceling and rebuilding it. This week you can reshape live routes in place.
From the route drawer, move a delivery stop from one active route to another, with a side-by-side comparison of candidate routes, driver, vehicle, capacity, store match, and open exceptions, and a map preview before you confirm. Resequence the stops on a live route by dragging them into the order you want, with keyboard and touch support; if a driver completes a stop while you're mid-edit, the view stays accurate instead of overwriting their progress.
The result: dispatchers adjust to the shift as it actually unfolds, without tearing a route down and starting over.
New & improved
Nash Agent
- Create and update custom scheduled agents directly from chat, describe the report or watch you want, and the Agent sets up the schedule and email delivery, confirming before it saves.
- A single custom agent can now run on multiple schedules (for example, a morning and an evening report) without cloning it.
- Draft prompts are reviewed before you save an agent, flagging instructions that belong in enforced settings, scope, output schema, guardrails, cost caps, with suggested fixes you can apply or undo.
- Analytics queries can export the complete result set as a downloadable CSV or Excel file, delivered in chat or attached to scheduled runs, instead of a capped preview.
- Chat now accepts Word (
.docx) and PowerPoint (.pptx) uploads, reading their text so you can ask the Agent about documents and decks. - Administrators can switch the Sessions list between their own chats and all users' chats across the organization, with an owner label on each session.
- Custom agents and org defaults pinned to an older model tier now run on the latest model in the same tier automatically. The "Most capable" option tracks the latest model in that tier, and new custom agents default to the Balanced tier. You can still choose any model.
- Insight stat changes are colored by whether the change is good or bad for your operation, a falling cost or error rate reads positive, rather than by raw direction.
- Insights render inline, full-size charts and support sorting, filtering by impact and category, a "has chart" filter, and load-more pagination.
- Pulse charts (runs per day, trend, and outcome donuts) are interactive with hover tooltips.
- Follow-ups sent while the Agent is mid-answer are folded into the current run and shown as separate chat bubbles, and continuing a teammate's shared session loads the full conversation history.
- Nash Agent reads relative dates like "last week" or "yesterday" in your local time zone instead of UTC, so a Monday request for "last week" returns your week rather than a U.S. one.
- Approve or cancel an agent's confirmation-gated actions, like canceling a delivery, directly from Slack, with the same confirm step as the web app.
- Structured results from a custom agent run now render inline in the chat session, right under the message they came from, instead of only on the Outputs dashboard.
Orchestration
- When a manual reassign targets a dispatch strategy with a single allowed provider, the order automatically gets fresh quotes and dispatches, instead of waiting for manual quote selection.
- Route triage labels internal-fleet assignments and quotes with their driver-group name instead of a generic "Internal Provider."
- Reoptimizing a route asks for confirmation to prevent an accidental recalculation.
- Manually assigning a delivery to a single driver makes it visible in their Active tab and notifies them immediately, overriding the dispatch-before-pickup timer.
- Batch deliveries left without an assigned provider are now swept and re-dispatched automatically.
Integrations
- Several provider integrations now set the provider's
trackingUrlonGET /v1/jobs/{id}, the jobs list, and webhook payloads, alongside the existing Nash tracking link. - Shopify packing slips refresh as soon as finalized tax and shipping totals are available, instead of waiting for the lagging order-updated webhook.
- Axis orders now forward the dropoff phone number, shipment weight, and line items.
Platform API
- Query zones in bulk: a new endpoint returns zones in a paginated
{data, meta}envelope, filterable by IDs and external IDs, replacing per-zoneGETloops. - New
POST /v2/orders/upsert/bulkreturns a{results, summary}envelope with per-row success and failure outcomes and error details. - A new endpoint removes a route-based order from dispatch, freeing its package external identifier for re-dispatch and returning the updated order.
- The Driver Geolocation notification trigger now accepts a
deliveryStatusIncludesarray, so one trigger can fire across several delivery statuses. - Bulk delivery updates now accept
packageExternalIdentifieras a key for matching deliveries. - The public delivery-feedback endpoint now returns
deliveryId,score, andcomment.
Fleet
- Driver item acceptance now appears across the Portal: per-stop picked, delivered, and returned counts on routes, item events on the route timeline, per-item rows on the delivery timeline, and return condition and notes on returned items.
- Search the fleet vehicle list by name, type, make, model, license plate, or external ID.
- New Route Card Fields settings under My Fleet let you hide price, status, metrics, addresses, or stops on driver-app route cards.
- Route maps number each stop and show richer depot tooltips.
- Driver app: pinch-to-zoom while capturing a proof-of-delivery photo.
- Driver app: a grouped pickup and return item list, configurable per org.
- Driver app: the route name or external ID now appears in the route subtitle.
Portal
- A Shift column (hidden by default) on the Orders table and CSV export shows the shift code for both routed and delivery-window orders.
- Item and sub-item details now show each item's Category.
- Delivery details show when a driver adjusted an item's quantity at pickup, with the original count struck through next to the new count.
- Redesigned Billing settings: a clearer payment-methods view with expiry warnings, an invoices list with open-balance cues and Pay, Receipt, and PDF actions, and a hosted billing-portal fallback for accounts where a payment method can't be added in-app. Organizations billed outside of Stripe now see their custom billing report here.
- Find a notification trigger or destination by pasting its ID into the Notifications search.
- Activities is now a standalone page, available to every org with Orders enabled, an Activities button opens it in place of the inline drawer on the Orders and Routes tables, and existing
?activityId=links redirect to it. - The Triage workspace is now called Routes.
- Bulk-select and delete delivery-window and shift templates from their list views.
- Set a per-contract timeout for how long a job may wait without an assigned driver, configurable in the contract editor.
Fixes
Nash Agent
- A single agent with an invalid saved configuration no longer takes down the whole agents list, it degrades gracefully while the rest stay available.
- Disabling an agent or stopping an entity watch clears its outstanding confirmation prompts so they no longer linger in the Needs Attention queue.
- Files the Agent generates in Slack (Excel, CSV, PDF) are reliably saved and delivered as downloads.
- Run-count labels on the Pulse and runs-per-day charts are no longer clipped.
Platform API
- Orders created without a description or vehicle size apply package defaults reliably instead of failing pre-dispatch quote requests.
- Dispatch-strategy swaps regenerate quotes against the new strategy and clear any stale selection, so orders ship on the correct provider.
- Route stops keep stable, unique IDs across copy, split, and upsert, and a route completes automatically when its last open order is removed.
- Manually-added job and order events trigger matching event-type workflows.
- Address sync no longer overwrites merchant-owned provider store names.
- Creating a courier with
workRelationshipordateOfBirthset succeeds instead of returning a 400. - Dispatching an order with missing pickup or dropoff time windows returns a clear
TASK_MISSING_TIME_WINDOWerror. - Re-creating a package for the order that already owns it no longer raises a false duplicate-identifier error; genuine cross-order duplicates still return
RESOURCE_ALREADY_EXISTS. - Auto reassign-on-failure evaluates provider eligibility against the fallback strategy's allowed providers.
- AU PO Box dropoff addresses validate when the geocoder omits the postcode, and request-log search recovers records that were indexed with a null external identifier.
- An order pointing at a soft-deleted dispatch strategy is recovered automatically when that is its only validation error.
- Provider webhooks and quotes tolerate non-JSON content types and fractional-second timestamps.
- Quote and provider type values always serialize as strings (for example,
PICK_AND_PACK). - Webhook notifications that exceed the size limit are now retried automatically instead of failing.
Integrations
- Shopify subscription delivery orders with unmapped shipping codes are now created instead of skipped.
- Gophr pickups that fail at collection now report as a failed delivery.
Fleet
- Individual pickup and dropoff markers reappear on the deliveries history map when zoomed in, with scheduled time and ETA back in the tooltips.
- Changing items on a dispatched order reconciles per-item pick states, so added items become trackable and removed items no longer appear as phantom pending items in the driver app. Removing an order from dispatch resets its item pick states.
- Drivers are no longer blocked from finishing a route after it's split mid-delivery, stop actions stay available.
- The driver app captures proof-of-delivery photos in-app, resolving a camera crash on Android and iOS.
- Route map markers render on iOS 26.5 without hanging the app.
- A driver who acts on a route after one of its stops was removed now sees a clear "stop removed" dialog instead of a stale action.
Portal
- Workflow filters using "starts with" and "ends with" save and apply reliably.
- Drawing zone, coverage, and route-restriction polygons works again.
- Route times render in the depot's time zone across the Plan panel and the simulation drawer.