Skip to main content
Aforden by Aformix

Run the work. Not the chaos.

Field Operations, Under Control.

Work orders, scheduling, dispatch, technicians, and operational records, all connected in one field operations system.

Constraint-Based Scheduling & Dispatch

Enforce real operational constraints: assign verified technicians, validate working hours and approved leave, reject double-booking, and coordinate dispatch states across teams.

Enforced Work Order Lifecycle

Maintain discrete operational integrity across separate work order, appointment, dispatch, and time-tracking axes from job creation through on-site resolution.

Multi-Location Inventory Tracking

Maintain continuous visibility into parts stock across mobile vans, field locations, and central warehouses, automatically updating balances on work order consumption.

Core Engine CenterpieceSection 5.3: Follow the WorkIllustrative Data

The Day: Follow the Work

Follow work order WO-1042 through seven sequential operations, from dispatcher assignment and availability-checked scheduling to mobile execution, operational hold, and job completion. Operational audit history provides a record of work-order activity and status changes.

01

Scene 01: Assign Accountable Field Technician

Axis: WORK_ORDER
DISPATCHERCentral Operations(DISP-01)
WORK_ORDER:ASSIGNED[ACTIVE]
WO-1042/Metro General HospitalHIGHElena Rostova (TECH-02)

Work order WO-1042 enters the system in OPEN status. Dispatch assigns Elena Rostova as the accountable technician. Transitioning to ASSIGNED requires an assigned technician.

08:12:00WORK_ORDERASSIGN_TECHNICIAN
OPENASSIGNED
by DISP-01
02

Scene 02: Schedule Verified Appointment Window

Axis: APPOINTMENT
DISPATCHERCentral Operations(DISP-01)
APPOINTMENT:SCHEDULED[ACTIVE]
WO-1042/Metro General HospitalHIGHElena Rostova (TECH-02)

Dispatcher reserves an appointment window (08:30 to 11:30) for Elena Rostova. The scheduling engine validates working hours and approved leave exceptions through half-open interval overlap checks.

08:14:22APPOINTMENTCREATE_APPOINTMENT
SCHEDULED
by DISP-01
03

Scene 03: Dispatch Appointment to Field Resource

Axis: DISPATCH
DISPATCHERCentral Operations(DISP-01)
DISPATCH:DISPATCHED[ACTIVE]
WO-1042/Metro General HospitalHIGHElena Rostova (TECH-02)

With the schedule locked, dispatch advances the single appointment to the field. Elena Rostova receives notice of the assignment on her mobile terminal.

08:15:05DISPATCHDISPATCH_APPOINTMENT
PENDING_DISPATCHDISPATCHED
by DISP-01
04

Scene 04: Technician Acknowledges Dispatch

Axis: DISPATCH
TECHNICIANElena Rostova(TECH-02)
DISPATCH:ACKNOWLEDGED[ACTIVE]
WO-1042/Metro General HospitalHIGHElena Rostova (TECH-02)

Elena Rostova reviews the job details and acknowledges the dispatch. Acknowledgment records field receipt on the dispatch axis, but is not a hard backend prerequisite for starting work.

08:18:40DISPATCHACKNOWLEDGE_DISPATCH
DISPATCHEDACKNOWLEDGED
by TECH-02
05

Scene 05: Start Work and Open On-Site Time Entry

Axis: WORK_ORDER
TECHNICIANElena Rostova(TECH-02)
WORK_ORDER:IN_PROGRESS[ACTIVE]
WO-1042/Metro General HospitalHIGHElena Rostova (TECH-02)

Elena Rostova arrives on site and starts the work order. Starting work transitions WO-1042 to IN_PROGRESS and automatically opens an ON_SITE labor time entry on the execution axis.

TIME ENTRY: ON_SITELabeled strictly as EXECUTION, never as WorkOrderStatus.
08:45:10WORK_ORDERSTART_WORK
ASSIGNEDIN_PROGRESS
by TECH-02
06

Scene 06: Operational Hold and Execution Resume

Axis: WORK_ORDER
TECHNICIANElena Rostova(TECH-02)
WORK_ORDER:ON_HOLD[ACTIVE]

A temporary operational pause places the work order on hold. The transition matrix permits moving from IN_PROGRESS to ON_HOLD and returning directly to IN_PROGRESS.

Branch: IN_PROGRESS to ON_HOLD to IN_PROGRESSCompact Step
07

Scene 07: Work Order Completed and Motion Settled

Axis: WORK_ORDER
TECHNICIANElena Rostova(TECH-02)
WORK_ORDER:COMPLETED[ACTIVE]
WO-1042/Metro General HospitalHIGHElena Rostova (TECH-02)

Inspection and mechanical testing conclude. Elena Rostova transitions WO-1042 to COMPLETED. The primary spine reaches its terminal state and motion stops.

11:18:30WORK_ORDERCOMPLETE_WORK_ORDER
IN_PROGRESSCOMPLETED
by TECH-02

System Invariants and Engine Integrity

Under Control

Operations run on verified backend rules, transactional locks, and relational constraints. Not client-side assumptions or unvalidated status flags.

01Schedule Engine
Half-Open Overlap Query

Active appointments (SCHEDULED or RESCHEDULED) cannot overlap in time for the same technician. Overlaps are detected across interval boundaries and rejected inside an atomic transaction.

ScheduleTechnicianConflictError (HTTP 409)
02Availability Engine
Pre-Persistence Validation

Scheduling validates recurring weekly working hours, approved leave or training exceptions, and active employee status. Bookings outside working hours or during approved leave are blocked.

ScheduleOutsideWorkingHoursError (HTTP 422)
03AWork Order State Machine
Strict Matrix Dispatch

Work order transitions strictly adhere to the locked lifecycle graph. Transitions from OPEN directly to COMPLETED are rejected as invalid. Terminal states (COMPLETED, CANCELLED) permit zero outgoing transitions.

WorkOrderInvalidStatusTransitionError (HTTP 409)
03BExecution Integrity
Precondition Guard

Transitioning a work order to COMPLETED requires an assigned technician record. Work orders cannot be closed anonymously or without an accountable technician profile.

BLOCKED: Assignment Required
Precondition: assignedTechnicianId != null
WorkOrderCompletionPreconditionFailedError (HTTP 422)
04Authorization Matrix
Role-Based Dispatch Guard

Dispatchers manage assignments and schedules but are explicitly restricted from completing work orders. Technicians act only on their assigned work orders across four permitted transitions: ASSIGNED → IN_PROGRESS, IN_PROGRESS → ON_HOLD, ON_HOLD → IN_PROGRESS, and IN_PROGRESS → COMPLETED. Owners, Admins, and Managers maintain full matrix authority.

ForbiddenError (HTTP 403)
05Dispatch Precondition
Foreign Key Equality

An appointment cannot be scheduled on an unassigned work order. The technician assigned to the appointment must match the assigned technician on the parent work order. Terminal work orders cannot be scheduled.

ScheduleWorkOrderNotAssignedError (HTTP 422)

Data Schema and Relational Topology

The System

Direct relational integrity from customer intake to financial settlement. Work orders link directly to customers and service locations, while scheduling and field assignments maintain strict referential boundaries.

DIRECT SITE LINKSWorkOrder links directly to both Customer and ServiceLocation. Not chained Customer → Location → WorkOrder.
DUAL TECHNICIAN ANCHORSTechnicianProfile attaches twice: as assignedTechnician on WorkOrder and as technician on ScheduleAppointment.
POLYMORPHIC ASSIGNMENTTechnicianAssignment links via workReferenceId string without a hard relational database foreign key.
Intake and Context
MODELprisma:L953

Customer

Direct account relationship

→ WorkOrder.customerId (Direct FK)
MODELprisma:L1013

ServiceLocation

Direct physical facility address

→ WorkOrder.locationId (Direct FK)
Supporting Context:
• WorkType (prisma:L1063)
• Asset (Optional, prisma:L1266)
• Quote (Source quote, prisma:L1608)
Central Execution Node
Core Operational Model

WorkOrder

Coordinates state transitions, assigned technician, dispatch appointments, parts consumption, and billing settlement.

Status Engine:Locked Transition Matrix
Direct Account FK:customerId → Customer
Direct Site FK:locationId → ServiceLocation
Accountable Resource:assignedTechnicianId → TechnicianProfile
1:N AppointmentsScheduleAppointment[]
1:N HistoryWorkOrderHistory[]
1:N Time EntriesTechnicianTimeEntry[]
1:N Stock MovesStockMovement[]
Dispatch, Technicians, and Invoicing
MODELprisma:L745

TechnicianProfile

Anchors both job accountability and schedule booking

1. WorkOrder.assignedTechnicianId
2. ScheduleAppointment.technicianId
MODELprisma:L1336

ScheduleAppointment

Calendar booking with overlap conflict prevention

→ ScheduleAppointmentHistory[] (prisma:L1386)
POLYMORPHIC REFprisma:L895

TechnicianAssignment

Work allocation record linking via workReferenceId without hard relational database foreign key.

workReferenceId: String (No Prisma @relation constraint)
SETTLEMENTprisma:L1719

Invoice

→ InvoiceLineItem[] (prisma:L1783)
→ Payment[] (prisma:L1827)

Schema Verification and Referential Integrity Table

EntityRelation FieldTarget EntityIntegrity Type
WorkOrdercustomerIdCustomerDirect Foreign Key (Restrict)
WorkOrderlocationIdServiceLocationDirect Foreign Key (Restrict)
WorkOrderassignedTechnicianIdTechnicianProfileDirect Foreign Key (SetNull)
ScheduleAppointmenttechnicianIdTechnicianProfileDirect Foreign Key (Restrict, L1367)
TechnicianAssignmentworkReferenceIdWorkOrder / TargetPolymorphic Reference (No FK)
InvoicelineItems / paymentsInvoiceLineItem / PaymentRelational Child Collections
Illustrative DataReporting UI: In DevelopmentPreset: THIS_WEEK

See the Operation

Illustrative operational views based strictly on verified schema queries. Counts reconcile across visuals. No synthetic conversion rates, no unverified projections, and no vanity metrics.

Verified Query 01

workOrders.createdCount × workOrderStatus

18 Total Created
18Jobs Created
OPEN
2 jobs
ASSIGNED
4 jobs
IN_PROGRESS
5 jobs
ON_HOLD
2 jobs
COMPLETED
5 jobs
* Scope: CANCELLED excluded (0 in range). Sum reconciles to 18.

Status distribution of 18 created work orders: 2 OPEN, 4 ASSIGNED, 5 IN_PROGRESS, 2 ON_HOLD, 5 COMPLETED.

View Accessible Table (Status Breakdown)
Lifecycle StatusJob Count
OPEN2
ASSIGNED4
IN_PROGRESS5
ON_HOLD2
COMPLETED5
Verified Query 02

technicians.completedWorkOrderCount × technician

5 Completed Jobs
TECH-02Elena Rostova(Van #04)
2 jobs
TECH-01Marcus Vance(No vehicle)
1 job
TECH-03Devon Reed(Van #07)
1 job
TECH-04Tasha Morales(Van #09)
1 job
Reconciliation Note: completed work orders sum exactly to 5, matching the 5 COMPLETED work orders in Query 01.

Completed work orders across technicians: Elena Rostova (TECH-02) 2 jobs, Marcus Vance (TECH-01) 1 job, Devon Reed (TECH-03) 1 job, Tasha Morales (TECH-04) 1 job. Reconciles to 5 total completed jobs.

View Accessible Table (Technician Completions)
TechnicianIDCompleted Jobs
Elena RostovaTECH-022
Marcus VanceTECH-011
Devon ReedTECH-031
Tasha MoralesTECH-041
Operational Record (Audit Ledger): Not an Aggregated Metric

WO-1042 Transition History Ledger

Source: WorkOrderHistory
08:12:00WORK ORDERASSIGN_TECHNICIANOPEN → ASSIGNED
Actor: Central Operations (DISP-01)
08:14:22APPOINTMENTCREATE_APPOINTMENTSCHEDULED
Actor: Central Operations (DISP-01)
08:15:05DISPATCHDISPATCH_APPOINTMENTPENDING_DISPATCH → DISPATCHED
Actor: Central Operations (DISP-01)
08:18:40DISPATCHACKNOWLEDGE_DISPATCHDISPATCHED → ACKNOWLEDGED
Actor: Elena Rostova (TECH-02)
08:45:10WORK ORDERSTART_WORKASSIGNED → IN_PROGRESS
Actor: Elena Rostova (TECH-02)
10:15:00WORK ORDERHOLD_AND_RESUMEIN_PROGRESS → ON_HOLD → IN_PROGRESS
Actor: Elena Rostova (TECH-02)
11:18:30WORK ORDERCOMPLETE_WORK_ORDERIN_PROGRESS → COMPLETED
Actor: Elena Rostova (TECH-02)

This ledger reflects operational event entries recorded by the server on each state transition. It is an operational log, not a chart or projection.

Product Origin

Built by Aformix

Aforden is built by Aformix, a technology company creating digital products and software systems for modern businesses.

Explore Aformix
Aforden Field Service Operating System

Field Operations, Under Control.

Bring the work, the people, and the operational record into one system.

Multi-Tenant Workspace Isolation
Operational Audit Ledgers