---
title: "Umami weekly traffic summarized by AI and saved to Baserow"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/1d59f85c-c41c-497e-8bde-3f19dbdd8f1f"
updated: "2026-11-12"
---

# Umami weekly traffic summarized by AI and saved to Baserow

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that reads your site’s traffic from Umami every week. An AI model on OpenRouter summarizes the figures and compares the top pages with last week’s, and both notes are saved as a row in a Baserow table.

Umami weekly traffic summarized by AI and saved to Baserow is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-12. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns a week of website traffic into a written report. Each week it reads your site’s figures from Umami, the web analytics tool, and asks an AI model on OpenRouter for a summary table. It then reads the top pages of this week and last week, and asks the model to compare them and suggest five changes. Both answers are saved as one row in a Baserow table. Thirteen nodes do the work, beside six sticky notes.

### Who it suits

Site owners, bloggers and SEO freelancers who run Umami and want a written view of the week without opening the dashboard. Skip it if you do not use Umami. The workflow reads one site, and a run saves one row.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Publishing | Bloggers | Keep a weekly note on which posts gained or lost readers | A blogger sees that a post on bread starters moved from 12 to 30 visitors and writes a follow-up. |
| Marketing | SEO freelancers | Send clients a written weekly traffic note | A freelancer pastes the new row for a client’s site into the monthly report. |
| Ecommerce | Shop owners | Watch which product and category pages draw visitors | A shop owner sees a category page lose half its visitors and checks its links. |
| Education | Course teams | Track which lessons students read | A course team sees that the setup lesson has the most readers and moves it to the top of the menu. |

You need some n8n: import a file, add two Header Auth credentials and a Baserow credential, and fill in three names.

### Where to use it

Any n8n that can reach your Umami server, OpenRouter and Baserow will run it.

- n8n Cloud: import the file into a new workflow there, when your Umami server can be reached from the internet
- Your own n8n server: the same file and steps, and it can also reach an Umami server on your own network
- Umami Cloud: use \`https://api.umami.is/v1\` as the API address and your API key as the token
- Baserow: Baserow Cloud or a server of your own

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. You need an Umami site with its ID, a token for Umami, an OpenRouter key and a Baserow table.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| Umami | Your site, its API address, its website ID and a token |
| OpenRouter | An API key, and some credit for the paid model that the file names |
| Baserow | An account and a table with the fields Date, Summary, Pages and Site |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. In Umami, find the website ID in the settings of your site.
3. Get a token. Send a POST request to `/api/auth/login` on your Umami server, with a JSON body that holds your `username` and `password`. The answer holds a `token`.
4. In `Site to check`, replace `YOUR_UMAMI_HOST` with the address of your Umami server and keep `/api` at the end. Replace `YOUR_WEBSITE_ID` with the website ID and `YOUR_SITE_NAME` with a name for the site.
5. In `Get view stats from Umami`, add a Header Auth credential with the name `Authorization` and the value Bearer, a space and your token. Select the same credential in `Get page data from Umami` and `Get page view data from Umami`.
6. In `Send data to A.I.`, add a second Header Auth credential with the name `Authorization` and the value Bearer, a space and your OpenRouter API key. Select it in `Send data to A.I.1` too.
7. In Baserow, make a table with the fields Date, Summary, Pages and Site, and make Summary and Pages long text fields.
8. In `Save data to Baserow`, add a Baserow credential, then pick your database and your table.
9. Press Test workflow. A new row appears in the table.
10. Turn the workflow on, so that `Schedule Trigger` runs it every week.

### How to use it

Once the workflow is on, it runs by itself. `Schedule Trigger` starts it every Thursday at midnight, in the timezone of your n8n. Press Test workflow for an extra run at any time. Each run adds one row. The figures cover the last 7 days, counted back from the moment of the run.

What to change for a different result

| To change | Where |
| --- | --- |
| The site | The three values in \`Site to check\` |
| The day and the time | The rule in \`Schedule Trigger\` |
| The length of the period | The number of days in the addresses of the three Umami nodes |
| The number of pages | \`limit=20\` in the two page nodes |
| The questions to the AI | The text in the two \`Send data to A.I.\` nodes |
| The model | The \`model\` name in the JSON body of both AI nodes |
| The columns | The four values in \`Row for Baserow\` |

### Example

A blogger runs Umami for a bread-baking blog.

On Thursday at midnight the workflow reads the week. Page views are 120 against 100 the week before, and visitors are 50 against 60. The model writes a table of the five figures. The two page lists show that the home page kept its readers and that a new post on starters appeared. The model compares them and suggests five changes, such as linking the new post from the home page. Later the blogger opens Baserow and reads one row with both notes. Check the suggestions before you act on them, because they come from a model.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Umami counts the visits to your website. Baserow is an online table, a little like a spreadsheet. This workflow asks Umami for the week’s numbers, has an AI describe them and files the descriptions in the table. Press Test workflow before you turn on the schedule.

**For experts.** The model sees plain text lines, not the raw answers, and the compare step needs both page lists before it runs.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Get view stats from Umami\` | Reads the figures of the last 7 days | The answer of the \`stats\` route holds the figures and a \`comparison\` object for the 7 days before |
| \`Parse Umami data\` | Turns the figures into text lines | It also reads the older shape, a number and a \`prev\` value for each figure |
| \`Get page data from Umami\` | Reads the top 20 pages of this week | Always Output Data is on, so a week with no pages still moves on |
| \`Get page view data from Umami\` | Reads the top 20 pages of last week | The number for each page counts distinct sessions |
| \`Send data to A.I.1\` | Compares the two weeks | It takes this week’s lines from \`Parse Umami data1\` |
| \`Row for Baserow\` | Names four values: Date, Summary, Pages and Site | Baserow matches them to the table’s fields by name |

### Good to know

The original copy asked Umami for the wrong figures, used a model name that is gone and sent its prompts as percent codes.

- Figures: the original copy called \`event-data/stats\`, which answers about custom events, and then read page views and visitors from it. This copy calls \`stats\`, which gives page views, visitors, visits, bounces and total time
- Pages: the original copy used \`type=url\` and a \`tz\` setting. Umami’s source, read on 12 November 2026, lists \`path\` among the metric types and has no \`url\`, so this copy uses \`type=path\`. It asks for the top 20 pages, where Umami’s own default is 500, to keep the question short
- Answer shape: the code reads the current shape, where each figure is a number and a \`comparison\` object holds the 7 days before. It also reads the older shape with \`value\` and \`prev\`
- Encoding: the original copy ran the data through \`encodeURIComponent\`, so the model read percent codes. This copy sends plain text lines
- Model: the original copy asked for \`meta-llama/llama-3.1-70b-instruct:free\`. OpenRouter’s public model list, read on 12 November 2026, does not list that name. It lists \`meta-llama/llama-3.1-70b-instruct\` at about 0.72 US dollars per million tokens, and this copy uses it. For no bill, name a free model from the same list, such as \`google/gemma-4-31b-it:free\`, which has usage limits
- Token: Umami’s documentation says to send the token from the login route as a Bearer header. If a run ends with an authorization error, make a new token the same way and update the credential
- Schedule: the weekly rule runs on Thursday, as the original copy did, at 00:00, and only while the workflow is on
- One site: a run reads one website, so make a copy of the workflow for each other site
- Your data: page paths, visitor counts and the figures go to OpenRouter and the model’s provider, and the notes are stored in Baserow
- Credentials: the JSON holds none, and its author’s hosts, website IDs and Baserow ids are replaced by placeholders

## README

```markdown
# Umami weekly traffic summarized by AI and saved to Baserow

An n8n workflow that turns a week of website traffic into a written report. Each week it reads your site's figures from
Umami and asks an AI model on OpenRouter for a summary table. It then reads the top pages of this week and last week and
asks the model to compare them and suggest five changes. Both answers are saved as one row in a Baserow table.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 13 nodes and six sticky notes. It holds no credential.
- `README.md`: these notes.

## What we changed from the original copy

- `Get view stats from Umami` called `event-data/stats`, the route for custom events, and the code then looked for page
  views and visitors in its answer. The node now calls `stats`, which gives page views, visitors, visits, bounces and
  total time.
- The two page nodes asked for `type=url` and sent a `tz` setting. Umami's source, read on 12 November 2026, lists `path`
  among the metric types and has no `url`, so both nodes now use `type=path`. They also ask for a short list of pages. Umami's own default is 500, which makes a long question. The time zone setting was not needed and is gone.
- `Parse Umami data` read each figure as a `value` and a `prev` pair. Umami's current answer holds each figure as a
  number, with the 7 days before in a `comparison` object. The code reads both shapes.
- All three code nodes ran their data through `encodeURIComponent`, so the model received percent codes. The code nodes
  now write plain text lines, and each AI body is built with `JSON.stringify`.
- Both AI nodes asked for `meta-llama/llama-3.1-70b-instruct:free`. OpenRouter's public model list, read on 12 November
  2026, does not list that name. It lists `meta-llama/llama-3.1-70b-instruct`, so this copy uses it.
- Each page node now has Always Output Data on, so a week with no page views still reaches the compare step.
- A new node, `Site to check`, holds the Umami address, the website ID and the site name once. The original copy typed
  its author's hosts and website IDs into the nodes, and its prompts named the author's site. They are gone.
- A new node, `Row for Baserow`, names the four values Date, Summary, Pages and Site, and `Save data to Baserow` maps them
  to the table's fields by name. The original copy picked fields by number, and those numbers belonged to its author's table.
- The six sticky notes are rewritten and hold no outside links. The original copy linked to its author's pages.
- Every credential reference is removed, so you pick your own.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An Umami site that you can read, its API address, its website ID and a token. On Umami Cloud the address is
  `https://api.umami.is/v1` and the token is an API key.
- An OpenRouter API key.
- A Baserow account, on Baserow Cloud or a server of your own, and a table with the fields Date, Summary, Pages and Site.
  Make Summary and Pages long text fields, because the answers are long.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. In Umami, find the website ID in the settings of your site.
3. Get a token. Send a POST request to `/api/auth/login` on your Umami server, with a JSON body that holds your `username`
   and `password`. The answer holds a `token`.
4. In `Site to check`, replace `YOUR_UMAMI_HOST` with the address of your Umami server and keep `/api` at the end. Replace
   `YOUR_WEBSITE_ID` with the website ID and `YOUR_SITE_NAME` with a name for the site.
5. In `Get view stats from Umami`, add a Header Auth credential with the name `Authorization` and the value Bearer, a space
   and your token. Select the same credential in `Get page data from Umami` and `Get page view data from Umami`.
6. In `Send data to A.I.`, add a second Header Auth credential with the name `Authorization` and the value Bearer, a space
   and your OpenRouter API key. Select it in `Send data to A.I.1` too.
7. In `Save data to Baserow`, add a Baserow credential with your Baserow address, email and password. Then pick your
   database and your table.
8. Press Test workflow. A new row appears in the table.
9. Turn the workflow on, so that `Schedule Trigger` runs it every week.

## How a run goes

1. `Schedule Trigger` starts the run by itself. Its rule is weekly on Thursday, and the hour and minute keep n8n's
   defaults, so it is Thursday at 00:00 in the timezone of your n8n. `When clicking ‘Test workflow’` starts it by hand.
2. `Site to check` passes on the three values.
3. `Get view stats from Umami` reads the figures of the last 7 days.
4. `Parse Umami data` turns them into text lines, each with the figure for the last 7 days and the 7 days before.
5. `Send data to A.I.` asks OpenRouter for a summary table and two or three observations.
6. `Get page data from Umami` reads the top 20 pages of the last 7 days, and `Parse Umami data1` turns them into lines.
7. `Get page view data from Umami` reads the top pages of the 7 days before, and `Parse Umami` turns them into lines.
8. `Send data to A.I.1` sends both lists and asks for a comparison table and five suggestions.
9. `Row for Baserow` takes the date, the first answer, the second answer and the site name.
10. `Save data to Baserow` adds them as a new row.

## Change the look

- The site: the three values in `Site to check`.
- The day and the time: the rule in `Schedule Trigger`.
- The length of the period: the number of days in the addresses of the three Umami nodes.
- The number of pages: `limit=20` in the two page nodes.
- The questions: the text in the two AI nodes.
- The model: the `model` name in the JSON body of both AI nodes. Any model on OpenRouter's list works.
- The columns: the four values in `Row for Baserow`. Their names must match the table's fields.
- Several sites: make a copy of the workflow for each website.

## Good to know

- The model that this copy names, `meta-llama/llama-3.1-70b-instruct`, costs 0.00000072 US dollars per token for the prompt and the same for the answer on that list, which is about 0.72 US dollars per million tokens. Two calls a week are a small bill. For no bill, name a free model from the same list, such as `google/gemma-4-31b-it:free`. Free
  models have usage limits, and a free name can leave the list later.
- Umami's documentation says to send the token from the login route as a Bearer header. If a run ends with an
  authorization error, make a new token the same way and update the credential.
- The number next to each page is Umami's count of distinct sessions for that page.
- Your data: page paths, visitor counts and the figures go to OpenRouter and the model's provider. The two notes are
  stored in Baserow.
- The weekly rule only runs while the workflow is on. A run you start by hand works at any time.
```

## What is in it

3 files, 22 KB, downloaded as a zip.

```text
NOTICE.md  654 B
README.md  7 KB
workflow.json  14 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 13 steps, starting by hand or on a schedule
- AI: No step calls an AI model
- Sign-ins: Signs in to: a web service, openrouter.ai and Baserow
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 6 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/1d59f85c-c41c-497e-8bde-3f19dbdd8f1f)
- [Its page on Mindket](https://mindket.com/p/1d59f85c-c41c-497e-8bde-3f19dbdd8f1f)
