Massive load for acquisitions, Work Orders assignment & scheduling, and platform-wide security hardening
This release brings massive load for acquisitions and a new assignment & scheduling drawer for Work Orders in Admin, restores full customer address editing, adds a currency-change safety check, makes partner integrations resolve customers and stakeholders deterministically by external reference, consolidates the dynamic-forms payload for field apps, hardens authentication with a typed session model and service-to-service tokens, and completes the Material UI removal in Admin.
Products updated: Admin · Platform API
Acquisitions — massive load (Admin)
NewBuilding on the acquisitions improvements from the previous release, you can now create acquisitions in bulk.
- Massive load for acquisitions. Reuses the same upload drawer already used for bookings, product units and subscriptions.
- Template usage guide. A dedicated guide tab spells out the rules: the downloaded template has a predefined structure that must not be modified — do not add, delete, or rename columns, or the system automatically rejects the file.
- Field completion guide. Practical tips encourage filling in as much information as possible for each client, with required fields marked in each column header — the more information entered, the better the platform experience.
- Upload review feedback. Consistent with the rest of the platform: "Processed {total} rows and created successfully {loaded} acquisitions" on success, and "Some acquisitions could not be created due to duplicate or missing information" on errors, with a downloadable error summary for retry.
- No data loss when switching modes. Switching between Manual creation and Massive load no longer loses entered data.
Work Orders — assignment & schedule (Admin)
NewThe Work Orders module gains a new Assignment and schedule drawer, completing the creation → assignment → scheduling flow.
- Start from either side. "You can start with assignment or scheduling to check availability" — begin from either side of the flow.
- Assignment. Pick the provider who will receive the request.
- Scheduling. Pick the execution day and time; the drawer shows the available capacity slots for each option.
- Partial scheduling state. Assigning a provider without choosing a date/time yet marks the order "partially scheduled — to execute the order, you must define the day and time" and shows "Pending configuration".
- Edit and remove scheduling. "Edit assignment and schedule" applies changes on save; "Remove scheduling" asks for explicit confirmation and warns that the service cannot be executed until a new schedule is configured, and that the action cannot be undone.
- Confirmation toasts. "Work order scheduled successfully!" and "Scheduling removed successfully!"
Customers (Admin)
- Full address editing restored. Editing a customer's address now supports full address edits again, gated by remote configuration so it can be tuned per tenant.
Currency change validation (Admin)
- "Can change currency" check. Before switching an area's currency, the platform can now confirm whether it's safe to do so, preventing breaking currency changes on areas already tied to pricing and returning proper permission errors when the action isn't allowed.
External integrations
- Deterministic customer/stakeholder resolution by external reference. When partners create bookings through the external-integration API, the platform now matches the existing customer (and stakeholder) by the partner's own reference first, falling back to email or to creation only if no match is found — preventing duplicates when an email changes or is missing. Customer resolution order: reference → email → create. Stakeholder resolution order: stakeholder ID → reference → create.
- Provider reference in lead events. Lead-related notification events now include the provider's external reference, so partner systems consuming these events can correlate them without an extra lookup.
Dynamic forms (Platform API)
- Consolidated app payload. Field-app endpoints now serve the consolidated dynamic-forms payload — the first step toward a single source of truth across web and field clients.
- Association IDs included. Included directly in the dynamic-form response, so consumers no longer need a follow-up request to resolve associations.
- Dynamic-form table fix. The dynamic-form association table no longer breaks visually when no associations are configured.
Reliability & data integrity (Platform API)
Improved- Address cache invalidation on status change. When an address's status changes, its cached payload is invalidated so subsequent reads always reflect the new status.
- Super-user date changes. Now correctly assign the period time range when a booking's date is changed.
- Single-day availability queries. No longer return empty schedule blocks when the start and end of the query fall on the same day.
Security & authentication (Platform API)
- Typed session payload across the platform. The internal session/claims handling was replaced with a strongly-typed shape and a central validation utility, reducing the chance of subtle session-handling bugs across the API.
- Invalid tokens rejected earlier. Tokens are now validated before any database lookup, making invalid-token rejections fast and cheap.
- Ownership checks generalized. The ownership guard is now polymorphic by entity type, extending consistent access control to more resources (including lead incidents).
- Cleaner anonymous flows. Endpoints meant to be reachable without authentication (anonymous customer flows) no longer assume a logged-in user context.
- Service-to-service authentication. Internal machine-to-machine service tokens are now supported without requiring an email claim, enabling secure communication with the core service layer.
Admin — consistency & polish
Improved- Material UI fully removed. Admin completes its multi-release migration to the shared UI library: the legacy theme system, dependencies and remaining usages across projects, add-ons, booking-incident shared components, dynamic-field autocompletes, dashboard navigation and small components are now on sodtrack-web-ui. Expect a more consistent look-and-feel and a lighter, faster interface.
- Incident & task screens consolidated. Incident and task flows now share common building blocks, reducing inconsistencies in wording and behavior between them.
- Theme settings page cleaned up. The legacy "Examples" preview block was removed.
- Provider blocked-schedule experience. Refactored for smoother handling, consistent with the new availability flow.
Ready to see Sodtrack in action?
Book a demo and our team will walk you through the latest features tailored to your operation.