
If you’ve ever downloaded CSV files from Google Search Console, opened them in Excel, cleaned the weird formatting, and pasted them into a sheet just to get a simple report… this workflow is made for you.
This automation is perfect for:
Basically, if you care about SEO but don’t want to babysit CSV files, this workflow is your new best friend.
Here’s the big picture:
End result: every time you open Airtable, you have a neat SEO database with clicks, impressions, CTR, and average position — no manual work required.
You’ll need a few things to get started:
That’s it!
The very first node in the workflow is the Schedule Trigger.
In the JSON, you can configure things like:
This is the alarm clock of your automation ⏰.
Next, we define the site and the time window for the report.
In the JSON, there’s a Set node with two important parameters:
domain → your website (example: https://www.0vni.fr/).days → how many days back you want the data (default: 30).👉 Changing these two values updates the whole workflow. Super handy if you want 7-day reports instead of 30.
This is where the workflow talks to the API.
There are 3 HTTP Request nodes:
Get Query Report
startDate = today - 30 daysendDate = todaydimensions = "query"rowLimit = 25000 (maximum rows the API can return)Get Page Report
dimensions = "page"Get Date Report
dimensions = "date"Each request returns rows like this:
{
"keys": ["example keyword"],
"clicks": 42,
"impressions": 1000,
"ctr": 0.042,
"position": 8.5
}
The API sends results in a big array (rows). That’s not very usable directly.
So we add a Split Out node for each report.
What it does: breaks the array into single items → 1 item per keyword, per page, or per date.
This way, each line can be saved individually into Airtable.
👉 Think of it like opening a bag of candy and laying each one neatly on the table 🍬.
After splitting, we use Edit Fields nodes to make the data human-friendly.
For example:
keys[0] into Keyword.keys[0] into page.keys[0] into date.This is also where we keep only the useful fields:
Keyword / page / dateclicksimpressionsctrpositionFinally, the polished data is sent into Airtable.
In the JSON, there are 3 Airtable nodes:
Each node is set to:
Create → adds a new record.Search Console Reports.Queries, Pages, or Dates.For Queries:
Keyword → {{ $json.Keyword }}clicks → {{ $json.clicks }}impressions → {{ $json.impressions }}ctr → {{ $json.ctr }}position → {{ $json.position }}👉 Same logic for Pages and Dates, just replace Keyword with page or date.
Every time this workflow runs:
In Airtable, you now have a complete SEO database with no manual exports.
domain or days to customize.And the best part? You can spend the time you saved on actual SEO improvements instead of spreadsheet gymnastics 💃.