Skip to main content
TechUltra Solutions Pvt. Ltd. — AI-Enabled ERP Transformation
Free Consultation
Menu

Odoo 20 · detailed guide

What's new in Odoo 20 Productivity & AI

AI agents, richer spreadsheets and quicker signatures.

172 new features
16 apps covered
99 screenshots

Odoo 20 brings a wide set of improvements to the parts of Odoo that every team touches, whatever their department. The general interface gets cleaner dialogs, better chatter tools and faster ways to plan work. AI agents can now run on their own through automation rules, and the productivity apps (Discuss, Calendar, Documents, Spreadsheet, Sign and Studio) each gain practical features that remove manual steps.

If you are a business owner or manager weighing an upgrade, these are the changes your staff will notice first. Sales teams get easier follow-ups, managers get clearer planning tools, and administrators get simpler access control. Below, we cover the most useful updates app by app.

Last updated 14 October 2026

42 new in Odoo 20

Across all apps

42 features
01
ImprovedCommunity + Enterprise

Activities

CRM > Pipeline > opportunity > Activity

In Odoo 20 the Schedule Activity popup shows the activity types as buttons along the top, uses an icon beside each field in place of a text label, and adds a phone number line for call activities. An activity can be assigned to a role, meaning a group of users defined under Settings > Users & Companies > Roles, and not only to one person. Meeting activities display their date, time, attendees, location and a Join Meeting link in the record's Planned Activities. It is used by anyone planning follow-ups on records such as CRM opportunities.

Why it matters Lets teams assign activities to a person or role and track them more easily.

How to use it

  1. Go to Settings > Users & Companies > Roles and create a role with users.
  2. Open a CRM opportunity and click Activity in the chatter.
  3. Pick an activity type, clear Assigned to and select the role.
  4. Reload the record to see meeting details under Planned Activities.
Odoo 20 · General
Redesigned Schedule Activity dialog with type buttons and new Role assignment field
02
NewCommunity + Enterprise

Calendar view side panel

Project > Projects > calendar view

When a calendar view supports scheduling, a side panel lists the records that have no date yet, for example project tasks without a deadline, together with a count of items to schedule. Records move in both directions between the panel and the calendar. Dragging a dated task over the panel turns the panel into a 'Drop here to unschedule' area, and letting go of the task clears its date. Planners working on project tasks in the calendar view use it to take work off the schedule quickly.

Why it matters Lets planners unschedule records by dragging them from the calendar into a side panel.

How to use it

  1. Go to Project > Projects and open a project.
  2. Switch to the calendar view to see the scheduling side panel.
  3. Drag a dated task onto the side panel to clear its date.
Odoo 20 · General
Project calendar side panel listing 8 unscheduled tasks to drag onto dates
03
NewCommunity + Enterprise

CC email recipients

CRM > Send message

The email composer in Odoo 20 has a Cc line placed under the To field, so a message sent from a record can also be copied to other people. Once the email is sent, the message stored in the record's chatter lists both the To and the Cc recipients. Anyone reviewing the record afterwards can therefore see who was copied on each email. A typical place to use it is the Send message action on a CRM opportunity.

Why it matters Lets users copy colleagues on emails and see in the chatter who was copied.

How to use it

  1. Go to CRM > Pipeline and open an opportunity.
  2. Click Send message and add a contact in the Cc line.
  3. Send the email and check To and Cc in the chatter.
Odoo 20 · General
Chatter email composer with the new Cc recipients line
04
ImprovedCommunity + Enterprise

Chatter filter

CRM > chatter search

The chatter search has a filter menu, opened from a funnel icon next to the search box. It offers three options: All, Conversations, which keeps only messages and notes, and Tracked Changes, which keeps only the entries that record field value changes. Users reading a long record history can use it to focus either on the discussion or on the change log of the record, for example on a CRM opportunity.

Why it matters Helps users find conversations or tracked changes quickly by filtering the chatter.

How to use it

  1. Go to CRM > Pipeline and open an opportunity.
  2. In the chatter, click the magnifier and then the funnel icon.
  3. Choose All, Conversations or Tracked Changes.
Odoo 20 · General
Chatter filter dropdown: All, Messages, Notes, Activities, Changes
05
ImprovedCommunity + Enterprise

Dialog design

Any record > Actions > Delete

Dialog windows in Odoo 20 have a refreshed look, with more space around their content, a lighter header and friendlier wording in their titles and messages. A clear example is the confirmation shown before a record is removed, which carries the title 'Bye-bye, record!'. Every user sees these dialogs when confirming actions, for example when choosing Delete from the gear or action menu of a record in any app.

Why it matters Makes dialog windows easier to read with better spacing and lighter headers.

How to use it

  1. Open any record.
  2. Click the gear or action menu and choose Delete.
Odoo 20 · General
Redesigned delete confirmation dialog with lighter header and better spacing
06
ImprovedCommunity + Enterprise

Digest email KPIs

Settings > Technical > Digest Emails

The periodic digest email that Odoo sends includes KPIs arranged by app. Examples are attendee registrations and certified attendees for eLearning, participants and certified participants for Survey, and registrations for Events. The digest record has a KPIs tab that lists the available indicators app by app. Digest records are kept in the technical settings, so developer mode is needed to open them. Managers who receive the digest get these figures in their regular summary email.

Why it matters Helps managers follow more KPIs in digest emails, grouped by app.

How to use it

  1. Activate developer mode.
  2. Go to Settings > Technical > Emails > Digest Emails.
  3. Open Your Odoo Periodic Digest and view the KPIs tab.
Odoo 20 · General
Digest email KPIs tab with additional KPIs grouped per app
07
NewCommunity + Enterprise

Download attachments in bulk

Settings > Technical > Attachments

Attachments from any app or record can be selected together and downloaded in a single operation. The Attachments list in the technical settings offers a Download action in its Actions menu, which fetches every selected file at once. This list sits under Database Structure in the technical menu, so developer mode must be active to reach it. It suits users who need to gather several files without opening each record that holds them.

Why it matters Lets administrators download attachments from many records and apps as one zip file.

How to use it

  1. Activate developer mode.
  2. Go to Settings > Technical > Database Structure > Attachments.
  3. Select attachments, open Actions and click Download.
Odoo 20 · General
Selected attachments with the Actions > Download option for a single zip
08
ImprovedCommunity + Enterprise

Email template preview

Settings > Technical > Email Templates > Preview

The preview of an email template includes a record picker with previous and next arrows at the top right. Users can move through real records one by one and see how the template renders for each, with that record's values filled in. This helps anyone editing templates, such as the Sales: Send Quotation template, check the result on actual data before the email is used. Email templates are reached from the technical settings with developer mode on.

Why it matters Lets users check how an email template looks across different sample records.

How to use it

  1. Activate developer mode.
  2. Go to Settings > Technical > Email Templates and open a template.
  3. Click Preview and use the arrows at the top right.
Odoo 20 · General
Template preview with arrows to browse sample records, plus language and record pickers
09
ImprovedEnterprise

Gantt view

Time Off > Management > Overview; Planning > Schedule

The Gantt view in Odoo 20 has three additions. Clicking a row header selects every cell in that row, and clicking a column header selects the whole column, which helps create the same record across a full period. A Gantt view can show buffers before and after each bar, such as travel time around a field service intervention. A scheduling side panel can be enabled for a Gantt view in Studio; records are dragged from it onto the Gantt to schedule them, or back onto it to unschedule them.

Why it matters Helps planners select rows or columns, see buffers and schedule from a side panel.

How to use it

  1. Go to Time Off > Management > Overview and click an employee name.
  2. Go to Planning > Schedule by Resource, Day scale, to see buffers.
  3. Open the side panel to see records to schedule.
Odoo 20 · General
Planning Gantt with the new side panel listing shifts to schedule
10
NewCommunity + Enterprise

Link to current search

Sales > Orders (Alt+Shift+H)

A command creates a shareable link to the current view. The link keeps the active search, filters and grouping, so a colleague who opens it sees exactly the same list. It is triggered with the keyboard shortcut Alt+Shift+H, for example on the sales orders list grouped by salesperson. Users can share a prepared list with others without explaining how to rebuild the filters.

Why it matters Lets users share a view link that keeps their searches, filters and grouping.

How to use it

  1. Go to Sales > Orders and group by Salesperson.
  2. Press Alt+Shift+H to get a link to the current view.
Odoo 20 · General
Alt+Shift+H on Sales Orders copies a link to the current view
11
ImprovedEnterprise

Map view: unlocated records

Contacts > Map

The map view collects records that have no address, or whose address could not be located, in an Unlocated group at the top of its side list. Clicking one of these records opens it in a dialog where the missing address can be entered. Users of map views, such as the Contacts map, can spot and fix records that are missing from the map.

Why it matters Helps users find and fix records missing an address from the map view.

How to use it

  1. Open Contacts and switch to the Map view.
  2. Open the Unlocated group at the top of the side list.
  3. Click a record and fill in its address.
Odoo 20 · General
Contacts map side list with the Unlocated group of records without an address
12
ChangedCommunity + Enterprise

Material Symbols

CRM > Pipeline (view switcher)

The icons shown across Odoo 20 come from the Material Symbols set. This affects every app's interface, for example the icons of the view switcher used to change between list, kanban and other views. All users see these icons; no setting is needed to enable them. The view switcher in CRM is one place where the icons can be seen.

Why it matters Gives the interface a consistent icon set using Material Symbols.

How to use it

  1. Open any app, for example CRM > Pipeline.
  2. Look at the icons in the view switcher.
Odoo 20 · General
CRM view switcher icons in the new Material Symbols style
13
NewCommunity + Enterprise

Multiple partner identifiers

Contacts > Ready Mat

A contact form can hold several partner identifiers besides the tax ID, such as the DUNS number, EAN/GLN or identifiers specific to a country. A plus button next to the TIN field adds another identifier, and its type is chosen from a dropdown list. Odoo checks the format of each identifier according to its type. This is useful for companies that exchange documents using different partner codes.

Why it matters Lets teams store and validate several identifiers, such as DUNS, on each contact.

How to use it

  1. Go to Contacts and open a company contact.
  2. Click the plus button next to the TIN field.
  3. Choose an identifier type such as DUNS and enter the value.
Odoo 20 · General
Contact form: additional identifier types
14
NewCommunity + Enterprise

My Subscription page

User menu > My Subscription

A My Subscription page, opened from the user menu, brings together a user's account information in one place. It shows the current subscription plan, the In-App Purchase (IAP) services and database details such as the version and the upgrade status. Users and administrators can check their plan and services there without searching through settings. It gathers these details on one dedicated page, reached in two clicks from the user avatar.

Why it matters Helps administrators see subscription plan, IAP services and database information in one place.

How to use it

  1. Click your user avatar in the top right corner.
  2. Select My Subscription from the menu.
Odoo 20 · General
User menu: My Subscription
15
NewCommunity + Enterprise

Pin messages in the chatter

CRM > opportunity, chatter

Important messages in a record's chatter can be pinned. Hovering over a message shows a Pin action, and a pin icon in the chatter header opens a list of all pinned messages for that record. This keeps important messages easy to find in long conversations on records such as CRM opportunities. The pinned list collects these messages in one place for quick access, apart from the full message thread.

Why it matters Helps teams keep important chatter messages easy to find by pinning them.

How to use it

  1. Go to CRM > Pipeline and open an opportunity.
  2. Hover over a chatter message and click Pin.
  3. Click the pin icon in the chatter header to see pinned messages.
Odoo 20 · General
Chatter message actions menu with the Pin option
16
NewCommunity + Enterprise

Portal layout

Website editor on /my

The cards on the customer portal home page (/my) can be reordered and hidden from the website editor. In the page options, each card has a drag handle to change its position and a switch to hide it from the portal home. Website administrators use it to decide which portal sections customers see first and which are not shown. The changes are made visually in the editor.

Why it matters Lets portal users reorder their cards to suit how they work.

How to use it

  1. Go to Website and open the /my page.
  2. Click Edit, then click the page background.
  3. Open Style > Page Options to reorder or hide cards.
Odoo 20 · General
Website editor Page Options on /my to reorder (drag) or hide portal cards
17

Search: relative date range navigation

When a predefined relative date filter, for example Today or This Month, is in use, the search bar displays arrows. Clicking them shifts the filter by one period backward or forward, so users can browse consecutive periods without editing the filter.

Why it matters Lets users step backward or forward one period in date filters using arrows.
Odoo 20 · General
Order Date facet with arrows to move one period backward or forward
18
ChangedCommunity + Enterprise

Simplified access rights

Settings > Technical > Access Rights

Access rights and record rules are held in one model, ir.access. Each line grants a group certain operations on a model and may include a domain to limit the records concerned. A line with a group acts as a permission, while a line without a group acts as a restriction for everyone. Administrators manage these lines from the technical settings, which requires developer mode.

Why it matters Expect record rules to be replaced by domains set directly on each access right.

How to use it

  1. Activate developer mode.
  2. Go to Settings > Technical > Access Rights.
Odoo 20 · General
Access Rights list where each right carries a Domain, typed Permission or Restriction
19
NewCommunity + Enterprise

Tax included/excluded on orders and invoices

Sales > Quotation

Sales orders, purchase orders and invoices have a Tax Excl. / Tax Incl. switch above the lines. Changing it controls whether line prices are shown and typed with or without tax. A tax can be configured so that it ignores this switch. Users can switch between both modes on the same document as needed. The switch is located directly above the lines of the document.

Why it matters Lets teams switch orders and invoices between tax-included and tax-excluded prices.

How to use it

  1. Go to Sales > Quotations and open a draft.
  2. Click Tax Incl. above the order lines to switch modes.
Odoo 20 · General
Order lines Tax Excl./Tax Incl. toggle
20
NewCommunity + Enterprise

Text messages

Contacts > Send SMS

The SMS composer includes a Send Later button. The user picks a time, for example Tomorrow Morning, and the text message is scheduled to go out at that moment. SMS templates also have a button that inserts dynamic placeholders, so values from the record can be added to the message. It is used when sending SMS from records such as contacts.

Why it matters Lets teams schedule text messages and personalize SMS templates with placeholders.

How to use it

  1. Go to Contacts, open a contact and start an SMS.
  2. Click the clock icon and pick a time.
  3. Click Save to schedule the message.
Odoo 20 · General
Send SMS clock button opens Set Scheduled Date to schedule the text message
21
ImprovedCommunity + Enterprise

Translation wizard

Sales > Product > Name

The translation dialog for text and HTML fields lists each language together with its value, so translations can be edited side by side in one window. It opens by clicking the language code shown in a translatable field, for example EN in a product's Name field. Users maintaining product names in several languages can review and update them all at once.

Why it matters Makes translating text and HTML fields simpler with a new wizard.

How to use it

  1. Go to Sales > Products and open a product.
  2. Click the language code (EN) in the Name field.
Odoo 20 · General
New translation wizard listing the product name in each installed language
22
ImprovedCommunity + Enterprise

Currency aggregates: date

Sales > Orders list total

When the total at the bottom of a list adds up amounts in more than one currency, Odoo converts them into a single currency to show one figure. Hovering the mouse over that total opens a tooltip that states the exchange rate used for the conversion and the date of that rate, for example a dollar rate on the first of a month. This lets users checking a mixed list, such as sales orders where one order is in euros, understand where the converted total comes from.

Why it matters Helps finance teams see which exchange rate date was used for converted totals.

How to use it

  1. Go to Sales > Orders.
  2. Filter several orders where at least one uses another currency.
  3. Hover the total at the bottom of the Total column.
23
ImprovedCommunity + Enterprise

Decimal separator

Sales > Quotation order line

Number fields in Odoo 20 accept both a dot and a comma as the decimal separator, whatever language is set on the user's profile. For instance, a user working in English (US) who enters 2,5 in a quantity field sees the value displayed as 2.5 after leaving the field, and not as 25. This helps people who are used to a different separator enter values such as order line quantities without mistakes.

Why it matters Lets users type decimals with a dot or comma, whatever their localization.

How to use it

  1. Go to Sales > Orders and open a draft quotation.
  2. Type 2,5 in a line quantity and leave the field.
24
ImprovedCommunity + Enterprise

Favorited searches

Sales > Quotations search panel

When a list search is saved as a favorite, Odoo 20 stores the column layout along with it, meaning which optional columns were shown and which were hidden. Choosing the favorite later brings back the same visible columns together with the saved filters. Users who build a particular list view, for example quotations showing the Customer Reference column, can return to it in one click from the search panel.

Why it matters Saves users time by remembering visible list columns with each favorite search.

How to use it

  1. Go to Sales > Quotations and show an extra column from the column picker.
  2. Open the search panel and click Save current search.
  3. Reset the view, then pick the favorite to restore the columns.
25
NewCommunity + Enterprise

File sharing on mobiles

Mobile: Share > Odoo

On a phone, a photo or file can be sent to Odoo from the device's share menu. Odoo then asks what to create from it: an expense, a vendor bill, a time off request, a lead, a task or a to-do. For this, Odoo must first be added to the phone's home screen. Employees can, for example, share a receipt photo from the gallery and turn it straight into an expense.

Why it matters Lets staff share phone files to Odoo to digitize bills or create tasks, leads and requests.

How to use it

  1. On a phone, add Odoo to the home screen.
  2. In the gallery, share a photo and choose Odoo.
  3. Pick what to create, for example Expense, and click Create.
26
ImprovedCommunity + Enterprise

Import product variants

Sales > Products > Import

Product imports can create variants directly. Each line of the import file may describe a single variant, given by its attribute values in a form such as Sleeves:Long, Size:S, along with its own cost, sales price and quantity on hand. The Import Template for Products includes a Product Values column that is mapped to the Product Values field. Users loading a catalogue with many variants can fill in every variant from one spreadsheet.

Why it matters Lets teams import each variant with its own attributes, cost and on-hand quantity.

How to use it

  1. Go to Sales > Products and choose Actions > Import records.
  2. Upload the Import Template for Products with variant lines.
  3. Check that Product Values maps to Product Values, then import.
27
NewCommunity + Enterprise

Incremental edits on duration fields

Project > Task, Allocated Time

Duration fields accept arithmetic shortcuts: +=, -=, *= and /=. The operator is applied to the value already in the field. For example, if a task has 10 hours of allocated time and the user types +=2, the field shows 12 hours straight away. Project users adjusting allocated time on tasks can change the figure this way without working out the new total themselves.

Why it matters Lets users adjust durations quickly with simple math, such as adding two hours.

How to use it

  1. Go to Project > Tasks and open a task with allocated time.
  2. Click Allocated Time and type +=2.
  3. Leave the field to see the updated duration.
28
ImprovedCommunity + Enterprise

Label design

Sales > Products > Print Labels

Product, manufacturing and packaging labels in Odoo 20 use a layout with the product name at the top, a larger barcode below it, and the reference and price together on one line. More label sizes are offered when printing. Users print the labels from the product list by selecting products, choosing Print Labels and picking a format, for example 4 x 7 with price.

Why it matters Gives product, manufacturing and packaging labels a redesigned layout.

How to use it

  1. Go to Sales > Products and select some products.
  2. Click Print Labels.
  3. Choose a format, for example 4 x 7 with price, and confirm.
29
ImprovedCommunity + Enterprise

Link previews

Page source of /web/login

The Odoo login page includes Open Graph and Twitter meta tags giving a title, site name, URL and image. Because of these tags, pasting an Odoo link into a chat tool or a social media post displays a preview card in place of a plain link. The tags (og:type, og:title, og:site_name, og:url and og:image) can be seen in the head section of the page source of /web/login.

Why it matters Helps shared website links stand out on social platforms with a preview card.

How to use it

  1. Open the page source of /web/login.
  2. Look for the og: tags in the head section.
30
NewCommunity + Enterprise

List view: expand/collapse groups

Sales > Orders (grouped by Customer)

In a grouped list view, holding Alt while clicking a group header opens or folds every group at that same level at once. This saves clicking each group header one by one. It works, for example, on the sales orders list grouped by customer, where a single Alt + click expands or collapses all customer groups together. It applies to any list view that is grouped by a field.

Why it matters Lets users expand or collapse all list groups at one level with ALT + click.

How to use it

  1. Go to Sales > Orders and group by Customer.
  2. Hold Alt and click the first group header.
31
ImprovedCommunity + Enterprise

Mail plugins

Gmail/Outlook add-in

The Odoo add-ins for Gmail and Outlook let users search for a contact, a task or a helpdesk ticket from inside their mailbox and log the open email in that record's chatter. When an email involves several people, the add-in lets the user choose which recipients to use. The add-in has to be installed in Gmail or Outlook and connected to the Odoo database before use.

Why it matters Lets users log Gmail and Outlook emails on contacts, tasks or tickets and pick recipients.

How to use it

  1. Install the Odoo add-in in Gmail or Outlook.
  2. Connect the add-in to your Odoo database.
  3. Open an email, search a record and click Log Email.
32
ImprovedCommunity + Enterprise

Mobile

Mobile: Home screen; Sales > Quotation

Odoo 20 on phones includes several interface changes. Swiping down on the home screen opens the command palette. The date picker opens as a bottom sheet that slides up from the bottom of the screen. On touch screens, form fields are shown as bordered boxes with the label placed inside the box. The mobile login screen has a redesigned look and supports secure authentication methods.

Why it matters Makes Odoo easier to use on phones with quicker navigation, restyled forms and secure login.

How to use it

  1. On a phone, open Odoo and swipe down on the home screen.
  2. Open a quotation and tap the Expiration date field.
  3. Look at the field styling on the quotation form.
33
NewCommunity + Enterprise

Multi-record drag and drop

CRM > Pipeline

Several records can be dragged at once in list and kanban views, either to change their order or to move them to another group or stage. The user selects the records, then drags any one of the selected records, and all of them move together. For example, three opportunities selected in one pipeline stage can be dropped into the Won stage in a single action.

Why it matters Lets users reorder or move several records to another group or stage at once.

How to use it

  1. Go to CRM > Pipeline.
  2. Select several opportunities in one stage.
  3. Drag one selected card to another stage to move them all.
34
NewCommunity + Enterprise

Offline mode

Contacts (offline mode)

Odoo 20 lets users create, edit, archive, unarchive and delete records while their device has no connection. The changes are stored locally and sent to the server once the connection returns, and a yellow 'Working offline' badge appears while offline. Searches that were run earlier while online can be run again from the search history when offline. This helps people working with unstable connections, for example when handling contacts on the move.

Why it matters Lets users keep creating and editing records and rerun searches without a connection.

How to use it

  1. Open Contacts while online and run a search.
  2. Disconnect from the internet and create or edit a contact.
  3. Rerun the earlier search from the search bar history.
35
RemovedCommunity + Enterprise

Partner autocomplete

Contacts > New

When a company is created from a Partner Autocomplete suggestion, its industry information is not turned into partner tags. The company details found by Autocomplete are posted as a message in the contact's chatter. Users creating contacts this way keep their tag list clean while still having the retrieved company information available on the record. It can be read later in the record history like any other chatter message.

Why it matters Keeps partner tags clean by posting industry information in the chatter instead.

How to use it

  1. Go to Contacts > New.
  2. Type a company name and select an Autocomplete suggestion.
  3. Check the chatter for the posted company details.
36
ImprovedCommunity + Enterprise

Record deletion

Sales > Products > Delete

If a record cannot be deleted, for example a product that is used on confirmed orders, the delete dialog explains where the record is used and offers to archive it in its place. Users trying to clean up products or other records are pointed to archiving when deletion is not possible. This replaces a plain error when deletion is blocked by dependent records.

Why it matters Helps users keep data intact by archiving records that cannot be deleted.

How to use it

  1. Go to Sales > Products.
  2. Select a product used on confirmed orders.
  3. Choose Actions > Delete and confirm to see the archive option.
37
ImprovedCommunity + Enterprise

Search: relative date range tooltip

Sales > Orders > Custom Filter

When a relative date range such as 'Last 30 days' is chosen in a search filter, a tooltip shows the actual start and end dates that the range covers. Users see the dates by hovering over the option while building the filter, for example a custom filter on the order date of sales orders. This makes it clear which records a relative filter will include.

Why it matters Helps users confirm the exact dates a relative date filter covers.

How to use it

  1. Go to Sales > Orders and open Filters > Add Custom Filter.
  2. Pick Order Date and the operator 'is in'.
  3. Select Last 30 days and hover to see the dates.
38
ImprovedCommunity + Enterprise

Rich-text editor

Project > Task, description

In the rich-text editor, clicking an image opens an image toolbar that is shorter in Odoo 20. It does not include the description or transform buttons, and the remaining buttons are arranged in a revised order. Users editing formatted text, such as the description of a project task that contains an image, see this toolbar as soon as they select the image.

Why it matters Makes adding media in the rich-text editor simpler with a streamlined toolbar.

How to use it

  1. Go to Project > Tasks and open a task with an image in its description.
  2. Click the image to show the image toolbar.
39
ImprovedCommunity + Enterprise

Product catalog: units of measure

Sales > Quotation > Catalog

In the product catalog opened from a quotation or a purchase order, a unit or packaging can be chosen next to the quantity of each product. The selector appears only when the product has more than one unit, which requires the Units of Measure & Packagings setting. For example, a product sold singly and in a pack of 6 can be added to the order by the pack directly from the catalog.

Why it matters Lets users pick the unit of measure or packaging when adding catalog products.

How to use it

  1. In Settings, enable Units of Measure & Packagings.
  2. Add a packaging to a product.
  3. Open a quotation, click Catalog and pick the packaging next to the quantity.
40
ImprovedEnterprise

Sendcloud shipping labels

Shipping Methods > Sendcloud

A Sendcloud shipping method lets the user choose the format of the shipping labels it produces: PDF, PNG or ZPL. The option is called Label Format and sits in the SendCloud Configuration tab of the shipping method. Warehouses printing on different kinds of printers, including label printers that use ZPL, can pick the format that suits their equipment. The setting applies per shipping method.

Why it matters Lets warehouses print Sendcloud shipping labels as PDF, ZPL or PNG.

How to use it

  1. Open a Sendcloud shipping method.
  2. Go to the SendCloud Configuration tab.
  3. Set Label Format to PDF, PNG or ZPL.
41
ImprovedCommunity + Enterprise

Tablets: bottom sheets

Tablet: CRM > opportunity > actions

On tablets used in touch mode, menus open as bottom sheets that slide up from the lower edge of the screen, the same way they do on phones. This applies, for instance, to the actions menu opened from the gear icon next to a record title. Tablet users get larger, touch-friendly menus without needing any setting. It applies to menus such as the record actions menu.

Why it matters Makes tablet use easier in touch mode with panels sliding up from the bottom.

How to use it

  1. On a tablet, open a CRM opportunity.
  2. Tap the gear icon next to the title to open the bottom sheet.
42
NewCommunity + Enterprise

Translation

Command palette, developer mode

Translation tools in Odoo 20 cover three cases. With the Translation Mode app installed and developer mode on, the command palette offers 'Activate interactive translation mode', which lets screens be translated in place through Weblate. Imports accept extra columns such as Name@fr_FR beside Name@en_US in a CSV or Excel file to load translations. Exports of a translatable field can include chosen languages, each in a column carrying the language code.

Why it matters Helps teams translate content in context and import or export translations per language.

How to use it

  1. Go to Apps and install Translation Mode.
  2. In developer mode, press Ctrl+K and type translation.
  3. To import, upload a file with columns like Name@fr_FR.
  4. To export, select records, Export, and add languages.

30 new in Odoo 20

Spreadsheet

30 features
43
NewCommunity + Enterprise

Bubble charts

Documents > spreadsheet > Insert > Chart > Chart type: Bubble

Odoo 20 spreadsheets include a Bubble chart type, listed under the Miscellaneous chart types. Every bubble is positioned by two numeric values, one on the horizontal axis and one on the vertical axis, and a third numeric value controls how large the bubble is drawn. Each bubble can also carry a label. This makes it possible to compare three measures for several categories within a single chart. After choosing Bubble, the user sets the ranges for bubble sizes and bubble labels in the chart panel.

Why it matters Lets analysts compare three numeric measures in one chart using position and bubble size.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select the data, then Insert > Chart.
  3. In Chart type pick Bubble; set Bubble sizes and labels.
Odoo 20 · Spreadsheet
Chart side panel with new Bubble chart type plotting revenue against cost
44
NewCommunity + Enterprise

Calculated columns

Documents > spreadsheet > list side panel > Columns > Add

In Odoo 20, a dynamic Odoo list inserted into a spreadsheet can hold calculated columns as well as model fields. A calculated column is an extra column whose content comes from a formula referring to the other fields of the same row, using their field names. The user adds it from the Columns section of the list side panel, marks it as calculated, gives it a name and writes the formula. The column is then shown and refreshed alongside the real fields of the list.

Why it matters Lets users add formula columns to Odoo lists computed from other fields in each row.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Insert an Odoo list.
  3. In the list side panel, click Add under Columns and mark it calculated.
  4. Name it and write a formula using the row's field names.
Odoo 20 · Spreadsheet
Odoo list side panel column picker with Add calculated column option
45
NewCommunity + Enterprise

Calendar charts

Documents > spreadsheet > Insert > Chart > Chart type: Calendar

Odoo 20 spreadsheets offer a Calendar chart type for data organised by date. It draws a heat-map grid where each square stands for a period and its colour intensity reflects the value for that period. The user selects a date column together with a value column, inserts a chart and picks Calendar as the type. The horizontal and vertical groupings can be chosen, for example days of the week on one side and months on the other.

Why it matters Helps spot patterns in date-based data with a color-intensity calendar grid.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select a date column and a value column, then Insert > Chart.
  3. Pick Calendar and choose the horizontal and vertical grouping.
Odoo 20 · Spreadsheet
New Calendar chart type showing values as a heat-map grid
46
NewCommunity + Enterprise

Cell value orientation

Documents > spreadsheet > toolbar > Rotation

Odoo 20 spreadsheets have a Rotation button in the toolbar that changes the angle of text inside the selected cells. The available settings are no rotation, 45 degrees, 90 degrees, minus 90 degrees and minus 45 degrees. Turning header text at an angle lets columns stay narrow while their titles remain readable, which helps with tables that have many columns. The user selects the cells, such as a header row, and picks the angle from the button.

Why it matters Lets users angle cell text to fit narrow columns or improve headers.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select the cells, for example a header row.
  3. Click the Rotation button in the toolbar and pick an angle.
Odoo 20 · Spreadsheet
Rotation toolbar button applied, header row text angled at 45 degrees
47
ImprovedCommunity + Enterprise

Charts

Documents > spreadsheet > chart > Design

Charts in Odoo 20 spreadsheets have several additional options. An Annotation section lets users attach notes to a chart, and these notes can include links. A Data analysis action under the Data menu suggests suitable charts for the columns a user has selected. Pie charts accept a separate colour for each slice, and chart axes accept minimum and maximum values to narrow the range shown. These options are found in the Design tab of an inserted chart.

Why it matters Helps build clearer charts with annotations, suggested charts, custom pie colors and set axis ranges.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Insert a chart and open its Design tab.
  3. Open Annotation, Pie Slice or Axes for the options.
  4. For suggestions, select columns and use Data > Data analysis.
Odoo 20 · Spreadsheet
Chart Design tab with new Annotation section for description text and link
48
NewCommunity + Enterprise

Column statistics

Documents > spreadsheet > Data > Column statistics

In Odoo 20 spreadsheets, Column statistics opens a side panel describing the currently selected column. The panel shows a Count or Distribution chart of the column's values together with figures such as the number of unique values, the sum, the average, the median, the minimum and the maximum. Users get a quick picture of a column, for example a Revenue column, without writing any formulas. It is opened from the Data menu after selecting the column.

Why it matters Lets users check a column's distribution, count, sum, average, median, minimum and maximum quickly.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select a column, for example Revenue.
  3. Go to Data > Column statistics.
Odoo 20 · Spreadsheet
Column statistics side panel for Revenue with count and distribution charts
49
ImprovedCommunity + Enterprise

Conditional formatting by date

Documents > spreadsheet > Format > Conditional formatting

Conditional formatting in Odoo 20 spreadsheets includes rules that test dates. The available conditions are Date is, Date is before, Date is after, Date is on or before and Date is on or after. Each can compare against an exact date or a relative date such as today, so users can highlight overdue or upcoming dates without writing a custom formula. The rules are chosen in the Format cells if list after selecting the date cells.

Why it matters Lets users highlight cells before or after a date without writing formulas.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select the date cells, then Format > Conditional formatting.
  3. In Format cells if, pick a date rule and enter the date.
Odoo 20 · Spreadsheet
Conditional formatting rule list with new Date is before/after options
50
NewCommunity + Enterprise

Curly brackets

Documents > spreadsheet > cell formula entry

Odoo 20 spreadsheet formulas accept array literals typed between curly brackets. Inside the brackets, a comma moves to the next column and a semicolon starts a new row. Typing such a formula in a cell spills the values into neighbouring cells, for example a small table with quarter names in one row and amounts in the row below. This lets users enter fixed sets of values directly in a formula instead of filling cells one by one.

Why it matters Lets users type arrays directly in formulas using curly brackets.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. In a cell, type an array such as ={"Q1","Q2";1200,1500}.
  3. Press Enter to spill the values.
Odoo 20 · Spreadsheet
Array literal typed with curly brackets spilling a 2x2 range
51
NewCommunity + Enterprise

Custom format

Documents > spreadsheet > Format > Number > Custom number format

In Odoo 20 spreadsheets the Format > Number menu ends with three entries: Custom currency, Custom date and time, and Custom number format. Each opens a More formats panel in which the user either picks a preset or types a format code of their own, for instance a number pattern followed by a currency label. The format is then applied to the selected cells. This gives control over how numbers, currencies and dates are displayed.

Why it matters Lets users display numbers, currencies and dates exactly the way they need.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select the cells, then Format > Number > Custom number format.
  3. Pick a type or type a format code in Format.
Odoo 20 · Spreadsheet
More formats side panel to define custom number, date and currency formats
52
NewCommunity + Enterprise

Data cleanup

Documents > spreadsheet > Data > Data cleanup > Remove unused data sources

Odoo 20 spreadsheets group cleaning tools under Data > Data cleanup: Remove duplicates, Trim whitespace and Remove unused data sources. The last one lists Odoo pivots and lists that are no longer referenced by any cell of the spreadsheet. The user ticks the unused items in the panel and removes them, which makes the file smaller. This is useful in spreadsheets where data sources were inserted and later stopped being used.

Why it matters Helps shrink spreadsheet files by finding and removing unused Odoo pivots and lists.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Go to Data > Data cleanup > Remove unused data sources.
  3. Tick the unused pivots or lists and remove them.
Odoo 20 · Spreadsheet
Data > Data cleanup menu with Remove unused data sources option
53
NewCommunity + Enterprise

Disable automatic recalculation

Documents > spreadsheet > Data > Calculation

Odoo 20 spreadsheets let users switch calculation from Automatic to Manual under Data > Calculation. In Manual mode, formulas are not recalculated after every edit; the user presses F9 when results should be refreshed. This speeds up work in large or formula-heavy spreadsheets, where recalculating after each change would slow editing. Switching back to Automatic restores recalculation after every change.

Why it matters Speeds up work in large files by recalculating only when users press F9.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Go to Data > Calculation > Manual.
  3. Press F9 to recalculate.
Odoo 20 · Spreadsheet
Data > Calculation submenu to switch between Automatic and Manual recalculation
54
ImprovedCommunity + Enterprise

Global filters

Documents > spreadsheet > Filters

Global filters in Odoo 20 spreadsheets can have a default operator, such as is equal to or between, so a filter opens with the comparison the author prefers. Filters can also be created by picking a field straight from a data source's field list, rather than choosing among a fixed set of filter types. Both options are available from the Filters panel at the top right of the spreadsheet, where a default value and its operator are set.

Why it matters Helps users set up filters faster by picking fields directly and setting default operators.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Click Filters at the top right and add a filter.
  3. Set a default value and operator, or pick a field directly.
Odoo 20 · Spreadsheet
Global filter properties with default value operator (is in) for a relation filter
55
NewCommunity + Enterprise

List insertion

Documents > spreadsheet > Insert > List > Odoo list

In Odoo 20 an Odoo list can be inserted from inside a spreadsheet. The user opens Insert > List > Odoo list, chooses a model such as Sales Order and saves; the list is added to the spreadsheet. There is no need to open the model's own list view first to use an insert action there. It is useful for building reports while staying in the spreadsheet.

Why it matters Lets users insert Odoo model lists into a spreadsheet without leaving it.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Open Insert > List > Odoo list.
  3. Pick a model, for example Sales Order, and click Save.
Odoo 20 · Spreadsheet
New Odoo list panel inserting a Sales Order list directly from the spreadsheet
56
NewCommunity + Enterprise

Lock sheets

Documents > spreadsheet > sheet tab > right-click

In Odoo 20 spreadsheets a sheet tab can be locked from its right-click menu with Lock sheet. While locked, the sheet cannot be modified; it stays locked until someone chooses Unlock sheet from the same menu. Locking is meant to protect sheets holding reference data or finished reports from accidental changes, while other sheets in the same file remain editable.

Why it matters Protects important sheets from accidental edits until they are unlocked.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Right-click the sheet tab.
  3. Choose Lock sheet, or Unlock sheet to edit again.
Odoo 20 · Spreadsheet
Sheet tab context menu with new Lock sheet option
57
ImprovedCommunity + Enterprise

Multiple selection on figures

Documents > spreadsheet > figures > right-click

In Odoo 20 spreadsheets, several figures such as charts, images or carousels can be selected at once by holding Ctrl or Shift while clicking them. The selected figures can then be moved together. When the selection contains several charts, the right-click menu offers Create carousel, which groups those charts into one carousel figure. This helps arrange dashboards with many charts.

Why it matters Lets users move several charts or images together and group charts into a carousel.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Insert two charts.
  3. Click the first, Ctrl+click the second, then right-click.
Odoo 20 · Spreadsheet
Two charts selected together with Create carousel in the right-click menu
58
NewCommunity + Enterprise

Named range

Data > Named ranges

Odoo 20 spreadsheets support named ranges. Data > Named ranges opens a panel where a name is given to a cell or a range, and formulas can then use that name in place of the cell reference. A name box at the left of the toolbar shows named ranges and moves the selection to them. Named ranges make formulas easier to read, for example using Revenue instead of a column reference.

Why it matters Makes formulas easier to read by using names instead of cell references.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select a range, then Data > Named ranges > Add a new named range.
  3. Rename it and use the name in a formula.
Odoo 20 · Spreadsheet
Named Ranges side panel with a new named range for D2:D13
59
NewCommunity + Enterprise

New functions

Formula entry in cells

Odoo 20 spreadsheets include additional functions aimed at better Excel compatibility. Lookup functions are CHOOSE, TAKE, DROP and FORMULATEXT. Statistical functions are CHISQ.TEST, CONFIDENCE.NORM, F.TEST, GEOMEAN, HARMEAN, KURT, SKEW and TRIMMEAN. ARRAYTOTEXT is added as a text function. They are used by typing them in a cell like any other formula, for example a geometric mean over a column of values.

Why it matters Gives users more lookup, statistical and text functions for their calculations.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Type a new function in a cell, for example =GEOMEAN(E2:E13).
Odoo 20 · Spreadsheet
New TAKE function returning the first 3 rows of a range
60
NewCommunity + Enterprise

Pivot tables

Insert > Pivot table > From range

Pivot tables created from a spreadsheet range in Odoo 20 have more options. A Domain can filter the source data. The Design tab offers display options, ready-made table styles and a tabular layout that flattens nested row groupings. Right-clicking a group row gives expand all and collapse all. The pivot is created from a selected range through Insert > Pivot table > From range, then fields are added to Rows and Measures.

Why it matters Helps users filter, style and lay out range pivots for clearer analysis.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select a range, then Insert > Pivot table > From range.
  3. Add fields to Rows and Measures.
  4. Use Domain to filter, or the Design tab for layout and styles.
Odoo 20 · Spreadsheet
Range pivot with new Design tab: display options, tabular form and table styles
61
NewCommunity + Enterprise

Print settings

File > Print

File > Print in Odoo 20 spreadsheets opens a Print Preview screen. Users choose what to print, either the current sheet, the whole workbook or a given range, and set the scale such as fit to width, the paper size, the orientation and whether gridlines are printed. The preview on the left side refreshes after each change, so the result can be checked before clicking Next to print.

Why it matters Lets users preview and adjust scope, scale, paper, orientation and gridlines before printing.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Go to File > Print.
  3. Adjust the settings, check the preview, then click Next.
Odoo 20 · Spreadsheet
Print Preview with content, scale, paper, orientation and gridline settings
62
NewCommunity + Enterprise

Regex formulas

Formula entry in cells

Odoo 20 spreadsheets have two text functions based on regular expressions. REGEXTEST takes a text and a pattern and returns TRUE or FALSE depending on whether the text matches. REGEXREPLACE takes a text, a pattern and a replacement, and returns the text with every matching part replaced. Users can, for example, check whether codes start with a letter or strip vowels from a word.

Why it matters Lets users check and replace text using patterns inside formulas.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Type =REGEXTEST(C2,"^D") or =REGEXREPLACE(B2,"[aeiou]","") in a cell.
Odoo 20 · Spreadsheet
REGEXREPLACE and REGEXTEST formulas applied to the Region column
63
NewCommunity + Enterprise

Scientific notation

Format > Number > Scientific

Odoo 20 spreadsheets have a Scientific number format under Format > Number. It displays values in exponent form, for example 1.01e-01, which keeps very large or very small numbers readable in a normal column width. Users select the cells and choose Format > Number > Scientific to apply it. The stored value does not change, only how it is shown in the grid.

Why it matters Lets users display very large or very small numbers in compact exponent form.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select the cells.
  3. Go to Format > Number > Scientific.
Odoo 20 · Spreadsheet
Format > Number > Scientific applied, Cost values shown in exponent form
64
NewCommunity + Enterprise

Sheet background colors

Sheet tab > right-click > Change grid color

In Odoo 20 spreadsheets the whole grid of a sheet can be given a background colour. The user right-clicks the sheet tab, chooses Change grid color and picks a colour, which then applies to the entire sheet. This can be used to mark certain sheets visually, for example to set input sheets apart from report sheets in the same file.

Why it matters Lets users color a whole sheet's background to organize or distinguish sheets.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Right-click the sheet tab.
  3. Choose Change grid color and pick a color.
Odoo 20 · Spreadsheet
Change grid color option applied, whole sheet with light blue background
65
NewCommunity + Enterprise

Spill range operator

Formula entry in cells

Odoo 20 spreadsheets support the spill range operator. When a formula such as SEQUENCE spills its results over several cells, adding # after the address of its first cell, as in =SUM(H2#), refers to the entire spilled range. The reference follows the result, growing or shrinking when the spilled range changes size, so formulas using it stay correct without editing ranges by hand.

Why it matters Lets formulas reference a whole spilled result that updates as it grows or shrinks.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. In H2 type =SEQUENCE(5,1,1000,500).
  3. In I2 type =SUM(H2#).
Odoo 20 · Spreadsheet
SUM(L2#) uses the spill range operator to total a SEQUENCE result
66
ImprovedEnterprise

Template access

Documents > Configuration > Spreadsheet Templates

In Odoo 20, spreadsheet templates, which are used when creating a new spreadsheet or dashboard, have an Access Groups field. When groups are set, only users belonging to at least one of those groups can see and use the template; others do not see it. This lets administrators keep specialised templates available only to the teams that need them. The field is set from the Spreadsheet Templates configuration menu in Documents.

Why it matters Lets administrators limit which user groups can see each spreadsheet template.

How to use it

  1. Go to Documents > Configuration > Spreadsheet Templates.
  2. Open a template.
  3. Set the Access Groups field.
Odoo 20 · Spreadsheet
Spreadsheet Templates list with the new Access Groups column
67
ImprovedCommunity + Enterprise

Top menu navigation

Spreadsheet toolbar

Odoo 20 spreadsheet top menus can be opened from the keyboard. Alt+Shift with a letter opens a menu: F for File, E for Edit, V for View, I for Insert, O for Format and D for Data. Inside a menu, the arrow keys move between entries, Enter runs the highlighted item and Escape closes the menu. This allows menu commands to be used without a mouse.

Why it matters Lets users reach and move through top menus using only the keyboard.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Press Alt+Shift+D to open the Data menu.
  3. Use the arrow keys, Enter and Escape.
Odoo 20 · Spreadsheet
Data menu opened from the keyboard with Alt+Shift+D
68
ImprovedCommunity + Enterprise

Top/bottom ranking conditional formatting

Format > Conditional formatting

Conditional formatting in Odoo 20 spreadsheets has an Is in Top/Bottom ranking condition. It highlights the highest or lowest N values in the selected range, or the top or bottom N percent. The user selects the cells, opens conditional formatting, picks this condition, chooses Top or Bottom, enters the number and selects Values or a percentage. This helps flag best and worst results quickly.

Why it matters Helps users highlight the highest or lowest values in a range automatically.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Select the cells, then Format > Conditional formatting.
  3. Pick Is in Top/Bottom ranking, choose Top, enter 3 and Values.
Odoo 20 · Spreadsheet
Is in Top/Bottom ranking rule highlighting the top 3 values
69
NewCommunity + Enterprise

Zoom in/out

View > Zoom

Odoo 20 spreadsheets can be zoomed between 50% and 200%. The level is chosen from View > Zoom, and the current zoom level is also available in the toolbar. Zooming out shows more cells on screen for large tables, while zooming in makes cells easier to read. The zoom only changes the display of the grid, not the data or the printed output settings.

Why it matters Lets users zoom the grid between 50% and 200% for easier reading.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Go to View > Zoom.
  3. Pick a zoom level.
Odoo 20 · Spreadsheet
View > Zoom submenu with grid zoom levels from 50% to 200%
70
NewCommunity + Enterprise

Mobile: pinch to zoom

Mobile > Documents > spreadsheet

On phones and tablets, Odoo 20 spreadsheets respond to a two-finger pinch on the grid. Pinching outward zooms in and pinching inward zooms out, using the usual touch gesture of mobile devices. This makes it easier to read and move around in a spreadsheet opened from the Documents app on a touch screen, where cells are otherwise small. No setting is needed to use it.

Why it matters Lets users zoom spreadsheets on phones and tablets with a two-finger pinch.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Open the spreadsheet on a mobile device.
  3. Pinch the grid with two fingers to zoom.
71
ImprovedCommunity + Enterprise

Property fields in inserted lists

Documents > spreadsheet > list side panel > Columns

In Odoo 20, property fields, which are custom fields added per record with the Properties widget, are kept when a list view is inserted into a spreadsheet, as long as they are visible in that list. They appear in the Columns section of the list side panel like normal columns. Users who rely on properties for extra data can therefore report on them in spreadsheets.

Why it matters Keeps Properties fields visible when list views are inserted into spreadsheets.

How to use it

  1. Add a Properties field to a list view and fill a few records.
  2. Select records and use Actions > Insert in spreadsheet.
  3. Check the Columns section of the list side panel.
72
ImprovedCommunity + Enterprise

Reduced JSON file size

Documents > spreadsheet > cell formula bar

In Odoo 20, an Odoo list or pivot inserted into a spreadsheet is driven by a single formula placed in its first cell, for example ODOO.LIST(1, 80), which fills the whole table. Cells of the table do not each carry their own formula. As a result the spreadsheet's JSON file is smaller, and it loads and saves faster. Users can see the formula by clicking the first cell of the table.

Why it matters Helps spreadsheets with Odoo lists and pivots load and save faster with smaller files.

How to use it

  1. Go to Documents and create or open a spreadsheet.
  2. Insert an Odoo list.
  3. Click the first cell of the list and check the formula bar.

20 new in Odoo 20

AI

20 features
73
NewEnterprise

Agentic automation

AI > Agents

AI agents can update their own configuration through a built-in Self Update skill, which is on by default. Agents can be started by triggers: a schedule, a date, the creation of a record or a change to a field, using automation rules. Each automated run creates its own chat, listed under an Automation tab, where the agent's actions can be reviewed. Agents also receive illustrated avatars that match their role.

Why it matters Lets businesses trigger AI agents from automated or scheduled actions and review their automation chats.

How to use it

  1. Go to AI > Agents and open an agent.
  2. Check the Self Update toggle on the Skills tab.
  3. Add or run a trigger on the Triggers tab.
  4. Open Automation in the left rail to see run chats.
Odoo 20 · AI
AI agent: automation triggers
74
NewEnterprise

AI agents: create records

AI > Configuration > Skills > Create Records

Agents have a Create Records skill. With it, an agent works out which model and fields to use and shows a confirmation card before any record is created, so the user approves the result first. Users can attach files, such as a PDF holding instructions, because AI chats accept text, PDF and Office documents. The skill is listed with the other agent skills in the AI configuration menu.

Why it matters Saves data entry by letting AI agents create records, even from an uploaded instruction file.

How to use it

  1. Go to AI > Configuration > Skills.
  2. Open Create Records.
Odoo 20 · AI
Create Records skill letting AI agents create records on request
75
NewEnterprise

AI agents: send files

AI chat > + menu

The + menu in AI chats has two options for files: Attach Files, to upload a file from the computer, and Add from Documents, to link a document already stored in Odoo. The file is sent together with the request so the agent can use it, without leaving the chat. The chat is opened from the AI icon in the top bar, and the + button sits in the message box.

Why it matters Lets users share uploaded files and existing documents with AI agents in chat.

How to use it

  1. Click the AI icon in the top bar.
  2. Click + in the message box.
  3. Choose Attach Files or Add from Documents.
Odoo 20 · AI
AI chat + menu with Add from Documents and Attach Files
76
NewEnterprise

AI agents: update records

AI > Configuration > Skills

Agents have an Update Records skill. The agent finds the records concerned, presents the proposed changes in a confirmation card, and applies them once the user accepts. It can change several records at the same time, so one request can update a whole batch of data. The skill is listed among the agent skills in the AI configuration menu, where its settings can be reviewed.

Why it matters Saves time by letting AI agents update existing records on request.

How to use it

  1. Go to AI > Configuration > Skills.
  2. Open Update Records.
Odoo 20 · AI
Update Records skill letting AI agents update existing records
77
NewEnterprise

AI chat request options

AI chat > + button

The plus button in an AI chat opens options for the next request: Auto-Approve Actions, Web Search, Think Longer, and limiting answers to sources when sources are available. The choices are remembered for that chat session. Users switch them on depending on the request, for example web search for outside information or longer thinking for harder questions. The chat opens from the AI icon in the top bar.

Why it matters Lets users add extra options to an AI chat request before sending it.

How to use it

  1. Click the AI icon in the top bar.
  2. Click the plus button in the message box.
  3. Enable the options you want.
Odoo 20 · AI
AI chat + menu request options: auto-approve, web search, steps, think longer
78
NewEnterprise

Connect Odoo to anything

Settings > Users > Security > Create API Key (MCP scope)

Odoo can be exposed to outside AI tools through the Model Context Protocol (MCP) at a dedicated endpoint. A user creates an API key with the MCP scope from the Security part of their user profile, then gives the endpoint URL and the key to an external MCP client such as Claude or ChatGPT. That client can then work with the Odoo database through this connection.

Why it matters Lets businesses connect external tools to their Odoo database through MCP.

How to use it

  1. Go to Settings > Users and open your user.
  2. Open the Security tab.
  3. Create an API key with the MCP scope.
  4. Give the URL and key to your MCP client.
Odoo 20 · AI
User Security tab: API Keys to connect via RPC or MCP
79
ImprovedEnterprise

Default prompts

AI > Configuration > Default Prompts

Default prompts can be customised with extra context text and prompt buttons. A button prompt may contain field placeholders, which are replaced with values from the current record when the button is used. Administrators can thus prepare ready-made AI requests that adapt to each record they are used on. Default prompts are managed in the AI configuration menu, where each prompt and its buttons can be edited.

Why it matters Helps teams build default prompts that include added context and dynamic values.

How to use it

  1. Go to AI > Configuration > Default Prompts.
  2. Open a prompt.
  3. Edit its buttons and add field placeholders.
Odoo 20 · AI
Default prompt with added context and configurable buttons
80
ChangedEnterprise

Topics renamed to skills

AI > Configuration > Skills

Skills are the collections of instructions and tools that define how an AI agent behaves. They are managed under the Skills menu of the AI configuration and are stored technically in the ai.skill model. Administrators open a skill to see its instructions and tools, and agents use skills such as Create Records or Update Records to carry out work in the database.

Why it matters Look for agent topics under the new name skills.

How to use it

  1. Go to AI > Configuration > Skills.
  2. Open a skill to see its instructions and tools.
Odoo 20 · AI
AI > Configuration > Skills list, formerly called Topics
81
NewEnterprise

Voice interaction

AI chat message box (Alt+V)

AI chats have a microphone button next to the message box. Users can dictate a request to an agent and either have it turned into text or send it as a voice message. According to the menu information, the microphone can also be reached with the Alt+V shortcut. Voice input is available in the AI chat that opens from the AI icon in the top bar.

Why it matters Lets users give requests to an AI agent by speaking instead of typing.

How to use it

  1. Click the AI icon in the top bar.
  2. Click the microphone in the message box, or press Alt+V.
Odoo 20 · AI
Microphone button (Alt+V) in the AI chat box for voice requests
82
ChangedEnterprise

IAP credits required

Apps > AI

Odoo AI features run through Odoo's In-App Purchase (IAP) service. Each AI request sends the database's IAP account token, and the requests use credits from that account. When the balance is empty, users get the message 'Not enough credits to use Odoo AI'. Custom OpenAI or Google API keys cannot be configured. The AI app itself is installed from the Apps menu by searching for AI.

Why it matters Plan to buy IAP credits, since every AI feature now consumes them.

How to use it

  1. Go to Apps.
  2. Search for AI.
  3. Open the AI app.
83
NewEnterprise

AI agents: ask questions about a file

Documents > file preview

The file preview has an AI button that starts a chat with the file already attached. Users can then ask the agent questions about that specific document and get answers based on its content. It works from the viewer used for images and PDFs, for example in the Documents app, where the AI icon sits in the header of the preview. No separate upload of the file is needed.

Why it matters Helps users understand a file quickly by asking an AI agent about it while previewing.

How to use it

  1. Open an image or PDF preview in Documents.
  2. Click the AI icon in the viewer header.
  3. Ask your question about the file.
84
ImprovedEnterprise

AI agents: feedback

Each tool an agent calls comes with a status text describing what the agent is doing, such as 'Searching your leads'. This status line is shown while the tool runs, in place of a generic thinking message, and a summary of the steps is posted once the work is finished. Users see it in any AI chat where the request needs a search or another tool to be answered.

Why it matters Helps users follow what an AI agent is doing through live status updates.

How to use it

  1. Open an AI chat.
  2. Ask something that needs a search.
  3. Watch the status line while the agent works.
85
ImprovedEnterprise

AI agents: filter by time period

AI > Configuration > Tools

A Compute Date tool gives agents exact start and end dates for relative periods such as a day, week, month, quarter, year or a given weekday. Agents use it so that views and searches are filtered on the right time range when a user asks about a period in relative terms. The tool is listed with the other agent tools in the AI configuration, under the Tools menu.

Why it matters Lets users get AI-built views filtered by weeks, quarters or other periods.

How to use it

  1. Go to AI > Configuration > Tools.
  2. Find the Compute Date tool.
86
NewEnterprise

AI agents: image generation

HTML editors (e.g. Knowledge articles)

HTML editors used for website pages, mailings and articles include an AI button in the image picker. It opens a chat where the user asks an agent to create an image, which the agent produces with its built-in Generate Image tool. The option is reached from the Select a media dialog, for example after typing /image in a Knowledge article, and the AI icon appears in that dialog.

Why it matters Helps marketers create images and enriched buttons for websites and mailings with AI agents.

How to use it

  1. Open an HTML editor, such as a Knowledge article.
  2. Type /image.
  3. In Select a media, click the AI icon.
87
ImprovedEnterprise

AI agents: reprocess sources

AI > Agents > Knowledge tab

In an agent's Knowledge section, each source has a menu with extra actions. For indexed web pages, Reprocess fetches the page again and rebuilds its index so the agent works with current content. For sources that failed to process, Retry runs the processing again. Agent administrators use these actions to keep the knowledge an agent relies on accurate and complete, directly from the agent's form.

Why it matters Ensures AI agents use the latest version of their sources on demand.

How to use it

  1. Go to AI > Agents and open an agent.
  2. Open the Knowledge section.
  3. Open a source's menu and click Reprocess or Retry.
88
ImprovedEnterprise

Automatic AI model selection

The user picks an AI provider and Odoo chooses the most suitable model for the task automatically. Settings such as the reasoning boost are passed on to the completion service together with the request. Model selection takes place on the Odoo AI server, so there is nothing to configure in the database and no model list to choose from. The behaviour applies to every AI request made from Odoo.

Why it matters Lets users pick an AI provider while Odoo chooses the best model for each task.
89
NewEnterprise

Interactive agent responses

AI > Configuration > Tools

Agents can ask the user a question with clickable answer choices through the Ask User Question tool. The user replies by pressing one of the buttons rather than typing, which makes it quick to confirm something or choose between options during a conversation. The tool is listed in the AI configuration under Tools, where it can be found by searching for 'Ask User'.

Why it matters Lets users answer agent questions and permission requests with a single click.

How to use it

  1. Go to AI > Configuration > Tools.
  2. Search for Ask User.
90
NewEnterprise

Preview cards in live chat

Website live chat

When an AI agent answering in the website live chat mentions a supported record, a clickable preview card is shown in place of plain text. Supported records are products, events, blog posts, courses, appointments and job positions. Website visitors can click a card to go to the record. The cards appear automatically in AI live chat replies whenever such a record is referenced, with no setup step.

Why it matters Helps live chat visitors open records mentioned by an AI agent through clickable cards.

How to use it

  1. Open the website live chat with an AI agent.
  2. Ask about a product, event or other supported record.
91
ImprovedEnterprise

Stored conversations

Discuss > AI

AI chats are kept and can be reopened in Discuss for up to 30 days after their last message. Chats that were opened but never used are deleted automatically after one day. Users find their earlier AI conversations in the AI section of Discuss and can come back to them during the retention period. After the period ends, the conversation is removed automatically.

Why it matters Lets users revisit agent conversations for up to 30 days after the last message.

How to use it

  1. Open Discuss.
  2. Go to the AI section to see stored chats.
92
ImprovedEnterprise

Tool call limit confirmation

System parameter ai.max_successive_calls

Agents have a maximum number of successive tool calls, 30 by default, held in the system parameter ai.max_successive_calls. When an agent reaches this limit during a live conversation, it pauses, shows a summary of what it has done so far, and asks the user whether to continue or stop, instead of failing silently. The confirmation appears automatically and needs no configuration.

Why it matters Keeps users in control by asking for confirmation when an agent reaches its tool call limit.

14 new in Odoo 20

Sign

14 features
93
NewEnterprise

Automated signature requests

Settings > Technical > Server Actions

Sign offers an automated way to send signature requests. Server actions and automation rules include an action type that sends a request based on a chosen Sign template. For every signer role in that template, the administrator decides who signs: either a fixed contact, or a contact read from a field on the record that triggered the action, for example the customer or the salesperson of an order. This lets documents go out for signature without anyone preparing them by hand, and is set up by users with access to technical settings.

Why it matters Saves time by sending signature requests automatically to fixed signers or by role.

How to use it

  1. Go to Settings > Technical > Server Actions, or open an automation rule.
  2. Click New and choose the signature request action type.
  3. Pick a Sign template and set each signer role.
Odoo 20 · Sign
Server action type Request Signature with Sign Template selection
94
NewEnterprise

Create new fields on the go

Sign > Templates > open template > Add Field

The Sign template editor lets users create a new field type while they are building a template. At the bottom of the field list in the left panel, an Add Field option opens the creation of a field type such as text, checkbox, selection or date, together with its default settings. The new type then sits in the list beside the existing ones and can be dragged onto the document. This avoids leaving the editor to open the configuration menus when a template needs a field that does not exist yet.

Why it matters Lets users create new field types without leaving the template editor.

How to use it

  1. Go to Sign > Templates and open a template.
  2. In the left panel, click Add Field.
  3. Choose the field type and defaults, then place it on the document.
Odoo 20 · Sign
Add Field dialog creating a new field type directly from the template editor
95
ImprovedEnterprise

Easier tag management

Sign > Documents > request > Tags field

Sign shows tags wherever users work with templates and requests. Tags appear and can be edited in the header of a template and in the header of a sent signature request. They are also displayed in the request list and Kanban views and in the request Details. Teams use these tags to sort and find their signature documents, and they can change a tag directly from the screen they are already looking at, without opening a separate form.

Why it matters Helps teams organize signature documents by editing tags wherever they view them.

How to use it

  1. Go to Sign > Documents and open a request.
  2. Edit the Tags field in the header.
  3. Check the tags in the list or Kanban view.
Odoo 20 · Sign
Sign templates Kanban with editable tags and tag filter panel
96
NewEnterprise

Record updates

Sign > Configuration > Fields > field

A Sign field can be linked to a field on an Odoo record and can also send data back to it. When the Update Field option is ticked on a linked Sign field, the value the signer enters is saved on the related record once the document is signed, for example a new phone number on the contact. The setting is made on the field definition in the Sign configuration and requires developer mode. It keeps record data in line with what signers provide.

Why it matters Saves data entry by writing values entered during signing back to the matching records.

How to use it

  1. Activate developer mode.
  2. Go to Sign > Configuration > Fields and open a text field.
  3. Set Linked to and Field, then tick Update Field.
Odoo 20 · Sign
Signature Fields with Linked to, Linked field and Update Field write-back columns
97
ImprovedEnterprise

Reorder signers

Sign > Templates > template > signer menu

In the Sign template editor, signers can be moved up or down in the signer list. The position of each signer in that list defines the order in which they are asked to sign the document. Changing the order is done from the menu of each signer, so a template can be adjusted when the signing sequence changes, without deleting signer roles and setting them up again with their fields.

Why it matters Lets users change signing order without recreating roles.

How to use it

  1. Go to Sign > Templates and open a template.
  2. Open a signer's three-dot menu.
  3. Move the signer up or down to change the order.
Odoo 20 · Sign
Signer menu in template editor with Move Up and Move Down
98
ImprovedEnterprise

Send signature requests from activities

Contacts > contact > Activity > Signature Request type

The Signature Request activity type starts a Sign request directly from a record. When a user schedules this activity, for example on a contact, they choose a Sign template or upload a PDF. The request is then logged in the chatter of the record, and a note is posted there once the document has been signed. The activity type can also be included in activity plans, so signature requests become part of a planned sequence of steps.

Why it matters Lets teams start signature requests from activities and track them in the chatter.

How to use it

  1. Open a contact.
  2. In the chatter, schedule an activity of type Signature Request.
  3. Choose a Sign template or upload a PDF.
Odoo 20 · Sign
Schedule Activity dialog on a contact with the new Signature Request type
99
ImprovedEnterprise

Sign templates

Sign > Templates > template > gear > Configuration

Sign templates and requests come with several extra options. A template can hold predefined CC recipients, and its ownership can be handed to another user. A sent document can be saved as a template or forwarded. The answers collected on a template can be exported to a spreadsheet. In the template editor, the underlying document can be replaced with a new file while the positions of the existing fields are kept. These options are reached from the gear menus of templates and requests.

Why it matters Helps teams reuse and manage templates with preset CC recipients, answer exports and document replacement.

How to use it

  1. Go to Sign > Templates, open a template, then gear > Configuration.
  2. Use gear > Export Answers to export answers.
  3. In the editor, use the document menu > Replace document.
Odoo 20 · Sign
Sign template configuration with Owner and preset CC recipients
100
ImprovedEnterprise

Improved progress tracking

Sign > Documents > request > Signers

When a signature request involves several people, the sent request shows a Signers dropdown. Opening it lists every signer together with their current status, and offers a resend button for each person. This makes it easier to follow who has signed and who is still pending on documents with many signers. The dropdown is shown on requests with three or more signers, according to the item description, and is opened from the request form in the Documents menu.

Why it matters Helps senders see each signer's status on requests with three or more signers.

How to use it

  1. Go to Sign > Documents.
  2. Open a request that has several signers.
  3. Click Signers to see each status and resend if needed.
101
ImprovedEnterprise

Mobile and touchscreen support

Sign (phone) > Templates > template

The Sign template editor has a dedicated layout for phones. On a small screen, the document, the signer roles and the fields are each placed in their own panel that fits the display, so a user can move between them without zooming. This means templates can be created and changed directly from a phone rather than only on a desktop. The layout appears automatically when Sign is opened on a phone and a template is opened for editing.

Why it matters Lets users prepare templates comfortably on phones with a dedicated small-screen layout.

How to use it

  1. Open the Sign app on a phone.
  2. Go to Templates and open a template.
  3. Switch between the document, signer and field panels.
102
ImprovedEnterprise

Non-latin alphabets

Sign writes text in several non-latin scripts correctly into the final signed PDF. Values typed by signers in Cyrillic, Devanagari, Arabic, Bengali or Gurmukhi are rendered properly because Odoo embeds Noto fonts in the document and selects, for each character, a font able to draw it. No setting is needed: the support applies whenever a signer fills a text field in one of these scripts and the signed PDF is generated and downloaded.

Why it matters Lets businesses sign documents written in Cyrillic, Devanagari, Arabic, Bengali or Gurmukhi scripts.

How to use it

  1. Send a document that contains a text field.
  2. Fill the field with non-latin text and sign.
  3. Download the signed PDF to check the result.
103
NewEnterprise

Qualified Electronic Signature via itsme®

Sign > Templates > template > signer role > Edit > Authentication

Sign supports eIDAS qualified electronic signatures through itsme. On a template, a signer role can be given the authentication method Qualified Signature via itsme. When that role signs, the document receives a qualified electronic signature under the eIDAS framework, with the signer's identity confirmed by itsme. The option is set per signer role, so a template can require this level of signature for some signers and use other authentication methods for the rest.

Why it matters Lets businesses obtain eIDAS Qualified Electronic Signatures using itsme authentication.

How to use it

  1. Open a Sign template.
  2. Open a signer role's menu and click Edit.
  3. Set Authentication to Qualified Signature via itsme.
104
ImprovedEnterprise

Sign mode options menu

Signing page > Options menu

While a signer is viewing a document to sign, an Options menu is shown next to their name at the top right. It contains Decline to sign, Download to get a copy of the document, for instance to print it, and Delegate, which sends the document to another person. Delegate is only available when the signer's role allows delegation. The menu is reached from the signing link in the email or from the signing page of a pending request.

Why it matters Lets signers decline, delegate when allowed, or download the document from one menu.

How to use it

  1. Open the link from the document-to-sign email.
  2. Click Options next to your name, top right.
  3. Choose Decline, Download or Delegate.
105
ImprovedEnterprise

Signed PDFs: bookmarks and settings

When Odoo produces the final signed PDF, it keeps the bookmarks, also called the outline, and the PDF metadata of the document that was uploaded. As a result, a long signed contract can still be navigated through its original bookmarks in any PDF reader, and properties stored in the file are preserved. No configuration is required; it applies to every signed document generated from a PDF that contains bookmarks or metadata.

Why it matters Keeps signed PDFs easy to navigate by preserving the original bookmarks and metadata.

How to use it

  1. Upload a PDF with bookmarks and send it for signature.
  2. Sign the document.
  3. Open the signed PDF in a PDF reader to check bookmarks.
106
ImprovedEnterprise

Touchscreen support

Sign (tablet) > Templates > template

The Sign template editor accepts touch input. On a tablet or another touchscreen device, a user can drag a new field from the field list onto the document and move fields that are already placed, using a finger or a stylus. This makes it possible to prepare templates on touch devices without a mouse. The behaviour is available as soon as a template is opened in the editor on such a device.

Why it matters Lets users place fields on documents with a finger or stylus.

How to use it

  1. Open the Sign app on a tablet.
  2. Go to Templates and open a template.
  3. Drag a field onto the page with a finger.

10 new in Odoo 20

Calendar

10 features
107
ImprovedEnterprise

Booking Pages

Calendar > Calendar (side panel)

The Calendar app has a 'Share my calendar' button in the control panel and a 'Booking Pages' section in the side panel. Users manage their appointment types and share booking links from there without leaving Calendar. The '+ Add Booking Pages' option adds appointment types to the section, so the user's own booking pages are always at hand next to the calendar.

Why it matters Lets users manage appointment types, share invite links and adjust slots from the Calendar sidebar.

How to use it

  1. Go to Calendar > Calendar.
  2. Use Share my calendar in the control panel.
  3. In the side panel, click + Add Booking Pages.
Odoo 20 · Calendar
Calendar side panel Booking Pages section with copy-link and edit actions
108
NewCommunity

Google Calendar sync

Settings > Technical > Scheduled Actions

Work locations set in Google Calendar are synchronised to the work location fields of employees in Odoo. A daily scheduled action keeps this information up to date. Employees who set where they work in Google therefore show the same location in Odoo. Administrators can see the task under Scheduled Actions in developer mode by searching the list for 'working locations'.

Why it matters Helps teams see Google Calendar work locations in Odoo Calendar.

How to use it

  1. Enable developer mode.
  2. Go to Settings > Technical > Scheduled Actions.
  3. Search for working locations.
Odoo 20 · Calendar
Scheduled action HR Calendar Google: sync working locations
109
ImprovedCommunity

Linked records

Calendar > Meetings (full form)

Calendar events have an editable 'Linked to' field. Users attach a meeting to any relevant Odoo record, such as a lead, a task or a sales order, by choosing the model type and then the specific record. The field is on the full event form. This keeps each meeting connected to the business document it concerns, directly from the calendar event itself.

Why it matters Helps teams connect meetings to the related Odoo records.

How to use it

  1. Open a meeting in Calendar in full form view.
  2. Set the Linked to field's model type.
  3. Select the record to link.
Odoo 20 · Calendar
Event form Linked to field listing Odoo models to attach the meeting to
110
NewCommunity

Manage pending activities

Calendar > Calendar (week view)

Pending activities appear in the calendar as an 'N pending activities' entry at the top of each day. Clicking it opens a popover where activities can be viewed, marked as done, rescheduled or edited. The entries are shown in week view when the 'My Activities' toggle in the side panel is on, so users handle their to-dos right next to their meetings.

Why it matters Lets users handle their pending activities directly from the Calendar app.

How to use it

  1. Go to Calendar > Calendar in Week view.
  2. Enable My Activities in the side panel.
  3. Click a day's pending activities count.
Odoo 20 · Calendar
Week view pending activities count opening a list to reschedule, mark done or edit
111
NewCommunity

Meeting title time detection

Calendar > Calendar (quick create, week view)

When an event is created in the all-day row with a time in its title, such as '2 PM Client call', Odoo reads the time, turns off the all-day option and schedules the event at that hour. Time ranges such as '9-10' or '14:30-16:00' are also understood. This works for quick creation in the week view, confirmed by pressing Tab.

Why it matters Saves time by scheduling events automatically from a time typed in the title.

How to use it

  1. Go to Calendar > Calendar in Week view.
  2. Click an empty cell in the all-day row.
  3. Type a title with a time and press Tab.
Odoo 20 · Calendar
Typing 2 PM Meeting sets the event to 2:00-3:00 PM automatically
112
NewCommunity

Multiple calendars in one place

Calendar > Calendar (side panel > My Calendars)

Users can create several personal and shared calendars. Each calendar has its own colour and privacy settings, and team calendars can be shared with colleagues for joint scheduling. Calendars are listed under 'My Calendars' in the side panel, where '+ Add a calendar' creates a new one and where its sharing settings are configured for the people who should see it.

Why it matters Lets users manage several calendars, including shared team calendars, in Odoo.

How to use it

  1. Go to Calendar > Calendar.
  2. Under My Calendars in the side panel, click + Add a calendar.
  3. Set colour, privacy and sharing.
Odoo 20 · Calendar
Calendar: My Calendars, Meet with, Share, pending activities
113
ImprovedCommunity

View other people's calendars

Calendar > Calendar

The Calendar side panel has a 'Meet with' field. Users add colleagues there to see their meetings next to their own, with each person shown in a separate colour. This makes it easier to find a time that suits everyone before planning a meeting. Colleagues are added by typing their name in the field and choosing them from the list that appears.

Why it matters Helps users find a time with colleagues and invite them directly.

How to use it

  1. Go to Calendar > Calendar.
  2. Find the Meet with field in the side panel.
  3. Type a colleague's name and select them.
Odoo 20 · Calendar
Meet with field showing a colleague's availability greyed out in the week view
114
ImprovedCommunity

Google and Outlook synchronization

Settings > Integrations; Calendar > Calendar

In the Calendar app, synchronisation with Google and Outlook calendars uses streamlined sync flows, gives detailed error messages, and lets the user switch the linked account. When a sync fails, retry options appear in the calendar header. The 'Synchronize with Google' and 'Synchronize with Outlook' buttons are shown in the Calendar header once the provider credentials have been set in the Integrations settings.

Why it matters Keeps Odoo calendars in sync with Google Calendar and Outlook faster and more reliably.

How to use it

  1. Set Google and Outlook credentials in Settings > Integrations.
  2. Go to Calendar > Calendar.
  3. Click Synchronize with Google or Outlook in the header.
115
ImprovedCommunity

Mobile calendar redesign

Calendar (phone)

On phones, the calendar uses a compact layout: a thin calendar filter strip, narrower day headers, and all-day items shown as chips. More of the screen is left for events, and touch interaction is easier. The layout applies automatically when Calendar is opened on a mobile device or in a desktop browser window narrowed to the size of a phone screen.

Why it matters Helps users manage their calendar comfortably on mobile devices.

How to use it

  1. Open Calendar on a phone or narrow browser window.
  2. Use the compact layout and filter strip.
116
NewCommunity

Sync multiple Google calendars

Calendar > Calendar (side panel)

Several Google calendars can be synchronised, each with its own Odoo calendar, and changes are reflected in both directions. Every calendar in the side panel list has a 'Google Sync' toggle, so syncing is switched on or off for each calendar separately. Users therefore decide which of their calendars stay in step with Google and which remain only in Odoo.

Why it matters Keeps several Google calendars and Odoo updated in both directions.

How to use it

  1. Go to Calendar > Calendar.
  2. Find your calendar list in the side panel.
  3. Switch Google Sync on or off per calendar.

10 new in Odoo 20

Phone

10 features
117
ImprovedEnterprise

Auto-fill and auto-log

Contacts > a contact > Softphone

When the softphone is opened while a record such as a contact is displayed, the keypad is already filled with that record's phone number and the contact is suggested. If the user calls that number, the call is recorded as an activity on the same record. This saves typing the number and keeps a trace of the call on the record the user was working on. It works from the phone icon in the top bar.

Why it matters Saves time by pre-filling the record's number and logging the call on it automatically.

How to use it

  1. Open a contact that has a phone number.
  2. Click the phone icon in the top bar.
  3. Call the pre-filled number to log the call there.
Odoo 20 · Phone
Softphone opened on a contact with its number pre-filled for auto-logging
118
NewEnterprise

Call flow designer

Phone > Configuration > PBX > Call Flows > New

Phone includes a visual Call Flow editor for designing how incoming calls are handled. Steps are chosen from a palette and connected on a canvas. Available steps include calling a user, a contact or a group, sending to a queue, opening a menu, playing audio, voicemail, redirecting to an extension or an external number, a time condition and hanging up. Administrators build these flows in the PBX configuration to define routing for the company's numbers.

Why it matters Lets businesses design how incoming calls are routed using menus, extensions and time- or location-based steps.

How to use it

  1. Go to Phone > Configuration > PBX > Call Flows.
  2. Click New.
  3. Pick steps from the palette and link them on the canvas.
Odoo 20 · Phone
Call flow designer with step palette and start node on the canvas
119
ImprovedEnterprise

Call logging in chatter

Phone > Calls > a call > Log Call

Calls can be logged in the chatter of a related record. A Log button in the softphone during a call, and a Log Call button on the call record afterwards, open a Log Activity in Chatter dialog. The user chooses the record to log against, such as a contact, lead, ticket, employee, task, sale order or subscription, adds a note and clicks Mark Done. The call then appears in that record's history.

Why it matters Helps teams keep call notes on the record during or after a call.

How to use it

  1. Go to Phone > Calls.
  2. Open a finished call.
  3. Click Log Call, choose the record, add a note, Mark Done.
Odoo 20 · Phone
Log Call dialog to log a finished call in the chatter of a chosen record
120
ImprovedEnterprise

Audio settings during a call

Softphone > status menu > Audio settings

The softphone status menu contains an Audio settings entry. From it, the user selects which microphone and which speakers to use for calls, and separately chooses the output device for the ringtone. The menu stays available during a call, so a user can switch to a headset or another device while talking, without ending the call. It is opened from the status button at the top left of the softphone.

Why it matters Lets users switch microphone or speaker mid-call without hanging up.

How to use it

  1. Open the softphone.
  2. Click the status button at the top left.
  3. Hover Audio settings and pick the devices.
121
NewEnterprise

Call transfer to another device

Softphone on another device

A call in progress can be moved to another device used by the same user. When the user opens Odoo on the second device, the softphone shows a message about active calls on another device with a Switch here button, which takes over the call. The transfer keypad can also be pre-filled with the user's desk or mobile number, which helps when passing a call to one of those phones.

Why it matters Lets users move an ongoing call to another device without interruption.

How to use it

  1. Start a call in Odoo on one device.
  2. Open the softphone on another device.
  3. Click Switch here.
122
NewEnterprise

Choose outgoing number

Phone > Phone Numbers; Softphone > status menu > My numbers

A user can have several phone numbers. In the softphone status menu, My numbers lists them with a country flag, and the number currently used is marked as the caller ID. An Auto-select switch lets Odoo choose the number that matches the country of the person being called. Numbers are assigned to users from the Phone Numbers menu, and each user picks among their own numbers from the softphone.

Why it matters Lets users pick which of their numbers appears as caller ID.

How to use it

  1. Go to Phone > Phone Numbers and assign numbers to a user.
  2. Open the softphone and click the status button.
  3. Hover My numbers and choose a number or Auto-select.
123
NewEnterprise

Floating widget

During a call, the softphone can shrink into a small Picture-in-Picture window. This window floats above other browser tabs and applications and can be dragged anywhere on the screen. It shows the caller, the call timer, and buttons for the keypad, mute, hold, recording and hanging up. It appears when the user switches away from the Odoo tab during a call, so the call stays under control while working elsewhere.

Why it matters Lets users keep the softphone open while working on other page content.

How to use it

  1. Start a call.
  2. Switch to another tab or application.
  3. Use the floating call window to control the call.
124
NewEnterprise

Linphone

My Preferences > Phone > Provisioning

Users of the Odoo Phone Service can set up the Linphone app with a QR code. The Phone tab of the user's preferences has a Provisioning section that shows the code; scanning it with the Linphone mobile app configures the account automatically. For Linphone Desktop, a provisioning link is provided in the same place. This removes the need to type account details by hand.

Why it matters Speeds up Linphone setup by provisioning it through a QR code scan.

How to use it

  1. Open My Preferences and go to the Phone tab.
  2. Click Show QR code under Provisioning.
  3. Scan the code with the Linphone app.
125
NewEnterprise

Push notifications

When a call comes in, Odoo sends a web push notification to the user's devices. The call can therefore be seen and answered even when no Odoo tab is in the foreground. If the call is picked up on another device or cancelled, Odoo updates or withdraws the notification. Browser notifications must be allowed for this to work. The feature works while Odoo runs in the background.

Why it matters Helps users notice incoming calls through push notifications.

How to use it

  1. Allow notifications for Odoo in the browser.
  2. Keep Odoo in the background.
  3. Receive a call to see the push notification.
126
NewEnterprise

Simultaneous calling

My Preferences > Phone > Ring Concurrent Calls

A user can handle more than one call at a time. During a call, an Add Call button in the softphone starts a second call; the first one is put on hold and appears as a banner at the top of the softphone. For incoming calls, the Ring Concurrent Calls preference decides whether a second call rings while the user is busy, or follows the On Busy rule instead.

Why it matters Lets users handle a second call while one is already in progress.

How to use it

  1. Open My Preferences > Phone.
  2. Set Ring Concurrent Calls.
  3. During a call, click Add Call in the softphone.

9 new in Odoo 20

Documents

9 features
127
NewEnterprise

Access right management

Documents > Share

The Share dialog in Documents has 'Add People' and 'Add Groups' options. A group, managed in Documents > Configuration > Groups, can receive Viewer or Editor access to a file or a folder. Access is then granted once for every member of the group, without adding people one by one. Document managers use it to control who can see or edit shared folders.

Why it matters Helps administrators manage file and folder access through user groups.

How to use it

  1. Go to Documents and select a folder.
  2. Click Share.
  3. Choose Add Groups, then pick a group and a role.
Odoo 20 · Documents
Folder Share dialog with the new Add Groups option to grant access by user group
128
NewEnterprise

Auto-sort fleet documents

Documents > Inbox > Auto-sort

The AI Documents Fleet module adds an AI tool called 'Link Document to Vehicle'. When a folder uses AI auto-sort, the AI reads the licence plate found in a document, such as a traffic fine, moves the document to the Fleet folder and links it to the vehicle with that plate. Fleet managers receiving vehicle paperwork can have it filed against the right car.

Why it matters Saves time by filing fleet documents to the right vehicle by license plate.

How to use it

  1. Go to Documents > Inbox.
  2. Open the folder menu (three dots) and choose Auto-sort.
Odoo 20 · Documents
Auto-sort AI rule linking documents to the vehicle with the matching license plate
129
ImprovedEnterprise

Employee documents

Settings > Documents > Files Centralization

Employee documents work without enabling a separate Employees and Documents bridge. Each company has an Employees folder, an HR access group and employee subfolders, all set in the Documents settings under Files Centralization. With Payroll, payslips are stored in a payroll folder inside each employee's folder, and a shortcut is added to that employee's My Drive. HR teams use this to keep employee files in one place.

Why it matters Helps HR keep employee files organized, with payslips in a dedicated folder.

How to use it

  1. Go to Settings > Documents.
  2. Open Files Centralization to set the employee folder options.
Odoo 20 · Documents
Files Centralization employee options: Employees folder, HR and Payroll access groups, subfolders
130
NewEnterprise

Rename files with AI

Documents > Inbox > Auto-sort

AI auto-sort includes a 'Rename File' tool. In a folder's Auto-sort prompt, the user describes a naming rule; the default suggests a pattern of origin, sender, document type and date. The AI then renames incoming files according to that rule and keeps the original file extension. Files arriving in the folder thus get consistent names. The tool is configured per folder.

Why it matters Saves time by letting AI rename uploaded files.

How to use it

  1. Go to Documents > Inbox.
  2. Open the folder menu (three dots) and choose Auto-sort.
  3. Describe the naming rule in the prompt.
Odoo 20 · Documents
Documents Auto-sort AI prompt with a file renaming rule and Rename File tool
131
ImprovedEnterprise

Bank statement attachments

Documents > Finance > Bank

When a PDF or an image is attached to a bank statement in Accounting, Documents creates a matching document in the folder configured for that bank journal. The document stays linked to the statement. Accountants can therefore find bank statement files alongside invoices and bills in Documents and open the related statement from the document's info panel. The document is placed in the Finance > Bank folder.

Why it matters Lets accountants find bank statement attachments in both Accounting and Documents.

How to use it

  1. In Accounting, attach a PDF to a bank statement.
  2. Go to Documents > Finance > Bank and select the file.
  3. Open the info panel.
132
ImprovedEnterprise

Branch management

For companies that use branches, accounting files from a branch are filed according to the journal folder settings of the parent company. Users of a branch can also access the folders of the parent company. This keeps the documents of a company and its branches organised in the same folder structure. Branch users therefore work within the folder structure set up for the parent company.

Why it matters Lets companies with branches use the Accounting and Documents integration.
133
ImprovedEnterprise

Document request upload notification

Documents > document with request > Chatter

When another person uploads the file for a document request, OdooBot posts a message on the document addressed to the person who made the request, saying that the requested document has been uploaded. The requester is informed without needing to check the request. The message appears in the chatter of the document. This applies whenever someone other than the requester uploads the file.

Why it matters Lets requesters know as soon as requested documents are uploaded.

How to use it

  1. Create a document request for a colleague.
  2. Let the colleague upload the file.
  3. Open the document and check its chatter.
134
NewEnterprise

Markdown previews and thumbnails

Documents

Markdown (.md) files stored in Documents show a rendered thumbnail on their card and a formatted preview when opened. The preview displays headings, lists and bold text as formatted content instead of raw markup. Users storing Markdown files can read them formatted directly in Documents. The rendering applies to any .md file uploaded to Documents, both on its card and in the preview.

Why it matters Lets users preview Markdown files without opening them.

How to use it

  1. Upload a .md file in Documents.
  2. Look at its card thumbnail, then open the preview.
135
ImprovedEnterprise

Multi-file document request

Documents > create request

A single document request accepts several files. Each additional file creates its own document, with the same access rights and shortcuts as the original request. Files can be uploaded through the request link or from the request card. This is useful when the person asked for a document needs to provide it in several parts. All files remain tied to the same request.

Why it matters Lets teams request several files in a single document request.

How to use it

  1. In Documents, create a document request.
  2. Upload two or more files from the request link or card.

9 new in Odoo 20

Studio

9 features
136
ImprovedEnterprise

Form view customization

Studio > form view editor

In Studio's form editor, buttons, smart buttons and notebook tabs can be dragged to new positions. Administrators reorder them within the form layout directly, without deleting and adding them again. Buttons move within the button bar, and tab headers move among the other tabs of the notebook. This works on any form opened in Studio, so layouts can be arranged quickly.

Why it matters Lets users rearrange buttons, smart buttons and tabs on forms by dragging.

How to use it

  1. Open a form in Studio.
  2. Drag buttons or smart buttons to new positions.
  3. Drag notebook tab headers to reorder tabs.
Odoo 20 · Studio
Studio form editor: header buttons, smart buttons and notebook tabs that can be dragged
137
ImprovedCommunity + Enterprise

List view column width

Studio > list view editor > Column Properties

List view columns can have a minimum and a maximum width in pixels. The column then stays readable when the window is resized, never shrinking too far or stretching too wide. In Studio, the width is set in the 'Column Width (px)' property of a selected column, given as a pair of values such as [200, 320] for the minimum and maximum.

Why it matters Keeps list views readable by setting minimum and maximum column widths.

How to use it

  1. Open a list view in Studio.
  2. Select a column.
  3. Set Column Width (px) in the Properties panel.
Odoo 20 · Studio
Studio list editor: Column Width (px) property for the selected Email column
138
ImprovedEnterprise

Many2Many fields in PDF reports

Studio > report editor

In Studio's report editor, Many2many fields such as Tags can be inserted in a PDF report directly through the field selector. No helper field is needed to show these values. The user types / in the report body, picks the Field option and searches for the Many2many field to insert. The values of the field are then printed in the report.

Why it matters Lets users show many2many fields like Tags on PDF reports.

How to use it

  1. Open a PDF report in Studio's report editor.
  2. Type / in the report body.
  3. Choose Field and search for the Many2many field.
Odoo 20 · Studio
Report editor field selector offering the many2many Tags field
139
ImprovedEnterprise

Report editor

Studio > report editor

Studio's report editor has separate Editor, Preview and Sources tabs. When the user clicks an element shared by several reports, such as the tax totals block, the editor warns that changes will affect the other reports using it. Administrators can edit a PDF report, check the result and view its source code from the same screen, while being told about shared parts.

Why it matters Helps users edit and preview PDF reports safely, with warnings on shared templates.

How to use it

  1. Open a PDF report in Studio's report editor.
  2. Switch between Editor, Preview and Sources tabs.
  3. Click a shared element to see the impact warning.
Odoo 20 · Studio
Redesigned Studio report editor with Editor, Preview and Sources tabs
140
NewCommunity + Enterprise

Warning for past or future dates

Studio > field properties

Date and Datetime fields can show a warning icon when a user enters a date in the past or in the future. It is configured in Studio through a single Warning property on the field, set to 'Past date' or 'Future date'. Users filling in the form then see the icon whenever the date they enter falls on the flagged side of today.

Why it matters Helps users spot dates in the past or future through warning icons.

How to use it

  1. In Studio, select a Date or Datetime field.
  2. Set the Warning property to Past date or Future date.
Odoo 20 · Studio
Studio date field properties with new Warning option for past/future dates
141
NewCommunity

Automation rules: activity plans

Settings > Technical > Automation Rules

Automation rules can launch a whole activity plan, such as an onboarding sequence, as an action rather than a single activity. When the rule triggers, all the preset activities of the plan are scheduled automatically. In a Create Activity action, the administrator selects an Activity Plan in place of a single activity type. Rules are managed from the technical Automation Rules menu in Settings.

Why it matters Lets businesses launch a whole activity plan automatically with automation rules.

How to use it

  1. Go to Settings > Technical > Automation Rules.
  2. Open or create a rule.
  3. Add a Create Activity action.
  4. Select an Activity Plan.
142
ImprovedEnterprise

Kanban stage cutomization

Studio > form view status bar

In Studio, stages can be added or reordered from the status bar of a form. Administrators click 'Add Stage' on the status bar to create one and drag existing stages to change their order, without going to a separate Kanban view or settings screen. It works on forms that have a status bar, such as the Events form, while editing in Studio.

Why it matters Lets users add or reorder stages directly from the form status bar.

How to use it

  1. Open a form with a status bar in Studio.
  2. Click Add Stage on the status bar.
  3. Drag stages to reorder them.
143
ImprovedEnterprise

Report translations

Studio > report editor > Sources > Translate

Report translations are done in one dialog that shows the whole report code, with translatable phrases highlighted in context. Translators see each phrase where it appears in the report rather than as separate pieces of text. The dialog opens from the Translate button in the code editor header, on the Sources tab of Studio's report editor, for any PDF report.

Why it matters Helps users translate report text in one dialog with translatable phrases highlighted.

How to use it

  1. Open Studio's report editor.
  2. Go to the Sources tab.
  3. Click Translate in the code editor header.
144
ImprovedEnterprise

User-friendly technical names

Studio > field properties

Fields created in Studio get readable technical names based on their labels. For instance, a field labelled 'Venue booking reference' gets the technical name x_studio_venue_booking_reference. Developers and administrators can therefore recognise a field from its technical name. The name is shown in the Technical Name field of the field's Properties panel right after the field is added to a form.

Why it matters Helps developers and admins recognize new Studio fields by readable technical names.

How to use it

  1. Add a new field to a form in Studio.
  2. Open its Properties panel.
  3. Check the Technical Name field.

7 new in Odoo 20

Dashboards

7 features
145
NewCommunity + Enterprise

Carousel data layer

Dashboards > Sales

A dashboard carousel can include a data tab that displays a range of spreadsheet cells, in other words a table, alongside charts. On a phone, carousels are shown one per card, so these tables remain readable on a small screen. An example is the Top Countries card of the Sales dashboard, which offers a Map tab and a Top 50 tab.

Why it matters Makes dashboard content readable on mobile by showing cell ranges in carousels.

How to use it

  1. Open Dashboards > Sales on a phone.
  2. Scroll to the Top Countries card.
  3. Tap the Top 50 tab.
Odoo 20 · Dashboards
Top Countries carousel switching from Map to the Top 50 data range tab
146
NewCommunity

Favorite filters

Dashboards > Sales (search dropdown)

The dashboard search panel has a Favorites section for global filters. After setting the filters, a user clicks Save current search, gives it a name and can tick Default filter so the dashboard opens with those filters applied. Favorites are stored for each dashboard separately and can be shared with other users. Managers who check the same view often can save it once and reopen it in one click.

Why it matters Saves time by reusing favorite global filters and setting a default one.

How to use it

  1. Open Dashboards > Sales.
  2. Set the global filters and open the search dropdown.
  3. Click Save current search, name it, tick Default filter, Save.
Odoo 20 · Dashboards
Dashboard search panel Favorites: save global filters with a Default filter toggle
147
NewCommunity

Frozen share links

Dashboards > Configuration > Share links

A Share links menu in the Dashboards configuration lists every frozen share link created with a dashboard's Share button. For each link it shows the name, dashboard, section, author, date and URL. To revoke a link, the user switches off its Active toggle, after which the shared snapshot is no longer reachable. The menu gives administrators one place to review which dashboard snapshots have been shared, who created them and when.

Why it matters Helps admins manage all frozen share links from one menu.

How to use it

  1. Open a dashboard, for example Dashboards > Sales, and click Share.
  2. Go to Dashboards > Configuration > Share links.
  3. Switch off Active to revoke a link.
Odoo 20 · Dashboards
Dashboards configuration: Share links
148
NewCommunity

Private dashboards

Dashboards > Configuration > Dashboards

A dashboard can be restricted to specific people through the Allowed Users field. To make a private dashboard, the Access Groups field is left empty and the users who may see it are listed in Allowed Users; only those users can then open it. This is configured from the dashboard records in the Dashboards configuration menu. Access is managed by administrators from the Dashboards configuration, where each dashboard record holds both fields.

Why it matters Lets businesses restrict dashboards to specific users.

How to use it

  1. Go to Dashboards > Configuration > Dashboards.
  2. Open or create a dashboard.
  3. Empty Access Groups and set Allowed Users.
Odoo 20 · Dashboards
Dashboard configuration with Access Groups and the new Allowed Users field
149
NewCommunity

Region selector for geo charts

Dashboards > Sales (Top Countries chart)

When a geo chart on a dashboard is set to World, a region selector is shown at the top right of the chart. Choosing Africa, Asia, Europe, North America, South America or Oceania zooms the map to that region, so data for one part of the world is easier to read. The selector is available on any geo chart set to World, such as the Top Countries map in the Sales dashboard.

Why it matters Lets users zoom World geo charts into a specific region.

How to use it

  1. Open Dashboards > Sales.
  2. Go to the Top Countries map.
  3. Open the World selector and pick a region.
Odoo 20 · Dashboards
World geo chart region selector: Africa, Asia, Europe, Americas, Oceania
150
ImprovedCommunity + Enterprise

Billing targets vs billable time

Timesheets > Configuration > Settings; Dashboards > Timesheets

The Timesheets dashboard contains extra Targets sheets. When billing rate indicators are switched on in the Timesheets settings, the dashboard displays a chart comparing the amount billed each month with the billing target, and adds a billing target column to the lists of top departments and top employees. Managers use it to see whether billable time is meeting the targets set for their teams.

Why it matters Helps managers check whether billable time is meeting billing targets.

How to use it

  1. Go to Timesheets > Configuration > Settings.
  2. Enable the billing rate indicators.
  3. Open Dashboards > Timesheets.
151
NewCommunity

Fiscal year date filter

Dashboards > Invoicing

Date filters in dashboards and spreadsheets can use a Fiscal Year period that follows the company's fiscal year, with arrows to move to the previous or next year. The option only appears when the company's fiscal year differs from the calendar year, for example a year ending on 31 March as set in the Accounting settings. Users switch between years with the arrows beside the period name.

Why it matters Lets users filter dashboards by fiscal year.

How to use it

  1. Set a fiscal year end other than 31 December in Accounting settings.
  2. Open Dashboards > Invoicing.
  3. Open the date filter and choose Fiscal Year.

6 new in Odoo 20

Discuss

6 features
152
NewCommunity + Enterprise

Call transcripts

Discuss > Call History

Discuss calls can be recorded with a Start recording call action, and the recordings are stored as call artifacts. The Call History menu opens a Call Debrief tab with an audio player and, when the AI app is installed, a transcript with timestamps. The source notes that an AI summary was found only for Phone (VoIP) calls, not for Discuss calls.

Why it matters Helps teams record Discuss calls and review conversation summaries afterward.

How to use it

  1. Start recording during a Discuss call.
  2. Go to Discuss > Call History and open a recorded call.
  3. Open the Call Debrief tab.
Odoo 20 · Discuss
Discuss sidebar: Call History
153
NewCommunity

Channel categories

Discuss > Channels

Channels in Discuss can be placed into categories. The Channels list groups channels by their category, and the category of a channel is set on the channel form. This helps users with many channels keep them organised by topic or team. Categories are visible to users browsing the Channels list, so related channels sit together under one heading instead of in a single long list. Users find the setting on the form of each channel.

Why it matters Helps users keep many channels organized into categories.

How to use it

  1. Go to Discuss > Channels.
  2. Open a channel form and set its category.
  3. View the channel list grouped by category.
Odoo 20 · Discuss
Channels list organized by category: Favorites, Products & Services, Community
154
NewCommunity

Favorite channels

Discuss > Channels

Each channel member can mark a channel as a favorite using Add to Favorites in the channel actions. Favorite channels display a star and are listed first, giving quicker access to the conversations a user follows most. The choice is personal to each member. Favorites are set from the channel actions available when a channel is open in a chat window, and the result is shown in the Channels tab of Discuss.

Why it matters Lets users reach their most-used channels faster.

How to use it

  1. Open a channel in a chat window.
  2. Choose Add to Favorites in the channel actions.
  3. Check Discuss > Channels for the starred channel.
Odoo 20 · Discuss
Channel actions menu with the new Add to Favorites option
155
NewCommunity

Polls

Discuss > Channels

Polls can be created from the message composer in Discuss channels and chats. Members choose one or more options, can see the results and the remaining time, and the poll closes automatically at its end time. This gives teams a quick way to collect opinions inside a conversation. Polls are added through a dedicated action in the composer and are posted like any other message in the conversation.

Why it matters Lets teams gather opinions quickly with polls in conversations.

How to use it

  1. Open a channel in Discuss.
  2. Use the composer action to create a poll.
  3. Add options and an end time, then post it.
Odoo 20 · Discuss
A poll in a Discuss channel with options, vote count and time left
156
NewEnterprise

"On a call" status

Discuss > Chats

Discuss shows when a colleague is on a phone call. If the user is in a call in the Phone (VoIP) app, a small phone icon replaces the usual status dot on their avatar, and hovering over it states that the person is on a call. Users who have set themselves as offline remain hidden. Colleagues can use this to avoid interrupting someone who is talking with a customer.

Why it matters Lets colleagues see when someone is busy on a Phone app call.

How to use it

  1. Have a colleague start a call in the Phone app.
  2. Open Discuss.
  3. Look at the colleague's avatar for the phone icon.
157
NewCommunity

Mark notifications as unread

Contacts (chatter notifications)

For users who receive notifications inside Odoo, a notification message that has already been read offers a Mark as Unread action. Using it sends the message back to the Inbox so it can be handled later. The action is found in the more actions menu of the message. It applies to users whose notification preference is set to In Odoo, for messages received on records they follow.

Why it matters Lets users mark notifications unread again as a reminder to revisit them.

How to use it

  1. Set Notification to In Odoo in your preferences.
  2. Open a record where you got a notification.
  3. Hover the message, open more actions, choose Mark as Unread.

5 new in Odoo 20

Technical & admin

5 features
158
ChangedCommunity

Mail: in-body tracking

Apps > search "Discuss Tracking"

Field changes are written directly into the body of the chatter message rather than stored as separate tracking value records. The mail.tracking.value model is provided by an optional module, Discuss Tracking (mail_tracking). Burndown charts and stage duration figures read their data from duration tracking. Administrators who need the tracking value records can install Discuss Tracking from the Apps list. The module is found in Apps.

Why it matters Expect tracking messages generated on the fly; install the dedicated module to keep tracking values.

How to use it

  1. Go to Apps and remove the Apps filter.
  2. Search for Discuss Tracking and install it if needed.
Odoo 20 · Technical
Discuss Tracking (mail_tracking) module that restores stored tracking values
159
ChangedEnterprise

Push notifications

Settings > Website > Push Notifications

Website push notifications, part of Social Marketing, are sent through Odoo's own web push service and do not use Firebase. The Firebase library and settings are not included. The website setting for push notifications asks only for a title, a body, a delay and an icon, with no Firebase keys. Website administrators enable it in the Website settings. No Firebase account is needed.

Why it matters Expect push notifications to run on Odoo's own tools instead of Firebase.

How to use it

  1. Go to Settings > Website.
  2. Tick Push Notifications to see its options.
Odoo 20 · Technical
Website Push Notifications settings handled by Odoo's in-house push, no Firebase keys
160
ImprovedCommunity

Track source of postings

Settings > Technical > Messages

With Discuss Tracking installed, each posted message stores which email template or QWeb view produced its content. Because outgoing emails (mail.mail) are built on messages, they carry this information too. The fields are 'Src Template' and 'Src View', and messages can be grouped by them. Administrators use it to trace where an email's content came from. Developer mode is needed to open Settings > Technical > Messages.

Why it matters Helps auditors see where the content of each mail record came from.

How to use it

  1. Install Discuss Tracking and activate developer mode.
  2. Go to Settings > Technical > Messages.
  3. Open a message sent from a template.
Odoo 20 · Technical
Message record showing its source: Src Template, Src SMS Template and Src View
161
NewCommunity

Tracking user group changes

Settings > Users & Companies > Users > [User]

When someone changes the groups of a user, the server log records who made the change, from which IP address, and what was changed. The user's chatter also receives a note listing the groups that were added and removed. Administrators and auditors can use this to review changes to access rights. The note is posted when the user record is saved after the change.

Why it matters Helps administrators audit changes to user groups in the chatter and logs.

How to use it

  1. Go to Settings > Users & Companies > Users and open a user.
  2. Change one of the user's access rights and save.
  3. Look at the chatter.
Odoo 20 · Technical
User chatter logging each access group added to the user
162
ImprovedCommunity

Many-to-one field improvements

Many-to-one fields keep their values synchronised with the backend. Adding and removing values in these fields works reliably, including in large lists, which reduces errors when editing relational data.

Why it matters Makes adding and removing values in many-to-one fields more reliable, even in large lists.

5 new in Odoo 20

WhatsApp

5 features
163

Default recipents on templates

WhatsApp message templates can include default recipients. When such a template is used, the recipients defined on it are filled in by default, so messages go to the intended contacts.

Why it matters Saves time by setting default recipients on WhatsApp templates.
164

Interactive message templates

Interactive WhatsApp message templates can be created in Odoo. These templates are used for WhatsApp messages that recipients can interact with, and are managed with the other WhatsApp templates.

Why it matters Lets businesses send interactive WhatsApp messages to engage customers.
165

Named parameters in templates

WhatsApp templates support named parameters. Variables inside a template can be referred to by a name, which makes it easier to see what each value in the message stands for.

Why it matters Helps users build clearer WhatsApp templates with named parameters.
166

Number blocking

A WhatsApp number can be blocked directly from Odoo. Users can stop an unwanted number from reaching them without leaving Odoo to manage the block somewhere else.

Why it matters Lets businesses block unwanted WhatsApp numbers directly from Odoo.
167

Simplified authentication process

Authenticating a WhatsApp Business account is simpler. Administrators go through an easier process when they link their company's WhatsApp Business account to Odoo for sending and receiving messages.

Why it matters Helps businesses connect their WhatsApp Business account more easily.

2 new in Odoo 20

Contacts

2 features
168
NewCommunity + Enterprise

Contact enrichment

Contacts > list view > Actions > Enrich

Contacts has an 'Enrich' action in the list and form views. For one or several selected contacts, it fills in company information such as the address, VAT number and industry. The data comes from Odoo's partner autocomplete service, based on the VAT number, company registry or D-U-N-S number already stored on the contact. It is run from the Actions menu.

Why it matters Saves data entry by filling contact address, VAT and industry automatically.

How to use it

  1. Go to Contacts and use the list view.
  2. Select the contacts to enrich.
  3. Open Actions and choose Enrich.
Odoo 20 · Contacts
Contacts list: Enrich action
169
NewCommunity + Enterprise

Hierarchical view

Contacts > Hierarchy view

Contacts offers a Hierarchy view in the view switcher. Companies are shown as cards, and clicking the contact count on a card, such as '3 Contacts', expands its child contacts and addresses beneath it in a structured layout. Users can see how the people and addresses of a company are organised without opening each company or contact record one by one.

Why it matters Helps users browse companies with their child contacts and addresses as a hierarchy.

How to use it

  1. Go to Contacts.
  2. Switch to the Hierarchy view.
  3. Click a company card's contact count to expand it.
Odoo 20 · Contacts
Contacts hierarchy view

1 new in Odoo 20

Knowledge

1 features
170
ImprovedEnterprise

Article settings quick access

Knowledge > sidebar > right-click an article

Article actions can be reached straight from the Knowledge sidebar. Right-clicking an article opens a quick menu with options to open it in a new tab, add it to favourites, share it, rename it, move it, copy it or delete it. The same menu is also available from a three-dot button on each row of the sidebar, for users who prefer clicking.

Why it matters Lets users reach article settings quickly by right-clicking in the sidebar.

How to use it

  1. Open the Knowledge app.
  2. Right-click an article in the sidebar.
  3. Pick an action from the quick menu.
Odoo 20 · Knowledge
Right-click quick menu on a sidebar article with Share, Rename, Move To and more

1 new in Odoo 20

Live Chat

1 features
171

Connect social media messaging

Live chat teams can be connected to Messenger and Instagram direct messages. Agents then answer the messages arriving from these social media channels directly from Odoo, through their live chat team.

Why it matters Lets agents answer Messenger and Instagram messages directly from Odoo.

1 new in Odoo 20

ESG

1 features
172

Assign emission factors with AI

In Odoo 20 the ESG app can use AI to pick the most suitable emission factor for each emission record automatically, so users do not have to assign factors one by one. The source gives no menu path.

Why it matters Saves sustainability teams time by letting AI assign the most suitable emission factor to each emission record.

in depth

The Productivity & AI changes that matter most

AI agents you can trigger and audit

Agents now update themselves to suit their use case, can be summoned by automated and scheduled actions, and keep an automation chat you can read to see how a task was handled and ask for corrections. They create and update records (including from PDF uploads), answer questions about files, filter by period, generate images and take voice requests.

An agent that runs on a trigger and leaves a readable trail is one you can put near real work: document intake, follow-ups, record updates. One you cannot audit stays a demo.

Odoo's release notes state that all AI features now need credits, bought via In-App Purchase. The capability is included; usage is metered.

AI for Odoo — what we build →

Connect Odoo to other systems through MCP

Odoo 20 can connect to external tools through MCP (Model Context Protocol), the open standard AI assistants use to call business systems. Agents also get default prompts with dynamic values and model-bound agents suggested per record type.

AI assistants and agents outside Odoo can work with your Odoo data through a standard interface rather than a one-off integration.

Treat it like any integration: scope which data and actions are exposed, and to whom, before switching it on.

Offline mode and a better mobile app

Create, edit, archive and delete records while offline, and rerun previous searches. Mobile gets a redesigned login, swipe-down command palette, touch-first forms and file sharing from the phone to digitise bills.

Field service, warehouse and site teams keep working where signal is unreliable.

keep exploring

Odoo 20 in other business areas

Odoo 20 Productivity & AI questions

  • How many new Productivity & AI features are in Odoo 20?

    172 across 16 apps, 27% of the 637 new features in the release by TechUltra's count. By app: Across all apps (42), Spreadsheet (30), AI (20), Sign (14), Calendar (10), Phone (10), Documents (9), Studio (9), Dashboards (7), Discuss (6), Technical & admin (5), WhatsApp (5), Contacts (2), Knowledge (1), Live Chat (1), ESG (1).

  • What are the biggest Productivity & AI changes in Odoo 20?

    In Across all apps, my subscription page: helps administrators see subscription plan, IAP services and database information in one place. In Spreadsheet, bubble charts: lets analysts compare three numeric measures in one chart using position and bubble size. In AI, agentic automation: lets businesses trigger AI agents from automated or scheduled actions and review their automation chats.

  • How do we get the Odoo 20 Productivity & AI features?

    If you run Odoo 16, 17, 18 or 19, they arrive with the upgrade to Odoo 20. A free written assessment lists your modules, the risks in your build and a fixed price. If you are new to Odoo, start directly on Odoo 20 with a fixed-price implementation, priced after a paid discovery week.

Sources: features, steps and the 99 screenshots are from TechUltra's Odoo 20 feature guide. Counted by TechUltra's Odoo team from the Odoo 20 source code and a live Odoo 20 database; industry packages are based on Odoo's official release notes. Localization changes are not included. The in-depth notes are from Odoo's Odoo 20 release notes.

ready when you are

Planning your move to Odoo 20?

Book a free 30-minute call with a TechUltra senior consultant for a process review or a clear upgrade path from Odoo 16, 17, 18 or 19.