Analyser les backlinks des concurrents
Ceci est unMarket Research, AI Summarizationworkflow d'automatisation du domainecontenant 16 nœuds.Utilise principalement des nœuds comme Set, Code, GoogleSheets, McpClientTool, ManualTrigger. Extraire et analyser les données de backlinks concurrentiels avec Bright Data MCP et GPT
- •Informations d'identification Google Sheets API
- •Clé API OpenAI
Nœuds utilisés (16)
Catégorie
{
"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": "Client MCP",
"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": "Déclencheur : Exécution Manuelle",
"type": "n8n-nodes-base.manualTrigger",
"position": [
0,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "2ed6588f-489e-4057-8b3b-f9f19ffa0b86",
"name": "Définir : Domaine Concurrent",
"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 : Scraper les Backlinks (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": "Fonction : Diviser les Backlinks",
"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 : Ajouter des Backlinks",
"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": "Note Adhésive",
"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": "Note Adhésive1",
"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": "Note Adhésive2",
"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": "Note Adhésive5",
"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": "Note Adhésive9",
"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": "Note Adhésive4",
"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": "Analyseur de Sortie Auto-corrigeant",
"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": "Analyseur de Sortie Structurée",
"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
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Étude de marché, Résumé IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
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
Partager ce workflow