This workflow corresponds to n8n.io template #5949 — we link there as the canonical source.
This workflow follows the Agent → Google Sheets recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "mrecjHsKCTsQ6QYC",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "6 Monitor Competitor Social Media Engagement:",
"tags": [],
"nodes": [
{
"id": "5eed5537-b38c-4a15-965b-6aa0433c6409",
"name": "\ud83d\udd18 Trigger: Manual Start",
"type": "n8n-nodes-base.manualTrigger",
"position": [
180,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "c45a95e6-3a8f-4198-9b29-ee9a36059ac4",
"name": "\ud83d\udd17 Set LinkedIn Company URL",
"type": "n8n-nodes-base.set",
"position": [
400,
0
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "01b30c4d-3a89-418a-b939-ac1e886002a4",
"name": "URL",
"type": "string",
"value": "https://www.linkedin.com/company/hubspot/"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "c7b82e78-1ef2-4c5f-aff2-a03e3a7ea4b6",
"name": "\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
660,
0
],
"parameters": {
"text": "=Scrape the below user profile on LinkedIn and get the latest 5 post data:\n{{ $json.URL }}",
"options": {},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "4a43225a-b400-47cf-b252-36516d382ff1",
"name": "\ud83c\udf10 Bright Data MCP Client",
"type": "n8n-nodes-mcp.mcpClientTool",
"position": [
820,
300
],
"parameters": {
"toolName": "web_data_linkedin_company_profile",
"operation": "executeTool",
"toolParameters": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Tool_Parameters', ``, 'json') }}"
},
"credentials": {
"mcpClientApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "21324291-7117-44d4-aaff-601d80b93580",
"name": "\ud83d\udcc8 Analyze Engagement Metrics",
"type": "n8n-nodes-base.code",
"position": [
1160,
0
],
"parameters": {
"jsCode": "// Get the posts array from Agent output\nconst posts = $json.output;\n\n// Initialize counters\nlet totalLikes = 0;\nlet totalComments = 0;\n\n// Loop through posts and sum likes and comments\nfor (const post of posts) {\n totalLikes += post.likes;\n totalComments += post.comments;\n}\n\n// Calculate averages\nconst averageLikes = totalLikes / posts.length;\nconst averageComments = totalComments / posts.length;\n\n// Return summary object\nreturn [\n {\n json: {\n totalPosts: posts.length,\n totalLikes: totalLikes,\n totalComments: totalComments,\n averageLikes: averageLikes,\n averageComments: averageComments\n }\n }\n];\n"
},
"typeVersion": 2
},
{
"id": "469f5efc-276c-449b-ab50-4cd3454946f6",
"name": "\ud83d\udce5 Save Averages to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1380,
0
],
"parameters": {
"columns": {
"value": {
"Total likes": "={{ $json.totalLikes }}",
"Total posts": "={{ $json.totalPosts }}",
"Average likes": "={{ $json.averageLikes }}",
"Total comments": "={{ $json.totalComments }}",
"Average comments": "={{ $json.averageComments }}"
},
"schema": [
{
"id": "Total posts",
"type": "string",
"display": true,
"required": false,
"displayName": "Total posts",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Total likes",
"type": "string",
"display": true,
"required": false,
"displayName": "Total likes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Total comments",
"type": "string",
"display": true,
"required": false,
"displayName": "Total comments",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Average likes",
"type": "string",
"display": true,
"required": false,
"displayName": "Average likes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Average comments",
"type": "string",
"display": true,
"required": false,
"displayName": "Average comments",
"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/1FzzslRBkdEgz14zuyy1J5IAMAHgkmdmiYiEqYG9AnOI/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1FzzslRBkdEgz14zuyy1J5IAMAHgkmdmiYiEqYG9AnOI",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1FzzslRBkdEgz14zuyy1J5IAMAHgkmdmiYiEqYG9AnOI/edit?usp=drivesdk",
"cachedResultName": "Competitor post analysis average"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "8f554af6-1d6d-4225-9ffb-5814e4ca2773",
"name": "\ud83e\uddfe Format Post Content",
"type": "n8n-nodes-base.code",
"position": [
1640,
0
],
"parameters": {
"jsCode": "// Get the Agent output (array of posts)\nconst posts = $('\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)').first().json.output;\n\n// Map each post to its own item\nreturn posts.map(post => {\n return {\n json: post\n };\n});\n"
},
"typeVersion": 2
},
{
"id": "8274a619-f1d2-4e14-9753-665f060611c1",
"name": "\ud83d\udce5 Save Posts to Google Sheets",
"type": "n8n-nodes-base.googleSheets",
"position": [
1860,
0
],
"parameters": {
"columns": {
"value": {
"date": "={{ $json.date }}",
"likes": "={{ $json.likes }}",
"video": "={{ $json.videos }}",
"content": "={{ $json.content }}",
"comments": "={{ $json.comments }}",
"post link": "={{ $json.post_link }}",
"Competitor": "={{ $json.competitor }}",
"Post title": "={{ $json.post_title }}"
},
"schema": [
{
"id": "Competitor",
"type": "string",
"display": true,
"required": false,
"displayName": "Competitor",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Post title",
"type": "string",
"display": true,
"required": false,
"displayName": "Post title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "date",
"type": "string",
"display": true,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "likes",
"type": "string",
"display": true,
"required": false,
"displayName": "likes",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "comments",
"type": "string",
"display": true,
"required": false,
"displayName": "comments",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "content",
"type": "string",
"display": true,
"required": false,
"displayName": "content",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "post link",
"type": "string",
"display": true,
"required": false,
"displayName": "post link",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "video",
"type": "string",
"display": true,
"required": false,
"displayName": "video",
"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/1R-rAkvVh1lhbPrFsxuBUXNMFFFgsyIWzS4OritRiHLU/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1R-rAkvVh1lhbPrFsxuBUXNMFFFgsyIWzS4OritRiHLU",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1R-rAkvVh1lhbPrFsxuBUXNMFFFgsyIWzS4OritRiHLU/edit?usp=drivesdk",
"cachedResultName": "Competitor post analysis"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.6
},
{
"id": "da8ebb55-18c8-4f17-882d-6ddee3f17533",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
140,
-720
],
"parameters": {
"color": 3,
"width": 420,
"height": 900,
"content": "### \ud83d\udd39 **SECTION 1: Start & Input**\n\n#### \ud83e\udde9 Nodes:\n\n* `\ud83d\udd18 Trigger: Manual Start`\n* `\ud83d\udd17 Set LinkedIn Company URL`\n\n#### \ud83d\udca1 What Happens:\n\nThis section is your starting point. You **manually execute** the workflow by clicking the **play button**, and then you **enter the LinkedIn company profile URL** in a form field.\n\n#### \u2705 Beginner Tip:\n\nYou don\u2019t need coding skills. Just copy the company\u2019s LinkedIn URL (e.g., `https://www.linkedin.com/company/openai`) and paste it here. This kicks off the whole automation!\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "df570435-b29c-444f-99a0-f3d8bf951673",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
600,
300
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "54b4118c-47d6-4aa4-9f73-d3d2389a7107",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
600,
-860
],
"parameters": {
"color": 5,
"width": 420,
"height": 1040,
"content": "### \ud83e\udd16 **SECTION 2: Smart Scraper Agent**\n\n#### \ud83e\udde9 Node:\n\n* `\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)`\n\n##### \ud83e\udde0 Sub-Nodes Inside the Agent:\n\n* `\ud83e\udde0 Chat Model`: Understands your scraping request in natural language.\n* `\ud83c\udf10 Bright Data MCP Client`: Actually visits LinkedIn via mobile proxies and scrapes the data.\n* `\ud83e\uddfe Parse AI Response`: Converts raw results into structured post data.\n\n#### \ud83d\udca1 What Happens:\n\nThis smart AI agent (powered by OpenAI + Bright Data) goes to the LinkedIn company page, **scrapes the latest 5 posts**, and organizes them. Bright Data MCP lets it **bypass anti-bot systems** by using mobile IPs, so it's reliable even on protected sites like LinkedIn.\n\n#### \u2705 Beginner Tip:\n\nYou don\u2019t write any scraping code! The AI understands what to do and fetches posts like a human browser would. This is **completely no-code** for you.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "4fe62240-87e5-45ae-991e-a0ca07500c93",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
1100,
-680
],
"parameters": {
"color": 6,
"width": 420,
"height": 860,
"content": "### \ud83d\udcca **SECTION 3: Analyze & Save Metrics**\n\n#### \ud83e\udde9 Nodes:\n\n* `\ud83d\udcc8 Analyze Engagement Metrics`\n* `\ud83d\udce5 Save Averages to Google Sheets`\n\n#### \ud83d\udca1 What Happens:\n\nHere, the automation **calculates the average** values (like likes, comments, etc.) from the 5 scraped posts using simple JavaScript logic.\n\nThen, it **saves these average values into your first Google Sheet** so you can track performance over time.\n\n#### \u2705 Beginner Tip:\n\nThis helps you **measure content engagement** across different companies. You can reuse this for competitive research, content benchmarking, or client reporting.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "a2897619-9086-4a99-8fa6-551fffc8893f",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1580,
-640
],
"parameters": {
"color": 2,
"width": 420,
"height": 820,
"content": "### \ud83d\udcc4 **SECTION 4: Format & Store Full Posts**\n\n#### \ud83e\udde9 Nodes:\n\n* `\ud83e\uddfe Format Post Content`\n* `\ud83d\udce5 Save Posts to Google Sheets`\n\n#### \ud83d\udca1 What Happens:\n\nNow that averages are stored, this section **formats the full content of the 5 posts** (text, date, likes, etc.) for better readability and structure.\n\nThen, it **stores each individual post into a second Google Sheet** for deeper post-level insights.\n\n#### \u2705 Beginner Tip:\n\nThis gives you a historical view of what each company is posting\u2014great for content strategy or trend analysis.\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "55dbafa4-8ad9-4a4d-b5bb-2b42facb55e4",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1660,
-700
],
"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": "d222b12b-dfed-4240-9580-027370214ae0",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1660,
-360
],
"parameters": {
"color": 4,
"width": 1289,
"height": 2578,
"content": "## \ud83d\ude80 **LinkedIn Company Post Analyzer Workflow**\n\nThis automation lets you input a LinkedIn company URL, scrape its **latest 5 posts** using **Bright Data MCP**, calculate **engagement averages**, and store everything neatly in **Google Sheets**. Whether you're a digital marketer, analyst, or business owner\u2014this saves time and effort!\n\n---\n\n### \ud83d\udd39 **SECTION 1: Start & Input**\n\n#### \ud83e\udde9 Nodes:\n\n* `\ud83d\udd18 Trigger: Manual Start`\n* `\ud83d\udd17 Set LinkedIn Company URL`\n\n#### \ud83d\udca1 What Happens:\n\nThis section is your starting point. You **manually execute** the workflow by clicking the **play button**, and then you **enter the LinkedIn company profile URL** in a form field.\n\n#### \u2705 Beginner Tip:\n\nYou don\u2019t need coding skills. Just copy the company\u2019s LinkedIn URL (e.g., `https://www.linkedin.com/company/openai`) and paste it here. This kicks off the whole automation!\n\n---\n\n### \ud83e\udd16 **SECTION 2: Smart Scraper Agent**\n\n#### \ud83e\udde9 Node:\n\n* `\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)`\n\n##### \ud83e\udde0 Sub-Nodes Inside the Agent:\n\n* `\ud83e\udde0 Chat Model`: Understands your scraping request in natural language.\n* `\ud83c\udf10 Bright Data MCP Client`: Actually visits LinkedIn via mobile proxies and scrapes the data.\n* `\ud83e\uddfe Parse AI Response`: Converts raw results into structured post data.\n\n#### \ud83d\udca1 What Happens:\n\nThis smart AI agent (powered by OpenAI + Bright Data) goes to the LinkedIn company page, **scrapes the latest 5 posts**, and organizes them. Bright Data MCP lets it **bypass anti-bot systems** by using mobile IPs, so it's reliable even on protected sites like LinkedIn.\n\n#### \u2705 Beginner Tip:\n\nYou don\u2019t write any scraping code! The AI understands what to do and fetches posts like a human browser would. This is **completely no-code** for you.\n\n---\n\n### \ud83d\udcca **SECTION 3: Analyze & Save Metrics**\n\n#### \ud83e\udde9 Nodes:\n\n* `\ud83d\udcc8 Analyze Engagement Metrics`\n* `\ud83d\udce5 Save Averages to Google Sheets`\n\n#### \ud83d\udca1 What Happens:\n\nHere, the automation **calculates the average** values (like likes, comments, etc.) from the 5 scraped posts using simple JavaScript logic.\n\nThen, it **saves these average values into your first Google Sheet** so you can track performance over time.\n\n#### \u2705 Beginner Tip:\n\nThis helps you **measure content engagement** across different companies. You can reuse this for competitive research, content benchmarking, or client reporting.\n\n---\n\n### \ud83d\udcc4 **SECTION 4: Format & Store Full Posts**\n\n#### \ud83e\udde9 Nodes:\n\n* `\ud83e\uddfe Format Post Content`\n* `\ud83d\udce5 Save Posts to Google Sheets`\n\n#### \ud83d\udca1 What Happens:\n\nNow that averages are stored, this section **formats the full content of the 5 posts** (text, date, likes, etc.) for better readability and structure.\n\nThen, it **stores each individual post into a second Google Sheet** for deeper post-level insights.\n\n#### \u2705 Beginner Tip:\n\nThis gives you a historical view of what each company is posting\u2014great for content strategy or trend analysis.\n\n---\n\n## \u2705 Summary: How You Can Use This\n\n| Use Case | How It Helps You |\n| ---------------------------- | ----------------------------------------------------- |\n| \ud83d\udd0d Competitive Monitoring | See what your rivals are posting and how it performs. |\n| \ud83d\udcc8 Marketing Analytics | Track brand performance via LinkedIn posts. |\n| \ud83d\udcca Client Reports | Automate monthly reports on LinkedIn presence. |\n| \ud83d\udca1 Content Strategy Planning | Analyze what kind of posts get the most engagement. |\n\n---\n\n"
},
"typeVersion": 1
},
{
"id": "e99f86d4-73cc-4bcb-a8d7-24f640abf7d6",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2080,
-640
],
"parameters": {
"color": 7,
"width": 380,
"height": 240,
"content": "## I\u2019ll receive a tiny commission if you join Bright Data through this link\u2014thanks for fueling more free content!\n\n### https://get.brightdata.com/1tndi4600b25"
},
"typeVersion": 1
},
{
"id": "3991b4a5-b3d8-4869-b620-b0eff43e56b1",
"name": "Auto-fixing Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
980,
300
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "c9cfdde4-39e7-42de-a66c-94a1264d7b33",
"name": "OpenAI Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
940,
560
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "2e74bb7f-634f-4840-919d-e825feb66b11",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1120,
560
],
"parameters": {
"jsonSchemaExample": "[\n {\n \"competitor\": \"HubSpot\",\n \"post_title\": \"HubSpot\",\n \"date\": \"3 weeks ago\",\n \"likes\": 54,\n \"comments\": 3,\n \"content\": \"\ud83d\udea8 Nicht weiter scrollen! \ud83d\udea8 Wir sind das \u2728erste\u2728 CRM mit einem Deep-Research-Connector f\u00fcr ChatGPT Deine HubSpot-Daten + das Hirn von ChatGPT = \ud83e\udd2f \ud83d\udd17 Hol dir jetzt den Early Access\",\n \"post_link\": \"https://de.linkedin.com/posts/hubspot_hubspot-und-chatgptpdf-activity-7336304617892306944-Ob8h\",\n \"videos\": []\n },\n {\n \"competitor\": \"HubSpot\",\n \"post_title\": \"HubSpot\",\n \"date\": \"1 day ago\",\n \"likes\": 79,\n \"comments\": 10,\n \"content\": \"when you need a social content framework that's effective AND memorable\",\n \"post_link\": null,\n \"videos\": [\n \"https://dms.licdn.com/playlist/vid/v2/D4D10AQEmIrq4MYknpQ/mp4-640p-30fp-crf28/B4DZetK.GFGkA4-/0/1750957032138?e=2147483647&v=beta&t=PtE4WAUXBXb2VkZChI7m-R4BGONJY0vY0IGCHyX4lXQ\"\n ]\n },\n {\n \"competitor\": \"HubSpot\",\n \"post_title\": \"HubSpot\",\n \"date\": \"4 days ago\",\n \"likes\": 116,\n \"comments\": 12,\n \"content\": \"plot twist: the co-worker who complained about being cold all winter is now the office hero for knowing where the thermostat is\",\n \"post_link\": \"https://www.linkedin.com/posts/hubspot_plot-twist-the-co-worker-who-complained-activity-7343+1234567890-OIh3\",\n \"videos\": []\n },\n {\n \"competitor\": \"HubSpot\",\n \"post_title\": \"HubSpot\",\n \"date\": \"1 week ago\",\n \"likes\": 112,\n \"comments\": 4,\n \"content\": \"meet my new work bestie: Breeze Customer Agent\",\n \"post_link\": null,\n \"videos\": [\n \"https://dms.licdn.com/playlist/vid/v2/D4D10AQGcS77ueYgGeQ/mp4-720p-30fp-crf28/B4DZeITpeIGgBM-/0/1750338545668?e=2147483647&v=beta&t=NrehXjQVj_uk7nHVFrvs18p4-tLUleLObMGKrmsCoqY\"\n ]\n },\n {\n \"competitor\": \"HubSpot\",\n \"post_title\": \"HubSpot\",\n \"date\": \"1 week ago\",\n \"likes\": 104,\n \"comments\": 11,\n \"content\": \"must have been the wind\",\n \"post_link\": null,\n \"videos\": [\n \"https://dms.licdn.com/playlist/vid/v2/D4D05AQG6kJ8EqkBmAw/mp4-640p-30fp-crf28/B4DZeEjsVIGUBg-/0/1750275644735?e=2147483647&v=beta&t=7Pfujdbu6rXW34zKPoDHXrnHG93T900bKVQBFBllbLA\"\n ]\n }\n]\n"
},
"typeVersion": 1.2
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "a97cbb59-0a34-41a1-9649-3ef22f0f3b7d",
"connections": {
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "Auto-fixing Output Parser",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"\ud83e\uddfe Format Post Content": {
"main": [
[
{
"node": "\ud83d\udce5 Save Posts to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"Auto-fixing Output Parser": {
"ai_outputParser": [
[
{
"node": "\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"\ud83d\udd18 Trigger: Manual Start": {
"main": [
[
{
"node": "\ud83d\udd17 Set LinkedIn Company URL",
"type": "main",
"index": 0
}
]
]
},
"\ud83c\udf10 Bright Data MCP Client": {
"ai_tool": [
[
{
"node": "\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)",
"type": "ai_tool",
"index": 0
}
]
]
},
"\ud83d\udd17 Set LinkedIn Company URL": {
"main": [
[
{
"node": "\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udcc8 Analyze Engagement Metrics": {
"main": [
[
{
"node": "\ud83d\udce5 Save Averages to Google Sheets",
"type": "main",
"index": 0
}
]
]
},
"\ud83d\udce5 Save Averages to Google Sheets": {
"main": [
[
{
"node": "\ud83e\uddfe Format Post Content",
"type": "main",
"index": 0
}
]
]
},
"\ud83e\udd16 Agent: Fetch LinkedIn Posts (via MCP Tool)": {
"main": [
[
{
"node": "\ud83d\udcc8 Analyze Engagement Metrics",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2ApimcpClientApiopenAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automatically monitors competitor social media engagement on LinkedIn to track their content performance and posting strategies. It saves you time by eliminating the need to manually check competitor social media accounts and provides detailed analytics on their…
Source: https://n8n.io/workflows/5949/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow automatically identifies and tracks backlink opportunities by analyzing competitor link profiles and finding potential linking websites. It saves you time by eliminating the need to manu
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.
This workflow contains community nodes that are only compatible with the self-hosted version of n8n.