This workflow corresponds to n8n.io template #8679 — we link there as the canonical source.
This workflow follows the Airtable → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "AJCFkuIkFN45QXA4",
"meta": {
"templateId": "2613",
"templateCredsSetupCompleted": true
},
"name": "Export Google Search Console Data to Airtable Automatically",
"tags": [],
"nodes": [
{
"id": "8e3f167d-cbeb-4f7f-a867-c356d2dca9d0",
"name": "Split Out",
"type": "n8n-nodes-base.splitOut",
"position": [
1968,
416
],
"parameters": {
"options": {},
"fieldToSplitOut": "rows"
},
"typeVersion": 1
},
{
"id": "19370d12-f6de-44a1-91a6-da097abdf7de",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
2192,
416
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7343c80f-37f3-4bb5-84d8-9f21f8a350cd",
"name": "Keyword",
"type": "string",
"value": "={{ $json.keys[0] }}"
},
{
"id": "436e7c8b-2df2-40a9-97af-597dc00cf143",
"name": "clicks",
"type": "number",
"value": "={{ $json.clicks }}"
},
{
"id": "5b4aaffe-391a-4c9d-8249-f447397a3f5d",
"name": "impressions",
"type": "number",
"value": "={{ $json.impressions }}"
},
{
"id": "33677237-57fe-48f4-aff8-72ae81b5f5a2",
"name": "ctr",
"type": "number",
"value": "={{ $json.ctr }}"
},
{
"id": "f961deee-d222-4df7-a7ff-b7286405e4a7",
"name": "position",
"type": "number",
"value": "={{ $json.position }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "9eae4908-5266-439c-a66b-5679036234de",
"name": "Split Out1",
"type": "n8n-nodes-base.splitOut",
"position": [
1968,
544
],
"parameters": {
"options": {},
"fieldToSplitOut": "rows"
},
"typeVersion": 1
},
{
"id": "b05926b1-507f-4531-a05c-a15e835ee82e",
"name": "Edit Fields1",
"type": "n8n-nodes-base.set",
"position": [
2192,
544
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7343c80f-37f3-4bb5-84d8-9f21f8a350cd",
"name": "page",
"type": "string",
"value": "={{ $json.keys[0] }}"
},
{
"id": "436e7c8b-2df2-40a9-97af-597dc00cf143",
"name": "clicks",
"type": "number",
"value": "={{ $json.clicks }}"
},
{
"id": "5b4aaffe-391a-4c9d-8249-f447397a3f5d",
"name": "impressions",
"type": "number",
"value": "={{ $json.impressions }}"
},
{
"id": "33677237-57fe-48f4-aff8-72ae81b5f5a2",
"name": "ctr",
"type": "number",
"value": "={{ $json.ctr }}"
},
{
"id": "f961deee-d222-4df7-a7ff-b7286405e4a7",
"name": "position",
"type": "number",
"value": "={{ $json.position }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "42321587-2565-4a0a-9d9d-25cbfdeb9f49",
"name": "Split Out2",
"type": "n8n-nodes-base.splitOut",
"position": [
1968,
672
],
"parameters": {
"options": {},
"fieldToSplitOut": "rows"
},
"typeVersion": 1
},
{
"id": "9e25eef9-daa4-47dd-b2cf-03cfebadb5c6",
"name": "Edit Fields2",
"type": "n8n-nodes-base.set",
"position": [
2192,
672
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7343c80f-37f3-4bb5-84d8-9f21f8a350cd",
"name": "date",
"type": "string",
"value": "={{ $json.keys[0] }}"
},
{
"id": "436e7c8b-2df2-40a9-97af-597dc00cf143",
"name": "clicks",
"type": "number",
"value": "={{ $json.clicks }}"
},
{
"id": "5b4aaffe-391a-4c9d-8249-f447397a3f5d",
"name": "impressions",
"type": "number",
"value": "={{ $json.impressions }}"
},
{
"id": "33677237-57fe-48f4-aff8-72ae81b5f5a2",
"name": "ctr",
"type": "number",
"value": "={{ $json.ctr }}"
},
{
"id": "f961deee-d222-4df7-a7ff-b7286405e4a7",
"name": "position",
"type": "number",
"value": "={{ $json.position }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "e8f1ab65-9594-45e7-ba9e-7873bd53a107",
"name": "date",
"type": "n8n-nodes-base.httpRequest",
"position": [
1744,
672
],
"parameters": {
"url": "=https://www.googleapis.com/webmasters/v3/sites/sc-domain:{{$json.domain}}/searchAnalytics/query",
"method": "POST",
"options": {},
"jsonBody": "={\n \"startDate\": \"{{ $now.format('yyyy-MM-dd') }}\",\n \"endDate\": \"{{ $now.minus($json.days, 'days').format('yyyy-MM-dd') }}\",\n \"dimensions\": [\"date\"]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleOAuth2Api"
},
"credentials": {
"googleOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "d3bbf719-9524-4269-8c26-0eb7599add55",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
1072,
608
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.2
},
{
"id": "092645b2-9e75-4ff0-8d33-4a3acadac789",
"name": "Set your domain",
"type": "n8n-nodes-base.set",
"position": [
1360,
608
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "6f74dee0-3789-433e-b60e-ed2a05202675",
"name": "domain",
"type": "string",
"value": "funautomations.io"
},
{
"id": "8c73135e-9d39-4f66-821d-7decb3c64085",
"name": "days",
"type": "number",
"value": 30
}
]
}
},
"typeVersion": 3.4
},
{
"id": "0b04b552-e484-417b-9a7e-a90d477dd45a",
"name": "Get query Report",
"type": "n8n-nodes-base.httpRequest",
"position": [
1744,
416
],
"parameters": {
"url": "=https://www.googleapis.com/webmasters/v3/sites/sc-domain:{{$json.domain}}/searchAnalytics/query",
"method": "POST",
"options": {},
"jsonBody": "={\n \"startDate\": \"{{ $now.format('yyyy-MM-dd') }}\",\n \"endDate\": \"{{ $now.minus($json.days, 'days').format('yyyy-MM-dd') }}\",\n \"dimensions\": [\"query\"]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleOAuth2Api"
},
"credentials": {
"googleOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "9f9f2be7-1301-4c91-8da1-86eab5725683",
"name": "Get Page Report",
"type": "n8n-nodes-base.httpRequest",
"position": [
1744,
544
],
"parameters": {
"url": "=https://www.googleapis.com/webmasters/v3/sites/sc-domain:{{$json.domain}}/searchAnalytics/query",
"method": "POST",
"options": {},
"jsonBody": "={\n \"startDate\": \"{{ $now.format('yyyy-MM-dd') }}\",\n \"endDate\": \"{{ $now.minus($json.days, 'days').format('yyyy-MM-dd') }}\",\n \"dimensions\": [\"page\"]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleOAuth2Api"
},
"credentials": {
"googleOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "d2b91103-2fb1-429c-9d90-50f92f3d6a42",
"name": "Create a record",
"type": "n8n-nodes-base.airtable",
"position": [
2512,
416
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appzCPTyUrpA1fXpf",
"cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf",
"cachedResultName": "Search Console Reports"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblK0ZkihGpOc7ADu",
"cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf/tblK0ZkihGpOc7ADu",
"cachedResultName": "Queries"
},
"columns": {
"value": {
"ctr": "={{ $json.ctr }}",
"clicks": "={{ $json.clicks }}",
"Keyword": "={{ $json.Keyword }}",
"position": "={{ $json.position }}",
"impressions": "={{ $json.impressions }}"
},
"schema": [
{
"id": "Keyword",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "clicks",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "clicks",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "impressions",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "impressions",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ctr",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "ctr",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "position",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "position",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "7ea7d226-ba6c-4f08-b6f6-fda31185cbbb",
"name": "Create a record1",
"type": "n8n-nodes-base.airtable",
"position": [
2512,
544
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appzCPTyUrpA1fXpf",
"cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf",
"cachedResultName": "Search Console Reports"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblA6tGocjen8W0iN",
"cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf/tblA6tGocjen8W0iN",
"cachedResultName": "Pages"
},
"columns": {
"value": {
"ctr": "={{ $json.ctr }}",
"page": "={{ $json.keys[0] }}",
"clicks": "={{ $json.clicks }}",
"position": "={{ $json.position }}",
"impressions": "={{ $json.impressions }}"
},
"schema": [
{
"id": "page",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "page",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "clicks",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "clicks",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "impressions",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "impressions",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ctr",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "ctr",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "position",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "position",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "fe31cb29-ae45-4fb0-a39e-c8fe337b4984",
"name": "Create a record2",
"type": "n8n-nodes-base.airtable",
"position": [
2512,
672
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appzCPTyUrpA1fXpf",
"cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf",
"cachedResultName": "Search Console Reports"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblSJx4WuIm3feGGw",
"cachedResultUrl": "https://airtable.com/appzCPTyUrpA1fXpf/tblSJx4WuIm3feGGw",
"cachedResultName": "Dates"
},
"columns": {
"value": {
"ctr": "={{ $json.ctr }}",
"date": "={{ $json.keys[0] }}",
"clicks": "={{ $json.clicks }}",
"position": "={{ $json.position }}",
"impressions": "={{ $json.impressions }}"
},
"schema": [
{
"id": "date",
"type": "dateTime",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "clicks",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "clicks",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "impressions",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "impressions",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "ctr",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "ctr",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "position",
"type": "number",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "position",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "create"
},
"credentials": {
"airtableTokenApi": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "e86d0696-7d10-4a76-8ba7-953862d65b1d",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
-432
],
"parameters": {
"width": 544,
"height": 1216,
"content": "# Export Google Search Console Data to Airtable Automatically \n\n\n\n*If you\u2019ve 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\u2026 this workflow is made for you.* \n\n\n\n## Who Is This Workflow For? \n\nThis automation is perfect for: \n- **SEO freelancers and consultants** \u2192 who want to track client performance without wasting time on manual exports. \n- **Marketing teams** \u2192 who need fresh daily/weekly reports to check what keywords and pages are performing. \n- **Website owners** \u2192 who just want a clean way to see how their site is doing without logging into Google Search Console every day. \n\nBasically, if you care about SEO but don\u2019t want to babysit CSV files, this workflow is your new best friend. \n\n## What Does It Do? \n\nHere\u2019s the big picture: \n1. It runs on a schedule (every day, or whenever you want). \n2. It fetches data directly from the **Google Search Console API**. \n3. It pulls 3 types of reports: \n - By **Query** (keywords people used). \n - By **Page** (URLs that ranked). \n - By **Date** (daily performance). \n4. It splits and cleans the data so it\u2019s human-friendly. \n5. It saves everything into **Airtable**, organized in three tables. \n\nEnd result: every time you open Airtable, you have a neat SEO database with clicks, impressions, CTR, and average position \u2014 no manual work required. \n\n\n## Prerequisites \n\nYou\u2019ll need a few things to get started: \n- Access to [Google Search Console](https://search.google.com/search-console). \n- A [Google Cloud project](https://console.cloud.google.com/) with the Search Console API enabled. \n- An [Airtable](https://airtable.com) account to store the data. \n- An automation tool that can connect APIs (like the one we\u2019re using here). \n\nThat\u2019s it! "
},
"typeVersion": 1
},
{
"id": "4eb3576c-7590-4d30-857b-da1632fcd074",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1024,
96
],
"parameters": {
"height": 688,
"content": "## Step 1: Schedule the Workflow \n\nThe very first node in the workflow is the **Schedule Trigger**. \n\n- **Why?** \u2192 So you don\u2019t have to press \u201cRun\u201d every day. \n- **What it does** \u2192 It starts the whole workflow at fixed times. \n\nIn the JSON, you can configure things like: \n- Run every day at a specific hour (e.g., 8 AM). \n- Or run every X hours/minutes if you want more frequent updates. \n\nThis is the alarm clock of your automation \u23f0. \n\n---"
},
"typeVersion": 1
},
{
"id": "38400f18-ed3e-4f39-8424-77a631437b89",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1264,
96
],
"parameters": {
"height": 688,
"content": "## Step 2: Set Your Domain and Time Range \n\nNext, we define the site and the time window for the report. \n\nIn the JSON, there\u2019s a **Set node** with two important parameters: \n- `domain` \u2192 your website (example: `https://www.0vni.fr/`). \n- `days` \u2192 how many days back you want the data (default: 30). \n\n\ud83d\udc49 Changing these two values updates the whole workflow. Super handy if you want 7-day reports instead of 30. "
},
"typeVersion": 1
},
{
"id": "0f72bcf5-f4c3-4617-9835-07163ebc381b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1504,
-272
],
"parameters": {
"width": 400,
"height": 1056,
"content": "## Step 3: Fetch Data from Google Search Console \n\nThis is where the workflow talks to the API. \nThere are **3 HTTP Request nodes**: \n\n1. **Get Query Report** \n - Pulls data grouped by search queries (keywords). \n - Parameters in the JSON: \n - `startDate` = today - 30 days \n - `endDate` = today \n - `dimensions` = `\"query\"` \n - `rowLimit` = `25000` (maximum rows the API can return) \n\n2. **Get Page Report** \n - Same idea, but grouped by page URLs. \n - Parameters: \n - `dimensions` = `\"page\"` \n - Same dates and row limit. \n\n3. **Get Date Report** \n - This one groups performance by date. \n - Parameters: \n - `dimensions` = `\"date\"` \n - You get a day-by-day performance view. \n\nEach request returns rows like this: \n\n\n{\n \"keys\": [\"example keyword\"],\n \"clicks\": 42,\n \"impressions\": 1000,\n \"ctr\": 0.042,\n \"position\": 8.5\n}"
},
"typeVersion": 1
},
{
"id": "3b260edd-5a2f-4818-9ab9-40db86ad3e96",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1904,
-272
],
"parameters": {
"width": 208,
"height": 1056,
"content": "## Step 4: Split the Data \n\n\n\nThe API sends results in a big array (`rows`). That\u2019s not very usable directly. \n\nSo we add a **Split Out node** for each report. \n\n**What it does**: breaks the array into single items \u2192 1 item per keyword, per page, or per date. \n\nThis way, each line can be saved individually into Airtable. \n\n\ud83d\udc49 Think of it like opening a bag of candy and laying each one neatly on the table \ud83c\udf6c. \n\n"
},
"typeVersion": 1
},
{
"id": "f4834663-b817-41b0-82fe-9a1624908979",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2112,
-272
],
"parameters": {
"width": 208,
"height": 1056,
"content": "## Step 5: Clean and Rename Fields \n\nAfter splitting, we use **Edit Fields nodes** to make the data human-friendly. \n\nFor example: \n- In the **Query report** \u2192 rename `keys[0]` into `Keyword`. \n- In the **Page report** \u2192 rename `keys[0]` into `page`. \n- In the **Date report** \u2192 rename `keys[0]` into `date`. \n\nThis is also where we keep only the useful fields: \n- `Keyword` / `page` / `date` \n- `clicks` \n- `impressions` \n- `ctr` \n- `position` "
},
"typeVersion": 1
},
{
"id": "1c81b533-fecf-485f-9269-73fe2975f25d",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
2320,
-704
],
"parameters": {
"width": 464,
"height": 1488,
"content": "## Step 6: Save Everything into Airtable \n\nFinally, the polished data is sent into Airtable. \n\nIn the JSON, there are 3 Airtable nodes: \n- **Queries table** \u2192 stores all the keywords. \n- **Pages table** \u2192 stores all the URLs. \n- **Dates table** \u2192 stores day-by-day metrics. \n\nEach node is set to: \n- **Operation** = `Create` \u2192 adds a new record. \n- **Base** = `Search Console Reports`. \n- **Table** = `Queries`, `Pages`, or `Dates`. \n\n### Field Mapping \n\nFor **Queries**: \n- `Keyword` \u2192 `{{ $json.Keyword }}` \n- `clicks` \u2192 `{{ $json.clicks }}` \n- `impressions` \u2192 `{{ $json.impressions }}` \n- `ctr` \u2192 `{{ $json.ctr }}` \n- `position` \u2192 `{{ $json.position }}` \n\n\ud83d\udc49 Same logic for **Pages** and **Dates**, just replace `Keyword` with `page` or `date`. \n\n---\n\n## Expected Output \n\n\n\nEvery time this workflow runs: \n- **Queries table** fills with fresh keyword performance data. \n- **Pages table** shows how your URLs performed. \n- **Dates table** tracks the evolution day by day. \n\nIn Airtable, you now have a complete **SEO database** with no manual exports. \n\n---\n\n## Why This Is Awesome \n\n- \ud83d\udeab No more messy CSV exports. \n- \ud83d\udcc8 Data is always up-to-date. \n- \ud83c\udf9b You can build Airtable dashboards, filters, and interfaces. \n- \u2699\ufe0f Easy to adapt \u2192 just change `domain` or `days` to customize. \n\nAnd the best part? You can spend the time you saved on actual **SEO improvements** instead of spreadsheet gymnastics \ud83d\udc83. \n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {},
"versionId": "3f8ec591-388b-45a3-afab-829b086b8fe2",
"connections": {
"date": {
"main": [
[
{
"node": "Split Out2",
"type": "main",
"index": 0
}
]
]
},
"Split Out": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Split Out1": {
"main": [
[
{
"node": "Edit Fields1",
"type": "main",
"index": 0
}
]
]
},
"Split Out2": {
"main": [
[
{
"node": "Edit Fields2",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Create a record",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields1": {
"main": [
[
{
"node": "Create a record1",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields2": {
"main": [
[
{
"node": "Create a record2",
"type": "main",
"index": 0
}
]
]
},
"Get Page Report": {
"main": [
[
{
"node": "Split Out1",
"type": "main",
"index": 0
}
]
]
},
"Set your domain": {
"main": [
[
{
"node": "Get query Report",
"type": "main",
"index": 0
},
{
"node": "Get Page Report",
"type": "main",
"index": 0
},
{
"node": "date",
"type": "main",
"index": 0
}
]
]
},
"Get query Report": {
"main": [
[
{
"node": "Split Out",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "Set your domain",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
airtableTokenApigoogleOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
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.
Source: https://n8n.io/workflows/8679/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
I prepared a detailed guide that showed the whole process of integrating the Binance API and storing data in Airtable to manage funding statements associated with tokens in a wallet.
Stop wasting hours on manual dialing and listening to ringtones. This workflow transforms your Airtable into a high-velocity AI Call Center using Vapi AI**.
Reel-Analysis-Of-Favourite-Content-Creator. Uses httpRequest, airtable. Scheduled trigger; 26 nodes.
Link-By-Reel-Analysis. Uses httpRequest, airtable. Scheduled trigger; 24 nodes.
> Transform your content strategy with automated competitor intelligence