One dashboard. A different segment for every widget.
Break free from Matomo's single global dashboard segment — give each widget its own view of your data.
Latest v0.5.1 · Matomo ≥ 5.0.0
Mixed dashboards, finally
Build boards like an "AI traffic" dashboard where most widgets use an AI-referrer segment — while the chatbot widgets keep showing all data.
Set once, applies everywhere
A dashboard-wide default segment covers every widget; individual widgets can override it or opt out.
No duplicate dashboards
Stop cloning boards per segment. One dashboard tells the whole story — saved and shared as usual.
Click to enlarge
No. Until you pick a segment for a widget or set a dashboard default, everything behaves exactly like stock Matomo.
Any saved Matomo segment you are allowed to see — the picker sits right in the widget header.
Yes. Segment choices are stored with the dashboard and applied every time the widgets load.
-
01
Download the Feinwerk connector and unzip it into your Matomo's
plugins/directory, then activate it. - 02 Open its settings and set the marketplace URL and your instance token.
- 03 Open the Feinwerk Plugins screen, find DashboardSegment, and click Install.
DashboardSegment
Choose and persist a Matomo segment per dashboard widget — with a dashboard-wide default that individual widgets can override or opt out of.
Matomo's dashboards only support one global segment applied to every widget at once. That makes mixed dashboards impossible — e.g. an "LLM / AI analysis" dashboard where most widgets should use an AI Referrer segment, but the AI‑chatbot widgets must show all data (they have no AI referrer by definition). DashboardSegment fixes that.
Features
- Per‑widget segment: pick a saved segment for any individual widget from a control in its header.
- Dashboard default: set one default segment for the whole dashboard; widgets inherit it.
- Three states per widget: inherit the default · a specific segment · No segment (all data)
(
__none__) which wins even over a dashboard default. - Per instance: the same widget can appear twice on a dashboard with different segments (useful for side‑by‑side comparison).
- Per site: segments are chosen and applied separately for each site; only the current site's saved segments are offered and applied.
- A small bar under the widget header shows the active segment, with a × to remove it (fall back to all data).
Precedence: per‑widget override > dashboard default > Matomo's global segment selector.
How it works (no core patches)
The plugin is purely additive — it never modifies Matomo core or the bundled Dashboard plugin, so it survives Matomo updates:
- It wraps the global
widgetsHelper.loadWidgetAjax(the single function every widget request flows through) and rewrites thesegmentrequest parameter per widget instance. - Each widget instance is tagged with a stable id stored in the dashboard layout (via the Dashboard plugin's own save), so duplicated widgets stay distinguishable.
- Overrides live in the plugin's own table
dashboard_widget_settings, keyed by(login, iddashboard, idsite, widget instance). - The segment list reuses the existing
SegmentEditorsegments.
To create a new segment (e.g. AI Referrer), use Matomo's normal segment editor once; it then appears in the per‑widget picker.
Requirements
- Matomo 5.x
- The bundled Dashboard and SegmentEditor plugins (active by default).
Installation
- Copy this folder to
plugins/DashboardSegmentin your Matomo installation. - Activate it: Administration → Plugins → DashboardSegment → Activate, or on the CLI:
Activation creates the./console plugin:activate DashboardSegment ./console core:clear-cachesdashboard_widget_settingstable.
Usage
- Open a dashboard.
- Use the segment button in a widget's header to pick a segment, "No segment (all data)", or "Inherit dashboard default".
- Use the Dashboard default segment control above the widgets to set a default for the whole dashboard.
- Switch sites to manage each site's selection independently.
Known limitations / roadmap
- Reactive / live widgets are not supported. Some widgets fetch and refresh their data client‑side (Vue) and read the segment/period directly from the dashboard's global state — e.g. the Live! widget and any widget with sparklines (such as "Visits Overview (with graph)"). An additive plugin cannot override global state for a single widget, so the per‑widget pickers are hidden on those widgets to avoid a false expectation. Standard server‑rendered report widgets (the majority) are fully supported.
- Matomo fires no event when a dashboard is deleted, so override rows for a deleted dashboard are not actively cleaned up. They are inert (their instance keys never match a live widget) and are removed when the user is deleted.
- Planned: bulk segment assignment, dashboard sharing (copy‑as‑template and share‑to‑users).
Development
- PHP logic (precedence, persistence, permissions) is covered by PHPUnit tests under
tests/. tests/jsSmoke.jsruns the client bootstrap with stubbed globals to catch runtime errors that a syntax check misses:node tests/jsSmoke.js.
License
GPL v3 or later.
-
v0.5.1 Sep 26, 2026
-
v0.5.0 Sep 25, 2026
-
v0.4.4 Jun 19, 2026
-
v0.4.3 Jun 19, 2026