Skip to main content
iVentureTeam

Odoo 20 Planning Release Notes

All 20 Planning changes from the official Odoo 20 release notes, explained in plain words with a screenshot from a live Odoo 20 database, plus where to find each one and what it means for your upgrade.

Planning the move? See our Odoo upgrade services, the Odoo 20 upgrade guide or get a number from the migration cost calculator.

New feature 12Enhancement 7Refactoring 1In Community 0Enterprise only 20
Type

Change 1 of 20

Employee-specific materials

New featureEnterprise only

Assign materials to employees; when an employee is assigned to a shift, their assigned material is automatically added to the shift's resources.

Official Odoo 20 release note

In plain words

A material resource (van, tool, machine) now has an Assigned To employee. When that employee is put on a shift, the material is added to the shift's resources too, so the van travels with its technician.

Planning > Configuration > MaterialsThe new Assigned To column: Excavator belongs to Mitchell Admin and Intervention Van 2 to Cherry Nelson.

Where to find it

  1. Planning > Configuration > Materials.
  2. Set Assigned To on a material, then assign that employee to a shift.

For users

No need to add the technician's van or kit to each shift by hand.

For developers

resource.resource.assigned_employee_id (material resources); planning.slot adds the employee's assigned materials to resource_ids when the employee is set.

Upgrading from Odoo 19

New field only; existing materials have no assignee until you set one.

Change 2 of 20

Field Service: auto plan

EnhancementEnterprise only

Customer locations are taken into account for automatic shift planning.

Official Odoo 20 release note

In plain words

With Field Service, Auto Plan now uses the geolocation of each customer address. Shifts are matched to technicians with travel distance in mind, instead of only looking at availability and roles.

Planning > Schedule > By Resource > ActionsThe Auto Plan action; with Field Service it now takes the customer locations into account. The geographic matching itself happens on the server and is not visible as such.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Planning > Schedule > By Resource > Actions > Auto Plan.

For users

Auto Plan gives each technician interventions that are close to each other.

For developers

planning_field_service overrides the auto-plan of planning.slot with distance helpers (haversine and contour distance) based on partner coordinates.

Upgrading from Odoo 19

Customer addresses need coordinates (geolocation) for the distance logic to help.

Change 3 of 20

Field Service: customer equipment

New featureEnterprise only

Part 1

Track whether customer equipment is covered by a maintenance contract via Subscriptions.

Official Odoo 20 release note

In plain words

Equipment (serial numbers) sold with a running subscription is marked Maintained. The ribbon shows on the equipment in the shift, on the serial number form and in the lists, so the technician knows the visit is covered.

Planning > Planning > All > shiftThe heat pump on this intervention carries the Maintained ribbon because a running subscription covers it.

Part 2

Access documentation for the equipment installed at the customer's location directly from shifts.

Official Odoo 20 release note

In plain words

A Documents smart button on the shift opens the product documents (manuals, datasheets) of the equipment installed at the customer.

Planning > Planning > All > shiftThe Documents smart button on the shift opens the equipment's service manual.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Enable Equipment and Maintenance Contracts.
  3. Open a shift with equipment covered by a running subscription.

For users

Technicians see on site whether the equipment is under contract and can open its manual from the shift.

For developers

New module planning_field_service_stock_subscription: sale.order.line.lot_ids (Equipment Maintained) and stock.lot.is_maintained (a running subscription covers the lot). planning.slot.action_open_documents lists product.document of the lots.

Upgrading from Odoo 19

New optional module; enable Maintenance Contracts in Planning settings.

Change 4 of 20

Field Service: customer ratings

New featureEnterprise only

Track customer satisfaction for onsite interventions.

Official Odoo 20 release note

In plain words

After an intervention, customers can rate it. Ratings are collected per shift and listed in a new Reporting > Customer Ratings menu, with the technician, customer and comment.

Planning > Reporting > Customer RatingsCustomer ratings of interventions, each with the technician, the customer and the comment.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Enable Customer Ratings.
  3. Planning > Reporting > Customer Ratings.

For users

Managers see which interventions went well or badly and why.

For developers

planning.slot gets rating support (rating mixin) with a rating request mail template; the feature sits behind group_field_service_allow_customer_ratings.

Upgrading from Odoo 19

New optional setting (Customer Ratings).

Change 5 of 20

Field Service: intervention confirmation email

EnhancementEnterprise only

Choose whether to automatically send customers a confirmation email upon publication of a shift to inform them that an intervention has been scheduled.

Official Odoo 20 release note

In plain words

A Confirmation Email setting decides whether customers get an email when their intervention shift is published. You can also pick which email template is used.

Planning > Configuration > SettingsThe Confirmation Email setting with its email template.

Where to find it

  1. Planning > Configuration > Settings > Operations > Confirmation Email.

For users

Companies that confirm visits by phone can switch the automatic email off.

For developers

Company-level flag and template in planning_field_service; the publish flow only sends the customer mail when enabled.

Upgrading from Odoo 19

Check the setting after upgrade if customers should keep receiving confirmations.

Change 6 of 20

Field Service: live map

New featureEnterprise only

Track technicians' locations on a live map.

Official Odoo 20 release note

In plain words

Maps > Live Map shows where each technician is, next to the list of their current interventions. Positions come from the technicians' check-ins (geolocation).

Planning > Maps > Live MapThe live map with one pin per technician location.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Planning > Maps > Live Map.

For users

Dispatchers see at a glance who is where before assigning an urgent job.

For developers

A map action on planning.slot backed by web_map, fed by geolocated sign-ins (planning_field_service_hr_attendance bridges attendances).

Upgrading from Odoo 19

Requires the Geolocation setting and technicians who share their location.

Change 7 of 20

Field Service: map view

EnhancementEnterprise only

View both shift locations and technician availability in the map view.

Official Odoo 20 release note

In plain words

A map timeline (Maps > Timeline) combines the map of shift addresses with a timeline of each technician's day, so you see where interventions are and who is free.

Planning > Maps > TimelineThe timeline under the map shows each technician's day next to the shift locations on the map.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Planning > Maps > Timeline.

For users

Plan by place and time on the same screen.

For developers

web_map gains a timeline panel used by planning_field_service; pins show stop numbers and routes are highlighted on hover.

Upgrading from Odoo 19

No migration.

Change 8 of 20

Field Service: product barcodes

New featureEnterprise only

Add products to a shift by scanning their barcodes.

Official Odoo 20 release note

In plain words

The product catalog opened from an intervention has a Scan button. Scanning a product barcode adds the product to the shift, ready to be invoiced.

Planning > shift > ProductsThe Scan button in the product catalog of an intervention.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Open an intervention in progress and click Products.
  3. Click Scan in the catalog.

For users

Technicians add used parts from their phone camera or a scanner.

For developers

New auto-install bridge module planning_field_service_sale_timesheet_barcodes (barcodes + planning_field_service_sale_timesheet).

Upgrading from Odoo 19

New module; installs automatically with its dependencies.

Change 9 of 20

Field Service: report

EnhancementEnterprise only

Studio fields are shown on the field service report.

Official Odoo 20 release note

In plain words

Custom fields added with Studio to the worksheet part of a shift are now printed on the intervention report and shown on the customer portal, grouped like on the form.

Planning > (shift) > Print > Field Service ReportA field added to the worksheet page of the shift form (Equipment Location) shows up as its own row at the end of the printed Field Service Report, grouped the same way as the rest of the worksheet.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Enable Worksheets, add Studio fields to the shift worksheet, then print the intervention report.

For users

The customer report contains all the information captured on site, including custom fields.

For developers

planning.slot.has_studio_worksheet_fields and _extract_studio_field_data read the Studio view nodes to render them in the report.

Upgrading from Odoo 19

Custom report overrides for worksheets may duplicate the new section.

Change 10 of 20

Field Service: routing preferences

EnhancementEnterprise only

Routing has been improved for the map view, allowing users to choose between an ordered mode and an optimized mode. The ordered mode calculates the routing by respecting the order of the addresses, while the optimized one calculates the shortest path between the addresses.

Official Odoo 20 release note

In plain words

Map views have a routing attribute with two values: ordered (follow the records in their order) or optimized (shortest path). Studio shows it as a Routing option in the map view editor; the field service maps use the ordered mode.

Planning > Maps > By Resource > StudioThe Routing option of the map view in Studio, set to Ordered; the other value is Optimized. Drawing the routes themselves needs a Mapbox token.

Where to find it

  1. Planning > Maps > By Resource, then open Studio.
  2. In the map view editor, look at the Routing option (a Mapbox token is needed to draw the routes).

For users

Routes can follow your visit order or let the map find the shortest tour.

For developers

New map view attribute routing="ordered|optimized" (replaces the old boolean routing); map_model builds the Mapbox request accordingly.

Upgrading from Odoo 19

Custom map views using routing="1" or "true" must use one of the two new values.

Change 11 of 20

Field Service: track customer history

New featureEnterprise only

Track customer equipment and intervention history.

Official Odoo 20 release note

In plain words

Shifts now list the customer's equipment (serial numbers). From an equipment you can open all the shifts done on it, which gives the intervention history of that machine.

Planning > shift > Equipment > View ShiftsAll interventions done on heat pump HP200-00017, opened from the equipment on a shift.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Enable Equipment.
  3. Open a shift, then View Shifts on an equipment card.

For users

Before going on site, the technician sees past visits on the same equipment.

For developers

New module planning_field_service_stock: planning.slot.lot_ids and stock.lot.slot_ids with action_view_slots.

Upgrading from Odoo 19

New optional module (Equipment setting).

Change 12 of 20

Field Service: travel fees

New featureEnterprise only

Invoice customers for distance-based travel fees or a fixed travel-time fee.

Official Odoo 20 release note

In plain words

A Travel Fees setting adds travel to the invoice of interventions. Choose Fixed Fee (travel time) or Fee per Distance, and the product used to invoice it.

Planning > Configuration > SettingsThe Travel Fees setting with the Fixed Fee and Fee per Distance modes (shown ticked here without saving).

Where to find it

  1. Planning > Configuration > Settings > Travel Fees.

For users

Travel is billed consistently without manual lines.

For developers

res.company.field_service_travel_fees_mode (fixed, distance) and travel_time_invoicing_product_id; distances come from the Mapbox travel computation.

Upgrading from Odoo 19

Fee per Distance needs a Mapbox token for distances.

Change 13 of 20

Field Service: website form

New featureEnterprise only

Collect service requests through a website form rather than letting customers book services directly.

Official Odoo 20 release note

In plain words

A new website page /service-requests lets customers describe what they need and leave their address. Each request becomes an unscheduled shift under Schedule > Service Requests, for the dispatcher to plan.

Website > /service-requestsThe public service request form.

Where to find it

  1. Website > /service-requests.
  2. Planning > Schedule > Service Requests to see submitted requests.

For users

Customers ask for a visit online; the company keeps control of the schedule.

For developers

New module website_planning_field_service with routes /service-requests and /service-requests/submitted.

Upgrading from Odoo 19

New module.

Change 14 of 20

Field Service: worksheets

RefactoringEnterprise only

Part 1

Worksheet templates now use property fields instead of Studio fields.

Official Odoo 20 release note

In plain words

A worksheet template now defines its questions as property fields stored on the template (worksheet_properties_definition). Filling a worksheet on a shift stores the answers in property values, so no Studio model is generated per template.

Planning > Configuration > Worksheet Templates > (template)The Device Installation and Maintenance template defines its questions as property fields grouped into Device, Intervention, Checks and Sign-off, with an Add Property link at the end.

Part 2

Add worksheets to shift templates.

Official Odoo 20 release note

In plain words

Shift templates get a Worksheet Template field, so shifts created from a template come with the right worksheet.

Planning > Configuration > Shift Templates > (shift template)A shift template now has a Worksheet field, here set to Device Installation and Maintenance, so shifts created from it use that worksheet.

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Enable Worksheets.
  3. Planning > Configuration > Worksheet Templates; Shift Templates > Worksheet Template.

For users

Worksheets are easier to build and are prefilled from shift templates.

For developers

worksheet.template.worksheet_properties_definition (PropertiesDefinition) and planning.slot.worksheet_properties (Properties); the per-template x_ models are gone.

Upgrading from Odoo 19

Existing Studio-based worksheet templates must be migrated to property definitions; custom code reading x_ worksheet models breaks.

Change 15 of 20

Gantt view: travel times

New featureEnterprise only

Connect to the Mapbox integrator to display travel times in the Gantt view to help schedule shifts accordingly.

Official Odoo 20 release note

In plain words

With a Mapbox token set in the Planning settings, the Gantt view computes travel time and distance between consecutive interventions and shows them next to the shifts, with a popover giving the details.

Planning > Configuration > SettingsThe Mapbox setting where the token is entered; it enables routes, travel times and distance-based fees.

Where to find it

  1. Planning > Configuration > Settings > Mapbox: enter a token.
  2. Planning > Schedule > By Resource.

For users

Dispatchers see whether there is enough time to drive between two jobs.

For developers

planning.slot.travel_time_in/out and travel_distance_in/out, refreshed through Mapbox when travel_times_up_to_date is false.

Upgrading from Odoo 19

Needs a Mapbox token.

  • The travel times themselves are not shown: they need a Mapbox token (external service), which this demo database does not have.

Change 17 of 20

Multiple resource assignment

EnhancementEnterprise only

Assign multiple resources to the same shift.

Official Odoo 20 release note

In plain words

A shift can now have several resources (employees and materials) instead of one. Everyone on the shift gets the same slot.

Planning > Planning > All > shiftOne shift with two employees and a material in the Resources field.

Where to find it

  1. Planning > open or create a shift and add several resources.

For users

One shift for a team intervention instead of copies per person.

For developers

planning.slot.resource_id (many2one) became resource_ids (many2many, falsy label Open Shifts).

Upgrading from Odoo 19

Custom code, reports and filters on resource_id must use resource_ids.

Change 18 of 20

Priority shifts

New featureEnterprise only

Set priorities on shifts. When using the "Auto Plan" feature, higher-priority shifts are scheduled first.

Official Odoo 20 release note

In plain words

Field service shifts have a priority (Low, Medium, High, Urgent) shown as stars. Auto Plan handles the higher priorities first.

Planning > Planning > All > shiftThe priority stars on an intervention shift (here High).

Where to find it

  1. Planning > Configuration > Settings: Field Service enabled.
  2. Open a shift and set the priority stars.

For users

Urgent jobs are placed first when auto planning.

For developers

planning.slot.priority selection (0 to 3) in planning_field_service; the auto-plan sorts slots by priority.

Upgrading from Odoo 19

No migration; existing shifts default to Low.

Change 19 of 20

Schedule shifts from side panel

New featureEnterprise only

Schedule shifts by dragging and dropping them from the side panel into the calendar or Gantt view.

Official Odoo 20 release note

In plain words

The Gantt and Calendar views get a side panel listing the shifts to schedule (without dates, like service requests or sales order lines). Drag one onto a resource and a time to plan it.

Planning > Schedule > By ResourceThe side panel with shifts to schedule, ready to be dragged into the Gantt.

Where to find it

  1. Planning > Schedule > By Resource.
  2. Drag an item from the side panel into the Gantt.

For users

Unplanned work is always in sight next to the schedule.

For developers

planning.slot can now exist without start and end datetime; web_gantt exposes side panel (un)scheduling hooks.

Upgrading from Odoo 19

Code assuming every shift has dates must handle unscheduled shifts.

Change 20 of 20

Send shifts via WhatsApp

New featureEnterprise only

Send employees their schedules via WhatsApp.

Official Odoo 20 release note

In plain words

A Send Planning setting lets you choose Email or WhatsApp. With WhatsApp, published schedules are sent with approved WhatsApp templates to the employees' work phone.

Planning > Configuration > SettingsThe Send Planning setting with the new WhatsApp option. Actual sending needs a WhatsApp Business account.

Where to find it

  1. Planning > Configuration > Settings > Send Planning: WhatsApp.

For users

Employees get their shifts where they read messages.

For developers

New module whatsapp_planning; res.company.planning_medium (email or whatsapp) switches the send flow.

Upgrading from Odoo 19

Requires a configured WhatsApp account and approved templates.

See all 585 Odoo 20 changes across 52 apps

Odoo 20 Planning: common questions

What is new in Odoo 20 Planning?

The official Odoo 20 release notes list 20 Planning changes (12 new features, 7 enhancements, 1 refactoring). They include Employee-specific materials, Field Service: auto plan, Field Service: customer equipment, Field Service: customer ratings and more.

Are the Odoo 20 Planning changes available in Community edition?

No. The Planning changes are all Enterprise only in Odoo 20.

Do Odoo 20 Planning changes affect my customizations when upgrading from Odoo 19?

17 of the 20 changes have something to check when upgrading from Odoo 19, for example Employee-specific materials, Field Service: auto plan, Field Service: customer equipment. Each change on this page has an "Upgrading from Odoo 19" note. Test custom modules on a copy of your database before moving production.

How do I upgrade Planning to Odoo 20?

Restore a copy of your database, run the Odoo 20 upgrade on the copy, fix any custom modules that extend Planning, then test your main Planning flows with real users before switching production. iVentureTeam runs Odoo upgrades end to end, including custom module migration and user testing.

Odoo services for this

By industry

More Odoo 20 release notes

Planning your Odoo 20 move

Want these Planning changes in your database?

We upgrade Odoo databases with their customizations and data intact, and test every custom module against the new version before go-live.