Templates / Automated LinkedIn lead enrichment pipeline using Apollo.io & Google Sheets

Automated LinkedIn lead enrichment pipeline using Apollo.io & Google Sheets

Ready for 3.0

by Rahi Uppal ✓ · 170 views · created 2025-09-09 · Lead Generation

Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.

Nodes used (12)

Structured Output ParserGoogle Gemini Chat ModelGoogle SheetsAI Agent

What it does

LinkedIn to Apollo.io Lead Enrichment System with Google Sheets Automatically capture company and store details from LinkedIn posts, enrich them with domain names and key decision-maker (KDM) data from Apollo.io, and store everything neatly in Google Sheets. This workflow turns LinkedIn post data into a complete, structured lead database — fully automated from detection to enrichment. --- 🧾 Summary This workflow reads LinkedIn post data (in JSON format) received via a webhook, extracts company and location information using an AI agent, and progressively enriches the data in three stages: 1. Find Company Domain using Apollo.io 2. Fetch Key Decision Makers (KDMs) using the company domain 3. Find Corporate Emails for those KDMs All results are automatically updated in Google Sheets, ensuring your lead list remains fresh, structured, and actionable. --- ⚙️ Prerequisites Before running the workflow, make sure you have: - An Apollo.io API Key with company and people search access - A connected Google Sheets account (OAuth2) - A Webhook URL or LinkedIn scraper that feeds JSON-formatted post data - (Optional) An OpenAI / AI Agent node to extract company names and store locations from post text --- 🧩 Example Input (Webhook JSON) Each LinkedIn post is received as a JSON object containing key clues: json { "index": 1, "text": "Excited to announce the opening of our new KFC store at Sky City Mall, Borivali East 🎉🍗\n\nLooking forward to welcoming you all to experience the Finger Lickin’ Good taste at our newest location!\n\nKFCIndia NewStoreOpening Borivali SkyCityMall Sapphirefoods", "CompanyName": "MockCompany", "NewStoreLocation": "optional", "PersonPosted": "https://linkedin.com/in/mockperson", "PostImage": null, "PostLink": "https://www.linkedin.com/search/results/all/?keywords=%23kfcindia&origin=HASHTAGFROMFEED", "extractedat": "2025-09-08T12:05:40.044101" } 🧠 Workflow Overview This workflow runs in three main stages, moving from LinkedIn data → company domain → people → emails. --- Stage 1: Company Name to Company Domain 🌐 Goal: Convert each company name into its website domain using Apollo.io. Nodes & Flow - Schedule Trigger — Runs automatically (e.g., once a week) to check your Google Sheet for companies missing a domain. - IF Node (Check for Missing Domain) — Filters only companies without a website. - Loop Over Items — Iterates through each company record. - HTTP Request – Find Domain — Calls the Apollo.io Company API to find the company’s domain (e.g., kfc.com). - Update Row in Google Sheets — Writes the found domain back into the corresponding company row. - Wait Node – Delay Between API Calls — Adds a small pause to avoid hitting rate limits. --- Stage 2: Domain to Top 10 KDMs 👥 Goal: Fetch key decision-makers (KDMs) from each company using Apollo.io. Nodes & Flow - Schedule Trigger — Runs on a weekly cadence to check for companies with a domain but no KDMs. - Get Rows from Google Sheets — Pulls company records ready for enrichment. - IF Node (Check for Missing KDMs) — Ensures only companies without people data are processed. - Loop Over Items — Processes one company at a time. - HTTP Request – Find KDMs — Searches Apollo.io People API for top roles such as Founder, CEO, Head of Retail, etc. - Update Row in Google Sheets — Saves the top 10 names and their LinkedIn profiles into your sheet. - Wait Node — Adds a delay to manage rate limits safely. --- Stage 3: KDM Profile to Email Enricher 📧 Goal: Find and store verified corporate email addresses for each KDM. Nodes & Flow - Schedule Trigger — Weekly automation trigger. - Get Rows from Google Sheets — Pulls KDMs that have LinkedIn profiles but no email yet. - IF Node (Check for Missing Emails) — Ensures only valid records are processed. - Code Node – Prepare Data — Organizes LinkedIn profile and domain information. - HTTP Request – Find Email — Queries Apollo.io’s email enrichment endpoint using the LinkedIn URL and domain. - Code Node – Format Response — Cleans and fo

View the original on n8n.io → Check your own copy

Get the weekly “what broke” email

New templates, newly broken ones, and n8n release changes. One short email a week.

Form not loading? Subscribe here.