๐ฃ Enrich Airtable company phones from website, LinkedIn, Google Maps, and Claude
โก 30 views ยท ๐ฃ Lead Generation & Enrichment
๐ก Pro Tip โ If youโre pulling LinkedIn data through HTTP requests or dealing with API restrictions, thereโs a community node called ScraperNode that handles this natively. It has dedicated scrapers for profiles, companies, jobs, and people search โ you just pass a URL and get structured data back.
Description
โ ๏ธ Self-hosted only โ This template uses a community node (Firecrawl) and cannot run on n8n Cloud.
> ๐ธ Add a workflow screenshot at the top of this listing.
Who itโs for
This workflow is for sales teams, lead generation agencies, and growth operators who maintain a company database in Airtable and need to automatically enrich records with phone numbers from multiple web sources.
How it works
- A manual trigger fetches all Airtable records where the phone number field is empty.
- Records are processed one by one through a loop.
- Each companyโs website is scraped using Firecrawl, and the raw markdown is cleaned with a custom code node.
- A Claude Sonnet AI agent analyzes the cleaned content and attempts to extract a phone number using a structured output parser.
- If the AI finds no phone, the workflow falls back to an Apify LinkedIn scraper, first checking whether the company profile exists.
- If LinkedIn also yields nothing, a second fallback calls an Apify Google Maps scraper to search by company name and location.
- Whichever source returns a phone number, a code node normalizes the data and writes it back to Airtable. If no source finds a phone, the record is marked as unavailable.
How to set up
- Connect your Airtable credentials and set the correct base and table in the Search Airtable Records, Update Airtable Phone Found, and Update Airtable Phone Not Found nodes
- Add your Firecrawl API key to the Scrape Company Website node
- Add your Anthropic API key to the Claude Sonnet Model sub-node inside AI Phone Finder Agent
- Add your Apify API token to both the Fetch LinkedIn Phone via Apify and Fetch Google Maps Phone via Apify nodes
- Review the Clean Scraped Markdown and Refine and Merge Phone Data code nodes to ensure field names match your Airtable schema
Requirements
- Airtable account with a company database
- Firecrawl API key
- Anthropic API key (Claude Sonnet)
- Apify account with access to the LinkedIn Company Scraper and Google Maps Scraper actors
How to customize
- Swap out either fallback source (LinkedIn or Google Maps) by bypassing the corresponding branch if you only have access to one Apify actor.
- Tune the AI system prompt inside the Claude Sonnet model to extract other contact details such as email addresses or physical addresses in addition to phone numbers.
- Replace the manual trigger with a scheduled trigger to run the enrichment automatically on a daily or weekly basis.
๐ Nodes Used
Airtable, HTTP Request, AI Agent, Anthropic Chat Model, Structured Output Parser
๐ฅ Import
Download workflow.json and import into n8n:
Workflow menu โ Import from File