Skip to content

Auto-Assignment

Auto-assignment is an intelligent dispatch system that evaluates every available technician the moment a job needs assignment — and picks the best-matched technician across dozens of criteria. 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 most likely to complete the job on time and at the lowest cost.

Unlike static route planners, FSM Navigator's auto-assignment evaluates each job individually as it arrives, adapting to real-time conditions such as traffic, 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 in real time across dozens of criteria and picks the best match. Each job is evaluated independently based on current conditions, not pre-planned routes.

flowchart TD
    A[New job enters queue] --> B{Auto-assignment enabled?}
    B -- Yes --> C[Gather real-time data<br/>GPS, workload, schedules, traffic]
    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 — not a traveling salesman solver or static route planner. Instead of planning an entire day's routes in advance, the engine evaluates each job individually as it arrives and continuously adapts assignments as conditions change throughout the day. This means your team always has the most up-to-date, situation-aware assignments possible.


Factors the system considers

The auto-assignment engine evaluates technicians across dozens of criteria in real time. 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.

  • Technicians with matching skills are preferred for the job.
  • Technicians missing required certifications are excluded from consideration.

2. Location-based matching with real-time traffic

The engine calculates driving distance and estimated travel time from each technician's current GPS location to the job site, factoring in live traffic conditions.

  • Closer technicians are preferred for the job.
  • Traffic-aware routing provides realistic travel time estimates — not just straight-line distance.
  • 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. Overtime and end-of-shift awareness

The engine factors in how close a technician is to the end of their shift. A job that would push a technician into overtime makes that technician less likely to be selected.

  • Technicians nearing the end of their shift are deprioritized for jobs that would extend past their scheduled end time.
  • For a technician's last job of the day, the engine prefers a job location near their home base — reducing unnecessary travel at shift end.

8. 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.

9. 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.

10. 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.

Enabling auto-assignment

  1. Navigate to Settings → Company Settings.
  2. Find the Auto-Assignment section.
  3. Toggle Enable auto-assignment to on.
  4. Click Save.

Once enabled, new unassigned jobs are automatically matched to the best available technician.

Manual override is always available

Even with auto-assignment enabled, dispatchers can manually assign or reassign any job at any time. Auto-assignment handles the default — your team retains full control.


Workload rebalancing

The rebalancing engine runs continuously — not just once a day or on a fixed schedule. It monitors all active job assignments across your team in real time 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, requests time off, 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.
  • Live traffic conditions change significantly, affecting travel estimates.
  • 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. When creating a job, manually assign a technician. The auto-assignment system will not override a manual assignment.

What happens if no technician matches the job requirements?

If no available technician has the required skills or availability, the job remains in Pending status. Dispatchers are notified so they can assign the job manually or adjust the requirements.

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.

Can I see why a specific technician was chosen?

The job's activity log shows when auto-assignment was used and which technician was selected. For detailed insights into assignment patterns, review the reports in your dashboard.


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.