Google Sheets to LinkedIn, follows tracked automatically
Following LinkedIn profiles “later” sounds simple. Then you open 40 tabs, lose track of who you already followed, and someone on your team duplicates the work anyway.
This LinkedIn follow automation hits sales reps hardest, but recruiters and growth-focused marketers feel it too. You will follow profiles straight from Google Sheets and keep each row’s status updated, so your list stays clean and your outreach stays consistent.
Below you’ll see how the workflow runs in n8n, what it automates, and what you need to get it running without turning this into a technical project.
How This Automation Works
The full n8n workflow, from trigger to final output:
n8n Workflow Template: Google Sheets to LinkedIn, follows tracked automatically
flowchart LR
subgraph sg0["When clicking 'Execute workflow' Flow"]
direction LR
n0@{ icon: "mdi:play-circle", form: "rounded", label: "When clicking 'Execute workf..", pos: "b", h: 48 }
n1@{ icon: "mdi:database", form: "rounded", label: "Get row(s) in sheet", pos: "b", h: 48 }
n2@{ icon: "mdi:cog", form: "rounded", label: "ConnectSafely LinkedIn", pos: "b", h: 48 }
n3@{ icon: "mdi:database", form: "rounded", label: "Update row in sheet", pos: "b", h: 48 }
n1 --> n2
n2 --> n3
n0 --> n1
end
%% Styling
classDef trigger fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
classDef aiModel fill:#e8eaf6,stroke:#3f51b5,stroke-width:2px
classDef decision fill:#fff8e1,stroke:#f9a825,stroke-width:2px
classDef database fill:#fce4ec,stroke:#c2185b,stroke-width:2px
classDef api fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef code fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef disabled stroke-dasharray: 5 5,opacity: 0.5
class n0 trigger
class n1,n3 database
The Problem: LinkedIn following doesn’t scale when it’s manual
Manual LinkedIn “follow” work is deceptively draining. You start with a tidy spreadsheet of prospects, attendees, or competitor accounts. Then the clicking begins: open profile, confirm it’s the right person, hit Follow, go back, mark the sheet, repeat. Do it for long enough and you’ll make mistakes, like skipping rows, following the wrong profile, or forgetting to update status. Worse, when multiple people share the same list, duplicates happen and you don’t notice until someone asks why the numbers don’t match.
The friction compounds. Here’s where it breaks down in real teams.
- People lose their place in the sheet after a break, which turns “quick task” into a cleanup session.
- Status updates get skipped, so you can’t trust the list when you come back tomorrow.
- Following 200 profiles becomes a half-day chore because every row requires the same tiny set of actions.
- Team-based networking is messy because two people can follow the same lead without realizing it.
The Solution: Follow from Google Sheets and write back status
This workflow turns your Google Sheet into a simple queue. You keep your list of LinkedIn profile URLs in one column, set rows to “pending,” and run the automation. n8n pulls the pending rows, sends each profile to ConnectSafely.ai’s LinkedIn action (a platform-compliant way to automate the follow), then updates the same row to “done.” It’s not trying to “growth hack” LinkedIn. It’s doing the boring part reliably, so your team stops wasting attention on tracking and repetition. When you rerun it later, it continues from whatever is still pending, which is honestly the most underrated benefit.
The workflow starts when you manually launch it (or schedule it). Google Sheets provides the next batch of pending profiles. ConnectSafely.ai performs the follow action, then n8n writes “done” back to the correct row_number so you always know what happened.
What You Get: Automation vs. Results
| What This Workflow Automates | Results You’ll Get |
|---|---|
|
|
Example: What This Looks Like
Say your team wants to follow 150 event attendees in a week. Manually, assume about 1 minute per person to open the profile, confirm, click Follow, then mark the row as done. That’s roughly 2.5 hours of repetitive work, and it usually gets split across days (which is where rows get missed). With this workflow, you spend about 10 minutes preparing the sheet and launching the run, then n8n processes the queue and updates every row automatically. You mostly just check the “done” column and move on.
What You’ll Need
- n8n instance (try n8n Cloud free)
- Self-hosting option if you prefer (Hostinger works well)
- Google Sheets to store your follow queue and statuses
- ConnectSafely.ai to run compliant LinkedIn follow actions
- ConnectSafely.ai API key (get it from Dashboard → Settings → API Keys)
Skill level: Beginner. You’ll connect accounts, map a few fields, and test on a small batch first.
Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).
How It Works
You trigger the run manually (or on a schedule). In the provided workflow, a manual launch starts the process, which is great for testing. Many teams later swap in a Schedule Trigger so it runs daily or a few times per week.
Google Sheets provides the queue. n8n pulls rows from your sheet, ideally filtered to only “pending,” and keeps the row_number available so updates go back to the right place.
ConnectSafely.ai follows each LinkedIn profile. Each row’s LinkedIn URL is passed into the Follow a User action. This removes the repetitive clicking while staying focused on a single, trackable action.
The workflow writes status back to your sheet. After each follow attempt, the matching row is updated to “done,” which means reruns automatically pick up where you left off.
You can easily modify the Status values (like “queued,” “in progress,” “done,” “failed”) to match your team’s process based on your needs. See the full implementation guide below for customization options.
Step-by-Step Implementation Guide
Step 1: Configure the Manual Trigger
Set up the manual trigger that starts the workflow and connects into the data retrieval step.
- Add the Manual Launch Start node as your trigger.
- Connect Manual Launch Start to Retrieve Sheet Rows to match the execution flow.
- Optionally keep the Flowpast Branding sticky note as documentation for the workflow.
Step 2: Connect Google Sheets
Configure the data source that feeds LinkedIn profile URLs into the workflow.
- Open Retrieve Sheet Rows and set Document to
[YOUR_ID]. - Set Sheet to
Sheet1(gid0). - Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Sheet Rows.
- In Modify Sheet Status, set Document to
[YOUR_ID]and Sheet toSheet1. - Credential Required: Connect your googleSheetsOAuth2Api credentials in Modify Sheet Status.
LinkedIn Url column, the LinkedIn action will not receive a profile ID.Step 3: Set Up LinkedIn Follow Action
Configure the LinkedIn follow operation using the URL pulled from each row.
- Open LinkedIn Follow Action and set Account ID to
[YOUR_ID]. - Set Operation to
followUser. - Set Profile ID to
{{ $json['LinkedIn Url'] }}. - Credential Required: Connect your connectSafelyApi credentials in LinkedIn Follow Action.
Step 4: Configure Output Update to Google Sheets
Update each processed row with a status to mark successful follow actions.
- Open Modify Sheet Status and confirm Operation is set to
update. - In Columns, set Status to
done. - Set row_number to
{{ $('Retrieve Sheet Rows').item.json.row_number }}to match the correct row. - Ensure Matching Columns includes
row_number.
row_number is not returned by Retrieve Sheet Rows, the update will fail. Ensure the node returns row metadata.Step 5: Test and Activate Your Workflow
Run a manual test to validate the data flow and LinkedIn follow action before going live.
- Click Execute Workflow in n8n to run Manual Launch Start manually.
- Verify that Retrieve Sheet Rows outputs rows with a
LinkedIn Urlfield. - Confirm LinkedIn Follow Action executes successfully for each profile.
- Check Modify Sheet Status updates the
Statuscolumn todonein your sheet. - Once validated, save and activate the workflow for production use.
Common Gotchas
- Google Sheets credentials can expire or need specific permissions. If things break, check your Google OAuth connection inside n8n’s Credentials page first.
- If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
- Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.
Frequently Asked Questions
About 30 minutes if your Google Sheet is ready and you already have your ConnectSafely.ai API key.
No. You’ll mainly connect accounts and map the LinkedIn URL field from your sheet into the follow action.
Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in ConnectSafely.ai costs (based on your account and usage).
Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.
Yes, but you’ll need to swap the ConnectSafely LinkedIn node operation from “Follow a User” to the appropriate connection/invite action (if available in your ConnectSafely.ai package). Common customizations include adding a “failed” status, writing an error message back to the sheet, and inserting delays when you’re working through 500+ profiles. If you later decide to personalize invites, you can also map First Name and Tagline from your sheet into the message fields (when that operation is enabled). Test on 5 rows first, not 500.
Usually it’s an invalid or expired API key, so regenerate it in the ConnectSafely.ai dashboard and update the credential in n8n. Also confirm you copied the correct Account ID from the Accounts section. If the profile input is malformed, pass the full LinkedIn URL (not a partial path) and retry a single row to confirm it works.
A lot, but you should batch it. On n8n Cloud, your monthly execution limit depends on your plan, while self-hosting has no fixed execution cap (it depends on your server). In practice, teams often run this in batches of a few hundred and add delays if they’re processing big lists.
For LinkedIn actions specifically, n8n is usually the better fit because you can run community nodes like ConnectSafely.ai, control batching, and write back to Google Sheets with precise row updates. Zapier and Make can move data around, sure, but LinkedIn-native actions are limited and you’ll often hit a wall quickly. n8n also gives you the option to self-host, which matters when you run this regularly. The tradeoff is setup: you’ll spend a little more time up front. If you’re unsure, Talk to an automation expert and get a straight recommendation.
Your sheet becomes the queue, the workflow does the follow + tracking, and you stop babysitting the process. Set it up once, then let consistency be automatic.
Need Help Setting This Up?
Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.