zenitalselfBITalk to us
AI-powered BI, governed end-to-end

The BI deadlock is over.

zenital selfBI gives IT the governance they need and IT the freedom they want.

Today in pilots: 47 dashboards built · €128 AI spend · 3.2s avg time to chart
zenital selfBI · AI wizard
You
Total revenue
€10.5M
↑ 18% YoY
Avg / month
€878k
↑ 12% vs last
Best month
€1.10M
May

Revenue by month

AI summary · Monthly revenue trend, Jun → May. Q4 grew 18% vs Q3.
The problem

Every mid-sized company is stuck in the same loop.

IT can't keep up.

Power BI requests pile up. Each one takes weeks because requirements are vague and the data needs reshaping. Two engineers, fourteen tickets, no time to improve the warehouse.

Management can't wait.

So they export a CSV. They build it in Excel. They paste confidential data into ChatGPT. There are now two versions of every chart, and IT has no idea what data is leaking.

The result: data dispersion, unclear requirements, no feedback loop, zero governance. AI spend is invisible. Excels live on personal laptops. Nobody is happy. This is the problem zenital selfBI solves.

Before / after

A regional director needs revenue by region this quarter.

Before zenital selfBI
4 weeks
  • Files a request to IT
  • Waits for a clarification meeting
  • Pushes back on the metric definition
  • Gets a final dashboard — already stale
  • In parallel: builds an Excel, mails it around. Two versions, two numbers.
IT sees: 14 tickets in the queue. 2 engineers. No time to improve the warehouse.
After zenital selfBI
3 minutes
  • Opens selfBI
  • Types "Revenue by region this quarter vs last"
  • Chart appears in 4 seconds
  • Adds a filter: "exclude internal sales"
  • Pins it. Shares the link with her team.
IT sees: 47 dashboards built this month. €128 of AI spend across 12 users. The 3 prompts that failed — all gaps in the warehouse.
What IT sees

A real feedback loop, finally.

Every Excel upload, every AI call, every dashboard. Filter by team, user, period. Spot the columns your warehouse should have — straight from how people actually work. Live in /admin today.

  • Org-scoped data sources — connect once, choose which workspaces see it
  • Cost observability — by workspace, user, model, period
  • Excel surveillance — every upload logged with columns and topics
  • Wizard observability — every prompt, every "AI is wrong" flag
  • AI key policy — one company key, per workspace, or BYOKComing soon
zenital selfBI · /adminThis week · 12 users
AI spend
€128.10
↑ 12% vs last week
AI calls
2,847
↑ 18%
Dashboards
47
38 active
Files uploaded
23
3 with new columns

AI spend, last 7 days

€ per day

Recent Excel uploads

4 of 23
  • CSV
    Q2_sales_export.csv
    12 cols · 8.4k rows · by maria.gomez
    Sales
  • CSV
    churn_score_weekly.xlsx
    7 cols · 2.1k rows · by david.ruiz
    new columnRetention
  • CSV
    invoices_jan_apr.csv
    18 cols · 14k rows · by lucia.fdz
    Finance
  • CSV
    team_workload.csv
    5 cols · 340 rows · by pablo.lara
    Ops

Prompts that failed this week — gaps in the warehouse

3 unique
  • Show me cancellation reasons by weekcolumn cancellation_reason not in any model
  • Compare churn vs retention this quartercolumn churn_status not in any model
  • NPS score by regioncolumn nps_response not in any model

See what your business is asking for — even when nobody asks IT.

Every Excel uploaded is logged with its columns, who uploaded it, and which topics it covers. When three teams upload files with a column called `customer_health_score`, you know what to add to the warehouse next sprint. Live in /admin/files today.

Excel uploads — this week

23 files · 3 with columns not in your warehouse

AllFinanceSalesOps
FileUploaded bySizeTopicsSignal
CSV
Q2_sales_export.csv
2h ago
maria.gomez12 cols · 8.4k rows
SalesQ2
XLS
churn_score_weekly.xlsx
6h ago
david.ruiz7 cols · 2.1k rows
Retention
+2 new cols
CSV
NPS_responses_apr.csv
yesterday
lucia.fdz9 cols · 1.3k rows
NPSCX
+1 new col
CSV
invoices_jan_apr.csv
yesterday
lucia.fdz18 cols · 14k rows
Finance
CSV
team_workload.csv
2d ago
pablo.lara5 cols · 340 rows
Ops
AI
zenital selfBI · wizard
Customer Retention dataset
AI

Hi Maria. I see you connected the Retention dataset. Want me to start with one of these?

Active users last 12 monthsChurn rate by monthTop 10 at-risk customers
Churn rate by month, last 6 months. Use our definition.
AI

Found 1 chart for your data. Using your glossary definition of “churn”: customers who cancelled in the month ÷ active at month start.

Churn rate by month
6d ago✦ aiLast 6 months · Customer Retention
8%6%4%2%0%
JanFebMarAprMayJun
What management does

Talk to your data. Get the answer.

Type a question in plain English. The wizard already knows your business glossary, your aliases, your filters. The chart appears in seconds.

  • Connect any data source — PostgreSQL, MySQL, MSSQL, BigQuery, Redshift, CSV/Excel
  • AI Wizard — type the question, get the chart
  • Anti–blank canvas — 3 suggestions waiting when you open a dashboard
  • Plain-language semantic layer — your words, not the database's
  • Business glossary — KPIs match your meetings, not the engineer's
Connect anything

Five live database connectors. Plus CSV and Excel.

Test, introspect, and connect any production database in under a minute. Cryptic columns get AI-suggested aliases automatically. Credentials are AES-256-GCM encrypted before they touch disk.

Pg
PostgreSQL
Live database connection
My
MySQL
Live database connection
Ms
MSSQL
Live database connection
Bq
BigQuery
Live database connection
Rs
New
Redshift
Live database connection
Sn
Coming soon
Snowflake
Live database connection
CSV
CSV / Excel
File upload (Parquet behind the scenes)
Every database connection is tested before save · credentials are AES-256-GCM encrypted at rest · introspection auto-suggests aliases for cryptic columns.
Govern everything

One connection. Many workspaces. You decide who sees what.

IT connects a data source once at the organization level. Then a visibility matrix says which workspaces (Finance, Sales, Operations…) can use it. The Cube query layer enforces the matrix server-side — no one can query a source they aren't enabled for, even by guessing the cube name.

zenital selfBI · /admin/data-sources
enabled blocked
Data sourceTypeTablesFinanceSalesOperationsMarketingCustomer Support
PoCRM (production)
PostgreSQL47
MSERP — billing
MSSQL28
BiWarehouse — sales
BigQuery14
PoField operations
PostgreSQL22
ReAnalytics — Redshift
Redshift18
IT connects each source once at the organization level, then flips toggles per workspace. Cube queries enforce the matrix server-side — a workspace can't query a source it isn't enabled for, even if it knows the cube name.
Every chart you need · zero SQL

Eight chart types, eight clicks away.

KPI, bar, horizontal bar, line, area, pie, donut, sortable data table — all rendered by the wizard the moment it understands your question. Every chart below was generated from the same demo dataset (ACME — synthetic data, real cube fields).

When standard isn't enough

zenital builds the widget you need.

Some questions need a layout no off-the-shelf chart can express — workload + drill, alert thresholds with one-click drill-down, two-level expandable totals. These ship as permanent custom widgets, marked ◈ zenital. We build them with you in the pilot.

Technician workload
Current month · expandable
◈ zenital
TechnicianHoursCSat %Alert
J. MartínezCataluña
8h 12m
94%
✓ OK×
JobStartEndTypeCSat %
JOB-284108:3009:50Maintenance100%
JOB-284210:1511:40Repair95%
JOB-284312:2013:30Inspection88%
A. LópezMadrid
7h 45m
88%
⚠ Low CSat+
M. SánchezAndalucía
9h 30m
76%
⚠ Overlap+
C. FerrerValencia
6h 50m
91%
✓ OK+
Alert summary
Configurable rules · drill-down
◈ zenital
JOB-2754 · Globex Corp.12 days
JOB-2761 · Initech Ltd.11 days
JOB-2772 · Umbrella Co.9 days
Revenue by branch
6d ago◈ zenitalTwo-level drill into job types
Barcelona32 jobs · Cataluña region
€412k
Madrid28 jobs · Centre region
€299k
Sevilla24 jobs · Andalucía region
€242k
Valencia21 jobs · Levante region
€198k
Bilbao14 jobs · Norte region
€135k
The service made visible

The semantic model is the product.

Every zenital selfBI workspace starts from your raw schema. zenital audits it with /review-source, scores it 0–100, then enriches every column with an alias, a description, and aggregation rules. The same AI that hallucinates on raw columns answers on the first try once the model is curated.

Auto-generated model
What the AI sees out of the box
67/ 100
  • sk_tecnicono alias, no description
  • hdr_amt_xno alias, no description
  • cod_ent_facno alias, no description
  • cf_pct_xno alias, no description
  • fc_tipo_tno alias, no description
The AI will guess. It will sometimes sum what it shouldn't.
Curated by zenital
After /review-source + aliases + glossary
94/ 100
  • sk_tecnicoTechnician(nombreTecnico)
    The technician who carried out the job. Use for workload, alerts, and per-person breakdowns.
  • hdr_amt_xTotal Invoice(totalFactura)
    Gross invoice amount (€), tax included. Sum for revenue. Never SUM a percentage column.
  • cod_ent_facBranch(nombreSucursal)
    Branch that issued the invoice. Use to group revenue by location.
  • cf_pct_xCSat %(cfPorcentaje)
    Customer satisfaction score (0–100). Average — never sum. Threshold for alerts: 80.
  • fc_tipo_tJob Type(tipoTrabajo)
    Maintenance, Installation, Repair, Inspection. Use as dimension, not as a measure.
Every column named in business terms. Aggregation rules locked.
Business glossary
KPIs defined once. Injected into every prompt automatically.
See how it works →
  • Billable job
    Any closed work order with CSat ≥ 80 and a signed-off completion form. Excludes warranty work.
  • Active technician
    Technician with at least 1 completed job in the last 30 days.
  • Norte region
    Branches in Bilbao, Pamplona, and Santander. (Different from how the CRM defines it.)
Three ways to build

Ask, choose, or describe — your dashboard answers back.

Every team works differently. zenital selfBI surfaces three creation paths in the same wizard, all powered by the same semantic layer.

1
2
Proposing chart…→ wizard.propose · 4.2s · €0.014
3
Revenue by region
6d ago✦ aiQ1 2026 · ACME demo
€412k€309k€206k€103k€0
Cataluña
Madrid
Andalucía
Valencia
Norte
Share without losing control

One link. Read-only. Every view logged.

Publish a dashboard, copy the link, send it. Recipients view live data without logging in. Every view, every annotation, every "Ask AI" call lands in /admin. Expire the link any time.

Sales Operations · Q1 2026
5 widgets · last refreshed 2 min ago
Revenue by region
6d ago✦ aiQ1 2026 · ACME demo
€412k€309k€206k€103k€0
Cataluña
Madrid
Andalucía
Valencia
Norte
Every chart, explained

Recipients click a chart — and understand it.

The "Ask AI" button is on every widget the wizard renders. One click → a plain-language explanation using your business glossary. So the chart you shared with the regional director makes sense without a meeting.

Monthly revenue · last 12 months
6d ago✦ ai
€1.1M€824k€549k€275k€0
JunJulAugSepOctNovDecJanFebMarAprMay
✦ AI explanation1.8s · €0.004

Your monthly revenue trends up 18% year-over-year, peaking at €1.10M in May. The dip in August (€655k) is the usual summer slowdown for this industry — your last 3 Augusts show the same pattern. The Q4 acceleration (October onwards) drove a quarter that outperformed Q3 by 14%.

Watch April–May: growth is accelerating beyond the seasonal norm. Worth checking with Cataluña ops — they're the biggest contributor (34% of total).

Every chart explains itself.

When you share a dashboard, the recipient sees the same Ask AI button you do. One click — a plain-language summary explaining what the chart shows, what's normal, and what to watch.

  • Uses your business glossary, so the explanation speaks your team's language
  • Available on every widget except custom alert summaries
  • Every explanation is logged in /admin so IT sees what was asked
  • Powered by your own AI key when BYOK is enabled (Sprint 4)
How we compare

selfBI vs the workarounds you have today.

Most companies juggle two or three of these. zenital selfBI replaces that mix with one governed surface.

Power BI
For data engineers
EVALUATE
SUMMARIZE(
  Sales,
  Sales[Region],
  "Revenue",
  CALCULATE(SUM(Sales[Amount]))
)
Manager files a ticket. Waits 2 weeks.
ChatGPT
Generic AI assistant
Revenue by region last quarter?
I don't have access to your company's database. Could you paste the data here?
Manager pastes a CSV. IT has no idea.
Excel + email
The classic workaround
AB
1RegionRevenue
2EMEA412,300
3NA298,500
4=SUM(B2:B…#REF!
Three teams. Three Excels. Three different totals.
zenital selfBI
Governed AI for the whole org
Revenue by region last quarter — exclude internal sales.
EMEA
NA
APAC
LatAm
✓ Used your "internal sales" glossary definition. Pinned to the Sales dashboard.
4 seconds. Governed. Shared with the team.
Power BI
ChatGPT
Excel + email
zenital selfBI
Non-technical users build dashboards
IT sees every prompt, file, cost
No hallucinated SQL
Your KPI definitions are respected
CSV + database in the same workflow
BYOK / per-workspace AI budgets
Audit log of who asked what
Self-host option
Under the hood

Anatomy of a question.

No raw SQL ever touches the LLM. Every chart goes through a validated semantic layer that prevents hallucinations.

01 · Your prompt
Plain English. No SQL.
02 · Schema + glossary
Your aliases. Your KPI definitions.
03 · Cube JSON
Validated structure. Never SQL from the LLM.
04 · SQL (compiled, not generated)
Cube.js compiles, applies RLS, runs the query.
05 · Chart
4 seconds from prompt to render.
manager → “Revenue by region last quarter, exclude internal sales.”
The LLM never writes SQL. It emits structured JSON that the semantic layer validates and compiles.
Honesty over hype

What we don't do.

Most BI tools over-promise. We'd rather tell you up front.

We don't replace Power BI.

We sit above it as the self-service layer. Some clients replace, others run both.

We don't generate "insights".

We generate charts. Insights are still the human's job.

No predictive analytics.

Not the product. We do BI well — not forecasting, not ML.

No real-time streaming.

Cube caches. Freshness depends on your source, and we tell you when.

No "auto-magic" data modelling.

The semantic model still needs care. zenital builds and maintains it as a service. We don't pretend otherwise.

Questions you'll ask

The honest answers.

Power BI is a tool for IT. Self-service in PBI means handing a SQL-less user a DAX editor — most managers won't. selfBI is built for the SQL-less user. The IT side is the bonus, not the core.

Next step

Two weeks. One of your data sources. Your real workload.

We do a pilot: week 1 we connect a source and build the semantic model. Week 2 your team uses it for real questions. You see — on your data — exactly what we just described.

Estimate · not a quote

Roughly, what would your pilot look like?

Three answers. A ballpark scope. No email required. Numbers stay in your browser.

Pilot duration
3 weeks
Ballpark cost
€11,500€14,000
Includes
Semantic model · onboarding · 30-day support
Discuss this pilotHeuristic. Real scope is set after a 30-min call. Pricing varies for regulated industries.
Talk to us