6.2.0
- Insights follow the table as you left it: the search, the sort, the flattening and up to 5 expanded rows, whose subtables are added to the analysis (#16).
- The rate limit is configurable in a
[ChatGPT] section of config/config.ini.php: rate_limit_requests (30 by default, 0 disables it) and rate_limit_window in seconds (3600 by default) (#17).
- The name shown in the top menu, on the chat page and in the insights panel is configurable with
display_name in the same section, for example for a self-hosted model (#15).
6.1.2
- Fix: a default prompt saved with Windows (CRLF) line breaks is recognised again on Linux servers, so it follows the new default instead of being kept as a custom prompt.
6.1.1
- Request parameters are read with
Piwik\Request instead of the deprecated Common::getRequestVar, ready for the next Matomo versions.
6.1.0
Action required. Nothing is sent to the AI provider any more until a super user checks Allow sending Matomo data to the AI provider in Administration > System > ChatGPT, Privacy card. Until then, the chat and the insights ask users to contact a super user. Settings saved for your websites are kept, and custom prompts are not changed.
Privacy
- New privacy settings in Administration > System > ChatGPT, Privacy card: nothing is sent to the AI provider until a super user checks Allow sending Matomo data to the AI provider, off by default. They also show where the data goes.
- Before sending, e-mail and IP addresses are masked and URL query strings are removed, in the report data and in the results of the Matomo tools. Both are on by default.
- Visitor-level data (Visits Log, visitor profiles, real-time and User ID reports) is excluded by default from the insights and the agent.
- The chat tells users that their questions, and the Matomo data read to answer them, are sent to the AI provider configured by the administrator.
- When a Matomo tool fails in agent mode, the AI provider only receives a generic error with a reference: the details stay in the Matomo logs.
- DOMPurify updated to 3.4.16.
Agent mode and key cascade
- One key is enough, in this order: the API key of the website, then the provider connected in Administration > System > AI Providers, then the general API key. When AI Providers is connected, it takes over the chat, the insights and the agent, and the general connection fields become read-only. A website key still overrides AI Providers for that website.
- The chat recommends, one step at a time, how to unlock the agent mode: activate AI Providers, connect a provider, install, activate or enable MCP Server, allow its write methods. Super users get a direct link for each step.
- In agent mode, write actions are only performed after the agent has described the change and the user has confirmed it explicitly, whatever the base prompt says.
- A missing, deactivated or failing AI Providers or McpServer plugin never breaks the plugin, which keeps working with its own settings.
Settings
- New Administration > System > ChatGPT page for the general settings, with a Connection card and a Prompts card saved separately, and a Delete key button. The settings are no longer listed in Administration > General settings.
- Website settings moved from the website edit form to a dedicated Administration > Websites > ChatGPT page. New API methods
ChatGPT.getSiteSettings, ChatGPT.setSiteSettings and ChatGPT.setSystemSettings. Saved API keys are never sent back to the browser.
- New default chat and insight prompts, written for analytics. Default prompts of previous versions are upgraded automatically in the language of each user, custom prompts are kept, and a Reset to default button restores the defaults.
- The default prompts ask the assistant to flag the figures of a period that has not ended yet as partial and to compare the same number of elapsed days instead of calling a drop a decline, and to compute every difference, percentage and ratio from the exact numbers. Installs still on a previous default prompt get the new one, custom prompts are kept.
- New "Latest recommended" model, the default for new installs (currently GPT 6 Astra), and an updated model list without the models deprecated by OpenAI. A deprecated or unavailable model is explained in the chat with a link to the settings. The model saved by previous versions is kept.
- The API key is optional on a custom host (self-hosted or compatible endpoint), as the documentation states: the chat, the insights and the plugin assets work with a keyless custom host, and no Authorization header is sent without a key. The default OpenAI host still requires a key.
- The host is checked with the same HTTPS rule when the settings are saved and when a request is sent, and the configuration errors of a request (host, API key, model, HTTPS) are translated.
Chat and insights
- Redesigned chat: accessible, keyboard friendly insight panel, copy buttons, scrollable tables and code blocks, a timeline of the tools used by the agent, ChatGPT-like auto-scroll, and suggested questions on the ChatGPT page.
- The send button and the logo tiles use the ChatGPT brand colour.
- The insight panels of ChatGPT, Mistral AI, Claude and Ask AI close each other when one opens, and closing one no longer lets the page scroll under the panel that is still open.
- Insights analyse the full report as a compact payload with its totals, follow the active segment, period and comparisons, and also work on evolution graphs, goals, custom reports and more. Errors are displayed as clean messages, without technical details.
- Wide answer tables fit the insight panel, their columns wrap or scroll sideways instead of being cut off on the right.
- Once the limit of 30 requests per hour is reached, the chat and the insight panel show the rate limit message in the language of the user instead of a generic error.
- Interface translated into 13 languages, including the rate limit message. The help texts point to Administration > System > AI Providers.
Security
- Insight requests are restricted to the report and data methods of the widgets declared by Matomo.
- The general API key is only sent to the general host, a website using its own host never receives it.
- The general host must be an HTTPS URL: an
http:// host, which made every request fail, is now refused on save with a clear error.
Documentation
- README: the plugin description now shows in the Description tab of the Matomo Marketplace.
6.0.2
- Security: restrict insight requests to Matomo reports.
6.0.1
- Insights no longer send an API error (for example a missing access to the website) to the AI model as if it was the report data: the error is displayed in the chat.
- Declare the PHP 8.1 minimum requirement.
- Add unit, integration and Vue tests, run on GitHub Actions.
6.0.0
New: AI agent connected to Matomo tools (MCP)
- The chat and the Insights panel now work as an agent using the Matomo tools of the McpServer plugin: it looks up reports, websites, goals, dimensions and segments by itself and can perform actions allowed by the McpServer settings.
- Tools are called inside Matomo with the permissions of the current user: no public URL or OAuth client required.
- The agent uses the AI provider configured in Administration > System > AI Providers.
- Each tool used by the agent is displayed in the conversation.
- A notice explains how to enable the agent when the McpServer plugin or an AI provider is missing, the classic chat is used meanwhile.
- Insights in agent mode: the analysis of the report is requested automatically and answered as readable Markdown.
- Without McpServer or AI provider, the plugin works exactly as before with its own Host, API key and model settings.
Security
- AI answers are now sanitized with DOMPurify before being displayed, which fixes links that could run JavaScript when clicked (for example through data coming from report labels).
Chat improvements
- The conversation automatically scrolls to the latest message while the answer is written, unless you scroll up to read previous messages.
- The last message is no longer hidden under the message input on the ChatGPT page.
- The page no longer scrolls behind the open Insights panel, and message bubbles no longer have their own scrollbar.
Matomo 6 compatibility
- Compatibility with Matomo 6.x (
>=6.0.0-b1,<7.0.0-b1), requires PHP 8.1+.
- Vue components now built with the Matomo 6 Vite build. The markdown renderer is bundled with the plugin.
- Accessibility improvements: labelled chat input, explicit button types.
- Support email and plugin homepage moved to openmost.com.
5.6.1
Support fallback color value for Matomo < 5.10
5.6.0
Refreshed model list and visible error reporting
New Features
- Refreshed preset model list: Added the GPT 5.5, GPT 5.4, GPT 5.1 and GPT 5 conversational families. Default model is now GPT 5.5.
- Curated for chat: The preset list now only contains models suited for back-and-forth discussion of report data. Reasoning models (o-series) and
*-pro variants have been removed because they target one-shot deep analysis rather than conversation, which produced a poor chat experience.
Improvements
- Visible error notices: Errors returned by the upstream model API (invalid model, quota, auth, etc.) are now surfaced as a danger notice inside the chat instead of failing silently. This works for both streaming and non-streaming requests.
- HTTP status detection in streaming: The streaming endpoint now inspects the upstream
Content-Type and HTTP status, so non-SSE error responses are converted into a structured error event the client can render.
- Snappier error UI: When an error event is received, the loading spinner is cleared immediately so the notice appears without delay.
- Dark theme support: All chat and insight components use Matomo's native CSS theme variables (
--theme-color-background-contrast, --theme-color-border, etc.), so the UI automatically follows Matomo's light/dark theme without any extra configuration.
Notes for Custom Models
The "Model (Custom)" field still accepts any model name, including custom or self-hosted ones. If you enter a model that the configured endpoint cannot serve (for example, a *-pro variant on /v1/chat/completions), the upstream error message will now be shown directly in the chat.
5.5.7
- update: documentation
- update: lists and markdown style
5.5.5
- fix: constant declaration issue cause issue on updating
5.5.0
Major Update: Settings Refactoring, Streaming & UI Improvements
New Features
- Custom Model Support: Added ability to specify custom model names to override presets
- Optional API Key: API key is now optional when using custom hosts (self-hosted LLMs)
- Unified Streaming: Both Chat and Insights now use the same streaming endpoint with automatic mode detection
- Automatic Streaming Fallback: Streaming auto-detects and falls back to non-streaming if unsupported
- Escape Key Support: Close Insights offcanvas panel by pressing Escape
Improvements
- Refactored model selection: split into "Model (Preset)" dropdown and "Model (Custom)" text field
- Centralized model definitions in main plugin file for consistency
- Improved settings architecture with shared
SettingsBase trait for system and measurable settings
- Better chat UI layout with proper flexbox sizing
- Updated default model to GPT-4o
- Added translations for all new settings in 7 languages (EN, DE, ES, FR, IT, NL, SV)
- Improved POST parameter parsing for messages and widgetParams
- Unified
getStreamingResponse API handles both chat and insight modes based on widgetParams
- Cleaner API with removed unused methods
Bug Fixes
- Fixed user messages not being sent to AI in streaming mode
- Fixed Insights not using correct prompt and report data
- Fixed chat messages list height not filling container
- Fixed streaming fallback behavior
- Fixed TypeScript errors in Vue components
Breaking Changes
- Removed
model setting, replaced with modelPreset and modelCustom
- Removed
enableStreaming setting (streaming is now automatic)
- Removed
getAvailableModels API method (now using static model list)
- Removed
clearModelsCache API method
- Removed
getRateLimitStatus API method
- Removed
getSettings API method
5.4.1
update: Support premium plugins
5.4.0
Here is the huge update you requested!
Now support every reports type (custom dim, custom reports, series lines etc...)
Handle streaming
Better error handling
Speed improvements
5.3.0
Update: ChatGPT models list:
5.2.5
Update : plugin category and _cover.png
5.2.4
Update: Support gpt-4-turbo and gpt-4o
5.2.3
Update: Handle error message in chat response
5.2.2
Update: Refactor Chat.vue component with AJAX Helper
5.2.1
Update: API method name in js file
5.2.0
Add : Measurable settings with override system settings ability
Add : API Call logger info
5.1.2
Fix: Chat form placeholder IA name
5.1.1
Update : Pass all params as PostParams in AjaxHelper function
5.1.0
Update conversation memory, IA can remember previous messages
Update Add conversation mode to Insights
5.0.7
Update documentation url
5.0.6
Support error messages handling
5.0.5
Update Marketplace links
5.0.4
Fix security issue in API
5.0.3
Fix security issue in API privileges
5.0.2
Update documentation
5.0.1
Update insight trigger positioning
5.0.0
Setup plugin from v4.2.0
History
View Plugin Page