Route Planner
Plan daily routes for technicians, assign and reorder jobs, optimize routes, and dispatch scheduled work to the field.
Overview
The Route Planner lets dispatchers build daily routes for technicians, assign unscheduled jobs to each route, optimize stop order for travel efficiency, and dispatch the plan to create calendar events. Each day has one route planner that contains one or more routes (one per technician or crew). When you open the Route Planner for a date that has no planner yet, Forz creates one automatically and copies your route templates into it.
Before You Begin
Prerequisites:
The Route Planner module is enabled (Settings > Modules).
You have the Route Planner: Show permission on your role.
At least one route template is configured (Route Planner > Settings > Route Templates) so routes are created automatically.
Jobs you want to dispatch have a Service Address with latitude/longitude coordinates.
Opening the Route Planner
Click Route Planner in the sidebar navigation.
Forz opens the planner for today's date. Use the date picker at the top to select a different day.
The planner view displays three areas: the pending jobs panel on the left, the map in the center, and the route timeline on the right.
Expected result: The route planner loads with routes copied from your route templates. Pending jobs that match the selected date appear in the left panel.
Note: Each date has exactly one route planner. Forz creates it automatically the first time you navigate to that date, using your route templates as the starting configuration.
Understanding Pending Jobs
Pending jobs appear in the left panel grouped into categories. A job appears as pending when it meets all of these conditions:
Status is Unscheduled
The Routable toggle is enabled on the job
The job is not already assigned to a route planner
The job's weekday restrictions (if any) include the planner's day of the week
The job's schedule date is on or before the planner date, or has no schedule date
Tip: Jobs with a specific schedule date matching the planner date appear in the "New" section. Jobs with no schedule date appear in the "Any Day" section. Use these groupings to prioritize which jobs to route first.
Assigning Jobs to Routes
Drag and drop from pending jobs
Locate the job in the pending jobs panel on the left.
Drag the job card onto the desired route in the timeline.
Forz adds the job to the end of that route and recalculates ETAs.
Expected result: The job moves from the pending panel to the route timeline. The map updates to show the job marker in the route's color.
Search and assign
Click the search field at the top of the pending jobs panel.
Type a job number, job title, customer name, organization, or address.
Select the job from the search results.
Choose the target route from the dropdown next to the job.
Expected result: The job is assigned to the selected route. Forz recalculates ETAs for that route.
Warning: A job must have a Service Address with valid coordinates (latitude and longitude). Jobs without geocoded addresses cannot be assigned to routes.
Moving Jobs Between Routes
In the route timeline, locate the job you want to move.
Drag the job from the current route to a different route.
Forz recalculates ETAs for both the source and target routes.
Expected result: The job appears in the target route and is removed from the source route. Travel times update for both routes.
Reordering Jobs on a Route
In the route timeline, locate the job you want to reorder.
Drag the job to the new position within the same route.
Forz recalculates ETAs based on the new stop order.
Expected result: Jobs on the route appear in the new order. ETAs and travel times update to reflect the changed sequence.
Optimizing Routes
Optimization sends your routes and jobs to a routing API that calculates the most efficient stop order across all unlocked routes.
Verify all routes and jobs are configured correctly.
Click the Optimize button.
Forz sends the route data to the optimization API and shows a processing indicator.
When optimization completes, the timeline updates with the suggested stop order.
Expected result: Jobs are reordered across unlocked routes for travel efficiency. The optimization summary shows total distance and any unassigned jobs or agents.
Tip: Lock routes you do not want the optimizer to change before running optimization. Locked routes keep their current job assignments and order.
Optimize a single route
Click the route options menu on the route you want to optimize.
Select Optimize Route.
Forz optimizes only that route without changing other routes.
Expected result: Jobs on the selected route are reordered for efficiency. Other routes remain unchanged.
Reviewing Optimization Results
After optimization, review the results before dispatching:
Unassigned jobs -- jobs the optimizer could not fit into any route due to time window conflicts, skill mismatches, or capacity limits
Unassigned agents -- routes with no jobs assigned after optimization
Changes count -- the number of modifications since the last dispatch, shown as a badge
Warning: If the optimization reports unassigned jobs, check the job's time window, required skills, and duration. A job with a narrow time window or specialized skill requirement may not fit into the available routes.
Dispatching Routes
Dispatching converts the planned routes into calendar events and marks jobs as Scheduled.
Dispatch the plan
Review the route timeline to confirm all assignments are correct.
Click the Dispatch button.
Forz creates calendar events for each job on each route and sets job statuses to Scheduled.
Expected result: Each job on each route gets a calendar event with the calculated start and end time. The assigned technicians appear on each event. Job statuses change from Unscheduled to Scheduled.
Cancel a dispatch
Click the Cancel Dispatch button on a dispatched planner.
Forz deletes all calendar events created by the dispatch and sets job statuses back to Unscheduled.
Expected result: Calendar events are removed. Jobs return to Unscheduled status and reappear in the pending jobs panel.
Warning: Canceling a dispatch deletes all events created by that dispatch. Any manual changes technicians made to those events (notes, status updates) are lost.
Locking and Unlocking Routes
Locking a route prevents the optimizer from changing its job assignments or order.
Click the lock icon on the route you want to lock.
The route displays a locked indicator.
To unlock, click the lock icon again.
Expected result: Locked routes are excluded from optimization. You can still manually assign, move, and reorder jobs on locked routes.
Managing Routes
Route settings
Each route has these configurable properties:
Display Name (required) -- the route label (e.g., "North Route", "Team A")
Start Time -- when the route begins (e.g., 7:00 AM)
Duration -- route length in hours (1 to 20 hours)
Break Duration -- break time in minutes (0 to 120 minutes)
Color -- route color for map markers and timeline
Start Location and End Location (required) -- where the route begins and ends
Assigned Users -- technicians assigned to this route
Adding a route
Click the + New Route button on the planner.
Fill in the route name, start/end locations, start time, and duration.
Assign one or more technicians.
Click Save.
Expected result: The new route appears in the timeline and on the map.
Skills matching
Routes inherit skills from their assigned technicians. When you assign a job that requires specific skills, Forz checks whether the route's technicians have those skills. A skills mismatch warning appears at the top of the planner if pending jobs require skills that no route provides.
ETA Calculation
Forz calculates estimated arrival times using the HERE Routing API. ETAs update automatically when you:
Assign a job to a route
Move a job between routes
Reorder jobs on a route
Change a route's start time or location
The calculation accounts for travel time between stops based on road distance and typical traffic patterns.
Common Scenarios
Morning dispatch for an HVAC service company
A dispatcher opens the Route Planner for tomorrow, Monday. Three route templates auto-populate: "North Team" (technician Mike), "South Team" (technician Sarah), and "Emergency" (technician Dave). Twelve unscheduled HVAC maintenance jobs appear in the pending panel. The dispatcher drags six jobs to North Team and five to South Team, keeping Emergency clear for same-day calls. She clicks Optimize to reorder stops, reviews the result, and clicks Dispatch.
Re-routing after a cancellation
A customer cancels their 10:00 AM pool pump repair. The dispatcher opens today's Route Planner, but it is already dispatched. She clicks Cancel Dispatch, removes the cancelled job from the route, adds a replacement job from the pending list, re-optimizes the affected route, and dispatches again.
Handling a skills mismatch
A dispatcher sees a warning that two jobs require "backflow testing" certification but no route has a technician with that skill. She edits the "Plumbing Team" route to add certified technician Carlos, then re-optimizes. The two backflow jobs now appear on his route.