🔓 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

Airtop + Google Sheets: verified LinkedIn URLs

Lisa Granqvist Partner Workflow Automation Expert

You’ve got a list of company domains, but no official LinkedIn pages. So you do the usual routine: click around the website, try LinkedIn search, then Google it, then second-guess the result. It’s slow. Worse, it’s easy to paste the wrong page into your sheet.

This LinkedIn URL automation hits hardest when you’re doing outreach at scale. SDRs feel it when they’re building lists. Marketing ops runs into it while cleaning data for reporting. Agency teams doing lead gen for clients deal with the same mess.

This workflow turns a plain company domain into a verified LinkedIn Company Page URL, then writes it back into Google Sheets cleanly. You’ll see how it finds the page, how it validates it, and what to check when results look off.

How This Automation Works

The full n8n workflow, from trigger to final output:

n8n Workflow Template: Airtop + Google Sheets: verified LinkedIn URLs

The Problem: Finding the “real” LinkedIn company page

“Find the LinkedIn page” sounds like a two-minute task until you do it 200 times. Company names collide, pages get duplicated, and search results happily serve “unofficial” pages, old brand names, or random directory profiles. Then your Google Sheet becomes a graveyard of almost-right links, and outreach looks sloppy. The worst part is the context switching: website → LinkedIn → Google → back to the sheet, over and over, while you’re trying to keep momentum.

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

  • Someone pastes a LinkedIn profile or job page instead of the official Company Page, and now the whole row is unusable for enrichment.
  • You end up spending about 5–10 minutes per company because the first result “looks right” but isn’t verified.
  • Your team gets inconsistent formatting (different URL structures, tracking parameters, redirects), which makes reporting and deduping a pain later.
  • When you scale list building, manual checks start slipping, so errors creep into outreach sequences and CRM records.

The Solution: Verify LinkedIn URLs from domains, automatically

This workflow takes a company domain (like company.com) and returns a verified LinkedIn Company Page link you can trust. It starts by launching an Airtop session using a LinkedIn-authenticated Airtop Profile, then tries the simplest path first: it visits the company website and looks for a LinkedIn link there. If the site doesn’t expose one, it switches strategies and searches LinkedIn directly for the company. Still nothing? It falls back to a Google search to find the most likely LinkedIn Company Page result. Finally, it validates that the chosen link is actually a LinkedIn company page and prepares clean output for your Google Sheet.

The workflow begins on a form submit trigger (or a sub-workflow invocation trigger if you call it from another automation). It normalizes the inputs, runs a “website first” lookup, then uses LinkedIn search and Google search only when needed. At the end, it merges the best candidate into one verified URL and formats it for storage.

What You Get: Automation vs. Results

Example: What This Looks Like

Say you’re cleaning a list of 200 company domains for an outreach sprint. Manually, even a “fast” process is about 6 minutes per company (website check, LinkedIn search, then a quick Google sanity check), which is roughly 20 hours of clicking. With this workflow, you submit the domains once (around 10 minutes to paste or import) and let Airtop do the searching and validation in the background. You still spot-check a few edge cases, but you get most of a workweek back.

What You’ll Need

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • Airtop to browse, search, and validate results.
  • Google Sheets to store domains and verified URLs.
  • Airtop API Key (get it from your Airtop dashboard)

Skill level: Intermediate. You’ll connect accounts, add credentials, and map a few fields, 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

A form (or another workflow) triggers the run. You submit a company domain and the Airtop Profile name that’s already logged into LinkedIn, so the workflow can search like a real user.

Inputs get normalized before anything else happens. n8n cleans the domain (formatting, stray protocols, whitespace) so your lookups don’t fail for silly reasons. This is one of those unglamorous steps that saves a lot of debugging later, honestly.

Airtop tries the “official link” path first. The workflow checks the company website for a LinkedIn URL, then validates that what it found is actually a LinkedIn Company Page and not some other LinkedIn route.

If that doesn’t work, it searches and validates in layers. Airtop runs a LinkedIn search, validates the best result, then falls back to a Google query if needed. After a final “LinkedIn presence” filter, the workflow runs a sub-workflow to finish processing and prepares clean output fields for Google Sheets.

You can easily modify the validation rules to match your definition of “verified” based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the Form Trigger

This workflow can start from a form submission or from a sub-workflow invocation. Configure both entry points so data is normalized consistently.

  1. Open Form Submit Trigger and set Form Title to Company LinkedIn.
  2. In Form Submit Trigger, add fields: Company domain (required) with placeholder company.com, and Airtop Profile (connected to Linkedin) (required).
  3. Set Form Description to =<p>This automation searches for a company's LinkedIn page.</p> <p>The automation requires an Airtop Profile name that is authenticated on Linkedin. Don't have one? Create a free Profile and log-in to X.</p>.
  4. Open Subflow Invocation Trigger and ensure Workflow Inputs include Company domain and Airtop Profile (connected to Linkedin) so the same flow can be called from other workflows.

Step 2: Set Up Input Normalization

Normalize raw inputs so downstream Airtop queries use consistent field names.

  1. In Normalize Inputs, add an assignment named Company domain with value {{ $json["Company domain"] }}.
  2. Add an assignment named Airtop Profile with value {{ $json["Airtop Profile (connected to Linkedin)"] }}.
  3. Confirm the execution flow: Form Submit TriggerNormalize Inputs and Subflow Invocation TriggerNormalize Inputs.

Step 3: Connect Airtop and Configure LinkedIn Lookups

These Airtop nodes extract LinkedIn URLs from the company website, LinkedIn search, and Google search.

  1. Open Website LinkedIn Lookup and set URL to {{ $json["Company domain"] }}.
  2. In Website LinkedIn Lookup, set Prompt to This is the webpage for a company. Search for the linkedin of the company, it is highly probable that it is in the footer. Return only the link and Profile Name to {{ $('Normalize Inputs').item.json["Airtop Profile"] }}.
  3. Open LinkedIn Results Search and set URL to https://www.linkedin.com/search/results/companies/?keywords={{ encodeURIComponent(['org','com','co','fr','us','uk','de','es','it','nl','ca','au','in','jp'].includes($('Normalize Inputs').item.json["Company domain"].split('.').at(-1)) ? $('Normalize Inputs').item.json["Company domain"].split('.')[0] : $('Normalize Inputs').item.json["Company domain"].split('.').join(" ") ) }}.
  4. In LinkedIn Results Search, set Prompt to This is Linked Search results. One of the first results should be the Linkedin Page of {{ $('Normalize Inputs').item.json["Company domain"] }} Return the Linkedin URL of the most likely page and nothing else. and Profile Name to {{ $('Normalize Inputs').item.json["Airtop Profile"] }}.
  5. Open Google Results Query and set URL to https://www.google.com/search?q={{ encodeURIComponent(`${$('Normalize Inputs').item.json["Company domain"]} LinkedIn`) }}.
  6. In Google Results Query, set Prompt to This is Google Search results. One of the first results should be the Linkedin Page of {{ $('Normalize Inputs').item.json["Company domain"] }} Return the Linkedin URL of the most likely page and nothing else. If can't find the URL return 'NA' A valid Linkedin profile URL starts with "https://www.linkedin.com/company/".
  7. For all three Airtop nodes, set Resource to extraction, Operation to query, and Session Mode to new.
  8. Credential Required: Connect your airtopApi credentials in Website LinkedIn Lookup, LinkedIn Results Search, and Google Results Query.

⚠️ Common Pitfall: Google Results Query has Profile Name set to =. Update this to a valid Airtop profile name if your Airtop account requires a profile for Google browsing.

Step 4: Configure Validation and Routing Logic

Validation nodes ensure only valid LinkedIn URLs continue through the workflow.

  1. In Validate Webpage Link, set the condition to check {{ $json.data.modelResponse }} contains linkedin.com/company.
  2. In Validate LinkedIn Result, set the condition to check {{ $json.data.modelResponse }} contains linkedin.com/company.
  3. In Check LinkedIn Presence, set the filter condition to check {{ $json.data.modelResponse }} contains linkedin.com/company.
  4. Confirm the routing: Website LinkedIn LookupValidate Webpage Link (true goes to Run Sub-Workflow (Configure Required), false goes to LinkedIn Results Search).
  5. Confirm the routing: LinkedIn Results SearchValidate LinkedIn Result (true goes to Check LinkedIn Presence, false goes to Google Results Query).
  6. Confirm the routing: Google Results QueryCheck LinkedIn PresenceRun Sub-Workflow (Configure Required).

Step 5: Configure Sub-Workflow Output and Final Response

The workflow passes validated results to a sub-workflow and then prepares the final output.

  1. Open Run Sub-Workflow (Configure Required) and select the target workflow in Workflow (required for execution).
  2. In Run Sub-Workflow (Configure Required), map inputs as follows: Company Domain to {{ $('Normalize Inputs').item.json["Company domain"] }}, Company LinkedIn to {{ $json.data.modelResponse }}, and Airtop Profile (connected to Linkedin) to {{ $('Normalize Inputs').item.json["Airtop Profile"] }}.
  3. In Prepare Output Data, set company_linkedin to {{ $json.company_linkedin }}.

Tip: Use the output of Prepare Output Data as the single response for API callers or downstream workflows to keep outputs consistent.

Step 6: Test and Activate Your Workflow

Validate the end-to-end flow before enabling production usage.

  1. Click Execute Workflow and submit the Form Submit Trigger with a real company domain and a valid Airtop profile name.
  2. Verify that Validate Webpage Link, Validate LinkedIn Result, and Check LinkedIn Presence pass only valid LinkedIn URLs.
  3. Confirm the sub-workflow runs by checking Run Sub-Workflow (Configure Required) output for the mapped fields.
  4. Check that Prepare Output Data outputs company_linkedin with the final LinkedIn URL.
  5. Toggle the workflow to Active to enable continuous use once the test run is successful.
🔒

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 and the Airtop Profile authentication status 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 access can fail if the sheet was moved or permissions changed. Confirm the n8n Google Sheets credential still has access to the exact spreadsheet ID you’re writing to.

Frequently Asked Questions

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

About 30 minutes if your Airtop profile is already logged into LinkedIn.

Do I need coding skills to automate LinkedIn URL automation?

No. You’ll mostly be connecting Airtop and Google Sheets credentials, then mapping input and output fields in n8n.

Is n8n free to use for this LinkedIn URL 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 based on your lookup 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 URL automation workflow for matching multiple domains from a Google Sheet?

Yes, but you’ll want to adjust the trigger and batching. Replace the form trigger with a Google Sheets trigger (or a scheduled trigger), then use the existing Loop Over Items (Split in Batches) pattern to process rows in chunks. Most teams also customize the “Normalize Inputs” step to read separate columns (domain, company name, country) and tighten validation when names are similar.

Why is my Airtop connection failing in this workflow?

Usually it’s an expired Airtop API key or an Airtop Profile that’s no longer authenticated with LinkedIn. Regenerate the key, update it in n8n, then open Airtop and confirm the profile is still logged in. If the account hit LinkedIn friction (checkpoint, captcha), you may need to complete a one-time login again before runs succeed.

How many domains can this LinkedIn URL automation automation handle?

A lot, as long as you batch it sensibly and your Airtop limits allow it. On n8n Cloud you’re mainly constrained by monthly executions, while self-hosting depends on your server. In practice, teams often run this in batches of a few hundred at a time so validation stays reliable.

Is this LinkedIn URL automation automation better than using Zapier or Make?

Often, yes, because this workflow has branching logic, fallbacks (website → LinkedIn → Google), and a validation loop that’s awkward in simpler builders. n8n also gives you self-hosting, which matters when you’re enriching big lists and don’t want every lookup billed as a premium step. Zapier or Make can still work if you only need a lightweight “search and paste” flow and you’re okay with occasional wrong links. The real differentiator is validation: this workflow is designed to reject bad page types, not just fetch the first hit. If you’re unsure, Talk to an automation expert and we’ll sanity-check your use case.

Once this is running, your sheet stays clean and your team stops playing detective for every single domain. Set it up, let it verify, and move on.

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