リアルタイムSEOキーワードリサーチツール

上級

これはMarket Research, Multimodal AI分野の自動化ワークフローで、37個のノードを含みます。主にSet, Filter, SplitOut, HttpRequest, GoogleSheetsなどのノードを使用。 DataForSEOとGoogleスプレッドシートを使ってリアルタイムSEOキーワード調査を自動化

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
  • Google Sheets API認証情報
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "sJuyUxOLyxGHNUei",
  "meta": {
    "instanceId": "ed6d846a2fce1f660ede2e7da800724cca01dc3d0685524a3c917881b7cfcfe9"
  },
  "name": "Live-time SEO Keyword Research Tool",
  "tags": [],
  "nodes": [
    {
      "id": "d42a41fc-2954-40da-aaf8-f3006c35f05c",
      "name": "クリック時 ‘Test workflow’",
      "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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "fbeb5071-5b36-45b6-9a91-7cc281f18335",
      "name": "分割出力 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": {
          "id": "PFQQALHynobpJlZ7",
          "name": "dataforseo-hoanglt"
        },
        "httpHeaderAuth": {
          "id": "58eNsmBVxa2hejdP",
          "name": "Header Auth account - DataforSE"
        }
      },
      "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.com/v3/serp/google/organic/live/advanced",
        "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": {
          "id": "PFQQALHynobpJlZ7",
          "name": "dataforseo-hoanglt"
        },
        "httpHeaderAuth": {
          "id": "SIZyEwK4lEDa0PdZ",
          "name": "Header Auth shotstack - toan.ngo"
        }
      },
      "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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "9babbdbe-90ef-4201-9a41-414224ecfeaa",
      "name": "付箋",
      "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": "フィルター 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": "分割出力 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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "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": {
          "id": "PFQQALHynobpJlZ7",
          "name": "dataforseo-hoanglt"
        },
        "httpHeaderAuth": {
          "id": "58eNsmBVxa2hejdP",
          "name": "Header Auth account - DataforSE"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ee2884cb-3d0f-49a8-b34a-376ed19d46da",
      "name": "分割出力 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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "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": {
          "id": "PFQQALHynobpJlZ7",
          "name": "dataforseo-hoanglt"
        },
        "httpHeaderAuth": {
          "id": "58eNsmBVxa2hejdP",
          "name": "Header Auth account - DataforSE"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a8d4b550-8817-40b1-a33b-9acfa1026778",
      "name": "分割出力 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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "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": {
          "id": "PFQQALHynobpJlZ7",
          "name": "dataforseo-hoanglt"
        },
        "httpHeaderAuth": {
          "id": "58eNsmBVxa2hejdP",
          "name": "Header Auth account - DataforSE"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d81b5aa9-87cd-4dac-a7d1-cbdc328c79d3",
      "name": "分割出力 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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "ca3e0fc2-64bd-4cb3-b519-cc4845d2403d",
      "name": "付箋1",
      "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": {
          "id": "pe6UD1A6MWIk2X91",
          "name": "Google Sheets - toan.ngo"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "c789d47d-ae7c-4daa-b49a-eed4b769dd6b",
      "name": "フィルター 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": "分割出力 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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "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": 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": {
          "id": "8zE9RGFuX38Olu4H",
          "name": "Google Sheets account -hoanglt"
        }
      },
      "typeVersion": 4.5
    },
    {
      "id": "b3ee7ec7-0f2e-423a-acd9-47d7273686b1",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2640,
        192
      ],
      "parameters": {
        "width": 660,
        "height": 1380,
        "content": "## How To Set Up\n- Download the workflow package and import it into your n8n interface.\n- Duplicate the [**Keyword Research**](https://docs.google.com/spreadsheets/d/1QiaKcy5MwLwmBqD4FrBTd_m3GCK1Jjll9IsNi7q96QA/edit?gid=0#gid=0) Google Sheet template to your Google Sheets account.\n- Set up necessary credentials for tools access and usability:\n     + For **Google Sheets** access, ensure each node is properly connected to the correct tab in your connected Google Sheet template: \n     Node **Get Main Keywords** → connected to the **Main Keyword** tab\n     Node **Add Related KWs** → connected to the **Related KW** tab\n     Node **Save Related KWs to All Results** → connected to the **All Results** tab\n     Node **Add KW Suggestions** → connected to the **KW Suggestion** tab\n     Node **Save KW Suggestions to All Results** → connected to the **All Results** tab\n     Node **Add Autocomplete Suggestions** → connected to the **Autocomplete Suggestion** tab\n     Node **Save Autocomplete Suggestions to All Results** → connected to the **All Results** tab\n     Node **Add Content Ideas** → connected to the **Content Idea** tab\n     Node **Save Content Ideas to All Results** → connected to the **All Results** tab\n     Node **Add SERPs** → connected to the **SERP** tab\n     Node **Add PAAs** → connected to the **PAA** tab\n     Node **Save PAAs to All Results** → connected to the **All Results** tab\n     + For DataForSEO access, set up API credentials (Basic Auth) along with correct **POST URL** for each query in the following node:\nNode **Get Related KWs**\nNode **Get KW Suggestions**\nNode **Get Autocomplete Suggestions**\nNode **Get Content Ideas**\nNode **Get SERPs**\n- Enter your **Google Sheet ID** in the **Set Sheet ID** node to link the workflow to your connected Google Sheet.\n- Add your target keywords to **Column B** in the **Main Keyword** tab in the connected Google Sheet and set their status to **Ready**\n- Run the workflow by clicking **Test Workflow** or **Execute Workflow** in n8n.\n- Review the results across all output tabs in your connected Google Sheet.\n\n## Requirements\n- **n8n** instance (self-hosted or cloud).\n- Basic setup in **Google Cloud Console** (OAuth or API Key method enabled) with enabled access to **Google Sheets**.\n- **DataForSEO** API credentials.\n\n## How To Customize\n- **Add Extra Research Steps**: Expand the workflow by integrating additional research queries related to the main keywords - such as backlink analysis, competitor monitoring, or search trend tracking - to gather even more valuable insights alongside your keyword data.\n- **Automate Scheduling & Notifications**: Set up an automatic schedule in n8n so the workflow runs at your preferred intervals. Connect notification tools like Telegram, Slack, or a chatbox to receive alerts whenever the process finishes, keeping you instantly updated without manual checks.\n- **Personalize Data Mapping**: Tailor how the research results are saved to your Google Sheet by customizing column mapping and naming conventions. This lets you organize your data exactly how you want for easier analysis and reporting.\n\n## Need Help?\nIf you’d like this workflow customized to fit your tools and platforms availability, or if you’re looking to build a tailored AI Agent for your own business - please feel free to reach out to [**Agent Circle**](https://www.agentcircle.ai/). We’re always here to support and help you to bring automation ideas to life.\n\nJoin our community on different platforms for support, inspiration and tips from others.\nWebsite: https://www.agentcircle.ai/\nEtsy: https://www.etsy.com/shop/AgentCircle\nGumroad: http://agentcircle.gumroad.com/\nDiscord Global: https://discord.gg/d8SkCzKwnP\nFB Page Global: https://www.facebook.com/agentcircle/\nFB Group Global: https://www.facebook.com/groups/aiagentcircle/\nX: https://x.com/agent_circle\nYouTube: https://www.youtube.com/@agentcircle\nLinkedIn: https://www.linkedin.com/company/agentcircle"
      },
      "typeVersion": 1
    },
    {
      "id": "67b2d673-080d-444c-a854-db8cba84384b",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1840,
        -48
      ],
      "parameters": {
        "color": 4,
        "width": 720,
        "height": 640,
        "content": "## 1. Set Google Sheet ID & Input Target Keywords\n\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"
      },
      "typeVersion": 1
    },
    {
      "id": "3e6bb7a8-c639-44c0-8ebf-45823f95c067",
      "name": "設定 Sheet ID",
      "type": "n8n-nodes-base.set",
      "position": [
        -1536,
        240
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1006d85e-8365-438e-82a9-8d77b510a851",
              "name": "id_sheet",
              "type": "string",
              "value": "1QiaKcy5MwLwmBqD4FrBTd_m3GCK1Jjll9IsNi7q96QA"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b9a45021-967b-4b04-85a0-2484c88feea7",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1088,
        -336
      ],
      "parameters": {
        "color": 4,
        "width": 2160,
        "height": 1420,
        "content": "## 2.  Automated Research & Data Collection"
      },
      "typeVersion": 1
    },
    {
      "id": "41bdfdbb-edee-4bc3-abab-8e32e2dc9679",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -224
      ],
      "parameters": {
        "color": 7,
        "width": 1140,
        "height": 200,
        "content": "### 2.1. Get Related Keywords:\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."
      },
      "typeVersion": 1
    },
    {
      "id": "2a0efeaa-9c34-4521-a1d7-034b849cf953",
      "name": "付箋6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 1140,
        "height": 200,
        "content": "### 2.2. Get Keyword Suggestions\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."
      },
      "typeVersion": 1
    },
    {
      "id": "040e0049-bfeb-414d-a20c-e4d003d2cae4",
      "name": "付箋7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        224
      ],
      "parameters": {
        "color": 7,
        "width": 1140,
        "height": 200,
        "content": "### 2.3. Get Autocomplete Suggestions:\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."
      },
      "typeVersion": 1
    },
    {
      "id": "b4cca1a9-38c5-4926-bbc4-78f1b909d8d3",
      "name": "付箋8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        448
      ],
      "parameters": {
        "color": 7,
        "width": 1140,
        "content": "### 2.4. Get Content Ideas:\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."
      },
      "typeVersion": 1
    },
    {
      "id": "86a01202-4a2e-4b6c-9295-98691daf4c3c",
      "name": "付箋9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        640
      ],
      "parameters": {
        "color": 7,
        "width": 700,
        "height": 380,
        "content": "### 2.5. Get SERPs & PAAs:\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."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "48b5bf54-370e-4657-b4b3-e2950d9e5315",
  "connections": {
    "0625cdcd-05d1-4cad-85ad-351596142543": {
      "main": [
        [
          {
            "node": "ef182ebe-9cf7-4519-ab39-c59067911c8a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c984898c-8358-4903-ad61-526c12a6748c": {
      "main": [
        [
          {
            "node": "Split Out SERPs and PAAs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter PAAs": {
      "main": [
        [
          {
            "node": "Split Out PAA",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter SERPs": {
      "main": [
        [
          {
            "node": "37c8b946-b382-41a0-84cd-9d060b4d8d66",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Sheet ID": {
      "main": [
        [
          {
            "node": "5856063e-723b-48d9-88e9-16f8818eb70e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out PAA": {
      "main": [
        [
          {
            "node": "0625cdcd-05d1-4cad-85ad-351596142543",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ebdca890-b195-4a24-a373-52b4872126fd": {
      "main": [
        [
          {
            "node": "a3b8466f-6e34-4499-bff0-0c4c3d3a142d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6a029bc6-1542-4d2b-966a-6e965cb34552": {
      "main": [
        [
          {
            "node": "Split Out Related KW",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9c74b674-cbff-40fd-84c6-47e17e101618": {
      "main": [
        [
          {
            "node": "1861a175-cf24-4d80-aa09-1bfdcb6c737e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8ba91c62-9158-4316-99b6-a07f5d5dc1e3": {
      "main": [
        [
          {
            "node": "Split Out Content Ideas",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5856063e-723b-48d9-88e9-16f8818eb70e": {
      "main": [
        [
          {
            "node": "6a029bc6-1542-4d2b-966a-6e965cb34552",
            "type": "main",
            "index": 0
          },
          {
            "node": "20239242-b7c0-4316-bc1c-40f3195574a7",
            "type": "main",
            "index": 0
          },
          {
            "node": "49af7591-cb7c-42e8-bf07-0111ce7948f8",
            "type": "main",
            "index": 0
          },
          {
            "node": "8ba91c62-9158-4316-99b6-a07f5d5dc1e3",
            "type": "main",
            "index": 0
          },
          {
            "node": "c984898c-8358-4903-ad61-526c12a6748c",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b7dd1d5b-fde3-4a71-adee-ed15a9894dd4": {
      "main": [
        [
          {
            "node": "2b81656f-f882-4bf2-bd3a-33555886c5ab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "20239242-b7c0-4316-bc1c-40f3195574a7": {
      "main": [
        [
          {
            "node": "Split Out KW Suggestions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Related KW": {
      "main": [
        [
          {
            "node": "ebdca890-b195-4a24-a373-52b4872126fd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Content Ideas": {
      "main": [
        [
          {
            "node": "9c74b674-cbff-40fd-84c6-47e17e101618",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out KW Suggestions": {
      "main": [
        [
          {
            "node": "b7dd1d5b-fde3-4a71-adee-ed15a9894dd4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out SERPs and PAAs": {
      "main": [
        [
          {
            "node": "Filter SERPs",
            "type": "main",
            "index": 0
          },
          {
            "node": "Filter PAAs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "25f4b33a-b110-45a8-86a0-0a58099d6e6b": {
      "main": [
        [
          {
            "node": "3e4fa089-c969-4dfd-ab1f-e4d55767fff5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "49af7591-cb7c-42e8-bf07-0111ce7948f8": {
      "main": [
        [
          {
            "node": "Split Out Autocomplete Suggestions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Set Sheet ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Autocomplete Suggestions": {
      "main": [
        [
          {
            "node": "25f4b33a-b110-45a8-86a0-0a58099d6e6b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - 市場調査, マルチモーダルAI

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

関連ワークフロー

Googleマップ - キーワードによるメールアドレスのスクレイピング
Googleマップの検索結果から商業用メールアドレスをGoogleスプレッドシートに抽出
Set
Code
Filter
+
Set
Code
Filter
20 ノードAgent Circle
リード獲得
YouTube視聴者コメント分析ツール
Gemini AIを使ってYouTubeコメントの感情を分析し、Google Sheetsに保存する
If
Split Out
Http Request
+
If
Split Out
Http Request
17 ノードAgent Circle
市場調査
ApiFlash、Gemini Visionを使ってSheetsからTelegramへ自動送信する科技ニュースレポート
ApiFlash、Gemini Vision、SheetsからTelegramへの自動科技ニュースレポート
Set
Code
Limit
+
Set
Code
Limit
18 ノードCong Nguyen
市場調査
フェイスレスビデオジェネレーター - アイデアを動画に自動変換
Gemini、ElevenLabs、Leonardo AI、Shotstackを使って顔なしの動画を作成する
Set
Wait
Merge
+
Set
Wait
Merge
37 ノードAgent Circle
コンテンツ作成
YouTube - 動画のコメントを取得
YouTubeの動画コメントを抽出し、Google Sheetsに保存
If
Split Out
Http Request
+
If
Split Out
Http Request
16 ノードAgent Circle
市場調査
Instagramビジュアル分析:Apifyスクレイピング、OpenAI GPT-5、Googleスプレッドシート統合
Apifyによるスクレイピング、OpenAI GPT-5による分析、Googleスプレッドシートでのインスタグラムビジュアル分析
Filter
Split Out
Http Request
+
Filter
Split Out
Http Request
13 ノードRobert Breen
市場調査
ワークフロー情報
難易度
上級
ノード数37
カテゴリー2
ノードタイプ7
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
Agent Circle

Agent Circle

@agentcircle

Agent Circle - A growing marketplace of AI agents, workflows, and toolkits — built to help teams automate smarter and scale faster

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34