FrancodesystemsFran<code>systems
BI / AnalyticsCustom integration

Holded Metabase integration

Open-source Metabase dashboards fed directly from Holded, with no expensive licenses.

HoldedHolded
Metabase

Implementation time · 6-12 días laborables

Diagnosis

The problem

Power BI works very well, but it costs per-user licenses and forces you to stay inside the Microsoft ecosystem. Tableau is premium but at enterprise pricing. For an SMB with 5 to 20 people who want to look at dashboards without paying 10 to 15 euros per user per month to Microsoft, open-source Metabase is the serious option. The catch is that connecting it properly to Holded requires an ETL pipeline and modeling: a direct connection is not enough, because Holded's REST API is not designed for BI.

Proposal

The solution

Dashboards with real Holded data in Metabase (open-source, free self-hosted or Cloud for less than Power BI). An ETL pipeline extracts invoices, payments, expenses and accounting entries from Holded, normalizes them into a data warehouse (usually Postgres) and exposes them to Metabase with ready-made templates: cashflow, P&L, customer ageing, margins. For companies that do not want to depend on Microsoft or Tableau, Metabase is the serious alternative to Power BI.

Scope

What we automate

  • Hourly/daily extraction of Holded invoices, payments, expenses and entries into Postgres
  • Dimensional modeling for efficient multidimensional analysis
  • Projected cashflow dashboard at 30/60/90 days
  • Monthly P&L with drill-down by category, customer and cost center
  • Customer ageing with a risk scale
  • Margins by product/service year over year
  • Executive scorecard with deviation alerts
  • Self-hosted on your infra or Metabase Cloud, as you prefer
Who uses it

Real use cases

These are the profiles that most ask us for the HoldedMetabase integration and what they get in the end.

Case 01

B2B services SMB with a tight BI budget

Before: Power BI cost 15 euros per user times 8 people, so 120 euros a month just in licenses.

After: Metabase self-hosted: 10 euros a month total. Same level of dashboards.

Case 02

Startup with an open stack (no Microsoft)

Before: They did not want to move into M365 just to have dashboards.

After: Open-source Metabase fits the open stack. Zero vendor commitment.

Case 03

Company with a technical team willing to self-host

Before: They paid 200 euros a month to a dashboard BaaS and wanted to cut costs.

After: Metabase self-hosted in their Docker stack. Zero recurring cost.

Before / After

What changes exactly

Without the integration

  • Expensive per-user Power BI or Tableau licenses
  • Lock-in with the Microsoft ecosystem
  • Dashboards with no auditable code
  • Manual CSV for reports

With the integration

  • Open-source Metabase with no license cost
  • Open stack, no lock-in
  • Dashboards as versioned code
  • Data updated daily
Architecture

How we build it

Holded REST API to an ETL pipeline in Python or Node to Postgres, then Metabase with versioned, exportable dashboards. For small companies, Metabase self-hosted on a VPS for 5 to 10 euros a month. For companies with compliance needs, Metabase Cloud. Dashboards delivered as code (via the Metabase API) so they are versionable and reproducible.

flow.ts
webhook metabase.event
queue.enqueue(jobId)
worker.handle() // idempotent
holded.api.call() // retries with backoff
log.emit({ status: 'ok' })
FAQ

Frequently asked questions

Self-hosted or Metabase Cloud?

Both options. Self-hosted on a VPS for 5 to 10 euros a month works perfectly for SMBs up to 50 users. Metabase Cloud (from around 85 euros a month) if you want zero maintenance.

How does Metabase compare to Power BI?

Power BI has better DAX and advanced semantic modeling. Metabase is simpler, free (open-source) and enough for 90% of SMB cases. If your CFO comes from the Microsoft world, Power BI may be preferable.

Does it support multiple entities?

Yes. Same architecture as the Power BI integration: each Holded feeds the data warehouse with an entity dimension. Per-user permissions with Metabase Sandboxes (paid version) or by collection (Free).

And if I later want to move to Power BI or Tableau?

The data warehouse is BI-tool agnostic. If in the future you want to move to another tool, you connect to the same Postgres and rebuild the dashboards. The Holded integration does not change.

Real-time refresh?

Configurable. The usual setup: nightly refresh plus on-demand. Strict real time is not common in financial BI because it adds complexity without value for that case.

How long does it take?

Between 6 and 12 working days depending on data volume and the dashboards requested.

Shall we talk about your Metabase integration?

A 30-minute call, no strings. You leave with scope and a price.