| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 8487 |
| Technical Name |
sati_dashboard_builder |
| License | OPL-1 |
| Website | https://www.sati.com.py |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Lines of code | 8487 |
| Technical Name |
sati_dashboard_builder |
| License | OPL-1 |
| Website | https://www.sati.com.py |
SATI Dashboard Builder
The best of both worlds: Odoo 19 native AI agents + Spreadsheet Dashboards built into Odoo. Natural-language dashboard generation on top of the strongest reporting engine that exists: the one Odoo itself uses.
We don't reinvent the wheel. We make it spin ten times faster.
Every other dashboard module locks you into its own ecosystem:
proprietary layouts, closed formulas, screens that aren't Odoo.
SATI Dashboard Builder does not.
It generates dashboards that ARE Spreadsheet Dashboards
native to Odoo 19 Enterprise: the same engine that powers
Sales, Helpdesk and Invoicing native dashboards. You edit cells,
add formulas, use =PIVOT.VALUE, =SUM,
drill into pivots, leverage standard permissions. Everything
Odoo already does well: without losing any of it.
This does not exist in another module on the store.
What you actually get
Two snapshots first: the executive dashboard the AI produces and the chart-type gallery the operator picks from. The full walkthroughs of the AI generator and the Visual Builder follow in their own sections below.
Five emoji-headed sections (Key Metrics, Pipeline, Trends, Top Performers, Detailed Breakdown), scorecards with previous-quarter baseline, funnel of pipeline stages, stacked bar of opportunities per salesperson per stage.
Every chart type the o_spreadsheet engine ships with: bar, line, pie, treemap, combo, waterfall, funnel, radar, scatter, pyramid, sunburst, geographic, scorecard and carousel. Each card carries an SVG example plus the when-to-use and when-NOT-to-use guidance the AI agent consults.
spreadsheet.dashboard record. Same engine,
same formulas, same permissions as Odoo's own
dashboards.
Describe in plain language. The agent builds everything.
Write in natural language or use one of the 10 pre-built
prompts. A native Odoo ai.agent record (installed
with the module, see the section below) analyses the model,
proposes KPIs, charts and pivots with correct domains, and
shows a structured preview before creating the dashboard.
- Runs on the native Odoo 19
aimodule: same provider, same API keys, same audit trail you already use - Auto-detection of the main model from the prompt
- Automatic validation + autocorrect loop (up to 3 iterations)
- Free mode (single prompt) or guided mode (KPIs + types one by one)
- 10 pre-built templates by business area
From prompt to preview to dashboard
Three states of the AI generator wizard, captured live. The operator writes the prompt, picks the chart types they want (or lets the agent decide), reviews the structured preview and clicks Create. The whole flow happens inside one dialog, without losing state.
Full executive prompt in the top textarea (Pipeline dashboard request). Below it, the AVAILABLE CHARTS CATALOG. Operator has tapped Bar, Line, Pie / Doughnut and Funnel: each gets a "Selected" badge plus a highlighted border. The remaining types stay visible as options.
SELECTED CHART TYPES list: one row per chart with an optional free-text hint for the agent. CONFIGURATION block confirms the auto-detected Main Model (Lead), Dashboard Group (CRM) and AI Agent (Dashboard Builder). Generate Dashboard fires.
The agent answered. The wizard shows the structured preview: 3 global filters, 4 KPIs, 5 charts (one multi-dim), 2 pivots, 1 list. The raw JSON expands underneath for review. Operator clicks Create Dashboard or Regenerate.
The preview step is non-negotiable. The agent never writes straight to the database. Every dashboard that lands in your Dashboards menu was previewed and confirmed by a human first. The structured summary plus the raw JSON give the operator everything they need to spot a wrong domain, a missing KPI or a chart they did not ask for, before any record is created.
The agent IS a real Odoo ai.agent record
Installing this module creates a native Odoo
ai.agent record called "Dashboard Builder Agent",
fully configured and ready to use. It is NOT a hidden helper
or a black box: the operator can open it from
Settings » AI » Agents, inspect its
system prompt, change its LLM model, attach more topics, or
hook it into custom sources.
- Default LLM: Gemini 2.5 Pro (operator can swap to GPT-5 / GPT-4 Turbo)
- Two topics shipped: "Dashboard Generation" (structural rules) and "Dashboard Builder Common Rules" (13 few-shot examples plus domain-specific guidance for CRM, Accounting, Helpdesk, etc.)
- Response style set to analytical (temperature 0.2) for deterministic JSON output
- Same audit trail and token-budget controls as every other agent in your Odoo
- Operator customisations (LLM, prompt, topics) survive module upgrades
Why this matters: the agent is not locked behind the module. You can talk to it directly from any chatter, you can add it to your own pipelines, you can audit every dashboard it generated. It is a first-class citizen of your Odoo, not a vendor-locked appliance.
Form view of "Dashboard Builder" under AI » Agents. LLM Gemini 2.5 Pro, response style Analytical, two topics linked (Dashboard Generation and Dashboard Builder Common Rules), system prompt inspectable and editable.
No prompts. No code. Step by step.
3-step guided wizard for users who prefer to build the dashboard by selecting pieces. Each section has an explanatory banner, inline hints on formulas and baseline, an inline chart gallery (no leaving the wizard) and an SVG preview of the selected type.
- Opening banner with the 3 wizard steps
- Expanded per-section hints
- Inline collapsible chart gallery
- SVG preview of the type when editing a chart
- Domain filters with native Odoo widget
From a blank wizard to a published dashboard
Five screenshots, one workflow. No prompts, no JSON, no code: the operator picks the base model, defines a KPI and a chart, hits Create. The result lands in the Dashboards menu next to Odoo's own.
The opening banner explains the three wizard steps. Below it, four base fields: dashboard name, dashboard group, optional template, optional analysis model. The operator never has to write a domain or a formula here.
Every KPI knob in one form: model, formula type (count, sum, average, custom), measure field, baseline mode plus baseline date field and baseline period, background color, and a native domain widget that says how many records the filter currently matches: 4,646 in this example.
The KPIs tab shows the list of defined scorecards plus a live visual preview at the top: title, value, baseline. The same preview the operator will see in the final dashboard. The breadcrumb at the top right confirms the three-step flow (Configuration, Content, Preview).
The Charts tab. The chart-type gallery is collapsed into a banner so the list stays compact; the operator clicks it to expand all 14 SVG examples. Each row carries title, chart type, count measure flag, measure field, group by, date granularity and chart position (full width / left / right).
The result. The operator opens the new entry in the Dashboards sidebar ("Executive Invoi..." highlighted in the screenshot). The dashboard renders the scorecard ("Average USD invoicing" with previous-month baseline) plus the line chart ("Invoicing by month") with 4 years of history. Native Spreadsheet Dashboard. Sat next to Sales, Subscriptions, CRM AI, Finance in the same menu Odoo ships out of the box.
The 14 chart types live INSIDE the wizard
The collapsible gallery on the Charts step of the Visual Builder expands inline to show all 14 chart types with their SVG examples and a one-line "When to use" hint. The operator never leaves the wizard, never loses the form state.
Same gallery as the catalog above, embedded inside the Wizard's Charts step. The operator opens it when in doubt, picks the type that fits, the row in the list gets the selected type stamped. No JSON, no navigation.
The best of both worlds
SATI Dashboard Builder is not just another dashboard module. It is a bridge between two capabilities Odoo 19 already ships - a combination no one else has made until now.
The ai module from Odoo 19
The AI agents Odoo ships out-of-the-box, with their integrated providers (Gemini and OpenAI). Customers already use them in chat and helpdesk flows.
- Same agent, same token budget
- Same API keys already configured
- Same audit trail (native logs)
spreadsheet.dashboard Enterprise
The reporting engine Odoo uses for Sales, Helpdesk, Invoicing and Manufacturing dashboards. Cell-level formulas + interactive pivots + embedded lists, with no compromises.
- Total freedom of formulas (cell-level)
- Interactive pivots with drill-down
- Native permissions, filters, baselines
SATI's value added is the automation layer:
a wizard that orchestrates the AI agents against your Odoo
models and produces JSON that is structurally identical to
what Odoo creates natively: avoiding the seven non-obvious
Spreadsheet pitfalls (boolean measures broken in charts,
PIVOT.VALUE with no IFERROR wrap,
extra visible sheets, etc.).
We don't replace Odoo. We put professional automation on top of it.
Six things only the native Odoo Spreadsheet engine can offer
Most dashboard modules build a parallel mini-framework that looks like Odoo. SATI Dashboard Builder does not. The output IS native — and that unlocks six concrete capabilities other modules cannot match.
Output is a native spreadsheet.dashboard
The result is a standard Odoo record, listed in the Dashboards menu next to Sales, Helpdesk and Invoicing. No standalone screen, no parallel layout.
Every cell is fully editable
Change a formula, add a =SUM, swap a
domain, compute a custom metric. Full Spreadsheet
freedom, not a generated artefact frozen at creation.
Pivots with drill-down + composable values
Double-click a value to open the underlying Odoo
records; or pull any value into any other cell with
=PIVOT.VALUE(...). Same pivot, two
lives.
Native AI agents
Uses the agents from Odoo 19's ai module:
same provider, same API keys, same audit trail and
token budget you already configure for chat and
helpdesk.
Multi-dimensional charts + auto-carousels
CSV group_by="team_id,stage_id" emits the
same stacked-bar shape native Odoo dashboards use. Every
chart also renders as a carousel with curated
alternative views.
Survives the module uninstall
Dashboards are independent spreadsheet.dashboard
records. Remove SATI Dashboard Builder later and every
dashboard the AI produced keeps working: native Odoo
Spreadsheet engine, native filters, native permissions, no
vendor lock-in.
How it works
From the user's request to a dashboard in production, in three steps.
Describe or configure
Generate with AI: describe the dashboard in natural language, or use one of the 10 pre-built prompts (Invoicing, Collections, Sales, CRM, etc.). Visual Builder: select model, KPIs, charts, pivots and lists step by step: no code, no JSON.
Structured preview
The module builds the JSON with the native Spreadsheet Dashboard structure, validated against real models. Auto-correction loop up to 3 iterations if the AI proposed something defective.
Native Spreadsheet dashboard
Created as a standard spreadsheet.dashboard
record, listed in Odoo's Dashboards menu alongside the
native ones. Cell-editable, filterable, exportable -
like any dashboard that shipped with Odoo.
Key features
Six capabilities that turn a blank wizard into a finished native Spreadsheet Dashboard in under a minute.
Natural-language generation
Describe the dashboard in plain language. A native
ai.agent analyses the model, proposes KPIs,
charts, pivots and lists with correct domains, and ships a
real spreadsheet.dashboard record. 10 pre-built
executive prompts cover Invoicing, Sales, CRM, Helpdesk,
Purchases, Accounting, Expenses, Projects and Inventory.
Step-by-step Visual Builder
3-step guided wizard with a banner-guide, per-section hints, inline chart gallery and SVG preview of the selected type. No prompts, no JSON, no code.
14 native chart types and auto-carousels
Every type the o_spreadsheet engine supports. Every chart is
rendered as a multi-tab carousel with curated alternative
views per type. Multi-dimensional group_by
produces the same stacked-bar shape native Odoo dashboards
use.
KPIs with baseline + data bars
Scorecards with previous-period comparison
(PIVOT.VALUE wrapped in IFERROR).
Coloured data bars on every numeric column of top-N lists.
Visual sections with emoji headers group consecutive items
into a one-page executive layout.
Embedded pivots and lists, drillable
Pivots and lists are rendered directly inside the dashboard
via =PIVOT and =ODOO.LIST. Pivots
keep their full interactive identity: drill-down,
=PIVOT.VALUE from any cell, view-as-sheet.
Column order honoured at render time.
Native global filters + autocorrect loop
Date, relation and text filters use Odoo's own mechanism, applied automatically to every KPI, chart, pivot and list. Before each dashboard is created the module validates field references, aggregations and formula safety; if anything is off, the agent gets up to 3 chances to correct.
Use cases by area
Pre-built from the 10 "Quick examples" buttons in the AI wizard. Each one produces an executive-grade dashboard in under a minute.
Invoicing
Total invoiced for the period · top customers · monthly trend · pending balance · overdue invoices.
Collections
Monthly cash flow · collections made · average ticket · receivables by aging.
Sales
Confirmed orders · top products · mix by team · full CRM funnel.
CRM / pipeline
Funnel by stage · opportunities won · top reps · mix by source.
Purchasing
Purchases for the period · top vendors · top purchased products · trend.
Accounting
Income vs expenses · top accounts with movement · monthly balance.
Tickets / Helpdesk
Volume · MTTR · top agents · breached SLA · distribution by stage.
Expenses
Approved expenses · top employees · mix by category · pending reimbursements.
Projects
Open and closed tasks · workload by assignee · overdue · deadline compliance.
Inventory
Stock value · low-stock products · turnover · distribution by warehouse.
Why the produced JSON works where others fail
Spreadsheet Dashboard has seven non-obvious pitfalls that break most generic generators. SATI avoids them by design.
- Only one visible sheet. Odoo's Dashboard mode renders the first sheet only. Everything goes in "Dashboard" + hidden "Data".
- Boolean fields never as a measure.
They break in charts; replaced with
__count+ a filtered domain. PIVOT.VALUEwrapped inIFERROR. If the pivot is empty, the cell returns 0 instead of #ERROR.- Decimals preserved.
FORMAT.LARGE.NUMBERtruncates to integer; we applyROUND(..., 2)first. - Snapshot vs binary.
Each module upgrade deletes
ir.attachment[name='spreadsheet_snapshot']and rewrites the binary from the repo. noupdate="1"does not refresh binary. The migration script does a manual rewrite ofspreadsheet_data.- Baselines without duplicates.
Description goes only in
baselineDescr.textof the figure, never in the underlying cell.
Technical specifications
| Version | 19.0.10.0.29 |
| Compatibility | Odoo 19.0 Enterprise · requires the spreadsheet_dashboard module. AI features additionally require the native ai module configured with at least one LLM provider (Gemini or OpenAI); the Visual Builder works without AI configured. |
| Dependencies | Hard: base, spreadsheet_dashboard, ai.Optional integrations auto-detected at install or later: helpdesk, account (templates load only when the corresponding module is present; the core builder runs on any Odoo model). |
| Category | Productivity / Dashboards |
| License | OPL-1 (Odoo Proprietary License v1.0) |
| Volume / multi-company | Volume and multi-company agreements via info@sati.com.py |
| Support | info@sati.com.py |
| Supported LLMs | Gemini 2.5 Pro, GPT-5, GPT-4 Turbo (via the native ai module of Odoo 19 Enterprise) |
| Chart types | 14 native o_spreadsheet types |
| Languages | 17 locales: Spanish (es, es_ES, es_PY), English (source), French (fr, fr_FR), German (de, de_DE), Italian (it, it_IT), Portuguese (Brazil, pt_BR), Dutch (nl, nl_NL), Russian (ru_RU), Chinese Simplified (zh_CN), Japanese (ja), Arabic (ar), Turkish (tr). All shipped as .po files in i18n/. |
| Author | Rapidsoft S.A. (SATI) |
For AI generation: use an analytical model
We recommend Gemini 2.5 Pro, GPT-5
or GPT-4 Turbo
with response_style=analytical and
temperature=0.2. The flash,
mini, nano and fast variants produce
poor structure (broken boolean measures in charts, extra
visible sheets, PIVOT.VALUE formulas with #ERROR).
Want Anthropic Claude as the LLM? SATI also publishes a dedicated
Claude provider connector module for Odoo 19's
ai framework. It is a separate SATI offering, not
bundled with this module. Contact
info@sati.com.py
if you want to add it to your deployment.
Configured once in Setup > AI Agents > your agent.
Two lives of the same pivot
Other dashboard tools render flat tables. SATI Dashboard Builder generates a real Odoo Spreadsheet pivot object that lives in two states at once: read-only inside the executive dashboard, AND fully editable inside the Spreadsheet editor. Same data, same record, two views. The user picks the one they need without you having to rebuild anything.
The pivot appears next to the funnel as a Top 10 list of salespersons by opportunity count, with the carousel's tabs (Stacked Column / Top 10 / Data) for alternate views. The operator reads the executive summary at a glance. No formulas to write, no UI to configure.
Same record, opened in the Spreadsheet editor. Each cell carries
a =PIVOT.VALUE(12, "__count", "user_id", 89) formula
visible in the formula bar. The operator can change the
aggregation, swap dimensions, drill down to the underlying
records, or reference the same value from any other cell or
sheet. The pivot is a data source, not a frozen artefact.
The same dashboard opened in EDITOR mode. Every section header (Key Metrics, Pipeline Visualisations, Trends Over Time) lives in a cell. A chart is selected; the right-hand panel exposes its full configuration (chart type, model, domain, filter matching) that the operator can edit in place. No code, no JSON. The "Dashboard" and "Data" sheet tabs are visible at the bottom: the data sheet is the hidden Pivot source the dashboard sheet reads from. Standard Odoo Spreadsheet, nothing custom.
Why this matters: any dashboard tool can render a static pivot table. Only Odoo Spreadsheet lets the same pivot be a view and a data source at the same time, and lets the operator open the entire dashboard in editor mode with full cell and chart access. We generate that. You manipulate it. That is the difference between a generated artefact and a real, living part of your Odoo instance.
Frequently asked questions
What is the difference with building a Spreadsheet Dashboard by hand?
Building a Spreadsheet Dashboard by hand requires writing the right formulas (=PIVOT.VALUE with the right ID, =ODOO.LIST with the right columns), wiring scorecards to hidden Data cells, configuring global filters, and avoiding seven non-obvious pitfalls of the engine. SATI Dashboard Builder automates all of that with an AI wizard or a step-by-step Visual Builder: and the output is structurally identical to what you would produce by hand, so you can keep editing it the same way.
Do I need technical skills to use it?
No. The Visual Builder requires no code or formulas: everything is selection-based. AI generation only requires describing the dashboard in natural language. Advanced users can fine-tune each element from the wizard.
Does it work on any Odoo model?
Yes: on any model with numeric or aggregable fields. We recommend Odoo's .report / .analysis reporting models. The module also allows specifying a different analysis model from the main one.
What happens to dashboards if I upgrade the module?
Previously created dashboards (spreadsheet.dashboard instances) are not touched. Upgrade only refreshes wizard code, chart gallery and pre-built templates.
Can I edit a dashboard after it is created?
Yes: via Odoo's native Spreadsheet editor: move cells, adjust formulas, switch chart types, add elements. This is what makes SATI's approach distinctive: the output is editable like any native dashboard, leveraging Odoo's standard Spreadsheet engine.
Which LLM should I pick?
Any analytical model available through the native ai module of Odoo 19: Gemini 2.5 Pro, GPT-5 or GPT-4 Turbo. The flash / mini / nano / fast variants produce defective structure and are not recommended. Configure your agent with response_style=analytical.
Can I build dashboards without AI configured?
Yes: use the Visual Builder. It is 100% self-contained and does not require any AI agent.
Does it support Spreadsheet Dashboard's global filters?
Yes: Odoo's native filters. They apply automatically to every KPI, chart, pivot and list. No parallel system.
Is professional support available?
Yes. SATI offers implementation support, internal training and custom template development. Contact us at info@sati.com.py.
Rapidsoft S.A. (SATI)
Your partner in Technology and Innovation. Implementation, training and custom development on Odoo 19 Enterprise.
SATI Dashboard Builder
Generate native Odoo 19 Spreadsheet Dashboards with AI or a step-by-step Visual Builder. The output is a real spreadsheet.dashboard record, identical in shape to the dashboards Odoo Enterprise ships with Sales, Helpdesk and Invoicing.
Overview
The module wraps two native Odoo 19 Enterprise foundations:
- The ai module (AI agents, multi-provider LLM support).
- The spreadsheet_dashboard engine (cells, PIVOT, ODOO.LIST, carousels, global filters).
It does not replace them. It automates the construction of dashboards on top of them so that operators get sales, invoicing, CRM or helpdesk dashboards by describing what they want in plain language.
Key features
AI generation
- Describe the dashboard in plain language; the agent emits validated JSON with KPIs, charts, pivots and lists.
- Ten pre-built executive prompts cover the most common business areas (Invoicing, Collections, Sales, CRM, Purchases, Accounting, Support, Expenses, Projects, Inventory).
- Validation and self-correcting loop iterates up to 3 times to repair broken JSON before creating the dashboard.
Visual Builder
- Three-step wizard.
- Per-section hints and inline chart-type gallery with SVG previews of each visualisation.
- No JSON, no code.
KPIs and scorecards
- Previous-period comparison (month, quarter, year).
- Native colour styling per scorecard.
- IFERROR wrapping prevents broken cells.
Pivots and lists
- Real Odoo Spreadsheet pivots: drillable, composable via PIVOT.VALUE from any cell.
- Lists rendered through =ODOO.LIST with multi-column ordered output and table styling.
- Column headers display the actual col_group_by values (stage names, periods) instead of repeated measure labels.
Global filters
- Date, relation and text filters.
- Applied automatically to every KPI, chart, pivot and list whose source model has a matching field.
- Native Odoo mechanism, not a reimplementation.
Reusable templates
- Define a dashboard template once.
- Apply it across customers, models or business areas.
Dependencies
- base
- spreadsheet_dashboard
- helpdesk
- account
- ai
Compatibility
- Odoo 19.0 Enterprise.
License
Odoo Proprietary License v1.0. See the LICENSE file at the root of the module for the full text.
Support
- Email: info@sati.com.py
- Website: https://www.sati.com.py
Recommended LLMs
Any analytical model supported by the native ai module of Odoo 19 Enterprise:
- Gemini 2.5 Pro
- GPT-5 or GPT-4 Turbo
Configure the agent with response_style=analytical. Flash, mini, nano or fast variants are not recommended because they produce broken JSON output.
Changelog
19.0.10.0.20
- Two render fixes: coloured data bars now appear on every numeric column of a top-N list, and column order is preserved as the operator or AI specified.
19.0.10.0.19
- Three render fixes: KPI section header no longer overlaps with scorecards; scorecard baseline no longer renders infinity when previous period is empty; carousel data-view pivot stays narrow on multi-dim charts.
19.0.10.0.18
- Default prompts for the 10 quick-example buttons rewritten as executive briefs that demand five emoji-headed sections, baseline KPIs, stacked bars and rich top-N lists.
19.0.10.0.17
- New section field on KPIs, charts, lists and pivots groups consecutive items under one header.
- Auto-carousels per chart type when extra_views is empty.
- Pivot column header rendering fix.
19.0.10.0.16
- Multi-dimensional charts via CSV group_by expression.
19.0.10.0.15
- Migration relinks the Common Rules topic to existing agent installations after the noupdate-blocked v10.0.11 release.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module