Auto-Assignment
Auto-assignment is an intelligent dispatch system that evaluates every available technician when a job needs assignment and picks the best-matched technician. Instead of dispatchers manually reviewing schedules, locations, and skills for every job, the auto-assignment engine performs real-time technician matching and assigns the technician best suited to complete the job on time.
FSM Navigator®'s auto-assignment evaluates each job individually as it arrives, adapting to changes such as technician workload changes, schedule updates, and shifting priorities. The system also continuously rebalances existing assignments to respond to changing conditions throughout the day.
Pro feature
Auto-assignment requires a Pro or Enterprise subscription. Compare plans to see all available features.
How auto-assignment works
When a new job is created — or an existing job needs a technician — the auto-assignment engine evaluates every available technician and picks the best match. Each job is evaluated independently based on current conditions, not a plan made hours earlier.
flowchart TD
A[New job enters queue] --> B{Plan includes auto-assignment?}
B -- Yes --> C[Gather current data<br/>GPS, workload, schedules, drive times]
C --> D[Match each available technician<br/>against the job's requirements]
D --> E[Assign the best-matched technician]
E --> F[Job moves to Assigned status]
F --> G[Rebalancing engine monitors<br/>and adapts continuously]
B -- No --> H[Job stays in Pending queue] The engine runs automatically whenever a job enters the queue without a technician assigned. It also runs continuously through the rebalancing engine, which monitors all active assignments and redistributes work in response to changing conditions — such as new urgent jobs, technician delays, schedule changes, or shifting priorities.
Per-job matching, not static scheduling
Auto-assignment is a per-job intelligent dispatch system. It doesn't plan a whole day in advance: the engine evaluates each job individually as it arrives and keeps adapting assignments as conditions change through the day.
How the system picks a technician
The auto-assignment engine evaluates technicians as described below. The technician who is the best match for the job is the one assigned.
1. Skills and certifications
The system checks whether a technician has the qualifications required for the job. For example, an HVAC repair requires a technician certified in HVAC systems, not a general handyman.
- Add Required skills to a job (Pro and Enterprise) and only technicians who hold every one of those skills are considered. On Enterprise you can also require a skill category, which means every skill in that category.
- A skill only counts once it is approved, and a skill whose certification expiry date has passed no longer counts. It still counts on the expiry date itself.
- If nobody available holds every required skill, the job is not left waiting: it goes to the technician who holds the most of them.
2. Location-based matching with drive times
Matching accounts for drive time from each technician's current location to the job site, so the technician best placed to arrive is favored.
- Closer technicians are preferred for the job.
- Less travel time means more time spent on productive work.
3. Current workload
The system balances assignments across your team so that no single technician is overloaded while others sit idle.
- Technicians with fewer active jobs are preferred to balance the load.
- The system accounts for estimated job duration to avoid schedule conflicts.
4. Customer preferences
Some customers prefer working with a specific technician — perhaps someone who is already familiar with their equipment or facility. The system respects these preferences when they are configured.
- If a customer has a preferred technician, that technician is favored when available.
- Preferences are optional and can be set in the customer record.
5. SLA urgency
Jobs with approaching SLA deadlines receive higher priority. The engine factors in how much time remains before the SLA is breached and prioritizes at-risk jobs.
- Jobs close to their SLA deadline are prioritized over less urgent work.
- The engine may reassign a job to a closer technician if the current assignment puts the SLA at risk.
6. Schedule availability
The system checks each technician's work schedule to ensure they are available during the job's required time window.
- Technicians who are off-shift, on leave, or already fully booked are excluded.
- The system respects booking windows if configured on the job.
- Schedule change approvals take effect immediately — the engine always uses the most current schedule data.
7. Parts availability
If a job requires specific parts, the system checks whether the technician has those parts in their van stock.
- Technicians carrying the required parts are preferred for the job.
- This avoids delays from needing to return to a warehouse mid-day.
8. Booking windows
If a job has a customer-requested booking window, the engine ensures the selected technician can arrive within that window.
- Technicians who can meet the booking window are preferred.
- Technicians who would arrive outside the window are penalized or excluded.
9. Job continuity
When a job is related to previous work at the same location or for the same customer, the engine prefers technicians who have worked on prior jobs there.
- Continuity avoids handoff delays and repeat diagnostics.
- The technician who previously serviced the equipment or location is favored when available.
Auto-assignment is always on
Auto-assignment is on for every plan that includes it. There is no switch to turn it on, and it cannot be turned off from your account: the Master Control switch under Settings → Auto-Assignment is shown on and locked because FSM Navigator manages it. New unassigned jobs are matched to the best available technician automatically.
Manual override is always available
Dispatchers can manually assign or reassign any job at any time. Auto-assignment handles the default — your team retains full control.
Protecting a manual assignment
A job you assign by hand can still be moved later by workload rebalancing if the system finds a better match. When the choice has to stick, protect it:
- Open the job and click Change on the assigned technician card.
- Pick the technician.
- Tick Protect from automatic reassignment and type the reason, for example "Customer asked for Alex by name".
- Click Assign.
Automatic dispatch and rebalancing leave a protected job with that technician. A banner at the top of the job, on the web and in the mobile app, shows who protected it and why, and the audit log records the same.
Protection belongs to that one assignment. Assigning the job again without ticking the box, unassigning it, or moving it to another technician by any other route removes the protection.
Workload rebalancing
The rebalancing engine runs continuously — not just once a day or on a fixed schedule. It keeps monitoring active job assignments across your team and redistributes work whenever conditions change. If it detects that reassigning jobs would improve overall performance — for example, reducing travel time, protecting an at-risk SLA deadline, or responding to a technician going off-schedule — it applies reassignments automatically.
What triggers rebalancing
- A technician calls in sick or has a schedule change approved.
- New high-priority jobs enter the queue.
- SLA timers are approaching the warning threshold.
- A technician finishes their jobs early, creating capacity.
- Updated travel estimates change which technician can reach a job first.
- A technician's GPS location changes the optimal assignment.
How rebalancing protects SLAs
The rebalancing engine continuously monitors SLA deadlines. If a job's SLA is at risk because the assigned technician is running behind or has moved further away, the engine can reassign the job to a closer or less-loaded technician — preserving your service commitments.
Continuous adaptation
Because rebalancing runs frequently, your team's assignments stay optimized throughout the day — not just at the moment of initial assignment. As new jobs arrive, schedules change, or technicians complete work ahead of schedule, the engine redistributes to keep everything running smoothly.
No action required
Rebalancing happens automatically in the background. You don't need to trigger it manually — the system adapts on its own.
Improving auto-assignment results
The quality of auto-assignment depends on the quality of data in your system. Follow these practices to get the best results:
| Practice | Why it matters |
|---|---|
| Keep technician skills up to date | The system can only match skills it knows about. Add new certifications as technicians earn them. |
| Set technician schedules accurately | The system needs to know when each technician is available. Update schedules regularly. |
| Set customer preferences | If a customer works best with a specific technician, set the preference so the system respects it. |
| Use realistic SLA deadlines | The system optimizes for SLA compliance. Unrealistic deadlines force suboptimal assignments. |
| Keep service addresses accurate | Location-based matching depends on correct addresses for both customers and technician starting points. |
Review assignments weekly
Check the assignment history in your reports to see how the system is performing. If certain jobs are frequently reassigned, it may indicate that skills or schedules need updating.
Auto-assignment vs. manual assignment
| Aspect | Auto-assignment | Manual assignment |
|---|---|---|
| Speed | Instant | Depends on dispatcher availability |
| Consistency | Applies the same criteria every time | Varies by dispatcher judgment |
| Scalability | Handles hundreds of jobs without additional effort | Becomes difficult beyond 20-30 daily jobs |
| Flexibility | Follows configured rules consistently | Dispatchers can use context the system may not have |
| Availability | Pro plan and above | All plans |
Best of both worlds
Many teams use auto-assignment as the default and manually override only when special circumstances require human judgment — for example, a VIP customer request or an unusually complex job.
Frequently asked questions
Can I disable auto-assignment for specific jobs?
Yes. Assign the technician yourself and tick Protect from automatic reassignment with a reason. Without the tick, rebalancing may still move a manual assignment when it finds a better match. See Protecting a manual assignment.
What happens if no technician matches the job requirements?
If no available technician holds every required skill, the job goes to the available technician who holds the most of them. If nobody is available at all, the job stays in Pending until someone is, and you can assign it yourself at any time.
Does auto-assignment work with recurring jobs?
Yes. Each generated instance of a recurring job is evaluated independently by the auto-assignment system, so the best technician is selected based on conditions at the time the job is generated.
How quickly does auto-assignment run?
Assignment happens within seconds of a job entering the unassigned queue. The rebalancing engine runs continuously to keep existing assignments optimized as conditions change.
What happens when a technician becomes unavailable or calls in sick?
The rebalancing engine handles it automatically. When a technician is marked off-duty, calls in sick, or otherwise becomes unavailable, the engine detects that their active jobs no longer have an eligible technician and reassigns those jobs to the next best available technician — no manual dispatch-board cleanup required. It runs continuously in the background, so absences are absorbed on their own.
Can I see why a specific technician was chosen?
Yes. On the dispatch board and in the jobs list, select the information icon next to the assigned technician's name to open Why this technician. It shows what qualified them for the job, what made them the best fit — things like being closest, already working nearby, carrying the right parts, or being the customer's preferred technician — and any trade-offs the engine weighed, such as running into overtime. For assignment trends across your whole team, see the KPI dashboard and your weekly business reports.
What's next
- SLA timers — understand how SLA deadlines drive auto-assignment decisions.
- Booking windows — set time windows that the auto-assignment system respects.
- Technician availability — manage working hours and schedule change approvals.
- Creating jobs — create a job and let auto-assignment handle the rest.
- Inviting users — keep technician skills and schedules current for better assignments.
- Technician preferences — let customers request or exclude specific technicians from auto-assignment.