If you're migrating from Matomo to Zenovay, the Matomo Importer lets you bring your historical daily aggregates into Zenovay so you keep full context on the day you switch. Zenovay connects to your Matomo Reporting API using your instance URL, token_auth, and site ID, then pulls the history directly. Your Matomo instance needs to be publicly reachable (self-hosted on a public host, or Matomo Cloud).
What it imports
- Daily pageviews, visits, and unique visitors (over the requested date range)
- Top pages, top referrers, top countries
- Browser, device type, and operating-system breakdowns
What it doesn't import
- Individual visitor sessions or raw event logs
- Custom dimensions or custom reports
- Ecommerce / revenue events
- Real-time data (only completed days; today is always excluded)
- Goals and conversions (daily aggregate totals only)
What you need
- Your Matomo instance base URL (e.g.
https://analytics.example.com) - Your
token_auth— find it in Matomo under Administration → Personal → Security → Auth tokens - Your Matomo Site ID — shown in Administration → Websites → Manage
If you don't want to use a personal token, create a dedicated token with View access to the site you're importing, and delete it once the import is done.
How to import
- Open your domain's detail page → Import tab.
- Select Matomo, then switch to the API connection mode.
- Enter your Matomo URL,
token_auth, and Site ID. - Click Connect and Import and wait for the progress bar.
By default Zenovay imports roughly the last 90 days. The import runs in the background, so you can navigate away and come back; the status will be waiting for you on the Import tab.
Behind the scenes, Zenovay calls the Matomo Reporting API (VisitsSummary.get and Actions.get for daily totals, plus Actions.getPageUrls, Referrers.getReferrers, UserCountry.getCountry, and DevicesDetection.* for the breakdowns) with your credentials. The token_auth is used only for this import; you can revoke it from Matomo at any time.
After a successful import, revoke or rotate your token_auth in Matomo — using a short-lived, read-only token created specifically for the import is the safest approach.
Verify your import
After the import completes, run through this short checklist to confirm the data landed correctly. This is the same runbook the Zenovay team uses internally.
- Open any analytics view in your dashboard (for example, pageviews for the last 90 days). The imported data appears immediately, blended with any native data already collected.
- Spot-check 3 random days against your Matomo dashboard. Expect ±5% on pageviews, ±3% on visits — Matomo and Zenovay dedupe visitors differently, so a small gap is normal.
- Imported rows are tagged
imported_from='matomo'in the database, so you can always tell them apart from data Zenovay collected natively. (Note: the Stats API doesn't exposeimported_fromas a queryable filter key — its filters covercountry,browser,device,os,source, theutm_*dimensions, andpage. See Stats API for the full filter syntax.) - Re-import the same period to confirm idempotency. The row count should stay the same — duplicates are impossible because of the database-level uniqueness constraint.
- When you're satisfied, remove or revoke the
token_authyou created for this import.
If any of these checks look off, email support@zenovay.com with the date you imported and which days look wrong. We can spot-fix individual days.
Troubleshooting
"Available on Pro" message
The Matomo importer requires a paid plan. Upgrade your plan →
"Authentication failed"
Double-check your token_auth — it is case-sensitive. Also confirm the base URL does not have a trailing slash and is publicly reachable (Zenovay's servers cannot reach private network addresses like http://192.168.1.x). Create a new token in Matomo under Administration → Personal → Security → Auth tokens with at least the View permission on the target site.
"Site ID not found"
Confirm the Site ID by going to Administration → Websites → Manage in Matomo. The ID is the number shown next to your site name. If you have multiple sites, ensure you're using the ID that matches the domain you're importing into Zenovay.
"No data returned"
If Matomo returns empty reports for your date range, check that tracking was active on those dates and that the Matomo site ID matches the domain. Also verify that the token_auth has View access to the site, not just superuser access to the admin area.
"Import timed out"
Very large date ranges (several years) can take time to process. Zenovay will retry automatically. If the import keeps timing out, try splitting the date range into smaller chunks (e.g. import one year at a time) and re-import — the idempotency constraint means overlapping ranges are safe.
FAQ
Will it overwrite my native Zenovay data?
No. Imported rows are tagged with imported_from='matomo'. They are stored alongside (not on top of) any data you collect natively with the tracking script, so they're always distinguishable in the database.
Can I re-import? Yes, anytime. Re-importing overwrites the same date range cleanly — no duplicates, no orphan rows.
Is the Matomo import free? No. The Matomo importer (like the other analytics importers) requires a Pro or higher plan.
What time zone are the imported daily totals in? The imported rows use your Matomo site's configured time zone for the date dimension. If your Matomo site is set to Europe/London, "2026-05-16" in the import means a full day in London time.
Does Zenovay keep my token_auth?
No. Your token_auth is sent with the import request, used only to make the Matomo Reporting API calls for that one import, and then discarded. It is not saved to a Zenovay database or reused. Even so, once the import is complete you should revoke or delete the token in Matomo as a precaution.
Will Zenovay see my visitors' personal data? No. The Matomo Reporting API returns only aggregate statistics (totals, top-N lists). No individual visitor records, IPs, or user IDs are transferred to Zenovay.
Does this affect my Matomo data? No. The importer is read-only. Zenovay never writes to your Matomo instance.