🔓 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

Apify + Google Sheets: scored LinkedIn leads fast

Lisa Granqvist Partner Workflow Automation Expert

Copying LinkedIn profiles into a spreadsheet looks harmless. Then you do it 40 times. Names get misspelled, company fields drift, and you lose the one detail that would have made the outreach personal.

Sales reps feel this every week. A recruiter chasing candidates does too. And if you run an agency, lead scoring automation is the difference between “we’ll follow up later” and having a clean pipeline you can act on.

This workflow takes a simple list of LinkedIn URLs, enriches each profile through Apify, calculates a lead score, then logs everything into Google Sheets so you can move faster without lowering your standards.

How This Automation Works

Here’s the complete workflow you’ll be setting up:

n8n Workflow Template: Apify + Google Sheets: scored LinkedIn leads fast

Why This Matters: LinkedIn Research Gets Messy Fast

LinkedIn prospecting has a hidden tax: context switching. You jump from a profile to a spreadsheet, back to a browser tab, then into another tool to guess an email format. After a while you’re not “researching,” you’re doing data entry with a sales title. And the worst part is how unreliable it becomes. Two people can research the same lead and log different titles, different company names, and different notes because the process is informal and rushed.

It adds up fast. Here’s where the friction compounds.

  • You spend about 5 minutes per profile just copying fields, which turns 50 leads into roughly 4 hours of grunt work.
  • Email guesses end up inconsistent, so outreach bounces or never gets sent at all.
  • Manual “lead quality” labeling drifts over time because everyone scores differently on different days.
  • Batch research is painful, which makes it hard to scale lists for campaigns or clients.

What You’ll Build: LinkedIn Enrichment + Lead Scoring to Sheets

This n8n workflow gives you a single place to drop LinkedIn URLs and get back CRM-ready lead rows. You can feed it new URLs from a Google Sheet, fire it manually when you want, or push them in via a webhook from another tool. Once a URL arrives, the workflow normalizes the input, optionally splits items into batches, and sends each profile to Apify through an HTTP request. The response gets transformed into clean fields like name, company, role, and other profile signals. Then it generates email pattern variations and calculates a lead score so you can prioritize outreach without “gut feel” scoring.

It starts with your URL list. Apify handles the heavy lift of profile extraction. Google Sheets becomes the living CRM table your team can filter, sort, and hand off to outreach.

What You’re Building

Expected Results

Say you’re enriching 30 LinkedIn profiles for a weekly outreach push. Manually, even a quick process is about 5 minutes per profile between copying fields and making an email guess, so that’s roughly 2.5 hours. With this workflow, you paste the 30 URLs into the input sheet (maybe 10 minutes), then let Apify + n8n process the batch while you do something else. When it’s done, you have a scored, standardized sheet ready to filter by “high quality” and start messaging.

Before You Start

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Apify for LinkedIn profile scraping and enrichment.
  • Google Sheets to store and review your scored leads.
  • Apify API token (get it from your Apify account settings).

Skill level: Intermediate. You’ll connect accounts, paste a few IDs/tokens, and test with sample LinkedIn URLs.

Want someone to build this for you? Talk to an automation expert (free 15-minute consultation).

Step by Step

A new LinkedIn URL shows up. That can happen because your Google Sheet is checked every 5 minutes, because you trigger it manually, or because another system calls the webhook with URLs.

Inputs get standardized. The workflow aggregates the different sources, then normalizes everything into one consistent format so the next steps don’t care where the URL came from.

Apify enriches the profile. n8n sends each LinkedIn URL via an HTTP request to Apify’s scraper, then transforms the response into neat columns like name, job title, company, and whatever signals your scoring uses.

Scored leads land in Google Sheets. If the route conditions are met, the workflow appends a new row to your CRM sheet and (for webhook calls) returns a success response so your sending system knows it worked.

You can easily modify the scoring rules to match your ICP, or change the input method from Google Sheets to webhook-only based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Trigger Types

Set up the three entry points so the workflow can accept manual runs, scheduled checks, and webhook submissions.

  1. Open Manual Launch Trigger and keep it available for on-demand testing.
  2. Open Scheduled Entry Check and define the schedule that should read new LinkedIn URLs from your sheet.
  3. Open Incoming Webhook Trigger and copy the webhook URL for external submissions.

Tip: Use the Incoming Webhook Trigger URL in your form, CRM, or integration that pushes LinkedIn profile URLs into this workflow.

Step 2: Connect Google Sheets

Both data retrieval and CRM updates rely on Google Sheets connections.

  1. Open Retrieve LinkedIn Links and connect your sheet that contains profile URLs.
  2. Open Append Sheets CRM and connect the sheet where normalized lead data should be appended.

Credential Required: Connect your Google Sheets credentials in both Retrieve LinkedIn Links and Append Sheets CRM.

Step 3: Set Up Input Aggregation and Normalization

This step consolidates incoming data and standardizes it before deciding how to process it.

  1. Open Aggregate Input Sources and confirm it merges data from Incoming Webhook Trigger, Manual Launch Trigger, and Retrieve LinkedIn Links.
  2. Open Normalize Input Data to ensure the output fields align with your expected LinkedIn URL schema.
  3. Open Batch Mode Check and define the condition that determines whether data should be processed as a batch or a single URL.

Tip: Batch Mode Check routes to Split URL Batch for batches or directly to LinkedIn Profile Request for single URLs.

Step 4: Configure LinkedIn Enrichment and Transformation

These nodes retrieve LinkedIn data and reshape it for your CRM sheet.

  1. Open Split URL Batch to ensure batched URLs are split into individual items.
  2. Open LinkedIn Profile Request and set the request details (URL, headers, and parameters) required by your LinkedIn data source or API.
  3. Open Transform Profile Data and map the response fields into the structure required by your CRM sheet.

⚠️ Common Pitfall: If the LinkedIn endpoint requires authentication, ensure headers or API keys are included in LinkedIn Profile Request or the request will fail.

Step 5: Configure Output Routing and Response

Route valid data to your CRM sheet and return a webhook response.

  1. Open Route to Sheets and define the condition that decides if data should be appended to CRM.
  2. Open Append Sheets CRM and confirm the append settings match your target sheet columns.
  3. Open Return Success Response to configure the response payload for webhook-based submissions.

Step 6: Test and Activate Your Workflow

Verify each trigger and ensure the full flow completes successfully before activating it.

  1. Click Execute Workflow from Manual Launch Trigger to test the full pipeline.
  2. Send a sample payload to Incoming Webhook Trigger and confirm it reaches Return Success Response.
  3. Check that Append Sheets CRM adds a new row with transformed LinkedIn data.
  4. Once validated, toggle the workflow to Active to enable scheduled and webhook processing in production.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Troubleshooting Tips

  • Apify credentials can expire or the token may not have access to the right actor. If things break, check your Apify API token and actor settings 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.
  • Google Sheets append failures are usually permissions or a wrong spreadsheet ID. Confirm the n8n Google Sheets credential has access to the exact file and tab you referenced.

Quick Answers

What’s the setup time for this lead scoring automation?

About 30 minutes if your Apify token and Google Sheet are ready.

Is coding required for this lead scoring automation?

No. You’ll mostly connect accounts and paste in the Apify token and Google Sheets IDs.

Is n8n free to use for this lead scoring automation 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 Apify usage costs based on how many profiles you scrape.

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 modify this lead scoring automation workflow for different use cases?

Yes, and you should. The easiest place to adjust behavior is in the “Transform Profile Data” and “Aggregate Input Sources” code steps, where fields are mapped and the score is calculated. Common tweaks include changing what counts as a senior title, weighting connection count differently, and adding location or industry rules. You can also swap the input method: keep Google Sheets for a simple team workflow, or go webhook-first if you’re feeding URLs from a form, CRM, or enrichment queue.

Why is my Apify connection failing in this workflow?

Usually it’s an invalid or expired API token, so regenerate it in Apify and update the HTTP Request node in n8n. It can also be the wrong Apify actor/scraper configuration, or Apify throttling when you push a big batch at once. If only some URLs fail, check that they are full LinkedIn profile URLs and not shortened links.

What volume can this lead scoring automation workflow process?

If you self-host n8n, there’s no execution cap (it mainly depends on your server and Apify limits), and most teams run batches of a few dozen to a few hundred profiles without drama.

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

Often, yes. This workflow has multiple triggers (sheet schedule, manual, webhook), branching logic, batching, and custom transformation logic, which is exactly where Zapier-style “two-step zaps” start getting awkward or expensive. n8n also gives you the self-hosting option, which is a big deal if you plan to process lots of leads every month. That said, if your process is simply “URL in, row out” and you’ll never change scoring, a simpler tool can be fine. If you want a second opinion on what fits your stack, Talk to an automation expert.

Once this is running, your “research” time stops being data entry and starts being decision-making. The workflow handles the repetitive parts so you can focus on outreach that actually converts.

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