경쟁사 반대 링크 분석
고급
이것은Market Research, AI Summarization분야의자동화 워크플로우로, 16개의 노드를 포함합니다.주로 Set, Code, GoogleSheets, McpClientTool, ManualTrigger 등의 노드를 사용하며. Bright Data MCP와 GPT를 사용하여 경쟁사의 역향성 링크 데이터를 추출하고 분석
사전 요구사항
- •Google Sheets API 인증 정보
- •OpenAI API Key
사용된 노드 (16)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "kJ6CKf3JPavFZYvM",
"meta": {
"instanceId": "60046904b104f0f72b2629a9d88fe9f676be4035769f1f08dad1dd38a76b9480",
"templateCredsSetupCompleted": true
},
"name": "20 Analyze Competitor Backlinks",
"tags": [],
"nodes": [
{
"id": "ee9b60aa-0808-4720-be3a-059b3361100c",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
480,
280
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8sEyPDkC5p4w4Jha",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "dbcf5e5e-c02c-4324-83df-5fc76727d1af",
"name": "MCP Client",
"type": "n8n-nodes-mcp.mcpClientTool",
"position": [
660,
280
],
"parameters": {
"toolName": "scrape_as_markdown",
"operation": "executeTool",
"toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
},
"credentials": {
"mcpClientApi": {
"id": "eqq94k789oJCd6jU",
"name": "MCP Client (STDIO) account"
}
},
"typeVersion": 1
},
{
"id": "0bdbf6bb-746a-4865-8ca5-d0cd5486e0d1",
"name": "Trigger: 수동 실행",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "2ed6588f-489e-4057-8b3b-f9f19ffa0b86",
"name": "Set: 경쟁사 도메인",
"type": "n8n-nodes-base.set",
"position": [
200,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "910cdf0d-ed9b-426f-a00e-b0f7c41dc29a",
"name": "url",
"type": "string",
"value": "https://ahrefs.com/"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "b750cb56-d2db-496c-b7ec-53b355049d4d",
"name": "Agent: 백링크 스크래핑 (Bright Data MCP)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
520,
0
],
"parameters": {
"text": "=extract any backlinks available from the following url:\n{{ $json.url }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "69860787-3f93-472a-8395-c43c24f6cf02",
"name": "Function: 백링크 분할",
"type": "n8n-nodes-base.code",
"position": [
1000,
0
],
"parameters": {
"jsCode": "// This Function node takes input like your provided JSON\n// and returns each backlink as a separate item\n\n// 1️⃣ Get the input\nconst input = items[0].json.output;\n\n// 2️⃣ Extract backlinks array\nconst backlinks = input.backlinks;\n\n// 3️⃣ Build output items\nconst output = backlinks.map(backlink => {\n return {\n json: {\n domain: input.domain,\n title: backlink.title,\n url: backlink.url,\n category: backlink.category,\n date: backlink.date\n }\n };\n});\n\n// 4️⃣ Return array of individual items\nreturn output;\n"
},
"typeVersion": 2
},
{
"id": "cfecaa49-3d11-47ec-a18c-cc26b1e52e99",
"name": "Google Sheets: 백링크 추가",
"type": "n8n-nodes-base.googleSheets",
"position": [
1200,
0
],
"parameters": {
"columns": {
"value": {
"url": "={{ $json.url }}",
"date": "={{ $json.date }}",
"title": "={{ $json.title }}",
"domain": "={{ $json.domain }}",
"category": "={{ $json.category }}"
},
"schema": [
{
"id": "domain",
"type": "string",
"display": true,
"required": false,
"displayName": "domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "title",
"type": "string",
"display": true,
"required": false,
"displayName": "title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "url",
"type": "string",
"display": true,
"required": false,
"displayName": "url",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "category",
"type": "string",
"display": true,
"required": false,
"displayName": "category",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "string",
"display": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/11_bI1ZmRuroowdXLaQ9OKM11vnaJ134NcE_tLh7S3jw/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "11_bI1ZmRuroowdXLaQ9OKM11vnaJ134NcE_tLh7S3jw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/11_bI1ZmRuroowdXLaQ9OKM11vnaJ134NcE_tLh7S3jw/edit?usp=drivesdk",
"cachedResultName": "Backlinks"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "r2mDaisH6e9VkwHl",
"name": "Google Sheets account"
}
},
"typeVersion": 4.6
},
{
"id": "33dc3004-5875-4a33-a330-df2b0e3e0ad7",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-40,
-1240
],
"parameters": {
"color": 6,
"width": 380,
"height": 1440,
"content": "## ✅ **🔵 SECTION 1: Input & Trigger**\n\n### ⚙️ **Nodes**\n\n1️⃣ **Trigger: Manual Execute**\n\n\n* **What it does:** This node starts the workflow manually when you click “Execute Workflow.”\n* **Why it’s useful:** It’s the simplest way to test your workflow on demand. Later, you can swap this with a **Schedule** node for daily or weekly runs.\n\n2️⃣ **Set: Competitor Domain**\n\n\n* **What it does:** This node stores the **competitor’s domain** you want to analyze.\n* **Example:** `ahrefs.com` or `moz.com`\n* **Why it’s useful:** You can easily change domains without modifying the whole workflow. For multiple competitors, loop through them!\n\n---\n\n### 💡 **Beginner Benefit**\n\n✅ **Simple input control:** You don’t need to touch code — just type your competitor’s domain in one place.\n✅ **Reusable:** Same input can be reused for any site — just update the domain value.\n\n---\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "5ad521f9-c227-4e44-a796-68ec79d7e243",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
460,
-1900
],
"parameters": {
"color": 3,
"width": 380,
"height": 2100,
"content": "## ✅ **🤖 SECTION 2: Agent Scrape Engine**\n\n### ⚙️ **Nodes**\n\n3️⃣ **Agent: Scrape Backlinks (Bright Data MCP)**\n\n\n* **What it does:** Calls your **custom scraping Agent** that uses Bright Data MCP to visit backlink explorer pages (like Ahrefs or Moz) and pull backlink data.\n* **How:** The Agent uses a secure proxy network to get around anti-bot protections and scrapes backlink profiles (URL, anchor text, type, etc.).\n* **Output:** Raw JSON with all backlinks found for the competitor.\n\n**Sub-Nodes:**\n\n* ⚙️ **MCP Client: Execute Scraper**\n \n\n * Connects directly to Bright Data’s backend to run the scraper tool.\n* 💬 **OpenAI Chat Model**\n \n\n * Optional: If your Agent needs an LLM to generate instructions or parse dynamic websites, it talks to OpenAI here.\n* 🗂️ **Output Parser: Backlink JSON**\n \n\n * Ensures the Agent’s raw text comes out as **structured JSON** → easy to split & save later.\n\n---\n\n### 💡 **Beginner Benefit**\n\n✅ **No coding scraping:** You don’t have to build scrapers from scratch. Bright Data + Agent handles the hard part.\n✅ **Dynamic parsing:** The OpenAI node helps the Agent handle weird or changing HTML structures.\n✅ **Safe & scalable:** MCP proxies handle geo-blocks and captchas for you.\n\n---\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "522c5056-4e30-418b-abc7-2fe6925a058a",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
-860
],
"parameters": {
"color": 5,
"width": 400,
"height": 1060,
"content": "## ✅ **🟢 SECTION 3: Transform & Store**\n\n### ⚙️ **Nodes**\n\n4️⃣ **Function: Split Backlinks**\n\n\n* **What it does:** Takes the JSON output of all backlinks and splits them into **one item per backlink**.\n* **Why:** So each backlink becomes its own row when sent to Google Sheets.\n\n5️⃣ **Google Sheets: Append Backlinks**\n\n\n* **What it does:** Adds each backlink as a **new row** in your Google Sheet.\n* **Columns:** Domain, URL, anchor text, date, category, etc.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "4f58284e-3415-4be4-beb3-09736c824369",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
1460,
-860
],
"parameters": {
"color": 7,
"width": 380,
"height": 240,
"content": "## I’ll receive a tiny commission if you join Bright Data through this link—thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
},
"typeVersion": 1
},
{
"id": "eea0c5ec-6e85-41c7-8724-983811834d0f",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1840,
-1240
],
"parameters": {
"color": 4,
"width": 1300,
"height": 320,
"content": "=======================================\n WORKFLOW ASSISTANCE\n=======================================\nFor any questions or support, please contact:\n Yaron@nofluff.online\n\nExplore more tips and tutorials here:\n - YouTube: https://www.youtube.com/@YaronBeen/videos\n - LinkedIn: https://www.linkedin.com/in/yaronbeen/\n=======================================\n"
},
"typeVersion": 1
},
{
"id": "5fc4b876-acf6-47b4-8fee-857ff4c0b1ec",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1840,
-900
],
"parameters": {
"color": 4,
"width": 1289,
"height": 3898,
"content": "## 🎯 **🔗 Competitor Backlink Extraction Workflow**\n\n---\n\n## ✅ **🔵 SECTION 1: Input & Trigger**\n\n### ⚙️ **Nodes**\n\n1️⃣ **Trigger: Manual Execute**\n\n\n* **What it does:** This node starts the workflow manually when you click “Execute Workflow.”\n* **Why it’s useful:** It’s the simplest way to test your workflow on demand. Later, you can swap this with a **Schedule** node for daily or weekly runs.\n\n2️⃣ **Set: Competitor Domain**\n\n\n* **What it does:** This node stores the **competitor’s domain** you want to analyze.\n* **Example:** `ahrefs.com` or `moz.com`\n* **Why it’s useful:** You can easily change domains without modifying the whole workflow. For multiple competitors, loop through them!\n\n---\n\n### 💡 **Beginner Benefit**\n\n✅ **Simple input control:** You don’t need to touch code — just type your competitor’s domain in one place.\n✅ **Reusable:** Same input can be reused for any site — just update the domain value.\n\n---\n\n---\n\n## ✅ **🤖 SECTION 2: Agent Scrape Engine**\n\n### ⚙️ **Nodes**\n\n3️⃣ **Agent: Scrape Backlinks (Bright Data MCP)**\n\n\n* **What it does:** Calls your **custom scraping Agent** that uses Bright Data MCP to visit backlink explorer pages (like Ahrefs or Moz) and pull backlink data.\n* **How:** The Agent uses a secure proxy network to get around anti-bot protections and scrapes backlink profiles (URL, anchor text, type, etc.).\n* **Output:** Raw JSON with all backlinks found for the competitor.\n\n**Sub-Nodes:**\n\n* ⚙️ **MCP Client: Execute Scraper**\n \n\n * Connects directly to Bright Data’s backend to run the scraper tool.\n* 💬 **OpenAI Chat Model**\n \n\n * Optional: If your Agent needs an LLM to generate instructions or parse dynamic websites, it talks to OpenAI here.\n* 🗂️ **Output Parser: Backlink JSON**\n \n\n * Ensures the Agent’s raw text comes out as **structured JSON** → easy to split & save later.\n\n---\n\n### 💡 **Beginner Benefit**\n\n✅ **No coding scraping:** You don’t have to build scrapers from scratch. Bright Data + Agent handles the hard part.\n✅ **Dynamic parsing:** The OpenAI node helps the Agent handle weird or changing HTML structures.\n✅ **Safe & scalable:** MCP proxies handle geo-blocks and captchas for you.\n\n---\n\n---\n\n## ✅ **🟢 SECTION 3: Transform & Store**\n\n### ⚙️ **Nodes**\n\n4️⃣ **Function: Split Backlinks**\n\n\n* **What it does:** Takes the JSON output of all backlinks and splits them into **one item per backlink**.\n* **Why:** So each backlink becomes its own row when sent to Google Sheets.\n\n5️⃣ **Google Sheets: Append Backlinks**\n\n\n* **What it does:** Adds each backlink as a **new row** in your Google Sheet.\n* **Columns:** Domain, URL, anchor text, date, category, etc.\n\n---\n\n### 💡 **Beginner Benefit**\n\n✅ **Automation:** You don’t need to copy-paste backlinks manually — they land in Sheets ready for outreach.\n✅ **Easy tracking:** Use Sheets filters to sort by link type, opportunity, or priority.\n✅ **Plug & play:** This section works with Airtable, Notion, or a CRM too — just switch the last node.\n\n---\n\n---\n\n## ✅✅✅ **✨ FULL FLOW OVERVIEW**\n\n| Section | What happens |\n| -------------------------- | -------------------------------------------------------------------------------------------------------- |\n| ⚡ **Input & Trigger** | You click **Execute**, add a domain, and launch the flow. |\n| 🤖 **Agent Scrape Engine** | The Agent + Bright Data does smart scraping, handles captchas, parses messy HTML, and outputs neat JSON. |\n| 🟢 **Transform & Store** | The JSON is split into single backlinks and each one lands in your Google Sheet for action. |\n\n---\n\n## 📌 **How You Benefit Overall**\n\n✅ No manual scraping\n✅ No manual copy-paste\n✅ No coding headaches\n✅ Fully automated link prospecting → just open your Sheet & start outreach!\n\n---\n\n**✨ This is a beginner-friendly SEO growth engine — and you built it with no code! ✨**\n\n---\n"
},
"typeVersion": 1
},
{
"id": "e1d427ca-b97d-4026-a550-507e31b10370",
"name": "Auto-fixing Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
800,
280
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "ece54ff0-7010-4547-b73f-dc59660767c1",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
760,
520
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "8sEyPDkC5p4w4Jha",
"name": "OpenAi account"
}
},
"typeVersion": 1.2
},
{
"id": "ad2d763e-decd-49ce-a226-267808c93470",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
940,
500
],
"parameters": {
"jsonSchemaExample": "{\n \"domain\": \"https://ahrefs.com/\",\n \"backlinks\": [\n {\n \"title\": \"Ahrefs Certification: What To Expect and How It Works\",\n \"url\": \"https://ahrefs.com/blog/ahrefs-certification/\",\n \"category\": \"Blog\",\n \"date\": \"March 2025\"\n },\n {\n \"title\": \"Ahrefs Blog\",\n \"url\": \"https://ahrefs.com/blog/\",\n \"category\": \"Learn Marketing\"\n },\n {\n \"title\": \"Ahrefs Academy\",\n \"url\": \"https://academy.ahrefs.com\",\n \"category\": \"Learn Marketing\"\n },\n {\n \"title\": \"Ahrefs Podcast\",\n \"url\": \"https://www.youtube.com/c/AhrefsCom\",\n \"category\": \"Learn Marketing\"\n },\n {\n \"title\": \"Ahrefs YouTube Channel\",\n \"url\": \"https://www.youtube.com/c/AhrefsCom\",\n \"category\": \"Learn Marketing\"\n },\n {\n \"title\": \"Help Center\",\n \"url\": \"https://help.ahrefs.com\",\n \"category\": \"Resources\"\n },\n {\n \"title\": \"Ahrefs Data\",\n \"url\": \"https://ahrefs.com/big-data\",\n \"category\": \"Resources\"\n },\n {\n \"title\": \"Agency Directory\",\n \"url\": \"https://www.ahrefs.com/agencies\",\n \"category\": \"User Testimonials and Community\"\n },\n {\n \"title\": \"About Ahrefs\",\n \"url\": \"https://ahrefs.com/about\",\n \"category\": \"Company Information\"\n },\n {\n \"title\": \"Jobs at Ahrefs\",\n \"url\": \"https://ahrefs.com/jobs\",\n \"category\": \"Company Information\"\n },\n {\n \"title\": \"Twitter\",\n \"url\": \"https://x.com/ahrefs\",\n \"category\": \"Social Media\"\n },\n {\n \"title\": \"YouTube\",\n \"url\": \"https://www.youtube.com/c/AhrefsCom\",\n \"category\": \"Social Media\"\n },\n {\n \"title\": \"Instagram\",\n \"url\": \"https://www.instagram.com/ahrefs\",\n \"category\": \"Social Media\"\n },\n {\n \"title\": \"Facebook\",\n \"url\": \"https://www.facebook.com/Ahrefs\",\n \"category\": \"Social Media\"\n },\n {\n \"title\": \"LinkedIn\",\n \"url\": \"https://www.linkedin.com\",\n \"category\": \"Social Media\"\n }\n ]\n}\n"
},
"typeVersion": 1.2
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "16dc3c18-f761-4b99-a44c-8d189ad97893",
"connections": {
"dbcf5e5e-c02c-4324-83df-5fc76727d1af": {
"ai_tool": [
[
{
"node": "b750cb56-d2db-496c-b7ec-53b355049d4d",
"type": "ai_tool",
"index": 0
}
]
]
},
"ee9b60aa-0808-4720-be3a-059b3361100c": {
"ai_languageModel": [
[
{
"node": "b750cb56-d2db-496c-b7ec-53b355049d4d",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"ece54ff0-7010-4547-b73f-dc59660767c1": {
"ai_languageModel": [
[
{
"node": "e1d427ca-b97d-4026-a550-507e31b10370",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"2ed6588f-489e-4057-8b3b-f9f19ffa0b86": {
"main": [
[
{
"node": "b750cb56-d2db-496c-b7ec-53b355049d4d",
"type": "main",
"index": 0
}
]
]
},
"0bdbf6bb-746a-4865-8ca5-d0cd5486e0d1": {
"main": [
[
{
"node": "2ed6588f-489e-4057-8b3b-f9f19ffa0b86",
"type": "main",
"index": 0
}
]
]
},
"ad2d763e-decd-49ce-a226-267808c93470": {
"ai_outputParser": [
[
{
"node": "e1d427ca-b97d-4026-a550-507e31b10370",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"e1d427ca-b97d-4026-a550-507e31b10370": {
"ai_outputParser": [
[
{
"node": "b750cb56-d2db-496c-b7ec-53b355049d4d",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"69860787-3f93-472a-8395-c43c24f6cf02": {
"main": [
[
{
"node": "cfecaa49-3d11-47ec-a18c-cc26b1e52e99",
"type": "main",
"index": 0
}
]
]
},
"b750cb56-d2db-496c-b7ec-53b355049d4d": {
"main": [
[
{
"node": "69860787-3f93-472a-8395-c43c24f6cf02",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 시장 조사, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
로컬 이벤트 모니터링
Bright Data MCP 및 OpenAI 분석을 사용한 지역 이벤트 자동 모니터링
Set
Code
Google Sheets
+
Set
Code
Google Sheets
18 노드Yaron Been
시장 조사
25 기능 요청 수집
AI를 통한 댓글부터 Jira까지의 기능 요청 수집 및 분석 자동화
Set
Code
Jira
+
Set
Code
Jira
16 노드Yaron Been
시장 조사
16 경쟁사 가격 모니터링
Bright Data MCP 및 Google Sheets 기반 경쟁사 가격 자동 모니터링
Set
Code
Gmail
+
Set
Code
Gmail
18 노드Yaron Been
시장 조사
27 시장 공백 분석
사용OpenAI와Bright Data로 시장 공백에서 SaaS 제품 아이디어 생성
Set
Code
Google Sheets
+
Set
Code
Google Sheets
16 노드Yaron Been
시장 조사
경쟁사 제품 출시 모니터링
Bright Data와 OpenAI를 기반으로 실시간 경쟁사 제품 출시 모니터링, 이메일/테이블로 발송
Set
Code
Gmail
+
Set
Code
Gmail
18 노드Yaron Been
시장 조사
23 고객 생애 가치 분석
GPT-4와 Bright Data MCP를 사용하여 고객 가치 고객 분석 및 타겟팅
If
Set
Code
+
If
Set
Code
20 노드Yaron Been
시장 조사
워크플로우 정보
난이도
고급
노드 수16
카테고리2
노드 유형10
저자
Yaron Been
@yaron-nofluffBuilding AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host If you need any help with Automations, feel free to reach out via linkedin: https://www.linkedin.com/in/yaronbeen/ And check out my Youtube channel: https://www.youtube.com/@YaronBeen/videos
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유