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 →
{
"name": "Monitor Google AI Overview visibility",
"nodes": [
{
"parameters": {
"content": "## Monitor Google AI Overview Visibility\n\n**Who is this for:** SEO professionals who need to track their visibility in Google's AI Overview (formerly SGE) results which appear above traditional search results.\n\n**What this workflow does:**\n1. Runs GAIO (Google AI Overview) scans via Local Falcon\n2. Tracks if your business appears in AI-generated summaries\n3. Monitors position and mention context\n4. Compares GAIO visibility to traditional rankings\n5. Alerts on visibility changes\n\n**How to set up:**\n1. Add your Local Falcon API credentials (get your key at https://www.localfalcon.com/api/credentials)\n2. Configure your location and keywords in Settings\n3. Connect Slack for alerts\n4. Activate the workflow\n\n**Requirements:**\n- Local Falcon account with API access\n- GAIO scanning credits\n- Keywords that trigger AI Overview results\n\n**How to customize:**\n- Track specific AI Overview trigger queries\n- Compare across multiple locations\n- Create historical visibility trending\n- Alert on appearance/disappearance changes",
"height": 520,
"width": 460,
"color": 5
},
"id": "sticky-main",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
100,
-180
]
},
{
"parameters": {
"content": "### What is Google AI Overview?\n\nGoogle AI Overview (GAIO) shows AI-generated summaries at the top of search results for certain queries.\n\nFor local businesses, appearing in GAIO can mean:\n- Prime visibility above the local pack\n- Being recommended by Google's AI\n- Increased click-through potential",
"height": 200,
"width": 320
},
"id": "sticky-context",
"name": "Sticky Note Context",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
580,
-180
]
},
{
"parameters": {
"content": "### Step 1: Schedule\nRuns daily for GAIO monitoring.",
"height": 100,
"width": 200
},
"id": "sticky-step1",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
40,
660
]
},
{
"parameters": {
"content": "### Step 2: Settings\nConfigure location and keywords.",
"height": 100,
"width": 200
},
"id": "sticky-step2",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
300,
660
]
},
{
"parameters": {
"content": "### Step 3: Scan GAIO\nChecks AI Overview presence.",
"height": 100,
"width": 200
},
"id": "sticky-step3",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
560,
660
]
},
{
"parameters": {
"content": "### Step 4: Analyze\nProcesses visibility results.",
"height": 100,
"width": 200
},
"id": "sticky-step4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
820,
660
]
},
{
"parameters": {
"content": "### Step 5: Alert\nNotifies on GAIO changes.",
"height": 100,
"width": 200
},
"id": "sticky-step5",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1080,
660
]
},
{
"parameters": {
"rule": {
"interval": [
{
"field": "days",
"triggerAtHour": 9
}
]
}
},
"id": "schedule",
"name": "Every Day 9am",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [
140,
440
]
},
{
"parameters": {
"mode": "raw",
"jsonOutput": "{\n \"location\": {\n \"name\": \"Your Business Name\",\n \"place_id\": \"YOUR_GOOGLE_PLACE_ID\",\n \"lat\": \"40.7128\",\n \"lng\": \"-74.0060\"\n },\n \"keywords\": [\n \"best [service] in [city]\",\n \"[service] recommendations [city]\",\n \"top rated [business type] near me\"\n ],\n \"slackChannel\": \"#gaio-alerts\"\n}",
"options": {}
},
"id": "settings",
"name": "GAIO Monitoring Settings",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
400,
440
]
},
{
"parameters": {
"jsCode": "const settings = $input.first().json;\n\nreturn settings.keywords.map(keyword => ({\n json: {\n ...settings.location,\n keyword: keyword,\n slackChannel: settings.slackChannel\n }\n}));"
},
"id": "prepare",
"name": "Prepare GAIO Scans",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
660,
440
]
},
{
"parameters": {
"resource": "scan",
"operation": "run",
"platform": "gaio",
"placeId": "={{ $json.place_id }}",
"keyword": "={{ $json.keyword }}",
"lat": "={{ $json.lat }}",
"lng": "={{ $json.lng }}",
"gridSize": 3,
"radius": 1,
"measurement": "mi"
},
"id": "scan-gaio",
"name": "Scan Google AI Overview",
"type": "@local-falcon/n8n-nodes-localfalcon.localFalcon",
"typeVersion": 1,
"position": [
920,
440
],
"credentials": {
"localFalconApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"jsCode": "const results = $input.all();\nconst slackChannel = results[0]?.json.slackChannel || '#gaio-alerts';\n\nlet visible = 0;\nlet notVisible = 0;\nlet message = `:robot_face: *Google AI Overview Daily Report*\\n`;\nmessage += `_${new Date().toLocaleDateString()}_\\n\\n`;\n\nfor (const result of results) {\n const keyword = result.json.keyword || 'unknown';\n const avgRank = result.json.avg_rank;\n \n if (avgRank && parseFloat(avgRank) <= 10) {\n visible++;\n message += `:white_check_mark: *${keyword}*\\n Visible - Position: ${avgRank}\\n\\n`;\n } else {\n notVisible++;\n message += `:x: *${keyword}*\\n Not visible in AI Overview\\n\\n`;\n }\n}\n\nmessage += `---\\n*Summary:* ${visible} visible, ${notVisible} not visible`;\n\nreturn [{\n json: {\n slackMessage: message,\n slackChannel: slackChannel,\n visibleCount: visible,\n notVisibleCount: notVisible\n }\n}];"
},
"id": "analyze",
"name": "Analyze GAIO Results",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [
1180,
440
]
}
],
"connections": {
"Every Day 9am": {
"main": [
[
{
"node": "GAIO Monitoring Settings",
"type": "main",
"index": 0
}
]
]
},
"GAIO Monitoring Settings": {
"main": [
[
{
"node": "Prepare GAIO Scans",
"type": "main",
"index": 0
}
]
]
},
"Prepare GAIO Scans": {
"main": [
[
{
"node": "Scan Google AI Overview",
"type": "main",
"index": 0
}
]
]
},
"Scan Google AI Overview": {
"main": [
[
{
"node": "Analyze GAIO Results",
"type": "main",
"index": 0
}
]
]
}
},
"meta": {
"templateCredsSetupCompleted": true
}
}
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.
localFalconApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Monitor Google AI Overview visibility. Uses @local-falcon/n8n-nodes-localfalcon. Scheduled trigger; 12 nodes.
Source: https://github.com/local-falcon/n8n-templates/blob/3dd7676046b6b8efc3bda40821cc944664db80f2/templates/19-google-ai-overview-monitor.json — 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.
Track ChatGPT visibility with Local Falcon. Uses @local-falcon/n8n-nodes-localfalcon. Scheduled trigger; 10 nodes.
Track AI Mode visibility with Local Falcon. Uses @local-falcon/n8n-nodes-localfalcon. Scheduled trigger; 10 nodes.
Update Monday.com items with Local Falcon rankings. Uses @local-falcon/n8n-nodes-localfalcon, mondayCom. Scheduled trigger; 9 nodes.
Sync Local Falcon rankings to BigQuery data warehouse. Uses @local-falcon/n8n-nodes-localfalcon, googleBigQuery. Scheduled trigger; 9 nodes.
backup. Uses googleDrive, httpRequest. Scheduled trigger; 15 nodes.