🔓 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, consistent ICP scoring

Lisa Granqvist Partner Workflow Automation Expert

Your lead list looks “fine” until you actually try to qualify it. Domains with no context. LinkedIn URLs pasted inconsistently. Notes scattered across tabs. Then you waste a chunk of your week arguing about what “good fit” even means.

This is where ICP scoring automation pays off. Sales Ops feels it first, but growth marketers and agency owners doing outbound feel the drag too. You get a clean, enriched company record and a consistent ICP score that’s the same every time.

This workflow turns a company domain into a verified LinkedIn profile, pulls structured company data via Airtop, scores it, and drops the results into Google Sheets so reviews are fast and repeatable.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: LinkedIn to Google Sheets, consistent ICP scoring

The Problem: Inconsistent enrichment and “vibes-based” ICP scoring

Qualifying companies sounds simple until you’re doing it at volume. Someone copies a domain into a sheet, someone else hunts for the LinkedIn page, and a third person pulls employee count, location, and “what they do” from whatever snippet they can find. Then the scoring happens in someone’s head. A week later, the same account gets re-checked and magically becomes a different score because the inputs were missing, outdated, or interpreted differently. Honestly, it’s not just slow. It’s noisy.

It adds up fast. Here’s where it breaks down in real teams:

  • Finding the right LinkedIn company page is a recurring time sink, especially when names are generic or brands have multiple pages.
  • Manual enrichment creates uneven data, which means filtering and segmentation in Sheets becomes unreliable.
  • Scoring rubrics drift because people apply them differently, so prioritization becomes a debate instead of a decision.
  • When you finally review the list, you’re re-researching basics instead of acting on clear, comparable scores.

The Solution: Domain-to-LinkedIn enrichment with consistent ICP scoring

This n8n workflow takes a simple input (a company domain) and turns it into a structured, scored company record you can trust. It starts when you submit a domain through a form trigger or send it from an upstream workflow. The automation normalizes the input, checks if you already provided a LinkedIn company URL, and validates that URL if it exists. If it’s missing, it runs sub-workflows that locate the correct LinkedIn company profile (using website scraping or search) and then uses Airtop (authenticated to LinkedIn) to extract key company details. Finally, it applies your ICP scoring rubric and merges everything into one unified JSON-style output that’s ready to save into Google Sheets or pass to the next enrichment step.

The workflow begins with clean inputs, then it branches based on LinkedIn presence. Airtop pulls consistent fields from the company profile, and the merge step combines enrichment plus scoring so every row in Google Sheets has the same shape.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you qualify 50 companies from a webinar list each week. Manually, a quick LinkedIn search plus copying basics into Google Sheets is maybe 5 minutes per company, and scoring adds another 3 minutes. That’s about 6–7 hours of repetitive work. With this workflow, submitting a domain takes under a minute, then the enrichment and scoring runs in the background (often a few minutes depending on LinkedIn retrieval). You still review the results, but you’re reviewing instead of researching.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Airtop for LinkedIn-authenticated data extraction
  • Google Sheets to store enriched, scored rows
  • Airtop API Key (get it from your Airtop dashboard)

Skill level: Intermediate. You’ll connect credentials, map fields, and configure the required sub-workflows.

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

How It Works

A domain (and optional LinkedIn URL) triggers the run. You can start it from the built-in form trigger, or send the same input from an upstream workflow when a new company enters your pipeline.

Inputs get cleaned so downstream steps behave. The workflow normalizes the domain, then checks whether a LinkedIn company URL is already present. If it is, it validates the URL so you don’t enrich the wrong page by accident.

LinkedIn data is gathered through Airtop. If the LinkedIn page wasn’t provided, sub-workflows attempt to locate it (commonly via website scraping or search). Then Airtop extracts fields like company name, tagline, location, employee count, and a plain-English “about” section that’s actually usable for qualification.

Scoring and output are merged for a single record. The workflow applies your ICP rubric (AI/tech orientation, scale, agency status, geography), attaches score justifications, and combines everything into one structured output that can be written to Google Sheets.

You can easily modify the scoring rubric to match your ICP model based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

Set up the public form entry point and the upstream workflow trigger so this flow can run from a form or another workflow.

  1. Open Form Entry Trigger and set Form Title to LinkedIn Company Profile Extractor.
  2. In Form Entry Trigger, confirm the fields: Company domain (required), Airtop Profile (connected to Linkedin) (required), and Company LinkedIn.
  3. Set Form Description to =<h2>Find Company LinkedIn URL</h2> <p>This automation takes a company domain and returns its LinkedIn URL.</p> .
  4. Open Upstream Workflow Trigger and confirm workflow inputs include Company domain, Airtop Profile (connected to Linkedin), and Company LinkedIn.

Step 2: Normalize and Check Input Data

Standardize field names and validate that LinkedIn data is present before sub-workflows run.

  1. In Normalize Inputs, set company_domain to ={{ $json["Company domain"] }}.
  2. In Normalize Inputs, set airtop_profile to ={{ $json["Airtop Profile (connected to Linkedin)"] }}.
  3. In Normalize Inputs, set company_linkedin to ={{ $json["Company LinkedIn"] }}.
  4. In Check LinkedIn Presence, keep the condition: string notEmpty with Left Value ={{ $json.company_linkedin }}.
  5. In Validate LinkedIn URL, keep the condition: string contains with Left Value ={{ $json.company_linkedin }} and Right Value linkedin.com/company.

⚠️ Common Pitfall: If Company LinkedIn is empty, Check LinkedIn Presence routes to Run Sub-Workflow (Configure Required) A instead of validation. Make sure the field is optional only if you want auto-enrichment.

Step 3: Configure Sub-Workflow Execution

Each Execute Workflow node must be connected to an existing workflow and mapped to the correct input values.

  1. Open Run Sub-Workflow (Configure Required) A and select the target workflow in Workflow.
  2. In Run Sub-Workflow (Configure Required) A, set inputs: Company domain to ={{ $('Normalize Inputs').item.json.company_domain }} and Airtop Profile (connected to Linkedin) to ={{ $('Normalize Inputs').item.json.airtop_profile }}.
  3. Open Run Sub-Workflow (Configure Required) B and select the target workflow in Workflow.
  4. In Run Sub-Workflow (Configure Required) B, set inputs: airtop_profile to ={{ $('Normalize Inputs').item.json.airtop_profile }} and company_linkedin to ={{ $json.company_linkedin }}.
  5. Open Run Sub-Workflow (Configure Required) C and select the target workflow in Workflow.
  6. In Run Sub-Workflow (Configure Required) C, set inputs: airtop_profile to ={{ $('Normalize Inputs').item.json.airtop_profile }} and company_linkedin to ={{ $json.company_linkedin }}.

⚠️ Common Pitfall: The workflow selectors for all three Execute Workflow nodes are empty. You must choose a workflow before this flow can run.

Step 4: Merge Results from Parallel Branches

Combine outputs from multiple parallel paths into a single result stream.

  1. Confirm Validate LinkedIn URL outputs to Run Sub-Workflow (Configure Required) B, Combine Results, and Run Sub-Workflow (Configure Required) C in parallel.
  2. Open Combine Results and set Number of Inputs to 3 to match the three incoming branches.

Validate LinkedIn URL outputs to both Run Sub-Workflow (Configure Required) B and Run Sub-Workflow (Configure Required) C in parallel, while also sending data directly to Combine Results.

Step 5: Test and Activate Your Workflow

Run a full test from the form or an upstream workflow, then enable for production use.

  1. Click Execute Workflow and submit a sample form entry in Form Entry Trigger with a valid domain and LinkedIn URL.
  2. Verify that Normalize Inputs produces company_domain, airtop_profile, and company_linkedin values.
  3. Confirm that Check LinkedIn Presence routes correctly and that Validate LinkedIn URL only passes URLs containing linkedin.com/company.
  4. Check that outputs from Run Sub-Workflow (Configure Required) B and Run Sub-Workflow (Configure Required) C appear in Combine Results.
  5. Toggle the workflow to Active when the test run completes successfully.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Common Gotchas

  • Airtop credentials can expire or need specific permissions. If things break, check your Airtop API key status and LinkedIn-authenticated Airtop Profile 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

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

About an hour if your Airtop profile is already connected to LinkedIn.

Do I need coding skills to automate ICP scoring?

No. You will mostly connect accounts and map fields. The only “technical” part is configuring the required sub-workflows once.

Is n8n free to use for this ICP 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 Airtop usage costs based on your 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 ICP scoring automation workflow for my own rubric?

Yes, but plan to do it thoughtfully. You can adjust the scoring inside the “Run Sub-Workflow (Configure Required)” pieces that calculate classifications and the ICP score, then keep the “Combine Results” merge output the same. Common tweaks include changing geography rules, adding an “industry fit” factor from the LinkedIn about section, and weighting employee count brackets differently. If you keep the output fields consistent, your Google Sheets columns won’t break later.

Why is my Airtop connection failing in this workflow?

Usually it’s an expired Airtop API key or the Airtop Profile is no longer authenticated to LinkedIn. Regenerate the key in Airtop, update it in n8n, and confirm the LinkedIn session is still valid. If the LinkedIn URL validation passes but extraction fails, it can also be a permissions issue on the Airtop side or a temporary block that requires slowing down runs.

How many companies can this ICP scoring automation handle?

It depends on your n8n plan and how fast LinkedIn extraction runs, but most teams comfortably process a few hundred companies a day when they batch it.

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

For this use case, n8n is usually the better fit because you can branch, validate, and merge multi-step enrichment without paying extra for every conditional path. It also supports self-hosting, which means high-volume scoring doesn’t turn into a surprise bill. Zapier or Make can still work if you’re doing a simpler “domain in, row out” flow with minimal enrichment. The tradeoff is flexibility: the moment you add sub-workflows and validation logic, n8n feels less fragile. Talk to an automation expert if you want help choosing.

Once your enrichment and scoring are consistent, the whole lead review process gets calmer. Set it up, run it in the background, and focus on the accounts that actually deserve attention.

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

💬
Launch login modal Launch register modal