---
title: "SerpBear rankings summarized by AI and saved to Baserow"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/158a4d4f-fece-4fdd-9a7a-7d31cce3fadd"
updated: "2026-11-12"
---

# SerpBear rankings 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 one site’s keyword rankings from your SerpBear server each week. An AI model on OpenRouter writes a summary table and suggestions, and the answer is saved as a row in a Baserow table.

SerpBear rankings 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 keyword rankings into a weekly written note. It asks SerpBear, the rank tracker you host yourself, for the rankings of one site. A code node writes a short summary of each keyword and builds one question for an AI model on OpenRouter. The model answers with a table and some suggestions, and a Baserow node saves the answer as a new row. Eight nodes do the work, beside five sticky notes.

### Who it suits

Site owners, SEO freelancers and small marketing teams who already track keywords in SerpBear and want a plain written summary each week. Skip it if you do not host SerpBear. 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 |
| --- | --- | --- | --- |
| Marketing | SEO freelancers | Keep a weekly written note on each client’s rankings | A freelancer opens the new row for a client and sees which pages gained places. |
| Publishing | Bloggers | Spot posts that lost ground | A blogger sees that a recipe post fell from position 6 to 14 and updates it. |
| Ecommerce | Shop owners | Watch the keywords of the main category pages | A shop owner reads that “leather bag” stopped ranking and checks the page. |
| Agencies | Account managers | Collect the weekly notes of many sites in one Baserow table | An agency copies the workflow once for each client site and files every note in the same table. |

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

### Where to use it

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

- n8n Cloud: import the file into a new workflow there, when your SerpBear server can be reached from the internet
- Your own n8n server: the same file and steps, and it can also reach a SerpBear server on your own network
- Baserow: Baserow Cloud or a server of your own
- Another AI: put any model from OpenRouter’s list into the JSON body

### How to set it up

Download saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. You need a SerpBear server with its API key set, an OpenRouter key and a Baserow table.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| SerpBear | Your own server, its address, its API key and a domain that it tracks |
| 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, Note and Site |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. In `Site to check`, replace `YOUR_DOMAIN` with the domain as SerpBear lists it, such as `example.com`.
3. In `Get data from SerpBear`, replace `YOUR_SERPBEAR_HOST` with the address of your server. Add a Header Auth credential with the name `Authorization` and the value Bearer, a space and your SerpBear API key. Select it.
4. In `Send data to A.I. for analysis`, add a second Header Auth credential with the name `Authorization` and the value Bearer, a space and your OpenRouter API key. Select it.
5. In Baserow, make a table with the fields Date, Note and Site, and make Note a long text field.
6. In `Save data to Baserow`, add a Baserow credential, then pick your database and your table.
7. Press Test workflow. A new row appears in the table.
8. 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 Sunday at midnight, in the timezone of your n8n. Press Test workflow for an extra run at any time. Each run adds one row and changes no other row.

What to change for a different result

| To change | Where |
| --- | --- |
| The site | \`YOUR\_DOMAIN\` in \`Site to check\` |
| The day and the time | The rule in \`Schedule Trigger\` |
| The question to the AI | The text in \`Send data to A.I. for analysis\` and the closing list in \`Parse data from SerpBear\` |
| The model | The \`model\` name in the JSON body of \`Send data to A.I. for analysis\` |
| The columns | The three values in \`Row for Baserow\` |

### Example

A blogger tracks a cooking blog in SerpBear.

On Sunday night the workflow reads every keyword. A post about banana bread sits at position 4 against an average of 5, so its trend is “improving”. A lasagna post no longer ranks. The model writes a table of the keywords and suggests a fresh look at the lasagna post. On Monday the blogger opens Baserow and reads one row with the date, the note and the site. 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. SerpBear checks where your pages rank in search results for the words you choose. Baserow is an online table, a little like a spreadsheet. This workflow reads the rankings, has an AI describe them and files the description in the table. Press Test workflow before you turn on the schedule.

**For experts.** The model sees a text summary of each keyword, not the raw history, so the code node decides what counts as a trend.

Where to look closer

| Node | What it does | What to know |
| --- | --- | --- |
| \`Get data from SerpBear\` | Calls the keywords route for one domain | The original copy called the single keyword route, which has no list in its answer |
| \`Parse data from SerpBear\` | Averages the saved checks and sets a trend for each keyword | Position 0 means not ranking and is left out of the average |
| \`Send data to A.I. for analysis\` | Posts the question to OpenRouter | The body is built with \`JSON.stringify\`, so the prompt goes as plain text |
| \`Row for Baserow\` | Names the three values Date, Note and Site | Baserow matches them to the table’s fields by name |
| \`Save data to Baserow\` | Adds one row | You pick the database and the table in the node |

### Good to know

One route and one model name were wrong in the original copy, and the paid model costs a little.

- SerpBear route: the original copy called \`/api/keyword?id=\`, which gives one keyword, while its code read a list called \`keywords\`. This copy calls \`/api/keywords\` with the domain, which gives every keyword of the site with its last seven checks
- 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
- Prompt: the original copy ran the prompt through \`encodeURIComponent\` inside the JSON body, so the model read percent codes. This copy sends plain text
- Not ranking: SerpBear uses position 0 for a keyword it did not find. The original copy counted it as a rank and could call it “improving”. This copy shows “not ranking” and leaves zeros out of the average
- History: SerpBear gives the last seven saved checks of each keyword, so the average covers those and no more
- Schedule: the weekly rule keeps n8n’s defaults, and it only runs while the workflow is on
- One site: a run reads one domain, so make a copy of the workflow for each other site
- Your data: the keywords, their positions and the ranking pages go to OpenRouter and the model’s provider, and the answer is stored in Baserow
- Credentials: the JSON holds none, and its author’s domain, host and Baserow ids are replaced by placeholders

## README

```markdown
# SerpBear rankings summarized by AI and saved to Baserow

An n8n workflow that turns keyword rankings into a weekly written note. It asks your own SerpBear server for the rankings
of one site, writes a short summary of each keyword and sends the lot to an AI model on OpenRouter. The model answers
with a table and suggestions, and the answer is saved as a new row in a Baserow table.

## What is inside

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

## What we changed from the original copy

- `Get data from SerpBear` called `/api/keyword?id=`, the route that gives one keyword, and it carried a fixed domain.
  The code after it reads a list called `keywords`, which that route does not return. The node now calls `/api/keywords`
  with the domain, which gives every keyword of the site with its last seven checks. The host is `YOUR_SERPBEAR_HOST`.
- A new node, `Site to check`, holds the domain once. The original copy typed it into three places, and its author's
  site name and Baserow ids sat in the file. They are gone.
- `Parse data from SerpBear` counted position 0 as a rank, so a keyword that stopped ranking was called "improving" and
  dragged the average down. SerpBear uses 0 for "not found". The code now shows "not ranking", leaves zeros out of the
  average and marks a keyword with no history as "new". It also returns its item in the form n8n documents.
- `Send data to A.I. for analysis` 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.
- The same node ran the prompt through `encodeURIComponent` inside the JSON body, so the model received percent codes.
  The body is now built with `JSON.stringify` and the prompt goes as plain text.
- A new node, `Row for Baserow`, names the three values Date, Note 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 five sticky notes are rewritten and hold no outside links. One of them named another analytics tool.
- Every credential reference is removed, so you pick your own.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- A SerpBear server of your own that tracks your site, with its API key set, and an address your n8n can reach.
- An OpenRouter API key.
- A Baserow account, on Baserow Cloud or a server of your own, and a table with the fields Date, Note and Site. Make Note a
  long text field, because the answer is long.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. In `Site to check`, replace `YOUR_DOMAIN` with the domain as SerpBear lists it, such as `example.com`.
3. In `Get data from SerpBear`, replace `YOUR_SERPBEAR_HOST` with the address of your server. Add a Header Auth
   credential with the name `Authorization` and the value Bearer, a space and your SerpBear API key. Select it.
4. In `Send data to A.I. for analysis`, add a second Header Auth credential with the name `Authorization` and the value
   Bearer, a space and your OpenRouter API key. Select it.
5. In `Save data to Baserow`, add a Baserow credential with your Baserow address, email and password. Then pick your
   database and your table.
6. Press Test workflow. A new row appears in the table.
7. Turn the workflow on, so that `Schedule Trigger` runs it every week.

## How a run goes

1. `Schedule Trigger` starts the run by itself. It uses n8n's weekly defaults, which are every Sunday at 00:00 in the
   timezone of your n8n. `When clicking ‘Test workflow’` starts it by hand.
2. `Site to check` passes on the domain.
3. `Get data from SerpBear` asks the server for the keywords of that domain.
4. `Parse data from SerpBear` builds a short block of text for each keyword with its position, the average of its saved
   checks, a trend and its ranking page. It joins the blocks into one question.
5. `Send data to A.I. for analysis` posts the question to OpenRouter and asks for a table and suggestions.
6. `Row for Baserow` takes the date, the answer and the domain.
7. `Save data to Baserow` adds them as a new row.

## Change the look

- The site: `YOUR_DOMAIN` in `Site to check`.
- The day and the time: the rule in `Schedule Trigger`.
- The question: the instruction in `Send data to A.I. for analysis` and the closing list in `Parse data from SerpBear`.
- The model: the `model` name in the JSON body of `Send data to A.I. for analysis`. Any model on OpenRouter's list works.
- The columns: the three fields in `Row for Baserow`. Their names must match the table's fields.
- Several sites: make a copy of the workflow for each domain.

## 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. A weekly run is 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.
- SerpBear's keyword list gives each keyword's last seven saved checks, so the average covers those and no more.
- The API key is read as the text after Bearer, so keep the space.
- Your data: the keywords, their positions and the ranking pages go to OpenRouter and the model's provider. The answer is
  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, 16 KB, downloaded as a zip.

```text
NOTICE.md  660 B
README.md  6 KB
workflow.json  10 KB
```

## Workflow check

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

- Steps: 8 steps, starting by hand or on a schedule
- AI: No step calls an AI model
- Sign-ins: Signs in to: your_serpbear_host, 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/158a4d4f-fece-4fdd-9a7a-7d31cce3fadd)
- [Its page on Mindket](https://mindket.com/p/158a4d4f-fece-4fdd-9a7a-7d31cce3fadd)
