{
  "name": "Send personalized LinkedIn connection requests with Google Sheets and Unipile",
  "nodes": [
    {
      "id": "09a7c560-e540-4643-ad75-d1af11dcd7ed",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1248,
        304
      ]
    },
    {
      "id": "9ab7d97d-4358-4e21-9e2a-d9e70eecbea6",
      "name": "Get Leads",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1456,
        304
      ]
    },
    {
      "id": "406ea666-cf94-46a8-a8e4-caa3ebd4a5c9",
      "name": "Filter",
      "type": "n8n-nodes-base.filter",
      "position": [
        1648,
        304
      ]
    },
    {
      "id": "e499cc36-ed44-42d1-94c5-de8117f99ecc",
      "name": "Limit Connection Request",
      "type": "n8n-nodes-base.limit",
      "position": [
        1824,
        304
      ]
    },
    {
      "id": "29311348-574e-4c90-9496-a6deca605334",
      "name": "Get Linkedin Username",
      "type": "n8n-nodes-base.code",
      "position": [
        2080,
        304
      ]
    },
    {
      "id": "4fb137da-fe83-4ad4-a090-7d43992257f1",
      "name": "Data Arrangement",
      "type": "n8n-nodes-base.set",
      "position": [
        2352,
        304
      ]
    },
    {
      "id": "32de3e00-855b-4738-81be-8869af3000ba",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        2592,
        304
      ]
    },
    {
      "id": "5074fbd6-a232-4e95-af39-b48df19384d9",
      "name": "Get Linkedin Provider ID",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2864,
        320
      ]
    },
    {
      "id": "2777a601-7dd8-407c-b949-24e741f180fb",
      "name": "Send Connection Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        3136,
        320
      ]
    },
    {
      "id": "634e66be-9e37-4cae-bf99-637538794a9e",
      "name": "Update Connection Request Status and ID",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        3344,
        320
      ]
    },
    {
      "id": "b5588ed4-5802-4b53-92ff-ba0e3206c358",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        3600,
        320
      ]
    },
    {
      "id": "6da65c08-5492-42c3-8815-ccc9aab317da",
      "name": "📖 Setup Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        656,
        -320
      ],
      "parameters": {
        "width": 500,
        "height": 820,
        "content": "# 🔗 LinkedIn Auto Connection Request\n**Automated LinkedIn outreach — personalized, safe, and trackable.**\n\n### 🎯 What This Workflow Does:\n✅ Reads leads from Google Sheets\n✅ Filters out already-contact"
      }
    },
    {
      "id": "a99c390c-053c-43bc-98a2-2f79f28a972f",
      "name": "📥 Lead Collection Path",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1200,
        -144
      ],
      "parameters": {
        "width": 760,
        "height": 640,
        "content": "## 📥 LEAD COLLECTION & FILTERING\n\n**Pulls leads from Google Sheets and prepares them for outreach.**\n\n### 🔄 Flow:\n1️⃣ **Schedule Trigger** — Runs on your set schedule\n2️⃣ **Get Leads** — Reads all row"
      }
    },
    {
      "id": "8e4edf7a-df26-4243-833c-ea2782328793",
      "name": "⚙️ Data Preparation",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2000,
        -224
      ],
      "parameters": {
        "width": 540,
        "height": 724,
        "content": "## ⚙️ DATA PREPARATION\n\n**Extracts the LinkedIn username and arranges all data needed for the API calls.**\n\n### 🔄 Flow:\n1️⃣ **Get LinkedIn Username** — Parses the username from the LinkedIn URL\n   - I"
      }
    },
    {
      "id": "4cd20a6e-04e1-4351-985f-67cef7dde723",
      "name": "📨 Connection Request Loop",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2576,
        -112
      ],
      "parameters": {
        "width": 820,
        "height": 608,
        "content": "## 📨 CONNECTION REQUEST LOOP\n\n**Sends connection requests one by one with a delay between each.**\n\n### 🔄 Flow:\n1️⃣ **Loop Over Items** — Processes leads one at a time\n2️⃣ **Get LinkedIn Provider ID** "
      }
    },
    {
      "id": "6a329601-d7e7-4b78-96fe-f710a8aae766",
      "name": "✅ Tracking & Updates",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3408,
        -160
      ],
      "parameters": {
        "width": 432,
        "height": 660,
        "content": "## ✅ TRACKING & STATUS UPDATE\n\n**Keeps your Google Sheet up to date after every request.**\n\n### 📝 What Gets Written Back:\n| Column | Value |\n|---|---|\n| `connection_request_status: ` | `UserInvitation"
      }
    }
  ],
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter": {
      "main": [
        [
          {
            "node": "Limit Connection Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Leads": {
      "main": [
        [
          {
            "node": "Filter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Get Linkedin Provider ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Data Arrangement": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Leads",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Linkedin Username": {
      "main": [
        [
          {
            "node": "Data Arrangement",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send Connection Request": {
      "main": [
        [
          {
            "node": "Update Connection Request Status and ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Linkedin Provider ID": {
      "main": [
        [
          {
            "node": "Send Connection Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limit Connection Request": {
      "main": [
        [
          {
            "node": "Get Linkedin Username",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Connection Request Status and ID": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}