8
n8n 中文网amn8n.com

Google SERP追踪器+趋势与推荐(使用Bright Data和Google Gemini)

高级

这是一个AI, Marketing领域的自动化工作流,包含 23 个节点。主要使用 Set, Code, HttpRequest, ConvertToFile, ManualTrigger 等节点,结合人工智能技术实现智能自动化。 使用Bright Data和Google Gemini的Google搜索结果页面追踪、趋势分析和推荐

前置要求
  • 可能需要目标 API 的认证凭证
  • Google Gemini API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "77EZJT0bcpkDEigw",
  "meta": {
    "instanceId": "885b4fb4a6a9c2cb5621429a7b972df0d05bb724c20ac7dac7171b62f1c7ef40",
    "templateCredsSetupCompleted": true
  },
  "name": "Google SERP 追踪器 + 趋势与推荐(使用 Bright Data 和 Google Gemini)",
  "tags": [
    {
      "id": "Kujft2FOjmOVQAmJ",
      "name": "Engineering",
      "createdAt": "2025-04-09T01:31:00.558Z",
      "updatedAt": "2025-04-09T01:31:00.558Z"
    },
    {
      "id": "ZOwtAMLepQaGW76t",
      "name": "Building Blocks",
      "createdAt": "2025-04-13T15:23:40.462Z",
      "updatedAt": "2025-04-13T15:23:40.462Z"
    },
    {
      "id": "ddPkw7Hg5dZhQu2w",
      "name": "AI",
      "createdAt": "2025-04-13T05:38:08.053Z",
      "updatedAt": "2025-04-13T05:38:08.053Z"
    }
  ],
  "nodes": [
    {
      "id": "89c87a2f-ee34-47e4-8efd-a4a95d02b052",
      "name": "当点击“测试工作流”时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -380,
        -160
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "44ede7e3-f552-4a70-a538-9d124a4df315",
      "name": "设置输入字段",
      "type": "n8n-nodes-base.set",
      "position": [
        -120,
        -160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0ac91db2-9848-40d4-b942-cd7288597ded",
              "name": "url",
              "type": "string",
              "value": "https://www.google.com/search"
            },
            {
              "id": "7142f0df-3c68-4ce0-8e9b-25101db31312",
              "name": "webhook_notification_url",
              "type": "string",
              "value": "https://webhook.site/c9118da2-1c54-460f-a83a-e5131b7098db"
            },
            {
              "id": "f5b7e10d-bcd8-439c-8e84-ba4af11f2cd2",
              "name": "search",
              "type": "string",
              "value": "best crm for the year 2025"
            },
            {
              "id": "3a0bcec2-ec6d-457f-87a5-b73f4d826b2a",
              "name": "zone",
              "type": "string",
              "value": "web_unlocker1"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "adb4eb44-ae8b-4a5e-bab8-afbf5b91e2a2",
      "name": "执行 Bright Data Web 请求",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        120,
        -160
      ],
      "parameters": {
        "url": "https://api.brightdata.com/request",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "zone",
              "value": "={{ $json.zone }}"
            },
            {
              "name": "url",
              "value": "={{ $json.url }}?q={{ encodeURI($json.search) }}"
            },
            {
              "name": "format",
              "value": "raw"
            }
          ]
        },
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "kdbqXuxIR8qIxF7y",
          "name": "Header Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "97f0a53c-81cb-4593-afde-d770547b88d0",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        60,
        -440
      ],
      "parameters": {
        "color": 5,
        "width": 440,
        "height": 240,
        "content": "## LLM 使用"
      },
      "typeVersion": 1
    },
    {
      "id": "ca10a555-a4ef-4a2b-8ad1-9abf0e02e2d8",
      "name": "便利贴5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -800
      ],
      "parameters": {
        "color": 7,
        "width": 400,
        "height": 340,
        "content": "## 徽标"
      },
      "typeVersion": 1
    },
    {
      "id": "1ccd35b4-d56a-4c42-88a1-59453a344700",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -380,
        -440
      ],
      "parameters": {
        "width": 400,
        "height": 240,
        "content": "## 注意"
      },
      "typeVersion": 1
    },
    {
      "id": "f9b7f382-4a5a-4ddf-a62c-ee83af913a21",
      "name": "Google 搜索数据提取器",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        340,
        -160
      ],
      "parameters": {
        "text": "=Extract the following:\n\nRank (position in list)\n\nTitle\n\nURL\n\nSnippet/description\n\nType (organic/ads/map)\n\n{{ $json.data }}\n\nMake sure to return the data in JSON",
        "batching": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.7
    },
    {
      "id": "f10a9a84-3e4c-4ac0-957e-7fc7308c9fda",
      "name": "代码",
      "type": "n8n-nodes-base.code",
      "position": [
        700,
        -160
      ],
      "parameters": {
        "jsCode": "return $input.first().json.output.results"
      },
      "typeVersion": 2
    },
    {
      "id": "d3621752-4837-4e6f-82af-953e98901b24",
      "name": "遍历项目",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        920,
        -160
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "2f607774-34cf-4b0e-9384-f7214e0896e5",
      "name": "趋势数据提取器",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1180,
        -140
      ],
      "parameters": {
        "text": "=Extract the trends based on the title and spippet:\n\nTitle : {{ $json.title }}\nSnippet : {{ $json.snippet }}\n\nMake sure to return the data in JSON",
        "batching": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.7
    },
    {
      "id": "551b645b-99d7-4824-ad69-290ea8105689",
      "name": "用于 Google 搜索的 Google Gemini 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        340,
        20
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-exp"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "YeO7dHZnuGBVQKVZ",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "9bd32bc8-9452-4e6a-ac54-e3a1317d196e",
      "name": "用于 Google 搜索的结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        520,
        20
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"$schema\": \"http://json-schema.org/schema#\",\n  \"title\": \"Search Results Schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"results\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"required\": [\"rank\", \"title\", \"type\"],\n        \"properties\": {\n          \"rank\": {\n            \"type\": \"integer\",\n            \"minimum\": 1\n          },\n          \"title\": {\n            \"type\": \"string\"\n          },\n          \"url\": {\n            \"type\": \"string\",\n            \"format\": \"uri\"\n          },\n          \"snippet\": {\n            \"type\": \"string\"\n          },\n          \"type\": {\n            \"type\": \"string\",\n            \"enum\": [\"organic\", \"paid\", \"featured\"]\n          }\n        },\n        \"additionalProperties\": false\n      }\n    }\n  },\n  \"required\": [\"results\"],\n  \"additionalProperties\": false\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "06d01c21-4054-4879-a060-70c1a1bac559",
      "name": "用于趋势数据的 Google Gemini 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1180,
        40
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-exp"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "YeO7dHZnuGBVQKVZ",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7c89ac87-28b1-47f3-9f04-b2c05b1a483a",
      "name": "推荐数据提取器",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1180,
        -560
      ],
      "parameters": {
        "text": "=Provide recommendations based on the title and spippet:\n\nTitle : {{ $json.title }}\nSnippet : {{ $json.snippet }}\n\nMake sure to return the data in JSON",
        "batching": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 1.7
    },
    {
      "id": "f1f9cfac-28d0-40a9-9287-b11689570b53",
      "name": "用于推荐的 Google Gemini 聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        1180,
        -380
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-2.0-flash-exp"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "YeO7dHZnuGBVQKVZ",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c008d472-0982-4970-a017-73784c6916e7",
      "name": "用于推荐的结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1360,
        -380
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n  \"title\": \"CRM Recommendations Schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"recommendations\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"type\": {\n            \"type\": \"string\",\n            \"enum\": [\"Software\", \"Action\", \"Consideration\", \"Research\", \"Focus\"],\n            \"description\": \"The category or nature of the recommendation\"\n          },\n          \"name\": {\n            \"type\": \"string\",\n            \"description\": \"The name\"\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"description\": \"Explanation or reason behind the recommendation\"\n          },\n          \"reason\": {\n            \"type\": \"string\",\n            \"description\": \"A detailed reason for recommendation (mainly used for Software type)\"\n          }\n        }\n      }\n    }\n  },\n  \"required\": [\"recommendations\"]\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "113b9477-cb62-47b9-8f43-f49247c7053d",
      "name": "用于趋势数据的结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1360,
        40
      ],
      "parameters": {
        "schemaType": "manual",
        "inputSchema": "{\n  \"$schema\": \"https://json-schema.org/schema\",\n  \"title\": \"Trends Schema\",\n  \"type\": \"object\",\n  \"properties\": {\n    \"trends\": {\n      \"type\": \"array\",\n      \"items\": {\n        \"type\": \"object\",\n        \"properties\": {\n          \"trend\": {\n            \"type\": \"string\",\n            \"description\": \"The name or label of the CRM trend\"\n          },\n          \"description\": {\n            \"type\": \"string\",\n            \"description\": \"A short explanation of the trend\"\n          }\n        },\n        \"required\": [\"trend\", \"description\"],\n        \"additionalProperties\": false\n      }\n    }\n  },\n  \"required\": [\"trends\"],\n  \"additionalProperties\": false\n}\n"
      },
      "typeVersion": 1.2
    },
    {
      "id": "6b6bb9f4-2836-469d-b81b-90cddf5d0d6c",
      "name": "推荐代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1580,
        -560
      ],
      "parameters": {
        "jsCode": "return $input.first().json.output.recommendations"
      },
      "typeVersion": 2
    },
    {
      "id": "cb71a4e9-55ff-4194-8e5c-be96f3971a4e",
      "name": "趋势代码",
      "type": "n8n-nodes-base.code",
      "position": [
        1600,
        -140
      ],
      "parameters": {
        "jsCode": "return $input.first().json.output.trends"
      },
      "typeVersion": 2
    },
    {
      "id": "bfdac6af-7fa9-42d9-8931-029291202a35",
      "name": "转换为趋势文件",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1840,
        -140
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "28d26067-622b-4115-ab25-79bf8802acdd",
      "name": "转换为推荐文件",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1820,
        -560
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "0fb2daca-d998-432e-901a-001f750822db",
      "name": "将趋势 CSV 文件写入磁盘",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        2080,
        -140
      ],
      "parameters": {
        "options": {},
        "fileName": "=d:\\Google_SERP_Trends_Response_{{ new Date().toISOString().replace(/[:.]/g, '-')}}.csv",
        "operation": "write"
      },
      "typeVersion": 1
    },
    {
      "id": "b0164de9-50a4-4aba-a680-a392eaba5765",
      "name": "将推荐 CSV 文件写入磁盘",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        2060,
        -560
      ],
      "parameters": {
        "options": {},
        "fileName": "=d:\\Google_SERP_Recommendations_Response_{{ new Date().toISOString().replace(/[:.]/g, '-')}}.csv",
        "operation": "write"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7842a7f6-ab16-42c6-a209-1f313ed15376",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code for Trends": {
      "main": [
        [
          {
            "node": "Convert to File for Trends",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Trends Data Extractor",
            "type": "main",
            "index": 0
          },
          {
            "node": "Recommendation Data Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set input fields": {
      "main": [
        [
          {
            "node": "Perform Bright Data Web Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Trends Data Extractor": {
      "main": [
        [
          {
            "node": "Code for Trends",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code for Recommendations": {
      "main": [
        [
          {
            "node": "Convert to File for Recommendations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File for Trends": {
      "main": [
        [
          {
            "node": "Write the trends csv file to disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Search Data Extractor": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recommendation Data Extractor": {
      "main": [
        [
          {
            "node": "Code for Recommendations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Perform Bright Data Web Request": {
      "main": [
        [
          {
            "node": "Google Search Data Extractor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Set input fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write the trends csv file to disk": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to File for Recommendations": {
      "main": [
        [
          {
            "node": "Write the recommendations csv file to disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Trend Data": {
      "ai_languageModel": [
        [
          {
            "node": "Trends Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser for Trend Data": {
      "ai_outputParser": [
        [
          {
            "node": "Trends Data Extractor",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Google Search": {
      "ai_languageModel": [
        [
          {
            "node": "Google Search Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser for Google Search": {
      "ai_outputParser": [
        [
          {
            "node": "Google Search Data Extractor",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model for Recommendation": {
      "ai_languageModel": [
        [
          {
            "node": "Recommendation Data Extractor",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser for Recommendation": {
      "ai_outputParser": [
        [
          {
            "node": "Recommendation Data Extractor",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 人工智能, 营销

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量23
分类2
节点类型11
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Ranjan Dailata

Ranjan Dailata

@ranjancse

A Professional based out of India specialized in handling AI-powered automations. Contact me at ranjancse@gmail.com

外部链接
在 n8n.io 查看

分享此工作流