Dashboards & Pulse Reports

Beyond single charts, the MCP Server can compose full dashboards and run Pulse Reports, pre-built operational diagnostics. Both are produced by the AI on demand, both can be saved as Shared Pages, and both ship with a polished default theme.

Dashboards: compose_dashboard

When a user asks “build me a dashboard of last month’s sales” or “give me a CRM overview”, the AI calls compose_dashboard. The tool returns a self-contained HTML artefact plus a recipe describing the dashboard’s contents.

The default theme is Command: dark slate background, cyan accent, mono numbers, and Linear / Vercel-style polish. You can override the brand colours per recipe.

Sections

A dashboard recipe is a list of sections of one of four types:

  • kpi: a big number tile with optional sparkline and percent-change pill (when the AI passes a historical series).

  • kpi_row: a row of KPIs that automatically adapts its layout when there are more than four KPIs.

  • chart: a bar, line, or donut chart. The server applies smart defaults: date groupbys auto-become line charts, >8 categories auto-become horizontal bars.

  • table: a paged data table with a “Showing X of N” badge when the result exceeds the limit.

    Composed dashboard with a 4-tile KPI

Two-step “save as page” flow

After compose_dashboard, the AI:

  1. Renders the dashboard inline (artifact-capable clients like Claude.ai) or summarises it (clients without HTML artefacts like ChatGPT or Gemini CLI).

  2. Asks the user explicitly: “Would you like to save this as a shareable Odoo URL?”

If yes, the AI calls save_dashboard_as_page with the same recipe, and a Shared Page is created (see Shared Pages).

The AI never saves silently. The user always confirms first.

Pulse Reports: pulse_report

The Pulse Report is an operational health diagnostic the AI can run at any time. It scores up to eight dimensions A–F and renders a polished dashboard with red / amber / green finding cards.

The eight dimensions

  • Sales: stale draft quotes older than 30 days.

  • Invoicing: overdue unpaid invoices.

  • CRM: stalled opportunities with no activity for 14+ days.

  • Activities: overdue mail.activity records.

  • Email queue: stuck outgoing emails.

  • Approvals: MCP approval requests waiting more than 24h.

  • Inventory: late stock transfers.

  • Projects: overdue tasks.

    Pulse Report dashboard with a big "D" grade card on the left, a severity bar across the top, and individual dimension cards colour-coded red, amber, and green

Typical user prompts

  • “Run a system pulse report.”

  • “How are we doing on invoicing and CRM?” The AI passes dimensions: ["Invoicing", "CRM"] so the report scopes to just those.

  • “Anything stuck in the email queue?” Narrowed to one dimension.

Dimensions whose underlying Odoo module isn’t installed are silently skipped, with no error and no empty card.

Save Pulse as Shared Page

For non-artefact AI clients (ChatGPT, Gemini CLI) the AI follows the same two-step pattern: summarise the top findings, then offer to save the polished dashboard as a public URL (save_pulse_as_page). The saved URL re-runs the pulse on every visit, so the dashboard always reflects current state.

Tip

The Pulse Report is one of the highest-impact features for owner-operators of small businesses. Wire it into a weekly cadence (“every Monday at 9 send me a pulse”) via an event subscription or a scheduled assistant.