
Track AI Overview Visibility for SEO in Google Search
Description
Categories
🤖 AI & Machine Learning📢 Marketing
Nodes Used
n8n-nodes-base.coden8n-nodes-base.stickyNoten8n-nodes-base.httpRequestn8n-nodes-base.googleSheetsn8n-nodes-base.googleSheetsn8n-nodes-base.manualTrigger
PriceFree
Views0
Last Updated11/28/2025
workflow.json
{
"id": "shX725h2cWsFKRQb",
"meta": {
"instanceId": "04dabdf85d6550d014aeca800665040b7fdcb79ef759175bf2a5447cf87841e2",
"templateCredsSetupCompleted": true
},
"name": "Track AI Overview Visibility for SEO in Google Search",
"tags": [
{
"name": "SEO"
},
{
"name": "serpapi"
},
{
"name": "ai overview"
},
{
"name": "google"
},
{
"name": "marketing"
}
],
"nodes": [
{
"id": "0702eba7-d055-40e9-9e6e-e6e77fa9d281",
"name": "Start: Manual trigger",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "4595fae4-57bb-4405-abf8-05eb134c774f",
"name": "Read Keywords from Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
220,
0
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1h1zsgmNjrXjC5_40KiF0ZLUvN00gDAswLTUMp5bas88/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1h1zsgmNjrXjC5_40KiF0ZLUvN00gDAswLTUMp5bas88",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1h1zsgmNjrXjC5_40KiF0ZLUvN00gDAswLTUMp5bas88/edit?usp=drivesdk",
"cachedResultName": "AI Overview Keywords"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "T0hgOTWnix28WoNP",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "21e4edfb-2caf-401a-afd4-03b86723de62",
"name": "Call SerpApi for AI Overview",
"type": "n8n-nodes-base.httpRequest",
"position": [
400,
0
],
"parameters": {
"url": "https://serpapi.com/search.json",
"options": {},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "q",
"value": "={{ $json[\"keyword\"] }}"
},
{
"name": "api_key",
"value": "Your SerpAPI key"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "494614bf-fb0a-4c7c-842b-a4ec0e0bbd7a",
"name": "Extract Sources & Check My Domain",
"type": "n8n-nodes-base.code",
"position": [
620,
0
],
"parameters": {
"jsCode": "const myDomain = \"example.com\"; // 🔄 Replace with your domain, e.g., \"mywebsite.com\"\n\nreturn items.map(item => {\n const overview = item.json.ai_overview;\n const keyword = item.json.search_parameters?.q || '';\n\n if (!overview || !overview.references) {\n return {\n json: {\n keyword,\n ai_overview_exists: false,\n links: [],\n is_my_domain_listed: false\n }\n };\n }\n\n const links = overview.references\n .filter(ref => ref.link)\n .map(ref => ref.link);\n\n const isMyDomainListed = links.some(link => link.includes(myDomain));\n\n return {\n json: {\n keyword,\n ai_overview_exists: true,\n links,\n is_my_domain_listed: isMyDomainListed\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "23361f22-1273-4797-8558-9cf9a38693b4",
"name": "Write Results to Google Sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
840,
0
],
"parameters": {
"columns": {
"value": {
"links": "={{ $json.links }}",
"keyword": "={{ $json.keyword }}",
"has_ai_overview": "={{ $json.ai_overview_exists }}",
"is_my_domain_listed": "={{ $json.is_my_domain_listed }}"
},
"schema": [
{
"id": "keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "has_ai_overview",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "has_ai_overview",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "links",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "links",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "is_my_domain_listed",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "is_my_domain_listed",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ixDyGqYWB0QJzqxOKvA0T591SNY46j_u2J4CHOZ6qpo/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1ixDyGqYWB0QJzqxOKvA0T591SNY46j_u2J4CHOZ6qpo",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1ixDyGqYWB0QJzqxOKvA0T591SNY46j_u2J4CHOZ6qpo/edit?usp=drivesdk",
"cachedResultName": "SERP AI Overview Citations"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "T0hgOTWnix28WoNP",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "12c76730-922d-4f84-a68d-b19fb8fa20e6",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-240,
-220
],
"parameters": {
"color": 5,
"width": 520,
"height": 200,
"content": "## Track Google AI Overview Presence for SEO\n1. **Read** keyword list from Google Sheets \n2. **Call** SerpApi for each keyword \n3. **Extract** AI Overview sources from the results \n4. **Check** if your domain is listed in the sources \n5. **Save** the results back into Google Sheets\n"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "24d46818-a673-4f43-8d8e-809c1f236838",
"connections": {
"Start: Manual trigger": {
"main": [
[
{
"node": "Read Keywords from Google Sheet",
"type": "main",
"index": 0
}
]
]
},
"Call SerpApi for AI Overview": {
"main": [
[
{
"node": "Extract Sources & Check My Domain",
"type": "main",
"index": 0
}
]
]
},
"Read Keywords from Google Sheet": {
"main": [
[
{
"node": "Call SerpApi for AI Overview",
"type": "main",
"index": 0
}
]
]
},
"Extract Sources & Check My Domain": {
"main": [
[
{
"node": "Write Results to Google Sheet",
"type": "main",
"index": 0
}
]
]
}
}
}