How it fits together
Four building blocks make up everything in Odoo Dashboards. Once you know what each one is for, the rest of the app is easy to find your way around.
- Odoo modelYour records, as Odoo stores them.sale.order
- DatasetThe fields you picked from that model, ready to chart.Sale Orders
- WidgetOne tile, chart or table that summarises a dataset.Total Sales
- DashboardWidgets on a grid, with filters, shared with people.Sales Overview
Datasets: the data you work with
Section titled “Datasets: the data you work with”A dataset is a table of data built from one Odoo model. You choose the model (for example Sales Order) and the fields you need (order date, customer, salesperson, total). Fields of related records count too, such as the customer’s country or the salesperson’s team.
Datasets are made once and reused. Ten widgets on five dashboards can all read from the same Sale Orders dataset. If the dataset gains a column, every widget built on it can use that column.
Datasets are created in the Dataset Builder. Advanced users can also write a dataset in SQL, combine two datasets, or store a dataset’s results so large data loads faster. See Datasets.
Widgets: one question each
Section titled “Widgets: one question each”A widget (the builder calls it an analytics item) answers one question about a dataset: what were total sales?, how did sales move month by month?, who are the top customers? Each widget has:
- a visualization type: Tile, Sticky Note, Vertical Bar, Horizontal Bar, Line Chart, Area Chart, Doughnut, Funnel, Heatmap, Map, Table, Pivot Table or Matrix Report;
- a data source, which is one dataset or several joined together;
- a measure and dimension, such as sum of Total by Order Date, per month;
- its own filters, some fixed and some that viewers can change.
Widgets are built in the Dashboard Builder, one at a time, with a live preview beside the settings. Choosing a widget compares every type.
Dashboards: widgets on a page
Section titled “Dashboards: widgets on a page”A dashboard is a page of widgets on a 12-column grid. Every dashboard gets its own entry in the Odoo Dashboards menu, and its own access list: only the users and groups you add can open it.
Each viewer can drag and resize the widgets on their own screen. Their layout is saved for them only. A builder can publish one layout as the default everyone starts from.
Filters: three levels
Section titled “Filters: three levels”Filters are where most of the power is, and where most questions come from. There are three kinds:
| Filter | Set up in | Affects |
|---|---|---|
| Widget filters | The widget’s Filters tab | That one widget. They can be fixed (always applied, invisible) or shown as chips the viewer can change. |
| Global filters | The builder’s Global Filters | Several widgets at once, from a filter bar at the top of the dashboard. |
| Date Filter | Dashboard Settings → Enable Global Date Range Filter | The main date filter of each widget, from one date picker in the dashboard header. |
The rule to remember: filters live on the widget, not on the dataset. Filters covers all three in detail. A global filter doesn’t add a condition to widgets by itself. It drives filter lines that already exist on each widget, and you pick which ones. A widget with no matching filter line ignores the global filter and shows a Not filtered badge, so viewers know.
How a number reaches the screen
Section titled “How a number reaches the screen”When someone opens a dashboard:
- The dashboard loads its layout and shows a placeholder for every widget.
- For each widget, Odoo describes the query (which dataset, which columns, how to summarise them, which filters) and asks the Odoo Dashboards service for the SQL.
- The SQL runs on your own database, against the dataset, and the result fills in that widget. Widgets load independently, so one slow table doesn’t hold up the tiles.
Results are kept in the browser for five minutes, so moving between dashboards stays fast. The Refresh button in the dashboard header fetches everything again.