OdooWiki OCA HUB

Route Planning

route_planning folder_open OCA/route-planning open_in_new
Uncategorised License: AGPL-3

This module allows to manage delivery routes, checkpoints, and visit windows.

Before using this module, you must configure the required master data: Route Areas, Checkpoints, and Routes. Without this data, the route planning functionality will not be operational.

Models

Route Area

Defines a geographic or logical zone used to group routes. Each area helps organize delivery operations by region or territory.

Checkpoint

Represents a specific stop or delivery point within a route. Checkpoints define the locations that must be visited, along with any time window constraints for the visit.

Route

A route is an ordered sequence of checkpoints assigned to a specific area. It defines the order in which checkpoints must be visited, making it possible to optimize daily or weekly operations for any kind of service or delivery workflow.

Visit Windows

A visit window defines the time interval during which a checkpoint must be reached. Windows are configured on the contact (partner), where one or more slots can be defined specifying the earliest arrival time (time from) and the latest allowed arrival time (time to). This allows the same availability constraints to be reused across different routes and checkpoints.

auto_awesome What this module does

AI-generated from the code · Odoo 18.0

Plan and manage delivery routes: define geographic areas, build ordered lists of checkpoints (stops) for each route, and let Odoo optimise the visiting order and times automatically. Drivers mark stops as done or report incidents.

This module adds a complete route planning workspace under a new Route Planning menu, split into Operations (Routes, Checkpoints) and Configuration (Areas, Incident Types, Visit Window Templates).

Users first create Route Areas: zones defined by country, state and ZIP code ranges, with a responsible user, a start time and an average waiting time per stop. When an area is flagged for automatic assignment, each contact's area is filled in automatically based on its address, preferring the most specific area (ZIP ranges over states over countries).

A Route is a dated list of checkpoints for one area. Pressing Plan on a draft route runs an optimisation that reorders the stops and computes an estimated arrival time for each one, respecting the visit windows (day and time ranges) defined on the contact. Routes can be viewed on a map or opened in Google Maps, and their status (Draft, Planned, In Progress, Done) follows the progress of their checkpoints.

Checkpoints are the individual stops. They can be marked as done, but only after all earlier stops are done or in incident. A Create Incident button records a problem with an incident type and note; incident types flagged as rescheduled are automatically copied into the next planned route of the same area. Routes and checkpoints cannot be deleted once they leave draft, and the responsible user is subscribed to their messages.

Depends on

Required by other modules

Menus it adds

Route PlanningOperationsRoutesCheckpointsConfigurationAreasIncident TypesVisit Window Templates
Models and fields (11)
  • route.area · new modelcode, name, active, user_id, zip_ids (Zip ranges), state_ids, company_id, time_start, auto_assign, country_ids, waiting_time
  • res.partner · extends an existing modelroute_area_id, route_visitwindow_ids, route_visitwindow_template_id (Visit Window Template)
  • route.route · new modelname, state, user_id, company_id, time_start, waiting_time, route_area_id, schedule_date, checkpoint_ids, start_location_id
  • route.area.zip · new modelzip_to, zip_from, route_area_id
  • route.checkpoint · new modelnote, state, user_id, latitude, route_id, sequence, date_done, longitude, company_id, partner_id, route_state (Route State), schedule_date, schedule_time, checkpoint_ids (Checkpoints), display_address, incident_type_id, date_localization, origin_checkpoint_id
  • route.incident.type · new modelname, active, company_id, rescheduled
  • route.create.incident · new modelnote, checkpoint_id (Checkpoint), incident_type_id
  • route.visitwindow.mixin · new modeltime_to, time_from, day_of_week
  • route.partner.visitwindow · new modelpartner_id (Partner)
  • route.visitwindow.template · new modelname, active, line_ids
  • route.visitwindow.template.line · new modeltemplate_id

Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. The module is very large and only part of the code was read. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 1 confirmed, 8 with no information of 9 versions.

Sources · Odoo 18.0

Confirmed on 2026-11-03 in branch 18.0 of OCA/route-planning.

terminal Installation and usage

OCA documentation · Odoo 18.0

Ensure that partners and your company have latitude and longitude set before using this feature.

Follow these steps before creating routes and checkpoints.

Create Areas

Go to Route Planning > Configuration > Areas and create the areas that represent the geographic or logical zones where routes will operate. At least one area is required. Each area must have a responsible user assigned.

Configure Visit Window Templates (optional)

Go to Route Planning > Configuration > Visit Window Templates to define reusable sets of time windows. Templates can later be applied to contacts to populate their visit windows quickly.

Configure Contacts

Open any contact form (Contacts app) and go to the Route Planning tab. There you can:

  • Assign the contact to an Area.
  • Define the contact’s Latitude and Longitude.
  • Set one or more Visit Windows, either manually or by selecting a Visit Window Template.

At least the contacts that will be used as checkpoint destinations should be configured.

Create Routes

Go to Route Planning > Operations > Routes and create a route. Assign it to an area and add the checkpoints directly from the route form. Only the areas where the current user is the responsible user are available when creating the route. A checkpoint can be linked to a contact or defined only with its own latitude and longitude. When the route is planned, the checkpoints are reordered automatically using OR-Tools, which suggests the best route based on the available coordinates and time windows.

A map button is available on the route form to visualize all checkpoints on a map.

Day-to-day operations

Users can go to Route Planning > Operations > Checkpoints to see the checkpoints assigned to them and manage the status and details of each stop. Each checkpoint also includes a map view to locate the stop geographically.

No verified information in OCA: Installation.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.