Global filters

Global filters, represented by the Filters icon at the top right of an Odoo spreadsheet, allow you to apply one or more filters to all the Odoo data that has been inserted in that spreadsheet.

These filters are particularly useful for reports and dashboards as users can easily and dynamically customize the view to answer complex business questions spanning multiple data sources.

Tip

On a dashboard, global filters that have been created in the underlying spreadsheet are applied via the search bar at the top of the dashboard.

Global filters at the top of a dashboard

Four types of global filters are available:

  • Date: filters data based on a specific time range, with the options Month / Quarter, Relative Period, or From / To.

  • Relation: filters data based on a relational field in a related model, e.g., by Salesperson with the User model set as the related model.

  • Text: filters data based on a string of text or a range of predefined values, e.g., a product reference or barcode.

  • Yes/No: filters data based on whether or not a checkbox, or boolean, field is set, e.g., lead is active.

Unlike the standard (Add filters) spreadsheet function, which lets you sort and temporarily hide data, global filters act on the underlying data sources, filtering data before it is loaded into the spreadsheet.

When a global filter is created, field matching for each data source ensures the filter acts on the correct database fields.

Tip

  • Global filters work by adding extra conditions to the domains of all the data sources in the spreadsheet. Therefore, if you intend to use global filters, do not use the same conditions when configuring the initial list, pivot table, or chart in your database.

  • Setting default values, where relevant, ensures that the spreadsheet or dashboard loads quickly and provides a useful initial view that can be further customized if needed. For example, a Date filter could be set to show data from the last 30 days by default.

Field matching

Important

This process is crucial, as matching the wrong fields, or not setting matching fields at all, results in global filters that do not show the desired results.

To function as intended, a global filter needs to act on the correct database fields. Consider a Date filter applied to sales data. As the Sales Order model contains several date fields, it is crucial to determine which field is relevant for the filter, e.g., the order date, the delivery date, the expected date, or the expiration date.

When creating a global filter, the Field matching section of the Filter properties allows you to determine, for each data source in the spreadsheet, which database field the filter should act on, or match with.

Field matching is further explained in the relevant sections on creating Date, Relation, Text, and Yes/No global filters.

Create global filters

Open the desired spreadsheet from the Odoo Documents app or via the Odoo Dashboards app if you are adding filters to a dashboard.

To add a new filter, click Filters to open the Filters panel. Under Create filter, click Date, Relation, Text, or Yes/No as appropriate.

Note

Depending on the data source(s) present in the spreadsheet, suggested relation filters may be shown. Clicking on a suggested filter opens the Filter properties panel with certain values preconfigured.

When saving a global filter, if any required information is missing or if any information provided in the Field matching section is not appropriate, an error is shown stating Some required fields are not valid.

Tip

  • To access the underlying spreadsheet of a dashboard, activate developer mode, then click the (Edit) icon that appears when hovering over the dashboard name in the left panel.

  • Click (pin) at the top of the Filters panel to allow another panel, such as the Filter properties panel, to open beside it.

Date

Note

A Date filter can only match with a Date or Date & Time field.

With the Filter properties panel open:

  1. Enter a name for the new date filter in the Label field.

  2. To set a Default value, select one of the available values, e.g, Last 30 Days or Month to Date. When applying the global filter, any of the available values can be selected.

  3. In the Field matching section, for each data source, click beside Date field and select the field the filter should match with.

    The Period offset option, which appears when a date field is chosen, enables comparisons to be made by shifting the time range by one or more periods in the past or future. By default, no period offset is defined. To define a period offset, select Previous or Next, then select the desired number of periods in the past or future.

    Tip

    To compare data effectively using the Period offset feature, duplicate the relevant inserted list or pivot table, then, when setting up field matching, set a period offset for the second data source but not the first.

    When applying the filter, the original list or pivot table shows data for the time range selected, while the second shows data for a period before or after that time range, as defined.

  4. Click Save.

Example

In the example below, a Date global filter allows the pivot table and chart to show sales data for any defined time period, in this case, July 2025. The Custom Range always shows the actual dates corresponding to the chosen period; it can also be updated directly.

A date filter filters data for July 2025

In the Field matching section of the Filter properties, the field Order Date has been selected as the matching date field.

A date filter with the Order Date selected as the matching field

Relation

Note

A Relation filter can only match with a Many2One, One2Many, or Many2Many field.

With the Filter properties panel open:

  1. Enter a name for the new relation filter in the Label field.

  2. In the Related model field, start typing the model name to reveal a list of all models, then select the appropriate one. Once a model is selected, the Default value and Possible values fields appear, as well as the Field matching section.

  3. To set a Default value, select one of the available values; these are records from the model. If the related model is the User model, the option Automatically filter on the current user can be enabled.

  4. To limit the values that can be shown, enable Restrict values with a domain, then click Edit domain to add or edit rules.

  5. In the Field matching section, check if the correct matching field has been assigned for each data source. If this is not the case, click below the data source name to select the correct field.

  6. Click Save.

Example

In the example below, a Relation filter allows the pivot table and chart to show sales data related to selected salespeople only. The User model is set as the Related model.

Relation filter set on a pivot table

In the Field matching section of the Filter properties, the field Salesperson was automatically assigned as the matching field for both the pivot table and the chart.

A relation filter with the User model configured

Text

Note

A Text filter can only match with a Text (char), Integer, or Decimal (float) field.

With the Filter properties panel open:

  1. Enter a name for the new text filter in the Label field.

  2. Optionally, enable Restrict values to a range. Doing so allows you to input a spreadsheet range either by typing the range or selecting it from the relevant sheet. The referenced range must be in the same spreadsheet.

  3. Optionally, enter a Default value.

  4. In the Field matching section, for each data source click below the data source name and select the field the Text filter should match with.

  5. Click Save.

Example

In the example below, a Text global filter allows the pivot table and chart to show sales data only for products whose internal reference matches or contains the entered value, in this case, FURN. Multiple values can be entered if desired.

Global filters set on a pivot table

In the Field matching section of the Filter properties, the Internal Reference of the Product Variant was selected as the matching field for both the pivot table and the chart.

A text filter matched to the product's internal reference

Tip

If you selected Restrict values to range when configuring the text filter and defined a range, you select the value of the text field from a dropdown.

Yes/No

Note

A Yes/No filter can only match with a Checkbox (boolean) field.

With the Filter properties pane open:

  1. Enter a name for the new Yes/No filter in the Label field.

  2. Optionally, select Is set or Is not set as the Default value.

  3. In the Field matching section, for each data source, click below the data source name and select the field the Yes/No filter should match with.

  4. Click Save.

Example

In the example below, a Yes/No global filter was created to allow the user to see all active opportunities, i.e., for which the Active checkbox is enabled on the record, or all inactive opportunities, i.e., for which the Active checkbox is disabled. Leaving the filter empty shows both active and inactive opportunities.

Global filters set on a pivot table

In the Field matching section of the Filter properties, the field Active was assigned as the matching field for the pivot table.

A yes/no filter with the Active field set as matching field

Manage and use global filters

Click the Filters icon at the top right of an Odoo spreadsheet to access the global filters that have been created for that spreadsheet.

It is possible to:

  • Apply one or more global filters by selecting appropriate values per filter, as relevant.

    Tip

    Reloading the browser will cause any global filters to reset to their initial state or default value, as relevant. To refresh data in an inserted list, pivot table, or chart without losing global filters that have been applied, click Data ‣ Refresh all data from the menu bar.

  • Change the order of existing filters by hovering over a filter and using the (drag handle) icon to change the position.

  • Clear filter values (whether default or selected values) by clicking the (Clear) icon next to the value in the filter.

  • Edit an existing filter by selecting the (Edit) icon to open the filter’s Filter properties then editing as needed.

  • Delete an existing filter by selecting the (Edit) icon to open the filter’s Filter properties then clicking Remove.