New Work Orders module, configurable route-optimization scheduling, and reworked incident attachments
This release introduces a brand-new Work Orders module across Admin and Network Web, adds configurable automatic route-optimization scheduling, reworks incident attachments end-to-end (including a new Attachments tab in Provider Web), improves Acquisitions and Projects, expands Customer Web market coverage, deepens partner-integration capabilities, and continues the authorization-hardening and shared-UI migration work.
Products updated: Admin · Network Web · Provider Web · Customer Web · Platform API · Product API · Event Manager · MAUI Microservice
Work Orders — new module (Admin & Network Web)
NewA brand-new Work Orders module is now available, with its own top-level menu entry on both Admin and Network Web.
- Work orders list with a customizable table. Pick the columns that matter to you from: ID, Status, Stakeholder, Provider, Execution date, Created date, Customer, External reference, Service / Service variant, Product, Product unit, Workflow, and Sales channel.
- Create work order drawer. A full creation flow that captures customer and stakeholder info with explicit fields and an external reference per customer and per work order.
- External reference validation. The platform now blocks duplicates with a clear inline error: "This external reference is already in use."
- Product and product-unit selection. Pick one or more products and define specific serial numbers via a "Define unit" action — the entered quantity must match the number of selected units.
- Warranty validation per unit. Each selected unit is checked against its warranty for the chosen service, surfacing one of: "Unit with active warranty for this service" (valid), "This unit's warranty is out of validity for this service" (expired), "Warranty validity not found — automatic approval will not be available for this unit", or "Error validating the warranty for this serial number." A "Work order created successfully!" confirmation closes the flow.
- Work order statuses. A full set of status states is now tracked: Created, In diagnosis, Pending approval, Approved, Rejected, Assigned, In execution, In destiny, Successful, and Cancelled.
- Workflow configuration. The work-order workflow editor in Admin received many QA-driven polish items: row-level tooltips ("No associated variants", "Draft saved", "Missing transition actions"), per-stage tooltips ("On arrival actions", "Pre-arrival actions", "On departure actions", "Pre-arrival action without defined status"), and an "Unsaved changes" guard when navigating away.
Acquisitions — improvements (Admin & Product API)
- External reference validation. Creating an acquisition now prevents duplicates across the platform: "The external reference is already in use."
- Acquisition detail drawer. Adds the new "Go to acquisition" navigation, plus a clearer Manual vs. Massive Load mode switch with a confirmation when changing the acquisition type, since previously entered information is lost.
- Warranty handling fix. Corrects a column-name issue that affected warranty lookups.
- Default warehouse validation. Enforced when creating a basic product, preventing inconsistent product setups.
- Better filters and listings. Product endpoints now use a left-join with product category and support a product-type filter on the lite endpoint.
Route optimization configuration — new (Admin)
NewA new Route optimization drawer is available in Admin, giving each team explicit control over when automatic optimization runs and which bookings it considers.
- Per-day cutoff time and booking range. Set the moment the optimization fires, plus the start and end of the booking window it will consider on that day.
- "Apply to all days". Replicate the configuration of a single day to the rest of the week, with a clear confirmation: "The optimization configuration defined for this day will be applied to all days of the week. You can undo this change by editing each day from the list."
- Built-in guardrails. The platform validates configurations before saving and surfaces clear errors, e.g. "The cutoff time must be at least 1 hour before the start of the range to optimize." and "Overlapping booking range — check that there are no overlaps between configured schedules and days."
- Configuration summary. A plain-language recap is rendered for each day, e.g. "On Tuesday, automatic optimization will run at 06:00 and will include bookings between 08:00 on Tuesday and 23:59 on Tuesday."
- Default configuration banner. Shown when the team hasn't customized the configuration yet: "Route optimization has an initial default configuration. Edit the days you need to adapt it to your operation."
Projects (Admin)
- Redesigned project create / edit form. Rebuilt with the new shared input components, including a redesigned principal-provider section and clearer toasts on save errors and successes.
- Modern customer autocomplete. Customer lookup in project flows is now powered by the modern, faster autocomplete used elsewhere in the app.
Booking incidents — attachments
Incident attachments got a significant pass across the platform.
- Attachment uploads on existing incidents are fixed. Adding files to an incident that was already created now works reliably end-to-end (Admin, Network Web, Provider Web, and the Platform API).
- Optional attachment name. The "Attachment name" field is now properly optional, with a clear placeholder ("E.g.: Second floor plans") — providers no longer get blocked because of a missing label.
- Upload-first strategy in the provider app. The upload-first attachment behavior introduced in the previous releases is now wired up consistently for the field app endpoints.
- Signed URLs for incident files. Incident attachments are served via signed URLs from AWS across the full lifecycle, improving security and reducing the risk of broken links.
Provider Web — incident attachments tab (new)
NewThe incident detail in Provider Web now has a dedicated Attachments tab designed from scratch.
- Search bar. Find attachments by name on long incidents.
- List view. Includes delete confirmations and per-item icons (detail, edit, remove) using the unified iconography rolled out across the app.
- Empty state. Clear messaging when there are no attachments yet.
- Add attachment drawer. Consistent with the upload-first behavior used elsewhere.
Booking & service variant settings (Admin)
- Operation variants (SVA) — clearer settings text. The "Requires evidence" and "Requires customer signature" toggles now have refined help text that better reflects what providers will see in the field.
- "Close requirements" drawer. Copy split into separate variant-vs-budget descriptions so the right context shows up in each flow.
- "Proof of delivery" UI unified. Aligned across the various places the SVA configuration is displayed.
Provider availability & scheduling (Platform API)
- Capacity-aware blocked-slots endpoint. The calendar can now correctly distinguish "full" vs. "actually unavailable" slots when a provider has parallel capacity.
- Reference field on schedule blocks. Schedule-block payloads now include a reference field so blocking events can be traced back to their origin.
- No empty providerIds calls. The bookings-by-range query short-circuits on empty provider lists, preventing slow no-op queries.
- Drift fix on availability windows. A hotfix corrects an indexTime drift that could remove otherwise-valid slots from the availability response.
Authorization hardening (continued)
- Booking sub-resources. Now ownership-validated end-to-end.
- Incident attachments. Validate ownership so users can only act on attachments tied to incidents they actually own.
- Provider checklist. Now guarded by BookingBelongsToProviderGuard to prevent cross-provider access.
- Provider bookings. Carry an ownership guard and an ownership requirement check.
- Address retrieval. Uses the correct permission type, fixing a permission mismatch surfaced during recent audits.
Customer Web
- Country coordinates expanded. One country's coordinates were corrected and several more were added so the address picker initializes in the right region for additional partner markets.
- Consistency improvements. Via the shared UI library update — the dropzone, address forms, lead and booking review flows, contract signature and proposed-date review screens all received minor polish to stay aligned with Admin / Network Web.
Partner integrations
- Partner subscription-package chatbot — booking creation. The partner chatbot integration now supports creating a booking using one of the customer's subscription packages, with mandatory visual evidence before the booking can proceed.
- Partner chatbot — clearer routing. Health and refund category handling were clarified in the primary assistant prompt, and partner-specific refund categories now route to the dedicated refunds flow, with minor typo fixes.
- Partner webhook routines. The hardcoded-routine webhooks now handle file uploads without performing a redundant file download; instead they forward file content directly, reducing latency on partner integrations.
- Multiple callApi configurations per event. The integration layer now supports more than one callApi configuration per event, enabling fan-out to multiple partner endpoints from a single Sodtrack event.
Behind the scenes
- Material UI → sodtrack-web-ui migration (Admin). A large refactor migrated many Admin screens (SVA / operation variants, project, addon, booking creation, provider services, mapbox-dependent screens, error page, dynamic-fields dropzone, and more) to the shared UI library, bringing Admin closer to a consistent look and feel.
- Shared UI library bumped. Upgraded across Admin, Network Web, Customer Web and Provider Web (0.107.x → 0.108.1 → 0.109.x).
Ready to see Sodtrack in action?
Book a demo and our team will walk you through the latest features tailored to your operation.