This workflow corresponds to n8n.io template #7640 — we link there as the canonical source.
This workflow follows the Google Sheets → 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": "sJuyUxOLyxGHNUei",
"name": "Live-time SEO Keyword Research Tool",
"tags": [],
"nodes": [
{
"id": "d42a41fc-2954-40da-aaf8-f3006c35f05c",
"name": "When clicking \u2018Test workflow\u2019",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-1760,
240
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ebdca890-b195-4a24-a373-52b4872126fd",
"name": "Add Related KWs",
"type": "n8n-nodes-base.googleSheets",
"position": [
-608,
-160
],
"parameters": {
"columns": {
"value": {
"CPC": "={{ $json.keyword_data.keyword_info.cpc }}",
"MSV": "={{ $json.keyword_data.keyword_info.search_volume }}",
"Type": "Related",
"Keyword": "={{ $json.keyword_data.keyword }}",
"Competition": "={{ $json.keyword_data.keyword_info.competition_level }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}",
"KW Difficulty": "={{ $json.keyword_data.keyword_properties.keyword_difficulty }}",
"Search Intent": "={{ $json.keyword_data.search_intent_info.main_intent }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1366469942,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=1366469942",
"cachedResultName": "KW Related"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "fbeb5071-5b36-45b6-9a91-7cc281f18335",
"name": "Split Out Related KW",
"type": "n8n-nodes-base.splitOut",
"position": [
-816,
-160
],
"parameters": {
"options": {},
"fieldToSplitOut": "tasks[0].result[0].items"
},
"typeVersion": 1
},
{
"id": "6a029bc6-1542-4d2b-966a-6e965cb34552",
"name": "Get Related KWs",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1040,
-160
],
"parameters": {
"url": "https://api.dataforseo.com/v3/dataforseo_labs/google/related_keywords/live",
"method": "POST",
"options": {},
"jsonBody": "=[{\n \"keyword\": \"{{ $('Get Main Keywords').item.json['Main Keyword'] }}\",\n \"location_name\": \"{{ $('Get Main Keywords').item.json.Location }}\",\n \"language_name\": \"{{ $('Get Main Keywords').item.json.Language }}\",\n \"limit\": {{ $('Get Main Keywords').item.json.Limit }},\n \"include_serp_info\": true,\n \"include_seed_keyword\": true,\n \"depth\":2\n }]",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "c984898c-8358-4903-ad61-526c12a6748c",
"name": "Get SERPs",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1040,
752
],
"parameters": {
"url": "https://api.dataforseo.YOUR_AWS_SECRET_KEY_HERE",
"method": "POST",
"options": {},
"jsonBody": "=[\n {\n \"language_name\": \"{{ $json.Language }}\",\n \"location_name\": \"{{ $json.Location }}\",\n \"keyword\": \"{{ $json['Main Keyword'] }}\",\n \"depth\": 20,\n \"people_also_ask_click_depth\": 1\n }\n]",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "37c8b946-b382-41a0-84cd-9d060b4d8d66",
"name": "Add SERPs",
"type": "n8n-nodes-base.googleSheets",
"position": [
-384,
640
],
"parameters": {
"columns": {
"value": {
"URL": "={{ $json.url }}",
"Type": "={{ $json.type }}",
"Title": "={{ $json.title }}",
"Domain": "={{ $json.domain }}",
"Description": "={{ $json.description }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Domain",
"type": "string",
"display": true,
"required": false,
"displayName": "Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "URL",
"type": "string",
"display": true,
"required": false,
"displayName": "URL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Title",
"type": "string",
"display": true,
"required": false,
"displayName": "Title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Description",
"type": "string",
"display": true,
"required": false,
"displayName": "Description",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 937131125,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=937131125",
"cachedResultName": "SERP"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "9babbdbe-90ef-4201-9a41-414224ecfeaa",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3344,
192
],
"parameters": {
"width": 660,
"height": 2060,
"content": "## [n8n Automation] Live-time SEO Keyword Research Tool - Try It Out!\n**This n8n template automates real-time SEO keyword research, delivering comprehensive keyword insights, autocomplete suggestions, subtopics, SERP analysis, and more, straight into your Google Sheet.**\n\nUse cases are many: This workflow is perfect for bloggers, SEO professionals, affiliate marketers, e-commerce teams, and content creators who need fresh, actionable keyword data for planning, optimization, and content expansion - without endless manual research.\n\n## How It Works\n### Phase 1: Set Google Sheet ID & Input Target Keywords\n- In n8n, enter the **Google Sheet ID** in the **Set Sheet ID** node. \n- In the connected Google Sheet, for the first tab **Main Keyword**, you manually add the main keywords that you want the tool to research and generate relevant keyword suggestions for. \n- Trigger the process by clicking **Test Workflow** or **Execute Workflow**.\n- The workflow automatically reads your main keywords from the **Main Keyword** tab in your linked Google Sheet, only those marked with the status **Ready** will be processed.\n\n### Phase 2: Automated Research & Data Collection\nFor your input main keyword (considering here you only set **Ready** for one main keyword in the connected Google Sheet), the workflow runs multiple automated queries in parallel:\n\n**1. Get Related Keywords:**\n\n- The workflow sends a **POST request** to the **DataForSEO API** endpoint to directly retrieve an array of related keywords.\n- Then, the array of related keywords is parsed out, preparing each keyword as a separate record for further processing.\n- It appends each extracted related keyword as a new row in the **Related KW** tab of your connected Google Sheet. The **Main Keyword** value from your input is included in **Column A** of the tab to maintain keyword context.\n- Additionally, the workflow appends the related keywords - along with the associated main keyword - to the **All Results** tab in your Google Sheet for consolidated tracking and future reference. This ensures you have both a dedicated list of related keywords and a master log of all research results in one place.\n\n\n**2. Get Keyword Suggestions:**\n\n- The workflow sends a **POST request** to the **DataForSEO API** endpoint to directly retrieve an array of keyword suggestions related to your main keyword.\n- This array of keyword suggestions is then parsed, splitting out each suggestion as an individual record for further processing.\n- Each extracted keyword suggestion is appended as a new row in the **KW Suggestion** tab of your connected Google Sheet. The original **Main Keyword** value from your input is included in Column A of the tab to maintain clear context.\n- Additionally, the workflow appends all keyword suggestions - along with the associated main keyword - to the **All Results** tab in your Google Sheet for consolidated tracking and future reference. This ensures you have both a dedicated list of keyword suggestions and a master log of all research results in one place.\n\n\n**3. Get Autocomplete Suggestions:**\n\n- The workflow sends a **POST request** to the **DataForSEO API** endpoint to retrieve Google autocomplete keyword suggestions for your main keyword.\n- The array of autocomplete keyword suggestions is parsed out as an individual record for processing.\n- Each extracted autocomplete keyword is appended as a new row in the **Autocomplete Suggestion** tab of your connected Google Sheet. The Main Keyword is included alongside each entry for proper tracking.\n- Additionally, the workflow appends all autocomplete keywords - along with the associated main keyword - to the **All Results** tab in your Google Sheet for consolidated tracking and future reference. This ensures you have both a dedicated list of autocomplete keywords and a master log of all research results in one place.\n\n\n**4. Get Content Ideas:**\n\n- The workflow sends a **POST request** to the DataForSEO API endpoint to retrieve content ideas and fresh topic suggestions based on your main keyword.\n- The array of content ideas is then parsed; each idea is extracted as a separate record for further use.\n- Every content idea is then appended as a new row in the **Content Idea** tab of your connected Google Sheet, with the Main Keyword included to provide context.\n- Additionally, the workflow appends all content ideas, along with their related main keyword, to the **All Results** tab in your sheet for consolidated tracking and easy access. This ensures you have both a dedicated list of content ideas for brainstorming and a central log of all keyword research outputs in one place.\n\n\n**5. Get SERPs:**\n\n- The workflow sends a **POST request** to the DataForSEO API endpoint, retrieving both the current Google SERP (Search Engine Results Page) data and People Also Ask (PAA) questions related to your main keyword.\n- Then, the data is split into two streams: one for standard SERP results and one for PAA questions.\n- For Standard SERPs:\n + The workflow filters the SERP data to keep only the most relevant results.\n + Each SERP entry is appended as a new row in the **SERP** tab of your connected Google Sheet, providing insights into top-ranking pages and their attributes.\n- For PAA (People Also Ask):\n + The PAA data is also filtered.\n + Each PAA question is split out and added as a new row in the **PAA** tab in your connected Google Sheet for focused tracking.\n + Additionally, all PAA questions are consolidated and appended, along with their related main keyword, to the **All Results** tab in your sheet for consolidated tracking and easy access. This ensures you have both a dedicated list of PAA questions for brainstorming and a central log of all research outputs in one place.\n\n\n\n"
},
"typeVersion": 1
},
{
"id": "d263f753-61cd-4554-82b3-40aae0c94906",
"name": "Filter SERPs",
"type": "n8n-nodes-base.filter",
"position": [
-608,
640
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "fc1bef22-a996-4909-aac4-937b385bfbc0",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.type }}",
"rightValue": "organic"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "8dbefb90-e4f8-49ae-87ca-51d67bb23ef7",
"name": "Split Out PAA",
"type": "n8n-nodes-base.splitOut",
"position": [
-384,
848
],
"parameters": {
"options": {},
"fieldToSplitOut": "items"
},
"typeVersion": 1
},
{
"id": "a3b8466f-6e34-4499-bff0-0c4c3d3a142d",
"name": "Save Related KWs to All Results",
"type": "n8n-nodes-base.googleSheets",
"position": [
-384,
-160
],
"parameters": {
"columns": {
"value": {
"CPC": "={{ $json.CPC }}",
"MSV": "={{ $json.MSV }}",
"Type": "={{ $json.Type }}",
"Keyword": "={{ $json.Keyword }}",
"Competition": "={{ $json.Competition }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}",
"KW Difficulty": "={{ $json['KW Difficulty'] }}",
"Search Intent": "={{ $json['Search Intent'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Answer",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2108933567,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=2108933567",
"cachedResultName": "Result All"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "20239242-b7c0-4316-bc1c-40f3195574a7",
"name": "Get KW Suggestions",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1040,
48
],
"parameters": {
"url": "https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/live",
"method": "POST",
"options": {},
"jsonBody": "=[{\n \"keyword\": \"{{ $json['Main Keyword'] }}\",\n \"location_name\": \"{{ $json.Location }}\",\n \"language_name\": \"{{ $json.Language }}\",\n \"include_serp_info\": true,\n \"include_seed_keyword\": false,\n \"limit\": {{ $json.Limit }},\n \"ignore_synonyms\": true\n }]\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "ee2884cb-3d0f-49a8-b34a-376ed19d46da",
"name": "Split Out KW Suggestions",
"type": "n8n-nodes-base.splitOut",
"position": [
-816,
48
],
"parameters": {
"options": {},
"fieldToSplitOut": "tasks[0].result[0].items"
},
"typeVersion": 1
},
{
"id": "b7dd1d5b-fde3-4a71-adee-ed15a9894dd4",
"name": "Add KW Suggestions",
"type": "n8n-nodes-base.googleSheets",
"position": [
-608,
48
],
"parameters": {
"columns": {
"value": {
"CPC": "={{ $json.keyword_info.cpc }}",
"MSV": "={{ $json.keyword_info.search_volume_trend.monthly }}",
"Type": "Suggestion",
"Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}",
"Competition": "={{ $json.keyword_info.competition_level }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}",
"KW Difficulty": "={{ $json.keyword_properties.keyword_difficulty }}",
"Search Intent": "={{ $json.search_intent_info.main_intent }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keyword",
"type": "string",
"display": true,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1051280433,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=1051280433",
"cachedResultName": "KW Suggest"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "2b81656f-f882-4bf2-bd3a-33555886c5ab",
"name": "Save KW Suggestions to All Results",
"type": "n8n-nodes-base.googleSheets",
"position": [
-384,
48
],
"parameters": {
"columns": {
"value": {
"CPC": "={{ $json.CPC }}",
"MSV": "={{ $json.MSV }}",
"Type": "={{ $json.Type }}",
"Keyword": "={{ $json.Keyword }}",
"Competition": "={{ $json.Competition }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}",
"KW Difficulty": "={{ $json['KW Difficulty'] }}",
"Search Intent": "={{ $json['Search Intent'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Answer",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2108933567,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=2108933567",
"cachedResultName": "Result All"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "49af7591-cb7c-42e8-bf07-0111ce7948f8",
"name": "Get Autocomplete Suggestions",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1040,
240
],
"parameters": {
"url": "https://api.dataforseo.com/v3/serp/google/autocomplete/live/advanced",
"method": "POST",
"options": {},
"jsonBody": "=[{\n \"keyword\": \"{{ $json['Main Keyword'] }}\",\n \"location_name\": \"{{ $json.Location }}\",\n \"language_name\": \"{{ $json.Language }}\",\n \"client\": \"gws-wiz-serp\"\n }]",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "a8d4b550-8817-40b1-a33b-9acfa1026778",
"name": "Split Out Autocomplete Suggestions",
"type": "n8n-nodes-base.splitOut",
"position": [
-816,
240
],
"parameters": {
"options": {},
"fieldToSplitOut": "tasks[0].result[0].items"
},
"typeVersion": 1
},
{
"id": "25f4b33a-b110-45a8-86a0-0a58099d6e6b",
"name": "Add Autocomplete Suggestions",
"type": "n8n-nodes-base.googleSheets",
"position": [
-608,
240
],
"parameters": {
"columns": {
"value": {
"Type": "Autocomplete",
"Autocomplete": "={{ $json.suggestion }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Autocomplete",
"type": "string",
"display": true,
"required": false,
"displayName": "Autocomplete",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PAA Answer",
"type": "string",
"display": true,
"required": false,
"displayName": "PAA Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 381234465,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=381234465",
"cachedResultName": "Autocomplete"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "3e4fa089-c969-4dfd-ab1f-e4d55767fff5",
"name": "Save Autocomplete Suggestions to All Results",
"type": "n8n-nodes-base.googleSheets",
"position": [
-384,
240
],
"parameters": {
"columns": {
"value": {
"Type": "={{ $json.Type }}",
"Keyword": "={{ $json.Autocomplete }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Answer",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2108933567,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=2108933567",
"cachedResultName": "Result All"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "8ba91c62-9158-4316-99b6-a07f5d5dc1e3",
"name": "Get Content Ideas",
"type": "n8n-nodes-base.httpRequest",
"position": [
-1040,
448
],
"parameters": {
"url": "https://api.dataforseo.com/v3/content_generation/generate_sub_topics/live",
"method": "POST",
"options": {},
"jsonBody": "=[{\n \"topic\": \"{{ $json['Main Keyword'] }}\"\n }]",
"sendBody": true,
"specifyBody": "json",
"authentication": "genericCredentialType",
"genericAuthType": "httpBasicAuth"
},
"credentials": {
"httpBasicAuth": {
"name": "<your credential>"
},
"httpHeaderAuth": {
"name": "<your credential>"
}
},
"typeVersion": 4.2
},
{
"id": "d81b5aa9-87cd-4dac-a7d1-cbdc328c79d3",
"name": "Split Out Content Ideas",
"type": "n8n-nodes-base.splitOut",
"position": [
-816,
448
],
"parameters": {
"options": {},
"fieldToSplitOut": "tasks[0].result[0].sub_topics"
},
"typeVersion": 1
},
{
"id": "9c74b674-cbff-40fd-84c6-47e17e101618",
"name": "Add Content Ideas",
"type": "n8n-nodes-base.googleSheets",
"position": [
-608,
448
],
"parameters": {
"columns": {
"value": {
"Type": "=Subtopics",
"Subtopics": "={{ $json['tasks[0].result[0].sub_topics'] }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Subtopics",
"type": "string",
"display": true,
"required": false,
"displayName": "Subtopics",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PAA Answer",
"type": "string",
"display": true,
"required": false,
"displayName": "PAA Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1927743399,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1uH1FF4txA3R0NIaKJJOBXSTHBqOZDgj4boxqSS_O3y0/edit#gid=1927743399",
"cachedResultName": "Subtopics"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "1861a175-cf24-4d80-aa09-1bfdcb6c737e",
"name": "Add Content Ideas to All Results",
"type": "n8n-nodes-base.googleSheets",
"position": [
-384,
448
],
"parameters": {
"columns": {
"value": {
"CPC": "=",
"MSV": "=",
"Type": "={{ $json.Type }}",
"Answer": "=",
"Keyword": "={{ $json.Subtopics }}",
"Competition": "=",
"Main Keyword": "={{ $json['Main Keyword'] }}",
"KW Difficulty": "=",
"Search Intent": "="
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keyword",
"type": "string",
"display": true,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Answer",
"type": "string",
"display": true,
"required": false,
"displayName": "Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": []
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 2108933567,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=2108933567",
"cachedResultName": "Result All"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "ca3e0fc2-64bd-4cb3-b519-cc4845d2403d",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-4000,
192
],
"parameters": {
"color": 6,
"width": 620,
"height": 440,
"content": "## Result Types - Read It First!\n\n**Main Keyword**: Your original list of main keywords with status tracking.\n\n**All Results**: A master log of all relevant keyword and idea research outputs for easy review.\n\n**Related KW**: Lists of related keywords for each main keyword.\n\n**KW Suggestion**: Suggested keyword ideas for broader targeting.\n\n**Autocomplete Suggestion**: Google autocomplete keyword suggestions to capture real user queries.\n\n**Content Idea**: Keyword-related content ideas to build out your content clusters.\n\n**SERP**: top-ranking pages, including their URLs, page titles, and descriptions - perfect for quick competitor and content analysis.\n\n**PAA**: People Also Ask questions for intent research and content expansion.\n\n"
},
"typeVersion": 1
},
{
"id": "5856063e-723b-48d9-88e9-16f8818eb70e",
"name": "Get Main Keywords",
"type": "n8n-nodes-base.googleSheets",
"position": [
-1344,
240
],
"parameters": {
"options": {
"returnFirstMatch": true
},
"filtersUI": {
"values": [
{
"lookupValue": "Ready",
"lookupColumn": "Status"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=0",
"cachedResultName": "Main Keyword"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "c789d47d-ae7c-4daa-b49a-eed4b769dd6b",
"name": "Filter PAAs",
"type": "n8n-nodes-base.filter",
"position": [
-608,
848
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "or",
"conditions": [
{
"id": "fc1bef22-a996-4909-aac4-937b385bfbc0",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.type }}",
"rightValue": "people_also_ask"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "4fca497b-81b1-4eef-baad-16738057c087",
"name": "Split Out SERPs and PAAs",
"type": "n8n-nodes-base.splitOut",
"position": [
-816,
752
],
"parameters": {
"options": {},
"fieldToSplitOut": "tasks[0].result[0].items"
},
"typeVersion": 1
},
{
"id": "0625cdcd-05d1-4cad-85ad-351596142543",
"name": "Add PAAs",
"type": "n8n-nodes-base.googleSheets",
"position": [
-160,
848
],
"parameters": {
"columns": {
"value": {
"FAQ": "={{ $json.title }}",
"Type": "={{ $json.type }}",
"Main Keyword": "={{ $('Get Main Keywords').item.json['Main Keyword'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "FAQ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "FAQ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "PAA Answer",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "PAA Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1721013289,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1wZ8ZHh5AqR1yfK5lHLqGkvPu75liTKuehzuBnQKb_UM/edit#gid=1721013289",
"cachedResultName": "FAQ"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": "={{ $('Set Sheet ID').item.json.id_sheet }}"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "ef182ebe-9cf7-4519-ab39-c59067911c8a",
"name": "Add PAAs to All Results",
"type": "n8n-nodes-base.googleSheets",
"position": [
64,
848
],
"parameters": {
"columns": {
"value": {
"Type": "={{ $json.Type }}",
"Keyword": "={{ $json.FAQ }}",
"Main Keyword": "={{ $json['Main Keyword'] }}"
},
"schema": [
{
"id": "Main Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Main Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Keyword",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Keyword",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "MSV",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "MSV",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Search Intent",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Search Intent",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "KW Difficulty",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "KW Difficulty",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Competition",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Competition",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CPC",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "CPC",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Answer",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Answer",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes":
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.
googleSheetsOAuth2ApihttpBasicAuthhttpHeaderAuth
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Use cases are many: This workflow is perfect for bloggers, SEO professionals, affiliate marketers, e-commerce teams, and content creators who need fresh, actionable keyword data for planning, optimization, and content expansion - without endless manual research. In n8n, enter…
Source: https://n8n.io/workflows/7640/ — 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.
TrackCollect_deeper. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, itemLists. Event-driven trigger; 80 nodes.
This template is ideal for solo store owners, eCommerce marketers, automation beginners, or anyone using Shopify and Gmail who wants to recover lost revenue without coding.
PCN. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, itemLists. Event-driven trigger; 60 nodes.
Product Ad Machine. Uses googleDrive, googleSheets, httpRequest, @ffmpeg-micro/n8n-nodes-ffmpeg-micro. Event-driven trigger; 60 nodes.
The workflow automates the process of gathering extensive keyword data for a "Main Keyword." It starts by reading initial parameters from a Google Sheets template, creates a new dedicated Google Sheet