Odoo Power BI dashboard
We bring together sales, inventory, CRM and accounting data from Odoo in a single Power BI model. For Ammega, we built Power BI dashboards and a Power BI app.
Ammega gained bespoke Power BI dashboards for management, planning and finance
Ammega wanted better insight into its business processes. We worked with stakeholders across the organisation to create several Power BI dashboards and a Power BI app, bringing everything together in one place instead of separate Excel files.
Why don’t Odoo reports show how sales and stock are connected?
Each Odoo module has its own reports: sales, stock, CRM and accounting. To see them side by side, you have to export lists and join them in Excel. A Power BI model reads data across the modules and keeps definitions consistent.
An Odoo dashboard connects modules that report separately in Odoo
Modules side by side
Orders, stock, leads and accounting entries come together in one model, with shared customers, products and reporting periods. This lets you see margin and stock side by side for each product category.
Only changed records
Each Odoo record tracks when it was last updated. We use that to load only what has changed, rather than the entire database.
By company or combined
If multiple companies use one Odoo database, each record gets a company code. You can then view the data by company or in consolidated form.
Built for each audience
Reports for management, sales and planning use the same model, as they do at Ammega, where we set up dashboards and an app for each audience.
How Odoo is hosted determines the route; the model comes next
-
Hosting and modules
Odoo Online, Odoo.sh or your own server; which subscription and modules you use; and which Excel spreadsheets are currently in circulation.
-
Route and initial model
API or PostgreSQL, followed by a model for one question, checked against the reports in Odoo.
-
Expand and manage
Other modules and companies are added to the same model. Refreshes, permissions and management each have a designated owner.
Does Odoo provide enough visibility on its own, or do we also need Power BI?
A good fit if
You use several Odoo modules or manage multiple companies, your organisation already uses Microsoft 365, and you want to see Odoo figures alongside other sources, such as a webshop or planning system.
Not a good fit if
You use one or two modules and Odoo’s own reporting answers your questions. In that case, a second reporting layer requires more maintenance than it’s worth.
What determines the scope
How Odoo is hosted, which subscription you have, how many modules, companies and custom fields need to be included, which other sources you want to add, and who manages the model.
What if Odoo changes its API?
Odoo has announced plans to remove the old XML-RPC and JSON-RPC endpoints. That’s why we build on the new JSON-2 API and keep data retrieval separate from the model.
Odoo via the external API, directly from PostgreSQL or via a data warehouse?
The external API
Choose this if you use Odoo Online or Odoo.sh and need Odoo’s permissions to apply. We recommend a separate user with read-only access and a dedicated API key.
PostgreSQL
Choose this if Odoo runs on your own server and you’re allowed to access the database with a read-only account. Agree this with your Odoo partner first.
A data warehouse
Choose this if Odoo is one of several data sources or you want to retain historical data outside Odoo. See having a data warehouse built.
We regularly build Power BI dashboards for management, planning and finance
As a Microsoft Partner for Fabric, Data Science Lab has been building data and AI solutions since 2016. We built Power BI dashboards and a Power BI app for Ammega, and a data warehouse that brings data sources together for Zuiver.

We’ll start by discussing your Odoo hosting and the modules you use
Stef Stoelwinder
Business DevelopmentStef is your first point of contact. In our first conversation, we’ll discuss your Odoo hosting, the modules you use and the reports currently produced outside Odoo.
E-mail info@datasciencelab.nl
Phone +31 (0)20 3636 724
Which Odoo modules would you like to see together in Power BI?
Tell us how Odoo is hosted, which modules you use and which reports you're missing. We'll reply by email or suggest an initial meeting.
Message sent
Thanks for your message. We’ll be in touch as soon as possible.
Frequently asked questions
Through Odoo’s external API or, if you host Odoo yourself, directly from the PostgreSQL database where Odoo stores its data. We set up a step to load the data and build the Power BI model on top of it.
To read about how a dashboard starts with the decision it supports, see Power BI dashboards.
The JSON-2 API described in the Odoo 19 documentation: you send a JSON request to /json/2/ with the model and method, using an API key as a bearer token. Odoo has announced that it will remove the older XML-RPC and JSON-RPC endpoints in Odoo 22 and Odoo Online 21.1.
Odoo states that access to data through the external API is only available on the Custom pricing plan.
With Odoo Online and Odoo.sh, Odoo manages the server. According to the documentation, Odoo.sh lets you open a database shell with psql and download backups as a database dump, but for daily refreshes we use the API.
If Odoo runs on your own server, you can read from PostgreSQL using a separate account. Odoo specifies that its own database user must not be a superuser; the Power BI account gets read-only access.
Odoo can manage multiple companies in one database. Records such as products and contacts can be shared or restricted to particular companies, and intercompany transactions create corresponding entries between companies.
In the model, each record is associated with its company. We count shared master data once and eliminate intercompany revenue using a consistent rule in the model.
It often starts with sales: revenue and margin by salesperson, product and customer. Next come inventory alongside units sold, the CRM pipeline alongside invoiced revenue, and outstanding balances.
For figures used by management and financial controllers, such as cash flow and budget versus actuals, see the financial dashboard in Power BI.
Every API call is checked against the user’s access rights, record rules and field permissions. Odoo recommends a separate bot user for integrations; give it read-only access to the modules you need.
On the Power BI side, row-level security limits what someone can see by salesperson or branch. We explain how we set up workspaces and apps on the Power BI consultant page.
Yes. The data-loading step differs for each system, but the structure of the model does not. See the pages on SAP Business One, Dynamics NAV and Exact Online in Power BI.
If your organisation moves to Odoo or away from it, the main change is the data-loading step.
If you use only a few modules and Odoo’s reporting already answers your questions. Or if each company in the database has its own product codes and chart of accounts: then you start with data quality, not Power BI.
If your subscription does not include API access and a periodic export is enough, we’ll tell you that too.
How does Odoo data fit alongside your other reporting?
- Power BI dashboardsHow we build a dashboard around the decision it needs to support.
- Financial dashboardRevenue, margin, cash flow and budget versus actuals in one model, using data from Odoo and other sources.
- Power BI consultantModel, workspaces, refresh and management of Power BI for multiple teams.