AutomationFlowsSocial Media › Invite Linkedin Connections to Follow Your Company Page

Invite Linkedin Connections to Follow Your Company Page

Invite LinkedIn Connections to Follow Your Company Page. Uses googleSheets, httpRequest. Manual trigger; 22 nodes.

Manual trigger★★★★☆ complexity22 nodesGoogle SheetsHTTP Request
Social Media Trigger: Manual Nodes: 22 Complexity: ★★★★☆ Added:

This workflow follows the Google Sheets → HTTP Request 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 →

Download .json
{
  "name": "Invite LinkedIn Connections to Follow Your Company Page",
  "nodes": [
    {
      "parameters": {
        "content": "## \ud83d\ude80 Invite LinkedIn Connections to Follow Your Company Page\n\n**What this workflow does:**\n- Fetches your 1st-degree LinkedIn connections\n- Sends personalized DMs asking them to follow your company page\n- Tracks all outreach in Google Sheets\n- Handles pagination for large connection lists\n- Adds random delays to keep your account safe\n\n**Requirements:**\n- ConnectSafely.ai API Key\n- Google Sheets account\n- LinkedIn account connected to ConnectSafely.ai\n\n**Setup Steps:**\n1. Create Google Sheet with 2 tabs: `Connections` and `Pagination`\n2. Add your ConnectSafely.ai API key\n3. Update company page URL in Code node\n4. Customize message templates\n5. Run workflow!",
        "height": 666,
        "width": 340,
        "color": 7
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -624,
        832
      ],
      "id": "bd6fd78a-92a8-446f-8ed5-a4013935e8dd",
      "name": "Sticky Note"
    },
    {
      "parameters": {
        "content": "## \ud83d\udce5 Step 1: Fetch Connections\n\nCalls ConnectSafely.ai API to get your LinkedIn connections.\n\n**Filters:**\n- `F` = First-degree (direct connections)\n- `S` = Second-degree\n- `O` = Third-degree+\n\n**Tip:** Add keywords to target specific roles like \"marketing manager\"",
        "height": 240,
        "width": 280,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        224,
        880
      ],
      "id": "89d9b144-712c-4e95-a52f-057095cd4e50",
      "name": "Sticky Note1"
    },
    {
      "parameters": {
        "content": "## \ud83d\udd04 Step 2: Loop & Pagination\n\nProcesses connections one-by-one and handles pagination.\n\n**Output 1:** Check if more connections exist\n**Output 2:** Process current connection",
        "height": 180,
        "width": 280,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        560,
        880
      ],
      "id": "666fb177-afea-437d-b268-727f9a97846b",
      "name": "Sticky Note2"
    },
    {
      "parameters": {
        "content": "## \u2705 Step 3: Deduplication\n\nChecks Google Sheets to avoid messaging the same person twice.\n\n**Important:** This prevents spam and keeps your account safe!",
        "width": 280,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        896,
        896
      ],
      "id": "cec87c48-0f5d-416c-9e0f-2fee9ea28b61",
      "name": "Sticky Note3"
    },
    {
      "parameters": {
        "content": "## \u270d\ufe0f Step 4: Message Generation\n\nRandomly selects from 6 message templates and personalizes with recipient's name.\n\n**Customize:**\n- Edit message templates\n- Update company page URL\n- Change your signature",
        "height": 200,
        "width": 280,
        "color": 4
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        1232,
        896
      ],
      "id": "fdc34928-bb23-48f7-ae4c-2d69352405f9",
      "name": "Sticky Note4"
    },
    {
      "parameters": {
        "content": "## \u23f1\ufe0f Step 5: Safety Delay\n\n**CRITICAL:** Random 20-60 minute delay between messages.\n\nThis mimics human behavior and protects your LinkedIn account from restrictions.\n\n\u26a0\ufe0f Don't reduce this delay!",
        "height": 200,
        "width": 280,
        "color": 6
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        2672,
        160
      ],
      "id": "828ce50f-bfed-4a05-a83a-2705728b86aa",
      "name": "Sticky Note5"
    },
    {
      "parameters": {
        "content": "## \ud83d\udcca Google Sheets Setup\n\n**Sheet 1: Connections**\n| Name | Linkedin URL | Status | Message | Sent At |\n\n**Sheet 2: Pagination**\n| id | Last Start Index | total | hasmore |\n\nAdd a row in Pagination with your unique ID before first run.",
        "height": 252,
        "width": 340,
        "color": 3
      },
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        -176,
        864
      ],
      "id": "b8e02afd-905e-41f4-a066-7560fb539525",
      "name": "Sticky Note6"
    },
    {
      "parameters": {
        "fieldToSplitOut": "people",
        "options": {}
      },
      "type": "n8n-nodes-base.splitOut",
      "typeVersion": 1,
      "position": [
        128,
        1520
      ],
      "id": "d986c010-5279-41b3-b863-637045f9a925",
      "name": "Split Visitors Array"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "n8n-nodes-base.splitInBatches",
      "typeVersion": 3,
      "position": [
        352,
        1392
      ],
      "id": "a9c8361c-5dab-462b-adea-7949ea886b33",
      "name": "Loop Over Items"
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "149e3e45-fe35-4ef5-bbdd-da8107b82802",
              "leftValue": "={{ $json.isEmpty() }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        800,
        1440
      ],
      "id": "68ce288d-ef27-41f5-90f5-61ec1734c7b7",
      "name": "Skip if Already Contacted"
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI",
          "mode": "list",
          "cachedResultName": "Invited User To Follow Company Page",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 1880016315,
          "mode": "list",
          "cachedResultName": "Surender Connections",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit#gid=1880016315"
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "Linkedin URL",
              "lookupValue": "={{ $json.profileUrl }}"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        576,
        1440
      ],
      "id": "e50c07e2-1c3d-4194-8ef2-453842942936",
      "name": "Check if Already Send Message",
      "alwaysOutputData": true,
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "strict",
            "version": 2
          },
          "conditions": [
            {
              "id": "4ba916ad-0386-4aff-92d0-541ca8d2e533",
              "leftValue": "={{ $json.hasmore }}",
              "rightValue": "",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "type": "n8n-nodes-base.if",
      "typeVersion": 2.2,
      "position": [
        800,
        1152
      ],
      "id": "976ae71a-09c2-4401-be41-b76f89e58996",
      "name": "If"
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI",
          "mode": "list",
          "cachedResultName": "Invited User To Follow Company Page",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 1840068623,
          "mode": "list",
          "cachedResultName": "Pagination",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit#gid=1840068623"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Last Start Index": "={{ $json.pagination.start }}",
            "id": "SURENDER_PAGINATION",
            "total": "={{ $json.pagination.total }}",
            "hasmore": "={{ $json.hasMore }}"
          },
          "matchingColumns": [
            "id"
          ],
          "schema": [
            {
              "id": "id",
              "displayName": "id",
              "required": false,
              "defaultMatch": true,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Last Start Index",
              "displayName": "Last Start Index",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "total",
              "displayName": "total",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "hasmore",
              "displayName": "hasmore",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "row_number",
              "displayName": "row_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "number",
              "canBeUsedToMatch": true,
              "readOnly": true,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        128,
        1328
      ],
      "id": "b9c055d2-2349-4d9c-bc80-5f9fc8379ac8",
      "name": "Log Last time Called start input",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "documentId": {
          "__rl": true,
          "value": "1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI",
          "mode": "list",
          "cachedResultName": "Invited User To Follow Company Page",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 1840068623,
          "mode": "list",
          "cachedResultName": "Pagination",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit#gid=1840068623"
        },
        "filtersUI": {
          "values": [
            {
              "lookupColumn": "=id",
              "lookupValue": "=SURENDER_PAGINATION"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        576,
        1152
      ],
      "id": "f4a35850-9f74-482e-972d-ac47b5b1a340",
      "name": "Get pagation log data",
      "alwaysOutputData": true,
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "update",
        "documentId": {
          "__rl": true,
          "value": "1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI",
          "mode": "list",
          "cachedResultName": "Invited User To Follow Company Page",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 1840068623,
          "mode": "list",
          "cachedResultName": "Pagination",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit#gid=1840068623"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Last Start Index": "={{ $json.pagination.start }}",
            "id": "SURENDER_PAGINATION",
            "total": "={{ $json.pagination.total }}",
            "hasmore": "{{ $json.hasMore }}"
          },
          "matchingColumns": [
            "id"
          ],
          "schema": [
            {
              "id": "id",
              "displayName": "id",
              "required": false,
              "defaultMatch": true,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Last Start Index",
              "displayName": "Last Start Index",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "total",
              "displayName": "total",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "hasmore",
              "displayName": "hasmore",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "row_number",
              "displayName": "row_number",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "number",
              "canBeUsedToMatch": true,
              "readOnly": true,
              "removed": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        1248,
        1152
      ],
      "id": "9a70e157-8a44-4595-9e82-f136c71100b1",
      "name": "Log Last time Called start input1",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "operation": "appendOrUpdate",
        "documentId": {
          "__rl": true,
          "value": "1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI",
          "mode": "list",
          "cachedResultName": "Invited User To Follow Company Page",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit?usp=drivesdk"
        },
        "sheetName": {
          "__rl": true,
          "value": 1880016315,
          "mode": "list",
          "cachedResultName": "Surender Connections",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1Wx2pcXB4aQ0MBOAo2Wisj7ahEsnUsf9ceHKGQHMdJdI/edit#gid=1880016315"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Name": "={{ $('Loop Over Items').item.json.firstName }}",
            "Linkedin URL": "={{ $('Loop Over Items').item.json.profileUrl }}",
            "Status": "DONE",
            "message": "={{ $('Generate DM for Connected User').item.json.message }}"
          },
          "matchingColumns": [
            "Linkedin URL"
          ],
          "schema": [
            {
              "id": "Name",
              "displayName": "Name",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "Linkedin URL",
              "displayName": "Linkedin URL",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true,
              "removed": false
            },
            {
              "id": "Status",
              "displayName": "Status",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            },
            {
              "id": "message",
              "displayName": "message",
              "required": false,
              "defaultMatch": false,
              "display": true,
              "type": "string",
              "canBeUsedToMatch": true
            }
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {}
      },
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.7,
      "position": [
        1472,
        1472
      ],
      "id": "6cb19dc7-037e-482b-9fb7-c9891d9be600",
      "name": "Log DM Sent to Sheet",
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "amount": "={{ Math.floor(Math.random() * (60 - 20 + 1)) + 20 }}",
        "unit": "minutes"
      },
      "type": "n8n-nodes-base.wait",
      "typeVersion": 1.1,
      "position": [
        1920,
        1536
      ],
      "id": "272d2595-1fc6-4b59-bebc-d345cc6669ac",
      "name": "Wait Between Messages"
    },
    {
      "parameters": {},
      "type": "n8n-nodes-base.noOp",
      "name": "Continue to Next Visitor",
      "typeVersion": 1,
      "position": [
        1696,
        1440
      ],
      "id": "1322d00f-6e49-44e7-8b6c-f564691649f5"
    },
    {
      "parameters": {
        "jsCode": "// Get recipient name\nconst rawName = $('Loop Over Items').first().json.firstName || 'there';\nconst name = rawName.trim();\n\n// Sender footer\nconst footer = `\\n\\n\u2014 Surender`;\n\n// Message bodies asking for support to follow company page\nconst messages = [\n  \"Hope you\u2019re doing well. I wanted to share that I\u2019m working on a new initiative called ConnectSafely.ai, focused on safer digital interactions. If you\u2019d like to support, it would mean a lot if you could follow our company page: https://www.linkedin.com/company/connectsafelyai/\",\n\n  \"Hey! I\u2019m currently building ConnectSafely.ai \u2014 a product focused on digital safety and trust. We\u2019ve just started sharing updates, and I\u2019d really appreciate your support by following our company page: https://www.linkedin.com/company/connectsafelyai/\",\n\n  \"Just a quick note \u2014 I\u2019ve been working on ConnectSafely.ai, where we\u2019re building solutions around online safety. If you\u2019re open to it, I\u2019d appreciate your support by following our page: https://www.linkedin.com/company/connectsafelyai/\",\n\n  \"Hope all\u2019s well. I wanted to share that I\u2019m part of a new venture, ConnectSafely.ai. We\u2019re starting to post product updates and insights, and I\u2019d truly appreciate your support by following our company page: https://www.linkedin.com/company/connectsafelyai/\",\n\n  \"Quick ask for support \u2014 I\u2019m building ConnectSafely.ai, focused on safer online experiences. If you find the space interesting, I\u2019d really appreciate a follow on our company page: https://www.linkedin.com/company/connectsafelyai/\",\n\n  \"Sharing something I\u2019ve been working on \u2014 ConnectSafely.ai. We\u2019re just getting started and posting regularly. If you\u2019d like to support the journey, a follow on our company page would mean a lot: https://www.linkedin.com/company/connectsafelyai/\"\n];\n\n// Pick random body\nconst body = messages[Math.floor(Math.random() * messages.length)];\n\n// Final message\nconst finalMessage = `Hey ${name},\\n\\n${body}${footer}`;\n\nreturn {\n  message: finalMessage,\n};\n"
      },
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1024,
        1472
      ],
      "id": "4ea96ca6-9207-476f-9a68-5d278518b3aa",
      "name": "Generate DM for Connected User"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.connectsafely.ai/linkedin/message",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth",
        "sendBody": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "recipientProfileId",
              "value": "={{ $('Loop Over Items').item.json.profileId }}"
            },
            {
              "name": "message",
              "value": "={{ $json.message }}"
            },
            {
              "name": "messageType",
              "value": "inmail"
            }
          ]
        },
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1248,
        1472
      ],
      "id": "388b434a-de1c-4340-bdaa-bd25fd2c0aed",
      "name": "Send DM to Connected User",
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.connectsafely.ai/linkedin/search/people",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"keywords\": \"software engineer\",\n  \"filters\": {\n    \"connectionDegree\": [\n      \"F\"\n      \n    ]\n  },\n  \"start\":0\n}",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -96,
        1424
      ],
      "id": "8a44d590-baa3-46d1-9519-6b66e40291f6",
      "name": "Fetch Connections",
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.connectsafely.ai/linkedin/search/people",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"keywords\": \"software engineer\",\n  \"filters\": {\n    \"connectionDegree\": [\n      \"F\"\n      \n    ]\n  },\n  \"start\":{{ $json['Last Start Index' ] ||1 + 25  }}\n} \n\n",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1024,
        1152
      ],
      "id": "179dcb47-b613-4ad2-8fa1-99eb2f8c7ac7",
      "name": "Fetch Connections1",
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Split Visitors Array": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Get pagation log data",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Check if Already Send Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Skip if Already Contacted": {
      "main": [
        [
          {
            "node": "Generate DM for Connected User",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Continue to Next Visitor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if Already Send Message": {
      "main": [
        [
          {
            "node": "Skip if Already Contacted",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If": {
      "main": [
        [
          {
            "node": "Fetch Connections1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get pagation log data": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Log DM Sent to Sheet": {
      "main": [
        [
          {
            "node": "Continue to Next Visitor",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait Between Messages": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Continue to Next Visitor": {
      "main": [
        [
          {
            "node": "Wait Between Messages",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate DM for Connected User": {
      "main": [
        [
          {
            "node": "Send DM to Connected User",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send DM to Connected User": {
      "main": [
        [
          {
            "node": "Log DM Sent to Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Connections": {
      "main": [
        [
          {
            "node": "Split Visitors Array",
            "type": "main",
            "index": 0
          },
          {
            "node": "Log Last time Called start input",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Connections1": {
      "main": [
        [
          {
            "node": "Log Last time Called start input1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Split Visitors Array",
            "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

Invite LinkedIn Connections to Follow Your Company Page. Uses googleSheets, httpRequest. Manual trigger; 22 nodes.

Source: https://gist.github.com/connectsafely/4a640323bd96049b630c00c01e0738d7 — 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

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 template is ideal for sales teams, recruiters, business development professionals, and relationship managers who need to monitor changes in their network's LinkedIn profiles. Perfect for agencies

Google Sheets, HTTP Request, Slack
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