LinkedIn Profile Follow Automation

    Shared 11/21/2025

    9 views

    Visual Workflow

    JSON Code

    {
      "nodes": [
        {
          "id": "504a3f79-b689-4e0b-93b0-3eea71a10bfd",
          "name": "When clicking 'Execute workflow'",
          "type": "n8n-nodes-base.manualTrigger",
          "position": [
            912,
            176
          ],
          "parameters": {},
          "typeVersion": 1
        },
        {
          "id": "0cea2ef6-800b-4aee-9873-e445abbf0d31",
          "name": "Get row(s) in sheet",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1136,
            176
          ],
          "parameters": {
            "options": {},
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0/edit?usp=drivesdk",
              "cachedResultName": "Linkedin-connection-request"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "KR7mp1K4qOcYoY4K",
              "name": "Google Sheets account"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "08a9a1a8-a012-43b9-8e0c-4f5519c7fa01",
          "name": "ConnectSafely LinkedIn",
          "type": "n8n-nodes-connectsafely-ai.connectSafelyLinkedIn",
          "position": [
            1360,
            176
          ],
          "parameters": {
            "accountId": "68e8a6885da2306b99698d3e",
            "operation": "followUser",
            "profileId": "={{ $json['LinkedIn Url'] }}"
          },
          "credentials": {
            "connectSafelyApi": {
              "id": "LwbE3n6bKQX8c4J6",
              "name": "ConnectSafely account"
            }
          },
          "typeVersion": 1
        },
        {
          "id": "bef59820-6e6c-4701-9736-311834e3cb74",
          "name": "Update row in sheet",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            1584,
            176
          ],
          "parameters": {
            "columns": {
              "value": {
                "Status": "done",
                "row_number": "={{ $('Get row(s) in sheet').item.json.row_number }}"
              },
              "schema": [
                {
                  "id": "First Name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "First Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "LinkedIn Url",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "LinkedIn Url",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Tagline",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Tagline",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Status",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Status",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "Message",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Message",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "row_number",
                  "type": "number",
                  "display": true,
                  "removed": false,
                  "readOnly": true,
                  "required": false,
                  "displayName": "row_number",
                  "defaultMatch": false,
                  "canBeUsedToMatch": true
                }
              ],
              "mappingMode": "defineBelow",
              "matchingColumns": [
                "row_number"
              ],
              "attemptToConvertTypes": false,
              "convertFieldsToString": false
            },
            "options": {},
            "operation": "update",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0/edit#gid=0",
              "cachedResultName": "Sheet1"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0/edit?usp=drivesdk",
              "cachedResultName": "Linkedin-connection-request"
            }
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "KR7mp1K4qOcYoY4K",
              "name": "Google Sheets account"
            }
          },
          "typeVersion": 4.7
        },
        {
          "id": "43179737-a317-4417-95e0-95e90a08e243",
          "name": "Sticky Note - Main Overview",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            208,
            -256
          ],
          "parameters": {
            "width": 630,
            "height": 973,
            "content": "## LinkedIn Profile Follow Automation\n\n@[youtube](b4G47AJX418)\n\nThis workflow automates following LinkedIn profiles at scale using ConnectSafely.ai's platform-compliant automation.\n\n### How it works\nThe workflow reads LinkedIn profile URLs from Google Sheets, processes each profile through ConnectSafely.ai's API to execute follow actions, and updates your spreadsheet with completion status. This eliminates manual clicking while maintaining LinkedIn's compliance standards.\n\n### Setup steps\n1. Install community node: `n8n-nodes-connectsafely.ai` (Settings > Community Nodes, then restart n8n)\n2. Prepare Google Sheet with columns: LinkedIn Url, Status, row_number\n3. Connect Google Sheets credentials and select your document\n4. Add ConnectSafely.ai API credentials from dashboard (Settings > API Keys)\n5. Map Profile ID to `{{ $json['LinkedIn Url'] }}`\n6. Configure status tracking to mark processed rows as \"done\"\n\n### Customization\n- Add delay nodes for large batches (500+ profiles)\n- Implement error handling for failed attempts\n- Extend to CRM integration or connection requests\n- Add analytics tracking for follow-back monitoring\n"
          },
          "typeVersion": 1
        },
        {
          "id": "d0f53c23-6d60-4a90-94af-c8b64a04f62e",
          "name": "Sticky Note - Get Profiles",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1040,
            32
          ],
          "parameters": {
            "color": 6,
            "height": 100,
            "content": "### Get Target Profiles\n\nRetrieves pending LinkedIn profiles from Google Sheets"
          },
          "typeVersion": 1
        },
        {
          "id": "fb083233-45bd-433f-a6c7-2006b8a83d3c",
          "name": "Sticky Note - Execute Follow",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1264,
            352
          ],
          "parameters": {
            "color": 6,
            "height": 100,
            "content": "### Execute Follow Action\n\nProcesses each profile through ConnectSafely.ai API"
          },
          "typeVersion": 1
        },
        {
          "id": "205cd5b5-95b9-42e7-a640-1faec849efe6",
          "name": "Sticky Note - Update Status",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1536,
            32
          ],
          "parameters": {
            "color": 6,
            "height": 100,
            "content": "### Update Status\n\nMarks processed profiles as \"done\" in spreadsheet"
          },
          "typeVersion": 1
        }
      ],
      "connections": {
        "Get row(s) in sheet": {
          "main": [
            [
              {
                "node": "ConnectSafely LinkedIn",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "ConnectSafely LinkedIn": {
          "main": [
            [
              {
                "node": "Update row in sheet",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "When clicking 'Execute workflow'": {
          "main": [
            [
              {
                "node": "Get row(s) in sheet",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    }