Brightdata および OpenRouter AI を使用して Web から B2B リード機会を生成
上級
これはAI Summarization, Multimodal AI分野の自動化ワークフローで、17個のノードを含みます。主にSet, Code, Html, Agent, ChatTriggerなどのノードを使用。 Brightdata および OpenRouter AI を使用してウェブサイトから B2B リードを生成する
前提条件
- •特別な前提条件なし、インポートしてすぐに使用可能
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "4a11afdb3c52fd098e3eae9fad4b39fdf1bbcde142f596adda46c795e366b326",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "9a0fbaa1-3529-4fcb-8552-97def2e37c92",
"name": "parameters",
"type": "n8n-nodes-base.set",
"position": [
-304,
96
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d16e4ff1-02f6-4627-8eed-f1dc94b37bda",
"name": "url",
"type": "string",
"value": "={{ $json.chatInput }}"
},
{
"id": "39d8ba7a-3daf-4d3c-bec5-20f84b3d769c",
"name": "sitemap",
"type": "string",
"value": "sitemap.xml"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b49ab874-73e6-4077-9798-3e723ce7e38f",
"name": "URL抽出",
"type": "n8n-nodes-base.code",
"position": [
144,
96
],
"parameters": {
"jsCode": "// Extracts all URLs from <a> tags within the HTML body.\nconst htmlBody = items[0].json.body;\n\n// Checks if the HTML body is a string.\nif (typeof htmlBody !== 'string') {\n return [];\n}\n\nconst regex = /<a\\s+(?:[^>]*?\\s+)?href=\"([^\"]+)\"/gi;\nconst matches = [...htmlBody.matchAll(regex)];\n\n// Maps each match to create a new n8n item with the extracted URL.\nreturn matches.map(match => {\n return {\n json: {\n url: match[1]\n }\n };\n});"
},
"typeVersion": 2
},
{
"id": "f15809c1-8492-4642-878d-aafe9dac0649",
"name": "URLスクレイピング",
"type": "@brightdata/n8n-nodes-brightdata.brightData",
"position": [
-80,
96
],
"parameters": {
"url": "={{ $json.url }}",
"zone": {
"__rl": true,
"mode": "list",
"value": "web_unlocker1"
},
"format": "json",
"country": {
"__rl": true,
"mode": "list",
"value": "us",
"cachedResultName": "us"
},
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"id": "i897C8Zq5VcQXQU9",
"name": "BrightData Inforeole"
}
},
"typeVersion": 1
},
{
"id": "8c653ced-e6d3-411f-8eb0-ae7c5b802424",
"name": "OpenRouter Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
384,
464
],
"parameters": {
"model": "openai/o4-mini",
"options": {
"temperature": 0
}
},
"credentials": {
"openRouterApi": {
"id": "KElXI3DlHnhrYSjM",
"name": "OpenRouter PrestaM"
}
},
"typeVersion": 1
},
{
"id": "23555c2f-4f1c-4367-9431-1b0c0a8a02d4",
"name": "Structured Output Parser1",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
544,
304
],
"parameters": {
"autoFix": true,
"schemaType": "manual",
"inputSchema": "{\n\"url\": \n\"https://www.example.com/about.html\"\n}"
},
"typeVersion": 1.3
},
{
"id": "52f25a6b-fd76-49d0-b6da-ecb26f3bbc43",
"name": "URLスクレイピング1",
"type": "@brightdata/n8n-nodes-brightdata.brightData",
"position": [
1036,
96
],
"parameters": {
"url": "={{ $json.url }}",
"zone": {
"__rl": true,
"mode": "list",
"value": "web_unlocker1"
},
"format": "json",
"country": {
"__rl": true,
"mode": "list",
"value": "us",
"cachedResultName": "us"
},
"requestOptions": {}
},
"credentials": {
"brightdataApi": {
"id": "i897C8Zq5VcQXQU9",
"name": "BrightData Inforeole"
}
},
"typeVersion": 1
},
{
"id": "846e8b1a-5ce4-456d-8828-d2f58f5097a0",
"name": "HTMLクリーナー",
"type": "n8n-nodes-base.html",
"position": [
1260,
96
],
"parameters": {
"options": {},
"operation": "extractHtmlContent",
"dataPropertyName": "body",
"extractionValues": {
"values": [
{
"key": "body",
"cssSelector": "body"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "0ce43f94-c79b-4054-9365-45c2b385181e",
"name": "OpenRouter Chat Model2",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
1492,
320
],
"parameters": {
"model": "openai/gpt-5",
"options": {
"temperature": 0
}
},
"credentials": {
"openRouterApi": {
"id": "KElXI3DlHnhrYSjM",
"name": "OpenRouter PrestaM"
}
},
"typeVersion": 1
},
{
"id": "c6b38f95-1ac7-4ea0-a983-70986dd1c972",
"name": "Structured Output Parser2",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1620,
320
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\"summary\": \n\"summary\"\n}"
},
"typeVersion": 1.3
},
{
"id": "b0a1d3e5-5388-4d73-a07b-f21a18f60749",
"name": "OpenRouter Chat Model3",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
2132,
320
],
"parameters": {
"model": "openai/gpt-5",
"options": {
"temperature": 0
}
},
"credentials": {
"openRouterApi": {
"id": "KElXI3DlHnhrYSjM",
"name": "OpenRouter PrestaM"
}
},
"typeVersion": 1
},
{
"id": "3993fafb-ccc8-4291-9e66-b2c3d06234ac",
"name": "ページ統合",
"type": "n8n-nodes-base.code",
"position": [
1836,
96
],
"parameters": {
"jsCode": "/**\n * Merges the `output` objects from all incoming items into a single object.\n * Each item is expected to have a structure of { json: { output: { ... } } }.\n */\nconst mergedData = items.reduce((accumulator, item) => {\n if (item.json && item.json.output) {\n // The spread operator (...) merges the properties of the current object\n // into the accumulator. If keys are identical, the last value seen prevails.\n return { ...accumulator, ...item.json.output };\n }\n return accumulator;\n}, {});\n\n// Returns a single item containing the merged object, paired with the first input item.\nreturn [{ json: { mergedOutput: mergedData }, pairedItem: 0 }];"
},
"typeVersion": 2
},
{
"id": "db0e0c06-d57d-4de6-904c-875d0d7eb983",
"name": "リスト整理",
"type": "n8n-nodes-base.code",
"position": [
812,
96
],
"parameters": {
"jsCode": "// Extrait les URLs, filtre les valeurs vides, et retourne une liste\n// d'items en conservant la liaison avec les items d'entrée.\nreturn items.flatMap((item, index) => {\n const url = item.json.output?.[0]?.url;\n\n // Si une URL est trouvée, retourne un nouvel objet item avec sa liaison.\n // Sinon, retourne un tableau vide pour l'écarter du résultat final.\n return url ? [{ json: { url }, pairedItem: index }] : [];\n});"
},
"typeVersion": 2
},
{
"id": "df3f47a3-fa75-49a7-8b71-22e6205ee5e1",
"name": "チャットメッセージ受信時",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"position": [
-528,
96
],
"webhookId": "79b08ee2-afd5-4748-8914-4411a8872b81",
"parameters": {
"public": true,
"options": {
"responseMode": "lastNode"
},
"initialMessages": "Welcome, I am your business opportunity detection agent. Enter the URL of the company to be analyzed, and I will search their website for the best business opportunities based on your activity."
},
"typeVersion": 1.3
},
{
"id": "7ef4c30a-6d51-46f7-82eb-48de5517a73f",
"name": "付箋ノート",
"type": "n8n-nodes-base.stickyNote",
"position": [
-320,
-320
],
"parameters": {
"width": 640,
"height": 320,
"content": "# Lead Opportunity Finder\n\nThis workflow automates the **B2B lead generation** process by analyzing a company’s website with AI.\n\n👉 Get your free Bright Data API key here: [https://get.brightdata.com/scrap](https://get.brightdata.com/scrap)\n\n**Automated Website Analysis**\nThe workflow is triggered by a URL and uses Bright Data's Web Unblocker to scrape key company pages like \"About Us\" and \"Team\".\n\n**AI-Powered Opportunity Detection**\nAdvanced AI models from OpenRouter analyze the content to identify potential pain points and business needs related to automation.\n\n**Actionable Insights**\nThe final output is a synthesized, non-redundant report of all identified opportunities, formatted for a Google Doc to help sales and business development teams prepare for outreach."
},
"typeVersion": 1
},
{
"id": "a7399426-ec3b-4fb5-946b-de78410f8768",
"name": "最適ページ検索",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
368,
96
],
"parameters": {
"text": "={{ $json }}",
"options": {
"systemMessage": "You are a B2B data extraction expert. |Task : Analyze the following list of JSON objects. Identify the URLs that are relevant for obtaining information about a company for prospecting purposes (pages such as \"who we are\", \"about us\", \"recruitment\", \"team\", \"contact\"). Output instructions : Extract the value of the \"url\" key for each relevant object. Return only absolute URLs (starting with http). Ignore relative URLs (/) and anchors (#). Your response must contain ONLY the list of relevant URLs, one per line, without any additional comments, titles, or formatting, according to this JSON format {\"url\": \"https://www.example.com/about.html\"}"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "ca67e038-046f-483f-9c86-de822c268a48",
"name": "ビジネス機会特定",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1484,
96
],
"parameters": {
"text": "={{ $json.body }}",
"options": {
"systemMessage": "You are a B2B lead generation expert for an agency that offers AI-powered process automation.\n\nYou will be given pages from a prospect's website as input: {{ $('parameters').item.json.url }}\n\nYour role is to look for business opportunities.\n\nRespond without any commentary with a summary of the opportunities you identify. JSON format."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2.2
},
{
"id": "f2b564ee-127c-47cb-92b1-120dcf2e359e",
"name": "重複排除",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
2060,
96
],
"parameters": {
"text": "={{ $json.mergedOutput }}",
"options": {
"systemMessage": "You are a B2B lead generation expert for an agency that offers AI-powered process automation.\n\nYou will be given a summary of their website's pages as input: {{ $('parameters').item.json.url }}\n\nYour role is to find and synthesize business opportunities.\n\nEliminate redundancies.\n\nRespond without any commentary, providing a summary of the opportunities you identify, formatted for a Google Doc with headings."
},
"promptType": "define"
},
"typeVersion": 2.2
}
],
"pinData": {},
"connections": {
"f2b564ee-127c-47cb-92b1-120dcf2e359e": {
"main": [
[]
]
},
"db0e0c06-d57d-4de6-904c-875d0d7eb983": {
"main": [
[
{
"node": "52f25a6b-fd76-49d0-b6da-ecb26f3bbc43",
"type": "main",
"index": 0
}
]
]
},
"9a0fbaa1-3529-4fcb-8552-97def2e37c92": {
"main": [
[
{
"node": "f15809c1-8492-4642-878d-aafe9dac0649",
"type": "main",
"index": 0
}
]
]
},
"f15809c1-8492-4642-878d-aafe9dac0649": {
"main": [
[
{
"node": "b49ab874-73e6-4077-9798-3e723ce7e38f",
"type": "main",
"index": 0
}
]
]
},
"b49ab874-73e6-4077-9798-3e723ce7e38f": {
"main": [
[
{
"node": "a7399426-ec3b-4fb5-946b-de78410f8768",
"type": "main",
"index": 0
}
]
]
},
"3993fafb-ccc8-4291-9e66-b2c3d06234ac": {
"main": [
[
{
"node": "f2b564ee-127c-47cb-92b1-120dcf2e359e",
"type": "main",
"index": 0
}
]
]
},
"52f25a6b-fd76-49d0-b6da-ecb26f3bbc43": {
"main": [
[
{
"node": "846e8b1a-5ce4-456d-8828-d2f58f5097a0",
"type": "main",
"index": 0
}
]
]
},
"846e8b1a-5ce4-456d-8828-d2f58f5097a0": {
"main": [
[
{
"node": "ca67e038-046f-483f-9c86-de822c268a48",
"type": "main",
"index": 0
}
]
]
},
"a7399426-ec3b-4fb5-946b-de78410f8768": {
"main": [
[
{
"node": "db0e0c06-d57d-4de6-904c-875d0d7eb983",
"type": "main",
"index": 0
}
]
]
},
"8c653ced-e6d3-411f-8eb0-ae7c5b802424": {
"ai_languageModel": [
[
{
"node": "23555c2f-4f1c-4367-9431-1b0c0a8a02d4",
"type": "ai_languageModel",
"index": 0
},
{
"node": "a7399426-ec3b-4fb5-946b-de78410f8768",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"0ce43f94-c79b-4054-9365-45c2b385181e": {
"ai_languageModel": [
[
{
"node": "ca67e038-046f-483f-9c86-de822c268a48",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"b0a1d3e5-5388-4d73-a07b-f21a18f60749": {
"ai_languageModel": [
[
{
"node": "f2b564ee-127c-47cb-92b1-120dcf2e359e",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"23555c2f-4f1c-4367-9431-1b0c0a8a02d4": {
"ai_outputParser": [
[
{
"node": "a7399426-ec3b-4fb5-946b-de78410f8768",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"c6b38f95-1ac7-4ea0-a983-70986dd1c972": {
"ai_outputParser": [
[
{
"node": "ca67e038-046f-483f-9c86-de822c268a48",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"df3f47a3-fa75-49a7-8b71-22e6205ee5e1": {
"main": [
[
{
"node": "9a0fbaa1-3529-4fcb-8552-97def2e37c92",
"type": "main",
"index": 0
}
]
]
},
"ca67e038-046f-483f-9c86-de822c268a48": {
"main": [
[
{
"node": "3993fafb-ccc8-4291-9e66-b2c3d06234ac",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
上級 - AI要約, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
Bright Data の SERP データ活用による AI 解析による SEO コンテンツドキュメント作成
Bright DataのSERPデータAI分析を使ってデータ駆動型SEOコンテンツレポートを作成
Set
Code
Limit
+
Set
Code
Limit
27 ノードphil
AI要約
AI、Apify、Telegram統合による自動化ツールでの評価
Telegram、Apify、AI、Googleスプレッドシートを使ってWebサイトツール分析を自動化
If
Set
Code
+
If
Set
Code
20 ノードMirza Ajmal
AI要約
会議準備の自動化
GPT-5 と Gemini でカレンダーから Slack まで、Attio CRM を通じて自動のにミーティングを準備する
If
Set
Code
+
If
Set
Code
39 ノードHarry Siggins
AI要約
Gemini、Slack、Notionを使ってニュース速報からAI要約を作成
Gemini、Slack、Notionを使ってニュース速報からAI情報要約を作成
Set
Code
Gmail
+
Set
Code
Gmail
19 ノードHarry Siggins
その他
毎日の WhatsApp グループ スマート分析:GPT-4.1 による分析と音声メッセージの transcrição
毎日の WhatsApp グループ インタラクティブ分析:GPT-4.1 分析と音声メッセージ文字起こし
If
Set
Code
+
If
Set
Code
52 ノードDaniel Lianes
その他
財務書類の自動処理
Google Gemini OCRを使った財務文書自動処理ツール
Set
Code
Merge
+
Set
Code
Merge
76 ノードDidac Fernandez
コンテンツ作成
ワークフロー情報
難易度
上級
ノード数17
カテゴリー2
ノードタイプ9
作成者
phil
@phile-com AI automation: 90% time saved on repetitive tasks: product sheets, after-sales chatbots, etc. 🚀 save time, win customers
外部リンク
n8n.ioで表示 →
このワークフローを共有