AutomationFlowsSocial Media › Automated Linkedin Company Page Growth with Browserflow and Google Sheets

Automated Linkedin Company Page Growth with Browserflow and Google Sheets

ByKees Bosch - Browserflow @browserflow on n8n.io

⚠️ Important — Start Here Before importing this template, make a personal copy of the provided Google Sheets template. This workflow is designed to work out of the box with that sheet.

Event trigger★★★★★ complexity36 nodesGoogle SheetsN8N Nodes Browserflow
Social Media Trigger: Event Nodes: 36 Complexity: ★★★★★ Added:

This workflow corresponds to n8n.io template #11850 — we link there as the canonical source.

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 →

Download .json
{
  "id": "bE8D8ofeWcM5h5Pt",
  "name": "Grow Linkedin Company Page",
  "tags": [],
  "nodes": [
    {
      "id": "d74d5b8d-9b6a-4608-9eec-3340ae311aed",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        96,
        240
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d78a09c0-2146-4bc7-b069-34059e8d578b",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        464,
        240
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "7f923e86-0363-4c70-a9bd-61276426f640",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        800,
        400
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "comments"
      },
      "typeVersion": 1
    },
    {
      "id": "7ec04976-f71d-48e9-bd42-b9f5f1f45d66",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 2,
        "width": 1824,
        "height": 576,
        "content": "## Retrieve Leads from Post comments\nThis workflow gets leads by scraping people that reacted under a post ands stores them in Google Sheets"
      },
      "typeVersion": 1
    },
    {
      "id": "78edfcf0-348a-4b38-afeb-e3f19543c6ca",
      "name": "Fetch Posts to Scrape",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        304,
        240
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "=",
              "lookupColumn": "scraped_at"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=0",
          "cachedResultName": "Posts"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "fdb66045-1279-4b61-8b8a-b8d4a749cb5e",
      "name": "Mark Post as scraped",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1632,
        48
      ],
      "parameters": {
        "columns": {
          "value": {
            "url": "={{ $('Loop Over Items').item.json.url }}",
            "scraped_at": "={{$now.toISO()}}"
          },
          "schema": [
            {
              "id": "url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "scraped_at",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "scraped_at",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=0",
          "cachedResultName": "Posts"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "f745ac51-9167-4451-8aed-24f266ca971c",
      "name": "Scrape comments from Post",
      "type": "n8n-nodes-browserflow.browserflow",
      "position": [
        640,
        400
      ],
      "parameters": {
        "postUrl": "={{ $('Fetch Posts to Scrape').item.json.url }}",
        "execution": {},
        "operation": "scrapeProfilesFromPostComments",
        "addComments": true,
        "commentsLimit": 20
      },
      "credentials": {
        "browserflowApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "dbc54a3e-3316-484c-8934-26299c48f622",
      "name": "Loop Over Items1",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1152,
        272
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "142e8a2a-a9fd-4754-bdbf-4190ebd30ab7",
      "name": "Check if already collected",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1328,
        352
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $('Loop Over Items1').item.json.linkedin_url }}",
              "lookupColumn": "linkedin_url"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7,
      "alwaysOutputData": true
    },
    {
      "id": "8f7d2482-8835-4f7d-9310-82f6acdde24c",
      "name": "Collect leads in sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1648,
        320
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $('Loop Over Items1').item.json.name }}",
            "linkedin_url": "={{ $('Loop Over Items1').item.json.linkedin_url }}"
          },
          "schema": [
            {
              "id": "linkedin_url",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_as_connection",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_as_connection",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "accepted",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_to_page",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_to_page",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c8da504d-8ee4-4ce4-a673-c763d69dd73d",
      "name": "If not in sheet",
      "type": "n8n-nodes-base.if",
      "position": [
        1472,
        352
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "f79f355e-24b3-4560-aa08-ad4059aa1ca7",
              "operator": {
                "type": "string",
                "operation": "notExists",
                "singleValue": true
              },
              "leftValue": "={{ $json.linkedin_url }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "5941c219-3df0-454f-9954-abccf475e08d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        624
      ],
      "parameters": {
        "color": 5,
        "width": 1824,
        "height": 704,
        "content": "## Invite Leads as a LinkedIn Connection\nThis part of the workflow grabs the leads, checks for their connection status and invites them if needed. It also maintains the most up-2-date status in the Sheet.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "6a9800ca-4020-4db0-916a-c0c62b130a7f",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        48,
        800
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "daysInterval": 2
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "b223352f-28bf-4161-b4d1-c001e66102e4",
      "name": "Fetch Leads that have not been invited",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        256,
        800
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "invited_as_connection"
            },
            {
              "lookupColumn": "accepted"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "21e06be6-ea6b-4010-9c9a-8cc9c354b308",
      "name": "Loop over leads",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        464,
        800
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "1a424a36-c6f8-4cb6-bb96-120cd8653119",
      "name": "Check if a person is a connection",
      "type": "n8n-nodes-browserflow.browserflow",
      "position": [
        608,
        944
      ],
      "parameters": {
        "execution": {},
        "linkedinUrl": "={{ $json.linkedin_url }}"
      },
      "credentials": {
        "browserflowApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1024bf1c-9700-4b2d-b816-1147fdf902f5",
      "name": "Send a linked in connection invite",
      "type": "n8n-nodes-browserflow.browserflow",
      "position": [
        896,
        720
      ],
      "parameters": {
        "execution": {},
        "operation": "sendConnectionInvite",
        "linkedinUrl": "={{ $('Loop over leads').item.json.linkedin_url }}"
      },
      "credentials": {
        "browserflowApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "daf437cf-6825-447e-b79f-1225ce14def4",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        752,
        944
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "ea411b15-c430-4397-82f5-47435401d071",
              "operator": {
                "type": "boolean",
                "operation": "equals"
              },
              "leftValue": "={{ $json.is_connection }}",
              "rightValue": false
            },
            {
              "id": "9fafeb6a-5f20-4dbe-b26b-892ca3beddb1",
              "operator": {
                "type": "boolean",
                "operation": "equals"
              },
              "leftValue": "={{ $json.is_pending }}",
              "rightValue": false
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "10790724-09c8-4973-899f-a6046ccf4366",
      "name": "If1",
      "type": "n8n-nodes-base.if",
      "position": [
        896,
        1088
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "16c624af-00ad-41d8-98c0-7de4580798c6",
              "operator": {
                "type": "boolean",
                "operation": "equals"
              },
              "leftValue": "={{ $('Check if a person is a connection').item.json.is_pending }}",
              "rightValue": true
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "dabbdf38-c80d-4968-b1a7-fb4be08eac35",
      "name": "Already connected",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1072,
        1120
      ],
      "parameters": {
        "columns": {
          "value": {
            "accepted": "\u2705",
            "linkedin_url": "={{ $('Loop over leads').item.json.linkedin_url }}",
            "invited_as_connection": "="
          },
          "schema": [
            {
              "id": "linkedin_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_as_connection",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_as_connection",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "accepted",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_to_page",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_to_page",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "linkedin_url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c09a2a9b-d861-410f-8fde-451e6043f59a",
      "name": "Pending",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1072,
        976
      ],
      "parameters": {
        "columns": {
          "value": {
            "linkedin_url": "={{ $('Loop over leads').item.json.linkedin_url }}",
            "invited_as_connection": "={{$now}}"
          },
          "schema": [
            {
              "id": "linkedin_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_as_connection",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_as_connection",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "accepted",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_to_page",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_to_page",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "linkedin_url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "2bf4a1b0-eaa9-474e-9d76-692b638326ce",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        1392
      ],
      "parameters": {
        "color": 4,
        "width": 1824,
        "height": 352,
        "content": "## Update Connection Status\nFetch your recent connections to check which leads have accepted your connection invite."
      },
      "typeVersion": 1
    },
    {
      "id": "efc27e38-a7d3-4c02-879b-55eb0a99dce2",
      "name": "Schedule Trigger1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        48,
        1536
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "daysInterval": 2
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "efbfab34-30a1-476e-b454-100bda3b2069",
      "name": "List your linkedin connections",
      "type": "n8n-nodes-browserflow.browserflow",
      "position": [
        208,
        1536
      ],
      "parameters": {
        "limit": 20,
        "execution": {},
        "operation": "listConnections"
      },
      "credentials": {
        "browserflowApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "7b18e737-c6a6-4d49-9fbe-4e7c48cca1e5",
      "name": "Schedule Trigger2",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        48,
        1888
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "daysInterval": 2
            }
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "bada790f-6fe1-409c-ad4d-2658869d9820",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        1792
      ],
      "parameters": {
        "color": 6,
        "width": 1824,
        "height": 320,
        "content": "## Invite connections to follow page\nInvite your LinkedIn Connections to Follow your page. Make sure to set the LinkedIn url of the page you are admin to"
      },
      "typeVersion": 1
    },
    {
      "id": "9ea428a4-092b-4c2c-8b05-61b6b9c9a0e8",
      "name": "Update connection status",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        832,
        1536
      ],
      "parameters": {
        "columns": {
          "value": {
            "accepted": "\u2705",
            "linkedin_url": "={{ $json.linkedin_url }}"
          },
          "schema": [
            {
              "id": "linkedin_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_as_connection",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_as_connection",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "accepted",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_to_page",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_to_page",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "linkedin_url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "fca4b703-be7d-4edd-9132-3f176b9f870e",
      "name": "Invite connections to follow page",
      "type": "n8n-nodes-browserflow.browserflow",
      "position": [
        640,
        1904
      ],
      "parameters": {
        "execution": {},
        "operation": "inviteToFollowPage",
        "searchTerm": "={{ $('Get connected leads').item.json.name }}",
        "linkedinUrl": "https://linkedin.com/company/browserflow-io",
        "maxToInvite": 1
      },
      "credentials": {
        "browserflowApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "74a52abf-0d0a-456c-8f0e-ef088eacb02a",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        944,
        400
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "3cc44ee6-5a5e-4f20-8d4b-2701599c6a13",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.linkedin_url }}",
              "rightValue": "company"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "f5bcd0c0-31cc-4072-a399-bacbdbe94c9f",
      "name": "Invite Sent",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1072,
        752
      ],
      "parameters": {
        "columns": {
          "value": {
            "linkedin_url": "={{ $('Loop over leads').item.json.linkedin_url }}",
            "invited_as_connection": "={{$now}}}"
          },
          "schema": [
            {
              "id": "linkedin_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_as_connection",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_as_connection",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "accepted",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_to_page",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_to_page",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "linkedin_url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d1bdab34-e94b-41c3-9e7b-58f5d119cb3b",
      "name": "Split out over connections",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        416,
        1536
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "id": "f52433f1-bdaf-4afd-84e1-18ee5b0e20de",
      "name": "Get connected leads",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        208,
        1888
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "\u2705",
              "lookupColumn": "accepted"
            },
            {
              "lookupColumn": "invited_to_page"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "b4f9b646-527a-40dc-a3f8-53cc1cc4e91c",
      "name": "Loop over leads2",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        416,
        1888
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "79b3b9e1-2dc1-4781-b463-26df16f2e18f",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        624,
        1536
      ],
      "parameters": {
        "jsCode": "// Loop over input items and add a new field called 'myNewField' to the JSON of each one\nfor (const item of $input.all()) {\n  const url = item.json.linkedin_url || \"\";\n\n  // Add trailing slash if missing\n  item.json.linkedin_url = url.endsWith(\"/\") ? url : url + \"/\";\n\n  // Or, if you truly want a new field instead of overwriting:\n  // item.json.myNewField = url.endsWith(\"/\") ? url : url + \"/\";\n}\n\nreturn $input.all();\n"
      },
      "typeVersion": 2
    },
    {
      "id": "b15d38f1-3f3a-46ee-a7f7-f0d202cc7bba",
      "name": "Update invited to page",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        832,
        1904
      ],
      "parameters": {
        "columns": {
          "value": {
            "accepted": "",
            "linkedin_url": "={{ $('Loop over leads2').item.json.linkedin_url }}",
            "invited_to_page": "\u2705"
          },
          "schema": [
            {
              "id": "linkedin_url",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_as_connection",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_as_connection",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "accepted",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "invited_to_page",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "invited_to_page",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "linkedin_url"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1448900953,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit#gid=1448900953",
          "cachedResultName": "Profiles"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?usp=drivesdk",
          "cachedResultName": "Demo - Invite To Follow"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "28d88ea7-c690-4914-a951-eda5953d3cc1",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -512,
        0
      ],
      "parameters": {
        "width": 480,
        "height": 1136,
        "content": "## Fully Automated LinkedIn Company Page Growth\n\n### How it works\n\nThis workflow automates LinkedIn Company Page growth using\n**[Browserflow](https://browserflow.io)** and **Google Sheets**.\n\nIt runs in four scheduled stages:\n\n1. **Lead scraping**  \n   Users who engage with selected LinkedIn posts are scraped (commenters and optionally likers). Profiles are cleaned, deduplicated, and stored in Google Sheets. Posts are marked as scraped to avoid reprocessing.\n\n2. **Connection invites**  \n   New leads are checked for their current connection status. If not connected, a LinkedIn invite is sent. Pending and already-connected profiles are logged.\n\n3. **Acceptance tracking**  \n   Accepted invitations are detected by checking your LinkedIn connections and syncing updates back to the sheet.\n\n4. **Company Page invites**  \n   Once connected, leads are automatically invited to follow your Company Page (requires admin access).\n\nGoogle Sheets is used as a database so you can manage the status of your outreach campaign.\n\n---\n\n### Setup steps\n\n1. Import this template into your worlkflow.\n2. Install the **Browserflow for LinkedIn** community node.\n3. Connect **Browserflow** using your API key (you can sign up for a free trial at\n   **[Browserflow](https://browserflow.io)**).\n4. Make a copy of the provided\n   **[Google Sheets template](https://docs.google.com/spreadsheets/d/1-zak-RUGU4ubw3aZ_9lF9LF1dxEo9ME_-mtzRGtIDFg/edit?gid=0#gid=0)**.\n5. Update all Google Sheets nodes to point to your own copy  \n   *(Pro tip: you can use the n8n AI assistant for this)*.\n6. Enter your LinkedIn Company Page URL in the **Invite Connections to Follow Page** action.\n7. (Optional) Adjust schedule intervals.\n8. Find some posts on LinkedIn and add its urls to your Google Sheets to start scraping!\n\nI would first recommend running each flow independently to see how it works in actiona and finally enable the workflow and let it run automatically."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "d9472b9b-b286-4067-8b16-1cf7940be45a",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Send a linked in connection invite",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "If1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If1": {
      "main": [
        [
          {
            "node": "Pending",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Already connected",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pending": {
      "main": [
        [
          {
            "node": "Loop over leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Invite Sent": {
      "main": [
        [
          {
            "node": "Loop over leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If not in sheet": {
      "main": [
        [
          {
            "node": "Collect leads in sheet",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Scrape comments from Post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop over leads": {
      "main": [
        [],
        [
          {
            "node": "Check if a person is a connection",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items1": {
      "main": [
        [
          {
            "node": "Mark Post as scraped",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check if already collected",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop over leads2": {
      "main": [
        [],
        [
          {
            "node": "Invite connections to follow page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Fetch Leads that have not been invited",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Already connected": {
      "main": [
        [
          {
            "node": "Loop over leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger1": {
      "main": [
        [
          {
            "node": "List your linkedin connections",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger2": {
      "main": [
        [
          {
            "node": "Get connected leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Update connection status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get connected leads": {
      "main": [
        [
          {
            "node": "Loop over leads2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Mark Post as scraped": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Posts to Scrape": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect leads in sheet": {
      "main": [
        [
          {
            "node": "Loop Over Items1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update invited to page": {
      "main": [
        [
          {
            "node": "Loop over leads2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape comments from Post": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if already collected": {
      "main": [
        [
          {
            "node": "If not in sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split out over connections": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "List your linkedin connections": {
      "main": [
        [
          {
            "node": "Split out over connections",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if a person is a connection": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Invite connections to follow page": {
      "main": [
        [
          {
            "node": "Update invited to page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a linked in connection invite": {
      "main": [
        [
          {
            "node": "Invite Sent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Fetch Posts to Scrape",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Leads that have not been invited": {
      "main": [
        [
          {
            "node": "Loop over leads",
            "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.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

⚠️ Important — Start Here Before importing this template, make a personal copy of the provided Google Sheets template. This workflow is designed to work out of the box with that sheet.

Source: https://n8n.io/workflows/11850/ — original creator credit. Request a take-down →

More Social Media workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Social Media

Automate personalized LinkedIn outreach while maintaining human-like behavior

N8N Nodes Browserflow, Google Sheets
Social Media

Disclaimer: this workflow only works on self-hosted instances due to the file system usage.

Execute Workflow Trigger, HTTP Request, Form Trigger +3
Social Media

More workflow: https://aitool.wiki/

Google Sheets, Google Drive, Read Write File +3
Social Media

&gt; ⚠️ Disclaimer: This workflow uses Community Nodes and requires a self-hosted n8n instance.

HTTP Request, Telegram Trigger, Google Sheets +1
Social Media

This n8n workflow automates the process of scraping job listings from both LinkedIn and Indeed platforms simultaneously, combining results, and exporting data to Google Sheets for comprehensive job ma

Form Trigger, HTTP Request, Google Sheets