Skip to main content

Send personalized LinkedIn connection requests with Google Sheets and Unipile

Workflow preview

Workflow preview
100%
Send personalized LinkedIn connection requests with Google Sheets and Unipile preview
Open on n8n.io

1. Workflow Overview

Send personalized LinkedIn connection requests automatically using n8n, Google Sheets, and Unipile — with built in safety limits, duplicate prevention, and full invitation tracking. Scale your Link...

Best for

  • Lead Nurturing automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.scheduletrigger, n8n-nodes-base.googlesheets, n8n-nodes-base.filter, n8n-nodes-base.limit, n8n-nodes-base.code, n8n-nodes-base.set, n8n-nodes-base.splitinbatches, n8n-nodes-base.httprequest

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Salman Mehboob.

Original n8n.io source

1.1 Workflow description

Title
Send personalized LinkedIn connection requests with Google Sheets and Unipile
Workflow name
Send personalized LinkedIn connection requests with Google Sheets and Unipile

Send personalized LinkedIn connection requests automatically using n8n, Google Sheets, and Unipile — with built-in safety limits, duplicate prevention, and full invitation tracking.


Scale your LinkedIn outreach without manually sending a single connection request. This workflow reads your leads from a Google Sheet, filters out already-contacted prospects, and sends each one a personalized connection note via LinkedIn — automatically, on a schedule, and safely within LinkedIn's limits.

Built for founders, sales teams, and recruiters who want consistent LinkedIn outreach without repetitive manual work. Every request is tracked back to your sheet with its invitation ID and status, making follow-up workflows easy to build on top.

Good to know

  • Unipile pricing is based on the number of connected accounts, not per API call or per message sent. The base plan starts at €49/$55 per month and includes up to 10 linked accounts
  • For this workflow, connecting one LinkedIn account counts as one account
  • Unipile does not enforce usage limits — you can send as many requests as you need. However, LinkedIn itself applies its own rate limits and usage policies
  • A 7-day free trial is available with all features included and no credit card required
  • LinkedIn has daily connection request limits — keep your total across all runs under 20 per day to avoid account restrictions
  • Already-contacted leads are automatically skipped on every future run — no risk of sending duplicate requests

How it works

  • Schedule Trigger runs the workflow automatically at your chosen frequency
  • All leads are fetched from your Google Sheet and filtered to only those with an empty connection_request_status column
  • A configurable Limit node caps how many requests go out per run to stay within LinkedIn's safe limits
  • A Code node extracts the LinkedIn username from each profile URL
  • All required data — username, connection note, and Unipile credentials — is bundled in the Data Arrangement node
  • The Loop node processes leads one by one, sending each through the full request flow individually
  • Unipile API resolves the LinkedIn username to an internal Provider ID required for sending invites
  • The connection request is sent with the personalized note pulled directly from your Google Sheet
  • The sheet is immediately updated with the invitation status and unique invitation ID
  • A Wait node pauses between each request to mimic human behavior and avoid LinkedIn restrictions
  • The loop continues until all leads in the current batch are processed

Set up steps

Step 1: Prepare Your Google Sheet

Create a sheet with these exact columns:

first_name | last_name | linkedin_url | connection_note | connection_request_status | invitation_id | row_number

  • Leave connection_request_status and invitation_id empty — the workflow fills these automatically
  • Write a personalized message per lead in the connection_note column

Step 2: Get Your Unipile Credentials

  • Sign up at unipile.com — a 7-day free trial is available with no credit card required
  • Connect your LinkedIn account from the Unipile dashboard
  • Copy your API Key, DSN, and LinkedIn Account ID
  • Open the Data Arrangement node and replace the three placeholder values with your credentials

Step 3: Connect Google Sheets

  • In n8n, go to Credentials → New Credential → Google Sheets OAuth2
  • Authenticate with the Google account that owns your leads sheet
  • Update the Get Leads and Update Connection Request Status and ID nodes to point to your sheet

Step 4: Set Your Safety Limits

  • Open the Limit Connection Request node — set max items per run (recommended: 10–15)
  • Open the Wait node — set your delay between requests (recommended: 3–5 minutes)
  • Open the Schedule Trigger — set your run frequency (recommended: every 4–8 hours)

Requirements

  • Unipile account with LinkedIn connected — starts at €49/$55/month for up to 10 accounts, 7-day free trial available
  • Google Sheet with lead data in the required column format
  • n8n instance (cloud or self-hosted)

Customising this workflow

  • Build a follow-up message workflow triggered when a connection is accepted, using the stored invitation_id
  • Replace the Schedule Trigger with a webhook to fire outreach from your CRM when a new lead is added
  • Add an AI node to auto-generate personalized connection notes from each lead's job title or company name
  • Add Slack or email notifications for a daily outreach summary
  • Add error handling nodes to catch failed API calls and log them in a separate sheet tab
  • Filter leads by industry, title, or location by adding extra conditions to the Filter node

For assistance and support: [email protected] Linkedin: https://www.linkedin.com/in/salman-mehboob-pro/

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Schedule Trigger

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.3

Block 2 - Get Leads

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 3 - Filter

Type / Role
n8n-nodes-base.filter - filter
Config choices
Version 2.3

Block 4 - Limit Connection Request

Type / Role
n8n-nodes-base.limit - limit
Config choices
Version 1

Block 5 - Get Linkedin Username

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 6 - Data Arrangement

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 7 - Loop Over Items

Type / Role
n8n-nodes-base.splitInBatches - splitInBatches
Config choices
Version 3

Block 8 - Get Linkedin Provider ID

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 9 - Send Connection Request

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 10 - Update Connection Request Status and ID

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.7

Block 11 - Wait

Type / Role
n8n-nodes-base.wait - wait
Config choices
Version 1.1

Block 12 - 📖 Setup Instructions

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 13 - 📥 Lead Collection Path

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 14 - ⚙️ Data Preparation

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 15 - 📨 Connection Request Loop

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 16 - ✅ Tracking & Updates

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Send personalized LinkedIn connection requests with Google Sheets and Unipile
Complexity advanced
Nodes 16
Categories Lead Nurturing
Author Salman Mehboob
Published 29 Mar 2026

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/14444/14444.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Send personalized LinkedIn connection requests with Google Sheets and Unipile do?

Send personalized LinkedIn connection requests automatically using n8n, Google Sheets, and Unipile — with built in safety limits, duplicate prevention, and full invitation tracking. Scale your Link...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Nurturing use case.