Skip to content

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.

Read the case study

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.

Book a conversation

An Odoo dashboard connects modules that report separately in Odoo

Discuss your Odoo environment

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

  1. 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.

  2. Route and initial model

    API or PostgreSQL, followed by a model for one question, checked against the reports in Odoo.

  3. 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?

Talk it through with us

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.

Book an introductory meeting

We’ll start by discussing your Odoo hosting and the modules you use

Stef Stoelwinder

Stef Stoelwinder

Business Development

Stef 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.

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.

Enter a valid email address.

Let us know how we can help you.

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.