Automatiser un rapport Matomo hebdomadaire avec n8n, sans dépendre de Google
Publié le 13 août 2026 · 7 min de lecture
Chaque lundi, quelqu'un se connecte à Matomo, compare les visites de la semaine à la mémoire qu'il a de la précédente, puis recopie trois chiffres dans un message Slack. Ce rituel manuel a un défaut de plus que son équivalent Google Analytics : Matomo n'a pas de node natif dans n8n, donc personne ne l'automatise jamais vraiment. Pourtant, l'API Reporting de Matomo est l'une des plus complètes du marché, et le node HTTP Request suffit largement à construire le même rapport hebdomadaire, la même synthèse IA et la même alerte de chute de trafic que pour GA4 — sans faire transiter une seule donnée de vos visiteurs par un serveur tiers.
Pourquoi automatiser Matomo plutôt que Google Analytics
Le choix de Matomo est rarement technique en premier lieu : c'est une décision de conformité et de souveraineté. Hébergé sur votre propre infrastructure, Matomo ne partage aucune donnée de navigation avec un tiers — un point qui compte de plus en plus pour les entreprises soumises au RGPD. L'étude de Jannick Kirk Sørensen et Sokol Kosta, « Before and After GDPR: The Changes in Third Party Presence at Public and Private European Websites », publiée à la conférence WWW 2019, a suivi 1 250 sites pendant huit mois autour de l'entrée en application du RGPD et documente une réduction du nombre de traceurs tiers sur les sites européens dans cette période. Un outil d'analytics self-hosted comme Matomo pousse cette logique à son terme : zéro tiers dans le pipeline de mesure d'audience, par construction plutôt que par réglage a posteriori.
Reste que sans automatisation, cet avantage de conformité se paie en confort perdu : pas de node natif, pas de reporting IA prêt à l'emploi. Le workflow ci-dessous comble ce manque.
Interroger l'API Reporting de Matomo avec HTTP Request
L'API Matomo répond sur un point d'entrée unique, https://votre-matomo.example/index.php, où chaque appel précise un module=API, une method (le rapport demandé) et un format=JSON. Trois paramètres pilotent la période :
idSite— l'identifiant numérique du site suivi, visible dans l'URL d'administration.period—day,week,month, ourangepour une plage personnalisée.date— une date de référence (today,yesterday,2026-08-03) ou deux bornes séparées par une virgule siperiod=range.
Dans n8n, un node HTTP Request en méthode POST appelle cet endpoint. Le token_auth — récupéré dans Matomo sous Administration > Personnel > Sécurité — part en Body Parameter, jamais en paramètre d'URL : Matomo le recommande explicitement, un token en query string finissant dans les logs du serveur web et dans l'historique du reverse proxy. Le credential se stocke chiffré côté n8n, sur le même principe que décrit dans notre guide pour sécuriser les credentials API dans n8n.
{
"module": "API",
"method": "VisitsSummary.get",
"idSite": "1",
"period": "week",
"date": "2026-08-03",
"format": "JSON",
"token_auth": "={{ $credentials.matomoApi.token }}"
}
Pour la comparaison semaine sur semaine, deux appels valent mieux qu'une syntaxe unique : un premier avec date calée sur la semaine en cours, un second sur la semaine précédente ({{ $now.minus({ weeks: 1 }).toFormat('yyyy-MM-dd') }}). Contrairement à la Data API de GA4, Matomo ne permet pas de faire tenir deux plages dans un seul appel — deux nodes HTTP Request en parallèle, fusionnés ensuite, font parfaitement l'affaire. Notre guide de la pagination et des bonnes pratiques HTTP Request dans n8n couvre les réglages communs (timeout, retry) à appliquer à ces deux appels.
Choisir les bonnes méthodes de l'API
Un socle de trois méthodes couvre l'essentiel d'un rapport hebdomadaire actionnable :
VisitsSummary.get— visites, visiteurs uniques, taux de rebond, durée moyenne : les totaux qui ouvrent le rapport.Referrers.getReferrerType— répartition du trafic par type (direct, moteurs de recherche, sites référents, réseaux sociaux, campagnes), l'équivalent du couplesessionSource/sessionMediumde GA4.Actions.getPageUrls— les pages les plus visitées de la période, pour repérer ce qui attire (ou perd) du trafic.
Un quatrième appel, Goals.get, s'ajoute si vous suivez des conversions (téléchargement de guide, clic vers un pack) — Matomo les appelle des « objectifs », configurables sans code depuis l'interface d'administration.
Comparer les deux périodes et ne garder que l'essentiel
Un node Code fusionne les résultats des deux appels (semaine courante, semaine précédente) sur la clé commune — type de référent ou URL de page selon le rapport — puis calcule la variation absolue et le pourcentage pour chaque ligne. Trois règles gardent le rapport lisible :
- Trier par variation absolue, pas par pourcentage : une page qui passe de 3 à 15 visites affiche +400 %, un chiffre spectaculaire mais sans intérêt décisionnel.
- Limiter à un top 10 des hausses et des baisses par rapport.
- Calculer les totaux globaux (visites, visiteurs uniques, taux de rebond) qui serviront de titre au message et de base à l'alerte quotidienne.
Ce squelette période-sur-période est identique à celui de notre rapport GA4 hebdomadaire automatisé avec n8n : si vous gérez des sites sur les deux outils, les deux workflows partagent la même structure de node Code, seul l'appel HTTP change.
Synthèse IA, envoi et archivage
Un node IA transforme le tableau de variations en trois ou quatre phrases : tendance globale, sources en progression, anomalies à surveiller. Contraignez le prompt à ne commenter que les chiffres fournis, sans spéculer sur des causes externes invérifiables — le même principe de rigueur que pour le rapport de synthèse d'audit généré par IA du Pack Conformité & Audit. Le message part ensuite sur Slack (voir notre guide du bot Slack avec n8n pour le formatage en blocs) ou par email.
Pour l'historique, archivez chaque exécution avant l'envoi :
- Google Sheets, suffisant pour un suivi simple — voir automatiser Google Sheets avec n8n.
- Postgres, dès que vous voulez des moyennes mobiles ou du année-sur-année sur plusieurs sites — voir le node Postgres de n8n. Si cette base sert aussi de piste de traçabilité RGPD, elle peut réutiliser le même schéma que celui de notre guide sur la piste d'audit RGPD avec n8n et Supabase.
Une alerte quotidienne en cas de chute de trafic
Le rapport hebdomadaire ne suffit pas si le trafic décroche un mercredi. Un second workflow, léger, sur un déclencheur quotidien :
- Deux appels
VisitsSummary.getenperiod=day: avant-hier, puis le même jour de la semaine précédente. - Un node IF : si la baisse dépasse un seuil (30 % est un bon point de départ), le workflow continue ; sinon il s'arrête sans notifier.
- Un message Slack immédiat avec le chiffre et les référents qui expliquent le plus la baisse.
Comparez toujours au même jour de la semaine précédente, jamais à la veille, pour ne pas confondre une baisse réelle avec la saisonnalité hebdomadaire normale d'un site. Calez le cron sur le fuseau horaire configuré dans Matomo pour ce site, comme détaillé dans notre guide du Schedule Trigger et des fuseaux horaires n8n.
Pièges spécifiques à Matomo
- L'archivage n'est pas automatique par défaut. Matomo peut fonctionner en « browser triggers archiving » : les rapports ne se calculent qu'au premier accès à l'interface. Un workflow qui interroge l'API avant que quiconque n'ait ouvert le tableau de bord peut recevoir des données incomplètes. Sur une instance dédiée au reporting automatisé, désactivez ce mode et planifiez un cron
archive.phprégulier côté serveur. - L'anonymisation d'IP peut réduire le comptage des visiteurs uniques sur les sites à faible trafic, puisque des visiteurs différents partageant une IP tronquée peuvent fusionner. Ce n'est pas un bug : c'est le compromis attendu d'un outil pensé pour la conformité.
- Le fuseau horaire du site Matomo n'est pas forcément celui du serveur n8n. Vérifiez le réglage par site (Administration > Sites > Fuseau horaire) avant de calculer vos bornes de dates, sous peine de décaler silencieusement le rapport d'une journée.
- Le rate limiting existe mais reste rarement un problème pour un rapport hebdomadaire ou une alerte quotidienne — il ne se manifeste qu'en cas de boucle interrogeant l'API à haute fréquence sur plusieurs sites.
Passer à l'échelle avec le Pack Conformité & Audit
Construire ce reporting Matomo — appels HTTP, comparaison de périodes, synthèse IA, alerte — représente une bonne après-midi de travail la première fois, entre les réglages d'archivage et les subtilités de l'API. Si votre priorité est justement la conformité RGPD plutôt que le reporting seul, le Pack Conformité & Audit (149 €) livre quatre workflows prêts à importer — bot de questionnaire, piste d'audit Supabase, relances de dossiers incomplets et rapport de synthèse par IA — sur le même principe de traçabilité horodatée qu'un tableau de bord Matomo bien construit. Et pour les équipes qui veulent aussi un assistant documentaire capable de citer vos procédures internes, le Bundle FlowKit Complet (269 €) réunit ce pack avec l'Inbox IA et l'Assistant RAG.
En résumé
- n8n n'a pas de node Matomo natif : le node HTTP Request sur
module=APIcouvre toutes les méthodes de l'API Reporting. - Le
token_authpart en Body Parameter, jamais dans l'URL — recommandation explicite de Matomo. - Trois méthodes suffisent à un rapport actionnable :
VisitsSummary.get,Referrers.getReferrerType,Actions.getPageUrls. - Comparez semaine sur semaine avec un node Code, top 10 trié par variation absolue, synthèse IA contrainte, envoi Slack ou email.
- Vérifiez l'archivage côté Matomo (cron
archive.php), le fuseau horaire par site, et l'effet de l'anonymisation d'IP sur les petits volumes. - Une alerte quotidienne à seuil complète le rapport hebdomadaire, sur le même déclencheur que pour un reporting GA4.
FAQ
Questions fréquentes
Existe-t-il un node Matomo natif dans n8n ?
Non, n8n ne propose pas de node Matomo natif. On interroge l'API Reporting de Matomo avec le node HTTP Request générique, qui couvre l'intégralité des méthodes disponibles. Un node communautaire (n8n-nodes-matomo) existe pour les instances self-hosted qui autorisent les community nodes, mais le HTTP Request reste la solution la plus portable, y compris sur n8n Cloud.
Le token_auth Matomo doit-il être envoyé dans l'URL ou dans le corps de la requête ?
Dans le corps de la requête (POST), pas dans l'URL. Matomo le recommande explicitement : un token_auth en paramètre GET finit dans les logs du serveur web, dans l'historique du proxy et dans les URLs partagées par erreur. Le node HTTP Request de n8n envoie le token en Body Parameter, jamais en Query Parameter, et le credential est stocké chiffré.
Pourquoi mon rapport Matomo affiche-t-il des chiffres à zéro juste après la période concernée ?
Matomo n'agrège pas ses rapports en temps réel : par défaut, l'archivage se déclenche au premier accès à l'interface (browser triggers archiving), ce qui peut retarder les données si personne n'a ouvert le tableau de bord. Sur une instance sérieusement utilisée en reporting automatisé, désactivez ce mode et planifiez un cron archive.php régulier côté serveur Matomo, indépendant de vos workflows n8n.
Matomo self-hosted dispense-t-il d'un bandeau de consentement cookies ?
Cela dépend de la configuration : Matomo propose un mode « sans cookies » et une anonymisation d'IP qui, combinés, permettent dans de nombreux cas de se passer du consentement préalable selon les recommandations de la CNIL sur les outils de mesure d'audience exemptés. Ce n'est pas automatique : il faut activer ces réglages explicitement et vérifier qu'ils correspondent à votre usage réel (segments, identifiants utilisateurs, etc.).
Bundle FlowKit Complet
269 €