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.
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.
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
🔥 March Sale – n8n Community Members Get ideoGener8r for Just $27! (Reg. $47) Use Coupon Code: (Valid until 3/31/2025 for n8n community members)
📄 Documentation: Notion Guide