使用Bright Data的SERP数据AI分析创建数据驱动的SEO内容简报
高级
这是一个AI Summarization, Multimodal AI领域的自动化工作流,包含 27 个节点。主要使用 Set, Code, Limit, Merge, Aggregate 等节点。 使用Bright Data的SERP数据AI分析创建数据驱动的SEO内容简报
前置要求
- •无特殊前置要求,导入即可使用
使用的节点 (27)
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
"meta": {
"instanceId": "4a11afdb3c52fd098e3eae9fad4b39fdf1bbcde142f596adda46c795e366b326",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "ab8957e5-c78b-4fd7-b4f7-d4958449c8a2",
"name": "当收到聊天消息时",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-576,
32
],
"webhookId": "858ae4fe-d2b9-43e4-bfc7-8ca6ef9f6cde",
"parameters": {
"public": true,
"options": {
"title": "SEO Content Strategist",
"subtitle": "Generate a strategic content brief based on SERP analysis.",
"responseMode": "responseNodes",
"inputPlaceholder": "Enter your target keyword...",
"loadPreviousSession": "memory"
},
"initialMessages": "Welcome.\nI am your AI Content Strategist. Provide a target keyword, and I will analyze the top 10 search results to generate a detailed content plan designed to outrank the competition."
},
"typeVersion": 1.3
},
{
"id": "d41436d3-0b50-456f-aa04-53dd2ea58460",
"name": "提取 URL",
"type": "n8n-nodes-base.code",
"position": [
256,
32
],
"parameters": {
"jsCode": "// Extract each result from the 'organic' array of each input item\n// and transform it into a new individual n8n item.\nreturn items.flatMap((item, index) => {\n // Use optional chaining (?.) to safely access 'organic'.\n const organicResults = item.json?.organic;\n\n // Check if 'organicResults' is an array before proceeding.\n if (!Array.isArray(organicResults)) {\n return []; // Return an empty array if 'organic' does not exist or is not an array.\n }\n \n // For each result in 'organic', create a new n8n item.\n return organicResults.map(result => ({\n json: result,\n // Link this output item to the original input item for traceability.\n pairedItem: {\n item: index\n }\n }));\n});"
},
"typeVersion": 2
},
{
"id": "181ecd07-25a0-4e9a-b35d-87c80c0182ea",
"name": "Google SERP",
"type": "@brightdata/n8n-nodes-brightdata.brightData",
"position": [
32,
32
],
"parameters": {
"url": "=https://www.google.com/search?q={{ encodeURIComponent($json.chatInput) }}&num=10&brd_json=1",
"zone": {
"__rl": true,
"mode": "list",
"value": "serp_api1",
"cachedResultName": "serp_api1"
},
"country": {
"__rl": true,
"mode": "list",
"value": "us"
},
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"id": "i897C8Zq5VcQXQU9",
"name": "BrightData Inforeole"
}
},
"typeVersion": 1
},
{
"id": "b66a2603-0db5-43c7-a57b-6ae2f8e1b17e",
"name": "遍历项目",
"type": "n8n-nodes-base.splitInBatches",
"position": [
912,
32
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "bed27461-483e-4d4b-9fe0-a668ccb18259",
"name": "限制",
"type": "n8n-nodes-base.limit",
"disabled": true,
"position": [
688,
32
],
"parameters": {},
"typeVersion": 1
},
{
"id": "e9880005-8d30-4a46-a3d5-90c442c8b942",
"name": "聚合",
"type": "n8n-nodes-base.aggregate",
"position": [
1152,
-480
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "b13a5f96-aa70-4415-85aa-58ad02cd21ba",
"name": "OpenRouter 聊天模型1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
2112,
-272
],
"parameters": {
"model": "openai/gpt-5-nano",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "KElXI3DlHnhrYSjM",
"name": "OpenRouter PrestaM"
}
},
"typeVersion": 1
},
{
"id": "d73b8962-d7e3-4eaa-9154-d71b116f2d23",
"name": "响应聊天",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
464,
32
],
"parameters": {
"message": "Starting content extraction from top-ranking pages.",
"options": {
"memoryConnection": false
},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "2a5b0dac-6c8f-4b78-8721-32f5df9a75e8",
"name": "响应聊天1",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
-192,
32
],
"parameters": {
"message": "=Processing: Analyzing top 10 Google results for \"{{ $json.chatInput }}\". ",
"options": {},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "7e8b299d-34c7-4c22-ab0f-f8128c45e10c",
"name": "响应聊天2",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
2544,
480
],
"parameters": {
"message": "=Scraped {{ $json.url }}",
"options": {},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "772b40b4-6cc8-469c-83fa-0a05551bea78",
"name": "响应聊天3",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
1360,
-544
],
"parameters": {
"message": "All data collected. Synthesizing insights and generating your strategic content plan. ",
"options": {},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "0416ad60-aa54-4aff-b9c8-c59aaae1e9ad",
"name": "响应聊天4",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
2432,
-592
],
"parameters": {
"message": "={{ $json.text }}",
"options": {},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "cd673b53-9f62-4fa4-9cfc-e627b2e35b93",
"name": "OpenRouter 聊天模型2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
1456,
-368
],
"parameters": {
"model": "openai/gpt-4o",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "KElXI3DlHnhrYSjM",
"name": "OpenRouter PrestaM"
}
},
"typeVersion": 1
},
{
"id": "fb4c0751-9093-4527-b605-4586d2eaa158",
"name": "响应聊天5",
"type": "@n8n/n8n-nodes-langchain.chat",
"position": [
1872,
-400
],
"parameters": {
"message": "={{ $json.text }}",
"options": {},
"waitUserReply": false
},
"typeVersion": 1
},
{
"id": "85795099-7b23-478a-8ec1-9a971a583519",
"name": "访问并提取特定 URL 的数据",
"type": "@brightdata/n8n-nodes-brightdata.brightData",
"position": [
1200,
192
],
"parameters": {
"url": "={{ $json.link }}",
"zone": {
"__rl": true,
"mode": "list",
"value": "web_unlocker1",
"cachedResultName": "web_unlocker1"
},
"country": {
"__rl": true,
"mode": "list",
"value": "us"
},
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"id": "i897C8Zq5VcQXQU9",
"name": "BrightData Inforeole"
}
},
"retryOnFail": true,
"typeVersion": 1
},
{
"id": "3725cd69-396b-477d-9850-eaee8478ded2",
"name": "OpenRouter 聊天模型",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
1728,
448
],
"parameters": {
"model": "openai/gpt-5-nano",
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "KElXI3DlHnhrYSjM",
"name": "OpenRouter PrestaM"
}
},
"typeVersion": 1
},
{
"id": "05d95321-57a7-46ef-bdf2-63fc38eaa0bc",
"name": "结构化输出解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1904,
464
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"summary\": \"This is a summary of the analyzed content.\"\n}"
},
"typeVersion": 1.3
},
{
"id": "f1c56a78-8157-4be9-acd8-8004e4815cd4",
"name": "分析网站",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
1744,
256
],
"parameters": {
"text": "={{ $json.cleanedHtml }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "You are an SEO expert:|Output in JSON without any comments** summary: summarize this page."
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "e73d1f30-9b67-4f5f-8b60-555d21adf79f",
"name": "提取 HTML1",
"type": "n8n-nodes-base.code",
"position": [
1792,
96
],
"parameters": {
"jsCode": "// Extracts title, description, headings, and counts words from the HTML content.\n// Reads from the 'cleanedHtml' property provided by the previous node.\n\nconst results = [];\nfor (let i = 0; i < items.length; i++) {\n const html = items[i].json.cleanedHtml;\n\n if (typeof html !== 'string') {\n results.push({\n json: {\n error: \"The 'cleanedHtml' field is missing or invalid.\"\n },\n pairedItem: i\n });\n continue;\n }\n\n // Existing extractions\n const titleMatch = html.match(/<title>(.*?)<\\/title>/i);\n const title = titleMatch ? titleMatch[1].trim() : null;\n\n const descriptionMatch = html.match(/<meta\\s+name=\"description\"\\s+content=\"(.*?)\"/i);\n const description = descriptionMatch ? descriptionMatch[1].trim() : null;\n\n const headingRegex = /<h([1-6])[^>]*>(.*?)<\\/h\\1>/gi;\n const headings = Array.from(html.matchAll(headingRegex)).map(match => ({\n level: parseInt(match[1], 10),\n text: match[2].trim()\n }));\n\n // Addition: Word count\n // Remove all HTML tags to keep only the text.\n const textContent = html.replace(/<[^>]*>/g, ' ');\n // Replace multiple spaces with a single one, trim leading/trailing spaces, then split by space.\n const words = textContent.replace(/\\s+/g, ' ').trim().split(' ');\n // Filter out empty elements that might result from the split.\n const wordCount = words.filter(word => word.length > 0).length;\n\n results.push({\n json: {\n title,\n description,\n headings,\n wordCount // Add the word count result\n },\n pairedItem: i\n });\n}\n\nreturn results;"
},
"typeVersion": 2
},
{
"id": "b36a1655-500e-45ff-8c66-6e3918d3bf91",
"name": "清理 HTML",
"type": "n8n-nodes-base.code",
"position": [
1408,
192
],
"parameters": {
"jsCode": "// Applies a series of regex cleaning rules to HTML content,\n// including the removal of <svg>, <nav>, <ul>, and <li> tags.\nconst cleaningRules = [\n { regex: /<script\\b[^>]*>[\\s\\S]*?<\\/script>/gi, replacement: '' },\n { regex: /<style\\b[^>]*>[\\s\\S]*?<\\/style>/gi, replacement: '' },\n { regex: /<svg\\b[^>]*>[\\s\\S]*?<\\/svg>/gi, replacement: '' },\n { regex: /<nav\\b[^>]*>[\\s\\S]*?<\\/nav>/gi, replacement: '' },\n // Removes <ul> and <li> tags but keeps their text content.\n { regex: /<\\/?(ul|li)[^>]*>/gi, replacement: '' },\n { regex: /\\s+(class|id|style|for|tabindex|aria-[\\w-]+|data-[\\w-]+)\\s*=\\s*(?:'[^']*'|\"[^\"]*\")/gi, replacement: '' },\n { regex: />\\s+</g, replacement: '><' },\n { regex: /(\\r\\n|\\n|\\r){2,}/g, replacement: '\\n' },\n { regex: /[ \\t]{2,}/g, replacement: ' ' }\n];\n\nreturn items.map((item, i) => {\n // Looks for HTML content in item.json.data or directly in item.json.\n const htmlContent = String(item.json.data || item.json || '');\n\n if (typeof htmlContent !== 'string' || htmlContent.length === 0) {\n return {\n json: { \"cleanedHtml\": \"\" },\n pairedItem: i\n };\n }\n\n // Sequentially applies each cleaning rule to the HTML content.\n const cleanedHtml = cleaningRules.reduce(\n (currentHtml, rule) => currentHtml.replace(rule.regex, rule.replacement),\n htmlContent\n ).trim();\n\n // Returns the structured data object for n8n.\n return {\n json: {\n \"cleanedHtml\": cleanedHtml\n },\n pairedItem: i // Links this output item to its corresponding input item.\n };\n});"
},
"typeVersion": 2
},
{
"id": "cd6100c1-65ec-4772-9619-784b307b6c9f",
"name": "URL",
"type": "n8n-nodes-base.set",
"position": [
1776,
-80
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "19fbb0af-21ad-42bd-9f27-5504ae101a21",
"name": "url",
"type": "string",
"value": "={{ $json.link }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "687c6627-7259-4f12-a523-8ae065d4e1c7",
"name": "合并1",
"type": "n8n-nodes-base.merge",
"position": [
2240,
48
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "0bf5c3d4-552a-445a-a624-d00fe0879c23",
"name": "结构化输出解析器1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1712,
-352
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"search_intent\": {\n \"primary_intent\": \"A single word describing the intent: Informational, Commercial, Navigational, or Transactional.\",\n \"description\": \"A brief explanation of what the user is trying to find or accomplish based on the SERP analysis.\"\n },\n \"global_intent\": \"A high-level statement about the new article's strategic goal. Example: 'To create the definitive guide on [Main Topic], addressing key user questions from beginner to advanced levels.'\",\n \"must_cover_topics\": [\n {\n \"title\": \"The title of a core topic that must be included.\",\n \"reasoning\": \"A brief explanation of why this topic is essential, referencing its prevalence in the SERP data.\"\n }\n ],\n \"differentiation_suggestions\": [\n {\n \"suggestion\": \"A specific, actionable suggestion for content that will differentiate the article.\",\n \"reasoning\": \"Explain why this suggestion addresses a content gap or provides unique value compared to the current top results.\"\n }\n ],\n \"suggested_h2_outline\": [\n {\n \"h2_title\": \"What is [Main Keyword]?\",\n \"description\": \"Define the main keyword and explain its core concepts. This section should address the fundamental 'what is' question for beginners.\"\n },\n {\n \"h2_title\": \"Why is [Related Concept] Important?\",\n \"description\": \"Explain the significance or benefits of a core concept related to the main keyword, establishing its value for the reader.\"\n },\n {\n \"h2_title\": \"How to Get Started with [Main Keyword]\",\n \"description\": \"Provide a step-by-step guide or a list of initial actions a user should take. This addresses the practical application of the topic.\"\n },\n {\n \"h2_title\": \"Comparing [Option A] vs. [Option B]\",\n \"description\": \"Present a comparison of common methods, tools, or options related to the main keyword. This helps users make informed decisions.\"\n }\n ]\n}"
},
"typeVersion": 1.3
},
{
"id": "5d12238d-0f79-4015-8c10-464c6a751f42",
"name": "分析",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueErrorOutput",
"position": [
1568,
-560
],
"parameters": {
"text": "=target keyword : {{ $('When chat message received').item.json.chatInput }}\n\nserp synthesis:\n{{ $items(\"Google SERP\").map(item => JSON.stringify(item.json, null, 2)).join('\\n\\n---\\n\\n') }}\n\ntop 10 pages extract:\n{{ $items(\"Aggregate\").map(item => JSON.stringify(item.json, null, 2)).join('\\n\\n---\\n\\n') }}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=You are a world-class SEO Content Strategist and data analyst.\nYou have been provided with a JSON object containing scraped data (titles, meta descriptions, summaries, headings) from the top Google results for a given keyword.\n\nYour mission is to synthesize this raw data into a strategic insight document. You must analyze the data as a whole to find patterns, core topics, and competitive gaps, and then structure these findings into a logical article outline.\n\n### YOUR TASK\nBased on the raw data provided above, generate a structured insight report. Follow these analytical steps:\n1. **Analyze Search Intent**: From the titles and summaries, determine the primary user intent (e.g., informational, commercial, navigational, transactional) and describe what the user wants to accomplish.\n2. **Define Global Intent**: Based on the analysis, formulate a high-level strategic goal for a new piece of content on this topic.\n3. **Identify Core Topics**: Find the recurring high-value topics, entities, and questions that are common across most top-ranking articles. These are the \"must-have\" subjects to cover.\n4. **Detect Differentiation Opportunities**: Identify questions or subtopics that are poorly covered, only mentioned by one or two articles, or are completely missed. These are the opportunities to add unique value and stand out.\n5. **Propose an H2 Outline**: Consolidate the core topics and differentiation opportunities into a logical sequence of H2 headings for the article.\n\n### OUTPUT FORMAT\nYour output MUST be a single, valid JSON object and nothing else. Do not add any commentary or explanations. The JSON object must adhere strictly to the following structure:\n\n{\n \"search_intent\": {\n \"primary_intent\": \"A single word describing the intent: Informational, Commercial, Navigational, or Transactional.\",\n \"description\": \"A brief explanation of what the user is trying to find or accomplish based on the SERP analysis.\"\n },\n \"global_intent\": \"A high-level statement about the new article's strategic goal. Example: 'To create the definitive guide on [Main Topic], addressing key user questions from beginner to advanced levels.'\",\n \"must_cover_topics\": [\n {\n \"title\": \"The title of a core topic that must be included.\",\n \"reasoning\": \"A brief explanation of why this topic is essential, referencing its prevalence in the SERP data.\"\n }\n ],\n \"differentiation_suggestions\": [\n {\n \"suggestion\": \"A specific, actionable suggestion for content that will differentiate the article.\",\n \"reasoning\": \"Explain why this suggestion addresses a content gap or provides unique value compared to the current top results.\"\n }\n ],\n \"suggested_h2_outline\": [\n {\n \"h2_title\": \"What is [Main Keyword]?\",\n \"description\": \"Define the main keyword and explain its core concepts. This section should address the fundamental 'what is' question for beginners.\"\n },\n {\n \"h2_title\": \"Why is [Related Concept] Important?\",\n \"description\": \"Explain the significance or benefits of a core concept related to the main keyword, establishing its value for the reader.\"\n },\n {\n \"h2_title\": \"How to Get Started with [Main Keyword]\",\n \"description\": \"Provide a step-by-step guide or a list of initial actions a user should take. This addresses the practical application of the topic.\"\n },\n {\n \"h2_title\": \"Comparing [Option A] vs. [Option B]\",\n \"description\": \"Present a comparison of common methods, tools, or options related to the main keyword. This helps users make informed decisions.\"\n }\n ]\n}"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "8ab5bac7-64e4-405a-b44c-2489c6edba54",
"name": "格式化输出",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"onError": "continueErrorOutput",
"position": [
2048,
-592
],
"parameters": {
"text": "=targeted Keyword: {{ $('When chat message received').item.json.chatInput }}\n\nAnalysis:\n{{ $items(\"Analysis\").map(item => JSON.stringify(item.json, null, 2)).join('\\n\\n---\\n\\n') }}\n{{$json}}",
"batching": {},
"messages": {
"messageValues": [
{
"message": "=Your objective is to analyze the provided JSON data and generate a structured summary in English, formatted using Markdown.\n\nStrictly adhere to the following structure and formatting rules for the output:\n\nMain Title: Start with a level 1 Markdown heading: # Content Strategy Analysis\n\nSearch Intent Section:\n\nCreate a level 2 heading: ## Search Intent\n\nBelow it, create an unordered list with the following items, extracted directly from the JSON:\n\nThe value of search_intent.primary_intent.\n\nThe value of search_intent.description.\n\nThe value of global_intent.\n\nMust-Cover Topics Section:\n\nCreate a level 2 heading: ## Must-Cover Topics\n\nBelow it, iterate through the must_cover_topics array. For each object in the array, create a list item formatted as: **[title]:** [reasoning]\n\nDifferentiation Suggestions Section:\n\nCreate a level 2 heading: ## Differentiation Suggestions\n\nBelow it, iterate through the differentiation_suggestions array. For each object in the array, create a list item formatted as: **[suggestion]:** [reasoning]\n\nSuggested Outline Section:\n\nCreate a level 2 heading: ## Suggested H2 Outline\n\nBelow it, iterate through the suggested_h2_outline array. For each object in the array, create a list item formatted as: **[h2_title]:** [description]\n\nDo not include any introductory or concluding phrases. The output must only contain the formatted analysis based on the JSON."
}
]
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "25288223-d6f6-469b-aa3c-55506628b184",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-512,
-400
],
"parameters": {
"width": 560,
"height": 352,
"content": "# SEO 内容规划器"
},
"typeVersion": 1
},
{
"id": "13d5d113-00cb-4cb9-8022-62c3629fd599",
"name": "简单记忆",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-576,
240
],
"parameters": {},
"typeVersion": 1.3
}
],
"pinData": {},
"connections": {
"url": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"Limit": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "Respond to Chat2",
"type": "main",
"index": 0
}
]
]
},
"Analysis": {
"main": [
[
{
"node": "Format Output",
"type": "main",
"index": 0
}
],
[
{
"node": "Respond to Chat5",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Respond to Chat3",
"type": "main",
"index": 0
}
]
]
},
"clean html": {
"main": [
[
{
"node": "analyse site",
"type": "main",
"index": 0
},
{
"node": "extract html1",
"type": "main",
"index": 0
}
]
]
},
"Google SERP": {
"main": [
[
{
"node": "extract url",
"type": "main",
"index": 0
}
]
]
},
"extract url": {
"main": [
[
{
"node": "Respond to Chat",
"type": "main",
"index": 0
}
]
]
},
"analyse site": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 2
}
]
]
},
"Format Output": {
"main": [
[
{
"node": "Respond to Chat4",
"type": "main",
"index": 0
}
],
[
{
"node": "Respond to Chat4",
"type": "main",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "When chat message received",
"type": "ai_memory",
"index": 0
}
]
]
},
"extract html1": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Loop Over Items": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
],
[
{
"node": "Access and extract data from a specific URL",
"type": "main",
"index": 0
},
{
"node": "url",
"type": "main",
"index": 0
}
]
]
},
"Respond to Chat": {
"main": [
[
{
"node": "Limit",
"type": "main",
"index": 0
}
]
]
},
"Respond to Chat1": {
"main": [
[
{
"node": "Google SERP",
"type": "main",
"index": 0
}
]
]
},
"Respond to Chat2": {
"main": [
[
{
"node": "Loop Over Items",
"type": "main",
"index": 0
}
]
]
},
"Respond to Chat3": {
"main": [
[
{
"node": "Analysis",
"type": "main",
"index": 0
}
]
]
},
"OpenRouter Chat Model": {
"ai_languageModel": [
[
{
"node": "analyse site",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenRouter Chat Model1": {
"ai_languageModel": [
[
{
"node": "Format Output",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenRouter Chat Model2": {
"ai_languageModel": [
[
{
"node": "Analysis",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "analyse site",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Structured Output Parser1": {
"ai_outputParser": [
[
{
"node": "Analysis",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Respond to Chat1",
"type": "main",
"index": 0
}
]
]
},
"Access and extract data from a specific URL": {
"main": [
[
{
"node": "clean html",
"type": "main",
"index": 0
}
]
]
}
}
}常见问题
如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - AI 摘要总结, 多模态 AI
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
使用 Brightdata 和 OpenRouter AI 从网站生成 B2B 潜在客户机会
使用 Brightdata 和 OpenRouter AI 从网站生成 B2B 潜在客户机会
Set
Code
Html
+6
17 节点phil
AI 摘要总结
Twitter数据抓取 - n8n Creator
使用Gemini 2.5 Pro自动生成Twitter情报摘要并推送到WhatsApp群组
Set
Code
Wait
+13
39 节点Daniel Lianes
AI 摘要总结
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
每日 WhatsApp 群组智能分析:GPT-4.1 分析与语音消息转录
If
Set
Code
+20
52 节点Daniel Lianes
杂项
使用GPT-5和fal.ai图像从关键词到WordPress自动化SEO博客流程
使用GPT-5和fal.ai图像从关键词到WordPress自动化SEO博客流程
Set
Code
Wait
+20
96 节点Paul
内容创作
使用Perplexity和GPT为WordPress创建SEO优化博客,包含关键词和媒体
使用Perplexity和GPT为WordPress创建SEO优化博客,包含关键词和媒体
Set
Code
Limit
+22
124 节点Paul
内容创作
使用特定工具为WordPress创建SEO优化博客
使用特定工具为WordPress创建SEO优化博客
Set
Code
Limit
+22
124 节点Paul
内容创作
工作流信息
难度等级
高级
节点数量27
分类2
节点类型14
作者
phil
@phile-com AI automation: 90% time saved on repetitive tasks: product sheets, after-sales chatbots, etc. 🚀 save time, win customers
外部链接
在 n8n.io 查看 →
分享此工作流