1. Opening Problem Statement
Meet Sarah, a sales manager at a fast-growing AI startup. Every week, Sarah spends countless hours manually reviewing LinkedIn profiles of potential clients to gauge whether they fit her company’s ideal customer profile (ICP). She needs to understand key details like job title, company, seniority, and especially the person’s interest level in AI. This manual process is time-consuming, error-prone, and wastes precious hours that could be better spent closing deals.
Imagine if Sarah could automatically extract detailed professional information from LinkedIn profiles and quantify an ICP score, instantly prioritizing the hottest leads. That’s exactly the scenario this n8n workflow solves, transforming tedious manual data gathering into an automated, reliable, and scalable process.
2. What This Automation Does
This workflow leverages the power of n8n automation, the AI capabilities of Airtop, and the flexibility of Google Sheets to automate ICP scoring from LinkedIn profiles. When triggered, it:
- Reads LinkedIn profile URLs one by one from a Google Sheet, which serves as the database of prospects.
- Sends each LinkedIn URL to Airtop AI for deep profile extraction, fetching name, job title, employer, location, connections, followers, About section, and key qualitative metrics like AI interest and technical depth.
- Calculates an ICP score based on AI interest, seniority, and technical depth with weighted points reflecting lead quality.
- Formats the extracted data and calculated score to perfectly match the Google Sheet’s schema.
- Updates the original Google Sheet row with the ICP score, making it easy for sales team members to see prioritized leads at a glance.
- Runs manually on demand via the manual trigger node, giving full control over when to update data.
By automating these tedious tasks, this workflow can save an estimated 5-10 hours a week per sales or marketing team member and drastically reduce scoring inconsistencies.
3. Prerequisites ⚙️
- n8n account (cloud or self-hosted; self-hosting recommended for enterprise control 🔐)
- Google Sheets account 📊 with a spreadsheet containing LinkedIn URLs and columns for ICP score updates
- Airtop AI API credentials 🔑 to perform profile extraction and scoring
If you prefer self-hosting n8n for better security and flexibility, consider platforms like Hostinger for easy setup.
4. Step-by-Step Guide
Step 1: Setup the Manual Trigger
In your n8n editor, add a Manual Trigger node named “When clicking ‘Test workflow’”. This lets you start the workflow manually at any time.
How to: Click + Add Node → Search “Manual Trigger” → Select and position appropriately. No configuration needed.
Expected outcome: You can trigger the workflow yourself to test or run live.
Common mistake: Forgetting this step means you have no way to start the workflow manually.
Step 2: Connect to Google Sheets and Fetch Data
Add a Google Sheets node named “Get person” configured to read rows from your ICP spreadsheet.
How to: Click + Add Node → Search “Google Sheets” → Select, then under Operation, choose “Read” or “Lookup” rows. Enter your Spreadsheet ID (from the URL) and select the appropriate sheet/tab.
In this workflow: It reads the sheet where each row contains a LinkedIn URL under “Linkedin_URL_Person” plus a unique “row_number”.
Expected outcome: The node fetches the current list of people to analyze.
Common mistake: Incorrect Spreadsheet ID or insufficient permissions leading to errors.
Step 3: Setup Airtop AI Node to Extract Profile Data
Add the Airtop node titled “Calculate ICP PersonScoring”. This node takes each LinkedIn URL and queries Airtop’s AI to extract detailed profile information and calculate scores.
How to: Select the Airtop node, set the url parameter to be dynamically pulled from the Google Sheets data; for example {{ $json['Linkedin_URL_Person'] }}.
Next, enter the prompt exactly as per the workflow JSON. This prompt instructs Airtop to extract several key fields and calculate the ICP score based on specified criteria.
Expected outcome: Airtop returns structured data including name, current employer, AI interest level, and an ICP score.
Common mistake: Misformatting the prompt or field names results in incomplete or incorrect extraction.
Step 4: Format the AI Response with Code Node
Add a Code node named “Format response” after the Airtop node. This node reshapes the raw AI response to map only the relevant fields needed for the Google Sheet update.
How to: Use JavaScript mode with code:
const row_number = $('Get person').item.json.row_number;
const Linkedin_URL_Person = $('Get person').item.json.Linkedin_URL_Person;
const ICP_Score_Person = JSON.parse($input.item.json.data.modelResponse).icp_score;
return { json: {
row_number,
Linkedin_URL_Person,
ICP_Score_Person
}};
Expected outcome: This node outputs only the row number, LinkedIn URL, and ICP score for updating the sheet.
Common mistake: Referencing incorrect node names or properties causes the code to fail.
Step 5: Update Google Sheet Row with ICP Score
Add a Google Sheets node named “Update row” configured to update the same spreadsheet row with the new ICP score.
How to: Select Operation as “Update”, use row_number as the matching column to identify rows accurately, and map the “ICP_Score_Person” field to update in the Sheet.
Expected outcome: The Google Sheet row for each LinkedIn profile updates with the new ICP score automatically.
Common mistake: Improper matching columns or schema mapping leads to failed updates or overwriting wrong rows.
5. Customizations ✏️
Customize Scoring Criteria
Within the Airtop node prompt, modify the scoring points for AI interest, seniority, or technical depth to reflect your unique business priorities.
Steps: In “Calculate ICP PersonScoring” node, edit prompt JSON where points are allocated (e.g., change expert AI interest from 35 to 40).
This changes how your leads are prioritized numerically.
Expand Profile Data Extraction
Edit the Airtop node prompt to additionally extract fields like education, certifications, or recent activity if desired.
Steps: Add new requested fields in the prompt JSON, then update the Code node to forward these fields for your records.
Automate Weekly Runs
Replace the manual trigger with a Cron node to automate this workflow at scheduled intervals (e.g., every Monday at 9 AM).
Steps: Remove manual trigger → Add Cron node with desired schedule → Connect to “Get person” node.
6. Troubleshooting 🔧
Problem: “Google Sheets node fails to fetch data”
Cause: Incorrect Spreadsheet ID or insufficient API permissions.
Solution: Verify Spreadsheet ID in the node, ensure Google API credentials are connected and have full read/write permissions.
Problem: “Airtop AI returns no data or malformed response”
Cause: Prompt formatting errors or incorrect dynamic URL inputs.
Solution: Double-check the prompt syntax in the Airtop node, confirm LinkedIn URLs are valid and complete.
Problem: “Code node throws errors referencing undefined properties”
Cause: Node names or JSON paths don’t match actual workflow data.
Solution: Verify exact node names in your workflow, and use debug console to inspect JSON outputs step-by-step.
7. Pre-Production Checklist ✅
- Confirm Google Sheets API credentials have read and update permissions.
- Test triggering workflow manually and verify each node runs without errors.
- Validate Airtop node prompt syntax and confirm sample LinkedIn URLs return expected JSON data.
- Ensure row matching in the “Update row” node is accurate to avoid data overwrites.
- Backup Google Sheet before extensive batch runs to protect data integrity.
8. Deployment Guide
Activate your workflow by clicking “Execute Workflow” manually or set a schedule by replacing the Manual Trigger with a Cron node. Monitor the execution panel for errors.
You can log outputs mid-workflow or integrate an error notification node for alerting on failures.
9. FAQs
Q1: Can I use another AI service instead of Airtop?
A: Yes, but you’ll need to adjust the API call and prompt structure accordingly in n8n.
Q2: Does this workflow consume Airtop API credits?
A: Yes, each profile extraction and scoring counts as one API call.
Q3: Is my data secure?
A: Data security depends on your n8n setup and Airtop’s privacy policy. Self-hosting n8n enhances control.
10. Conclusion
By following this guide, you have automated the tedious process of extracting detailed LinkedIn profile data and calculating an ICP score using n8n, Airtop AI, and Google Sheets. This not only saves your team hours every week but also provides consistent, objective lead evaluation that helps prioritize sales efforts effectively.
Next, consider automating lead outreach based on ICP scores, integrating your CRM with this workflow, or expanding scoring criteria with additional data sources. You now have a powerful foundation to build smarter, faster sales prospecting processes.
Happy automating!