🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

LinkedIn + Google Sheets: scored leads, no duplicates

Lisa Granqvist Partner Workflow Automation Expert

Building a clean prospect list sounds simple until you’ve copied the same company into your sheet twice, lost the “why we liked them” notes, and realized half the rows were never a fit anyway.

This is where LinkedIn lead scoring automation pays off. Sales reps feel it first, but marketers running outbound experiments and agency owners doing prospecting for clients run into the same grind. You get a single Google Sheet that stays tidy, and a score you can actually use to prioritize outreach.

Below you’ll see exactly what the workflow does, what results to expect, and what you need to plug it into your own lead-gen process.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: LinkedIn + Google Sheets: scored leads, no duplicates

The Problem: LinkedIn research is slow, messy, and inconsistent

LinkedIn company research has a sneaky cost. It’s not the one search you do today, it’s the hundreds you do across a month, with tabs everywhere and a “temporary” spreadsheet that turns into your CRM. Someone adds “Acme Inc” while someone else adds “ACME” next week, and now your follow-ups split. Then you’re forced to re-check basics (industry, headcount, region) because the notes weren’t captured the same way. Honestly, the worst part is inconsistency. Two people can evaluate the same company and reach totally different conclusions.

The friction compounds. And it usually shows up right when you want to scale outreach.

  • Finding companies, opening profiles, and copying fields into a sheet can burn about 2 hours on a “light” prospecting day.
  • Duplicates creep in fast, so your outreach looks sloppy and your reporting becomes guesswork.
  • Lead quality depends on who did the research, which means your pipeline swings wildly week to week.
  • Teams delay outreach because they still need to “review the list,” and that review is basically redoing the work.

The Solution: LinkedIn company search → AI scoring → clean Google Sheets CRM

This n8n workflow replaces the whole “research, judge, paste, clean up” routine with one repeatable run. You start by defining what you want (industry, region, size, and whatever else matters) and the workflow searches LinkedIn companies for matches. For each company in the results, it pulls deeper details, checks basic qualification rules (so junk doesn’t move forward), and then asks OpenAI to score the company against your ideal customer profile. Before anything is written, it looks up the company in your Google Sheet and only appends new entries, so duplicates don’t pile up. The output is simple: a growing sheet of companies, with consistent fields and an AI score that helps you decide what to contact first.

The workflow starts with a manual trigger in n8n (or a webhook if you want to fire it from elsewhere). It collects a company list, loops through results in batches, enriches each record, and only then scores and appends the lead to Google Sheets. A short wait is included to keep API calls stable when you process many companies.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you want 40 new target accounts each week. Manually, if you spend about 6 minutes per company to search, open the profile, grab a few details, and paste them into Sheets, that’s roughly 4 hours. Then you usually lose another 30 minutes cleaning duplicates and fixing inconsistent fields. With this workflow, you trigger the run, let it loop through the list, and wait for the scores to land in your sheet; plan on roughly 15 minutes of setup time and background processing while you do something else. Your list is ready for outreach, not “ready for review.”

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets for your lightweight CRM spreadsheet.
  • OpenAI to score companies against your ICP.
  • Ghost Genius API key (get it from your Ghost Genius dashboard).

Skill level: Intermediate. You’ll connect credentials, adjust filters, and tweak a scoring prompt, but you won’t be writing code.

Don’t want to set this up yourself? Talk to an automation expert (free 15-minute consultation).

How It Works

You kick it off manually (or via webhook). In n8n, the workflow starts from a manual trigger, which is perfect for “run this when I need fresh accounts.” If you prefer, the same workflow structure can be triggered from another tool using a webhook.

Inputs define the hunt. A configuration step sets your search filters and qualification rules, like region, industry, and a follower count threshold. This is where you make the workflow match your ICP instead of pulling a random list.

LinkedIn companies are collected and processed in batches. The workflow calls LinkedIn search via HTTP, splits the results into individual company records, and loops through them in controlled batches so you can scale without everything timing out. It then fetches richer company details for each record.

Only qualified, non-duplicate companies get scored and saved. An “is this valid?” check filters out obvious misfits, then Google Sheets lookup checks if the company already exists. New entries go to OpenAI for lead scoring, a short wait helps keep rate limits calm, and finally the company is appended to your sheet.

You can easily modify the search filters and scoring rules to match your niche 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 to start the workflow on demand while you configure the rest of the pipeline.

  1. Add and open Manual Launch Trigger.
  2. Leave the default settings as-is (no parameters are required).
  3. Confirm the execution flow begins: Manual Launch TriggerConfigure Inputs.

Step 2: Connect the Primary API Source

Configure the input variables and connect the company search API used to pull the initial list of companies.

  1. Open Configure Inputs and set the fields to the exact values shown:
    • Your target = Growth Marketing Agency
    • B: 1-10 employees, C: 11-50 employees, D: 51-200 employees, E: 201-500 employees, F: 501-1000 employees, G: 1001-5000 employees, H: 5001-10,000 employees, I: 10,001+ employees = C
    • Location (Sales Navigator ID) = 103644278
    • Your product or service = our CRM implementation services
    • Positive indicators (3-5 specific factors that indicate a company might need your product) = - Mentions challenges with customer relationships or sales processes - Company is in growth phase with expanding client base - Mentions need for better data organization or customer insights - References marketing automation, sales pipelines, or customer retention
    • Negative indicators (3-5 specific factors that indicate a company might NOT need your product) = - Very small companies (1-5 employees) or extremely large enterprises - Already mentions using advanced CRM solutions - No indication of sales process or customer relationship management in description - Pure manufacturing or product-based business with minimal customer interaction - Non-profit or government entity with unique relationship management needs
  2. Open Retrieve Company List and set URL to https://api.ghostgenius.fr/v2/search/companies.
  3. Set Authentication to genericCredentialType and Generic Auth Type to httpHeaderAuth.
  4. Configure Query Parameters:
    • keywords = {{ $json['Your target'] }}
    • locations = {{ $json['Location (Sales Navigator ID)'] }}
    • company_size = {{ $json['B: 1-10 employees, C: 11-50 employees, D: 51-200 employees, E: 201-500 employees, F: 501-1000 employees, G: 1001-5000 employees, H: 5001-10,000 employees, I: 10,001+ employees'] }}
  5. Keep pagination settings in Retrieve Company List:
    • page = {{ $pageCount + 1 }}
    • maxRequests = 3, requestInterval = 2000
    • paginationCompleteWhen = other and completeExpression = {{ $response.body.data.isEmpty() }}

Credential Required: Connect your httpHeaderAuth credentials in Retrieve Company List.

Credential Required: Connect your httpHeaderAuth credentials in Fetch Company Details (used later in the flow).

Step 3: Set Up Record Splitting and Detail Enrichment

Split the API response into individual records, process in batches, and enrich each company profile.

  1. In Split Company Records, set Field to Split Out to data.
  2. Ensure Split Company Records outputs to Batch Loop Controller.
  3. In Batch Loop Controller, keep default batch settings and confirm the loop connects to Fetch Company Details.
  4. In Fetch Company Details, set URL to https://api.ghostgenius.fr/v2/company and Query Parameters to url={{ $json.url }}.
  5. Keep batching settings in Fetch Company Details at batchSize: 1 and batchInterval: 2000.

⚠️ Common Pitfall: If the Fetch Company Details API rate limits you, increase batchInterval beyond 2000 to reduce request frequency.

Step 4: Validate and De-Duplicate Companies

Filter out incomplete records, check for existing entries in Google Sheets, and decide whether to score the company.

  1. Open Validate Company Records and confirm the conditions:
    • {{ $json.website }} is not empty
    • {{ $json.followers_count }} is greater than 200
  2. Open Lookup Company In Sheet and confirm:
    • Document = CRM (ID 1LfhqpyjimLjyQcmWY8mUr6YtNBcifiOVLIhAJGV9jiM)
    • Sheet = Companies (gid 0)
    • Lookup Column = ID
    • Lookup Value = {{ $json.id }}
  3. In Determine New Entry, verify the condition:
    • {{ $('Lookup Company In Sheet').all().first().json }} is empty
  4. Confirm the flow: Validate Company RecordsLookup Company In SheetDetermine New EntryAI Lead Rating.

Credential Required: Connect your Google Sheets credentials in Lookup Company In Sheet.

Step 5: Set Up AI Scoring and Output to Sheets

Use the AI node to score companies and append qualified entries to your CRM sheet after a short wait.

  1. Open AI Lead Rating and set Model to gpt-4.1 with Temperature 0.2.
  2. Confirm the system message references these expressions:
    • {{ $('Configure Inputs').item.json['Your product or service'] }}
    • {{ $('Configure Inputs').item.json['Positive indicators (3-5 specific factors that indicate a company might need your product)'] }}
    • {{ $('Configure Inputs').item.json['Negative indicators (3-5 specific factors that indicate a company might NOT need your product)'] }}
  3. Confirm the user message references:
    • {{ $('Validate Company Records').item.json.name }}, {{ $('Validate Company Records').item.json.description }}, and {{ $('Validate Company Records').item.json.staff_count }}
  4. In Pause 3 Seconds, set Amount to 3 to throttle writes.
  5. Open Append Company to Sheet and confirm Operation is append with the following mappings:
    • ID = {{ $('Fetch Company Details').item.json.id }}
    • Name = {{ $('Fetch Company Details').item.json.name }}
    • Score = {{ $json.message.content.score }}
    • State = Qualified
    • Summary = {{ $('Fetch Company Details').item.json.description }}
    • Website = {{ $('Fetch Company Details').item.json.website }}
    • LinkedIn = {{ $('Fetch Company Details').item.json.url }}
  6. Verify the loop: AI Lead RatingPause 3 SecondsAppend Company to SheetBatch Loop Controller.

Credential Required: Connect your OpenAI credentials in AI Lead Rating.

Credential Required: Connect your Google Sheets credentials in Append Company to Sheet.

Step 6: Test and Activate Your Workflow

Run a manual test to verify the end-to-end enrichment loop, then activate for production use.

  1. Click Execute Workflow on Manual Launch Trigger to run a test.
  2. Confirm that Retrieve Company List returns data, then Split Company Records and Batch Loop Controller iterate through results.
  3. Verify that Validate Company Records filters records correctly and AI Lead Rating returns a JSON score.
  4. Check the Companies sheet in the CRM spreadsheet for new rows with State = Qualified.
  5. When the test is successful, switch the workflow to Active for ongoing use.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets credentials can expire or need specific permissions. If things break, check the n8n Credentials page and the target sheet’s sharing settings first.
  • If you’re using Wait nodes or external processing, 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 and your actual ICP rules early or you’ll be editing outputs forever.

Frequently Asked Questions

How long does it take to set up this LinkedIn lead scoring automation?

About 30 minutes if your accounts and sheet are ready.

Do I need coding skills to automate LinkedIn lead scoring?

No. You’ll mostly connect credentials and edit the inputs for your ICP and filters.

Is n8n free to use for this LinkedIn lead scoring workflow?

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 OpenAI API costs (usually a few cents per batch, depending on your prompt and volume).

Where can I host n8n to run this automation?

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.

Can I customize this LinkedIn lead scoring automation for my industry and ICP?

Yes, and you should. Update the “Configure Inputs” step to change industries, regions, and thresholds like follower count, then adjust the AI Lead Rating prompt to reflect your real ICP (deal size, tech stack, buyer, compliance needs). Many teams also add a “high score” branch that sends a Telegram alert or email when a company is worth immediate outreach.

Why is my Google Sheets connection failing in this workflow?

Usually it’s expired Google authorization or the sheet isn’t shared with the right account. Reconnect Google Sheets in n8n Credentials, then confirm the exact spreadsheet and worksheet names still match what the node expects. If you recently copied the template, double-check you selected the new file, not the old one.

How many company leads can this LinkedIn lead scoring automation handle?

Plenty for small teams, but the real limit is your plan and your API rate limits. On n8n Cloud, your monthly executions depend on your plan, and each company processed can consume multiple steps. If you self-host, you’re not capped by executions, but your server and the LinkedIn/Enrichment API will still throttle if you push too hard. In practice, most teams run this in batches of a few dozen to a few hundred companies per session and keep the built-in wait so it stays reliable.

Is this LinkedIn lead scoring automation better than using Zapier or Make?

For this kind of workflow, n8n is usually a better fit because you can loop through lists, add branching “if” rules, and self-host for volume without paying per tiny step. It’s also easier to keep your duplicate-check logic tight, since you control the flow from lookup to decision to write. Zapier and Make can still work if you’re doing a simple two-step “add row” flow, but they get awkward once you add batching and AI scoring. If you’re deciding which route makes sense for your team, Talk to an automation expert and you’ll get a clear answer fast.

Once this is running, your “prospecting” time stops being copy-paste time. The workflow keeps the list clean and the scoring consistent, so you can spend your energy on outreach that actually moves deals.

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.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal