Field Service Management Software: Architecture and Features
Field service management software coordinates people, parts, and schedules across dispersed locations. Here's how to architect FSM systems that handle the real-world complexity of mobile workforces.
James Ross Jr.
Strategic Systems Architect & Enterprise Software Developer
The Field Service Challenge
Field service operations have a coordination problem that office-based businesses never face. Your workforce is distributed across a service area, traveling between job sites, working with limited connectivity, and making real-time decisions that affect customer experience, operational efficiency, and profitability.
A technician arrives at a job site and discovers the issue is different from what was described on the work order. They need a part that isn't on their truck. The next appointment is 45 minutes away, but the current job is running over. The customer wants to add a service that requires authorization from the office.
Field service management (FSM) software is the system that coordinates all of this: scheduling and dispatching technicians, managing work orders, tracking parts and inventory on service vehicles, providing mobile access to job details, capturing service documentation, and generating invoices from completed work.
The architecture has unique requirements compared to typical enterprise software: it needs to work offline, it needs to sync data reliably when connectivity is intermittent, and it needs to be usable on a phone screen by someone standing in a customer's garage.
Work Order Lifecycle
The work order is the central entity in field service management. It represents a unit of work to be performed at a customer's location.
A work order moves through a well-defined lifecycle. Created when a customer calls, submits a request online, or a preventive maintenance schedule triggers. The work order captures the customer, the location, the service type, the reported issue, any relevant history, and the priority.
Scheduled when a dispatcher assigns the work order to a technician and a time slot. The scheduling system considers the technician's skills (not every tech can do every service), their current location, travel time, the parts required (does the tech have them on their truck?), and the customer's availability.
En route when the technician starts traveling to the job site. GPS tracking provides estimated arrival time to the customer. The system can automatically send the customer a notification: "Your technician is 15 minutes away."
In progress when the technician arrives and begins work. The mobile app guides them through the service workflow: review the work order details, document the current condition (photos, notes), perform the service, record parts used, document the completed work, and capture the customer's signature.
Completed when the work is done and signed off. The work order records the actual time spent, parts used, notes, photos, and any recommendations for follow-up work. This data feeds into invoicing, inventory updates, and technician performance tracking.
Invoiced when the completed work order generates an invoice. For some businesses, this happens automatically. For others, the work order goes through a review and approval process before invoicing.
Mobile-First Architecture
The mobile app is where field service management either succeeds or fails. If the app is slow, unreliable, or hard to use, technicians will work around it with paper and phone calls, and the system becomes a data entry burden rather than a productivity tool.
Offline-first design is non-negotiable. Technicians work in basements, rural areas, and buildings with poor cell service. The mobile app must function fully offline — viewing work order details, recording time, capturing photos, updating status — and sync data when connectivity returns.
The offline architecture uses a local database on the device (SQLite or a similar embedded database) that mirrors the data the technician needs for their current assignments. Changes made offline are queued as operations and replayed against the server when connectivity is available. Conflict resolution handles the case where both the mobile app and the office have modified the same record — typically, the most recent change wins, but some fields (like work order status) may need custom merge logic.
Data synchronization is the engineering challenge at the heart of offline-first mobile apps. The sync protocol needs to be bandwidth-efficient (only sync changed data), resumable (if a sync is interrupted, it picks up where it left off), and idempotent (replaying a sync operation doesn't create duplicates).
Camera and signature capture are core input mechanisms. Technicians photograph the before and after condition, capture damage, and document installed parts. The customer signs on the device screen to acknowledge completion. These assets need to be stored locally, associated with the work order, and uploaded to the server during sync. Photo compression before upload reduces bandwidth usage in areas with slow connections.
Dispatch and Route Optimization
Dispatch is the process of assigning work orders to technicians and sequencing their daily schedule for maximum efficiency.
Manual dispatch has a dispatcher reviewing the day's work orders, considering each technician's skills and location, and making assignments. This works for small operations (5-10 technicians) but doesn't scale.
Assisted dispatch provides the dispatcher with recommendations. The system scores potential assignments based on factors — skill match, proximity, current workload, SLA deadline — and presents the top candidates for each work order. The dispatcher makes the final decision but with much better information.
Automated dispatch assigns work orders algorithmically. The optimization engine solves a variant of the vehicle routing problem: given a set of jobs with locations, time windows, skill requirements, and priorities, assign them to available technicians and sequence them to minimize travel time while meeting all constraints.
Route optimization considers real-world factors that simple distance calculations miss: traffic patterns (a job 5 miles away might take 45 minutes during rush hour), customer availability windows, job duration estimates, and required breaks. The algorithm needs to re-optimize throughout the day as conditions change — jobs take longer than estimated, new urgent jobs arrive, technicians call in sick.
The geographic aspects of dispatch tie into inventory tracking at the vehicle level. Each technician's truck has an inventory of parts. The dispatch system should consider whether the assigned technician has the parts needed for the job, or whether a parts run to the warehouse is required first.
Parts Management and Service Contracts
Field service operations need to track parts at two levels: the warehouse and the service vehicle.
Vehicle inventory tracks what's on each technician's truck. When a technician uses a part on a job, they record it on the work order. The system decrements the truck's inventory and can automatically trigger a replenishment order when stock drops below minimum levels. At the end of each day or week, truck inventory is reconciled against usage records and physical counts.
Parts ordering from the field handles situations where the technician needs a part they don't have. The mobile app lets them search available inventory, check which warehouse or truck has the part, and create a parts request. Depending on urgency, the part can be picked up from the warehouse, transferred from another technician, or ordered from a supplier.
Service contracts and warranty tracking determine whether work is billable and what the pricing should be. A customer under a preventive maintenance contract might receive certain services at no charge. A product under warranty might have parts covered but labor billable. The FSM system needs to check contract status and apply the correct pricing before generating the invoice.
These concerns overlap with the broader ERP integration challenge. The FSM system needs to exchange data with the ERP's inventory, financial, and customer management modules.
If you're building field service management software, let's discuss the architecture.