Automate LinkedIn Follows with n8n + ConnectSafely.ai
Workflow + Code Included
I’ve created a step-by-step tutorial showing how to automate LinkedIn follows using n8n and ConnectSafely.ai. This workflow pulls user data from Google Sheets, automatically follows users on LinkedIn, and updates the sheet once done.
What’s Covered
- Setting up Google Sheets integration in n8n
- Installing and configuring the n8n-nodes-connectsafely-ai package (created by ConnectSafely.AI Team)
- Connecting your LinkedIn account and using the Follow User node
- Automating status updates after each action
This setup is perfect if you want to scale your LinkedIn outreach without spending hours manually following users. The workflow is surprisingly straightforward once you see it in action.
Resources
- 🔗 Watch the tutorial: YouTube Link
- 📄 Download the code: Google Drive Link
- 📦 n8n Package: npm Link
n8n Workflow JSON
Here’s the full workflow used in this tutorial:
{
"name": "linkedIn-follow",
"nodes": [
{
"parameters": {},
"type": "n8n-nodes-base.manualTrigger",
"typeVersion": 1,
"position": [-656, -16],
"id": "ce53aec4-79fb-48f1-a263-6aa571721a85",
"name": "When clicking ‘Execute workflow’"
},
{
"parameters": {
"documentId": {
"__rl": true,
"value": "1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0",
"mode": "list"
},
"sheetName": { "__rl": true, "value": "gid=0", "mode": "list" },
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [-448, -16],
"id": "08a179b5-ae3e-471a-b7d8-c0e3157f7a77",
"name": "Get row(s) in sheet",
"credentials": {
"googleSheetsOAuth2Api": {
"id": "huQWJYfiSyR9zlJN",
"name": "Google Sheets account"
}
}
},
{
"parameters": {
"operation": "followUser",
"accountId": "68e8a6885da2306b99698d3e",
"profileId": "={{ $json['LinkedIn Url'] }}"
},
"type": "n8n-nodes-connectsafely-ai.connectSafelyLinkedIn",
"typeVersion": 1,
"position": [-240, -16],
"id": "26430981-d7ff-40df-b6d6-a26b954bad19",
"name": "ConnectSafely LinkedIn",
"credentials": {
"connectSafelyApi": {
"id": "jU5drIZXFXZkBvhB",
"name": "ConnectSafely account"
}
}
},
{
"parameters": {
"operation": "update",
"documentId": {
"__rl": true,
"value": "1mplIjFsFMOWMeYKr6z2Aq9ryKGhoVcBNd0e72t0z2P0",
"mode": "list"
},
"sheetName": { "__rl": true, "value": "gid=0", "mode": "list" },
"columns": {
"mappingMode": "defineBelow",
"value": {
"row_number": "={{ $('Get row(s) in sheet').item.json.row_number }}",
"Status": "done"
},
"matchingColumns": ["row_number"],
"schema": [
{ "id": "First Name", "displayName": "First Name", "type": "string" },
{ "id": "LinkedIn Url", "displayName": "LinkedIn Url", "type": "string" },
{ "id": "Tagline", "displayName": "Tagline", "type": "string" },
{ "id": "Status", "displayName": "Status", "type": "string" },
{ "id": "Message", "displayName": "Message", "type": "string" },
{ "id": "row_number", "displayName": "row_number", "type": "number", "readOnly": true }
]
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.7,
"position": [-32, -16],
"id": "b2036da6-c61e-42bd-959b-5a5b3ffafd3d",
"name": "Update row in sheet",
"credentials": {
"googleSheetsOAuth2Api": {
"id": "huQWJYfiSyR9zlJN",
"name": "Google Sheets account"
}
}
}
],
"connections": {
"When clicking ‘Execute workflow’": { "main": [[{ "node": "Get row(s) in sheet", "type": "main", "index": 0 }]] },
"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 }]] }
},
"active": false,
"settings": { "executionOrder": "v1" },
"id": "Vw2AtpXz7uY5wXWn",
"tags": []
}
I’m happy to answer any questions about the setup or help you get started with your own LinkedIn automation workflow!
Top comments (0)