🔓 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 to Google Sheets, emails filled in for you

Lisa Granqvist Partner Workflow Automation Expert

You finally have a list of LinkedIn profiles worth reaching out to… and then you hit the slow part. Opening tabs, hunting for an email, copying it somewhere, realizing you pasted it into the wrong row, and then doing it again.

This LinkedIn email lookup automation hits growth marketers first, but sales ops folks and agency lead gen teams feel it too. The outcome is simple: your Google Sheet gets filled with verified emails automatically, so your outreach list is usable without the cleanup marathon.

Below you’ll see exactly how the workflow runs in n8n, what it updates inside Google Sheets, and where Prospeo fits in so you can trust the data.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: LinkedIn to Google Sheets, emails filled in for you

The Problem: LinkedIn leads stall in messy spreadsheets

A Google Sheet full of LinkedIn URLs looks like progress, but it’s not a campaign yet. Someone still has to turn those profiles into contactable leads, and that “someone” is usually you, late in the day, bouncing between tabs. Manual email finding is slow, and it’s fragile. One missed row, one pasted email in the wrong line, one teammate editing the sheet at the same time, and your list quietly degrades. The worst part is the mental load: you can’t confidently launch outreach because you don’t trust what’s in the spreadsheet.

It adds up fast. Here’s where it breaks down.

  • You spend about 5 minutes per lead just to get an email into the right row.
  • Copy-paste mistakes create bad sends, bounces, and awkward follow-ups.
  • Lists go stale because you can’t keep enrichment running consistently.
  • Outreach gets delayed because the sheet needs “one more cleanup” before anyone can use it.

The Solution: Prospeo finds emails, n8n updates your sheet

This workflow turns your Google Sheet into an enrichment pipeline. On a schedule you control, n8n reads rows from your spreadsheet, checks that the important fields are present (including the LinkedIn URL), and then sends each profile to Prospeo’s LinkedIn Email Finder API via an HTTP request. Prospeo returns the matched email data, and n8n merges that result back into the right record. Finally, the workflow maps the fields you care about (email, and any profile attributes you’re keeping in the sheet) and writes updates into Google Sheets automatically. You wake up to a cleaner list instead of another admin task.

The workflow starts with a timed schedule trigger. From there, it pulls LinkedIn URLs from Google Sheets, validates each row, and calls Prospeo only when the data is usable. After the API response comes back, n8n merges the results and updates the same spreadsheet records so your list stays current.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you collect 40 LinkedIn profiles a day from campaigns, events, and inbound. Manually finding and pasting emails at about 5 minutes per lead is roughly 3 hours daily, and that’s before fixing mistakes. With this workflow, you drop the URLs into Google Sheets as usual, then let the scheduled run enrich them in the background. Your active time becomes a quick spot-check of results, maybe 10 minutes, while Prospeo and n8n do the rest.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Google Sheets to store leads and write emails back.
  • Prospeo for LinkedIn email matching via API.
  • Prospeo API key (get it from your Prospeo dashboard after subscribing).

Skill level: Beginner. You’ll connect accounts, paste an API key, and confirm which columns should be updated.

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

How It Works

A scheduled run kicks things off. n8n starts on a timer (every few minutes, hourly, daily, you choose) so enrichment happens consistently without someone remembering to do it.

Your sheet is pulled in and screened. The workflow reads rows from Google Sheets, then checks that key fields like the LinkedIn URL (and other profile fields you’re storing) aren’t empty before it spends API calls.

Prospeo gets the profile and returns email data. For valid rows, n8n sends an HTTP request to the Prospeo LinkedIn Email Finder endpoint using your API key, then collects the response and merges it back into the same stream of records.

Your spreadsheet gets updated in place. n8n maps the attributes you want and updates the correct Google Sheets row so the email lives next to the LinkedIn URL, ready for outreach tools, CRMs, or exports.

You can easily modify the required fields to match your sheet layout based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Schedule Trigger

This workflow starts on a timed schedule to pull LinkedIn profile links from a spreadsheet.

  1. Add the Scheduled Automation Start node as your trigger.
  2. Open Scheduled Automation Start and set the Rule interval to run every minutes as shown.
  3. Leave Flowpast Branding as a visual note (no configuration required).
If you want a less frequent run, switch the interval field to hours or days before enabling the workflow.

Step 2: Connect Google Sheets

These nodes read LinkedIn URLs and write enrichment results back to the spreadsheet.

  1. Open Retrieve Sheet Links and set Document to [YOUR_ID] and Sheet Name to gid=0.
  2. Credential Required: Connect your googleSheetsOAuth2Api credentials in Retrieve Sheet Links.
  3. Open Update Spreadsheet Records and confirm Operation is update, Document is [YOUR_ID], and Sheet Name is gid=0.
  4. Credential Required: Connect your googleSheetsOAuth2Api credentials in Update Spreadsheet Records.
⚠️ Common Pitfall: Make sure your sheet has an ID column that is unique; Update Spreadsheet Records matches rows using ID.

Step 3: Set Up Validation and API Enrichment

This step validates missing fields and calls the Prospeo API to enrich LinkedIn data. Validate Profile Fields outputs to both Combine Result Streams and LinkedIn Email Lookup API in parallel.

  1. Open Validate Profile Fields and verify the conditions check for empty values using expressions like ={{ $json.Name }}, ={{ $json.Gender }}, ={{ $json['Job Title'] }}, and ={{ $json.Summery }}, plus a notEmpty check for ={{ $json['Linkden URL'] }}.
  2. Open LinkedIn Email Lookup API and set URL to https://api.prospeo.io/linkedin-email-finder and Method to POST.
  3. In LinkedIn Email Lookup API, set Body Parameters to include url = ={{ $json['Linkden URL'] }} and id = ={{ $json.ID }}.
  4. Add the API header X-KEY with your value, replacing [CONFIGURE_YOUR_API_KEY].
  5. Keep Combine Result Streams set to Mode combine and Combination Mode mergeByPosition to align API responses with the source rows.
⚠️ Common Pitfall: The field name is Linkden URL (misspelled). Match it exactly in your sheet and expressions or the API call will fail.

Step 4: Configure Output Mapping and Spreadsheet Update

This step maps the API response into clean fields and writes them back to your spreadsheet.

  1. Open Map Profile Attributes and set Include to selected.
  2. Confirm each mapped field uses the provided expressions, for example Name = ={{ $json.response.full_name }}, Email = ={{ $json.response.email.email }}, and Location = ={{ $json.response.location.raw }}.
  3. In Update Spreadsheet Records, map columns to expressions like Email = ={{ $json.Email }}, Skills = ={{ $json.Skills }}, and Job Title = ={{ $json['Job Title'] }}.
  4. Leave Bypass Placeholder as-is; it serves as a passthrough for the alternate branch when validation fails.

Step 5: Test and Activate Your Workflow

Run a manual test to ensure the data enrichment flow works end-to-end before enabling the schedule.

  1. Click Execute Workflow to run a manual test from Scheduled Automation Start.
  2. Verify that LinkedIn Email Lookup API returns a response and that Combine Result Streams merges it with the original rows.
  3. Check your Google Sheet to confirm Update Spreadsheet Records writes values into columns like Email, Skills, and Location.
  4. Once successful, toggle the workflow to Active to run on the configured schedule.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Google Sheets permissions can block updates if you connected the wrong Google account. If rows aren’t changing, check the n8n credential and the sheet sharing 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.
  • Prospeo API keys can be invalid, expired, or tied to a plan limit. If the HTTP request starts returning errors, check the Prospeo dashboard and confirm you’re calling https://api.prospeo.io/linkedin-email-finder with the correct header.

Frequently Asked Questions

How long does it take to set up this LinkedIn email lookup automation?

About 30 minutes if your sheet and Prospeo account are ready.

Do I need coding skills to automate LinkedIn email lookup?

No. You’ll paste an API key and map a few Google Sheets columns.

Is n8n free to use for this LinkedIn email lookup 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 Prospeo API costs based on your subscription plan.

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 email lookup workflow for different sheet columns?

Yes, but you’ll want to do it carefully. Update the field mappings in the Map Profile Attributes (Set) step so n8n reads your LinkedIn URL column correctly and writes the email back to the right place. You can also change the checks in Validate Profile Fields if your sheet doesn’t store things like Summary or Job Title. Common tweaks include writing to a new “Email (verified)” column, skipping rows that already have an email, and adding a status column like “Enriched / Not found”.

Why is my Google Sheets connection failing in this workflow?

Usually it’s the wrong Google account or missing edit access to that spreadsheet. Reconnect the Google Sheets credential in n8n, then confirm the exact document and sheet name match what you configured. If it reads fine but won’t update, check if the sheet is protected or if your update step is pointing at the wrong key column for row matching.

How many leads can this LinkedIn email lookup automation handle?

A lot, within reason. On n8n Cloud, volume depends on your execution limits, and on self-hosted it depends on your server and how often you run the schedule. The bigger limiter is usually the Prospeo plan and API throughput, so most teams batch leads (for example, a few hundred per run) rather than trying to enrich a massive sheet in one go. If you’re processing thousands, use split-in-batches and add a simple status flag in the sheet so you don’t recheck the same rows.

Is this LinkedIn email lookup automation better than using Zapier or Make?

Often, yes. n8n makes it easier to run scheduled batch enrichment, add conditional checks before spending API calls, and handle merges back into the correct row without awkward workarounds. It also gives you a self-hosting option, which is handy if you’re running this every few minutes. Zapier or Make can still work if your list is small and you only need a simple “new row → enrich → update row” flow, but costs can climb as volume grows. If you’re unsure, Talk to an automation expert and describe your lead volume and sheet structure.

Once this is running, your sheet stops being a parking lot for LinkedIn URLs and starts acting like an actual lead list. Set it up once, then spend your time on targeting and messaging instead of spreadsheet babysitting.

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