🎣 Scrape & enrich Google Maps leads with Decodo API and Gemini 2.5 Flash
⚡ 497 views · 🎣 Lead Generation & Enrichment
💡 Pro Tip — HTTP Request scraping tends to break when sites update their markup. If you’re scraping a major platform, check if ScraperNode covers it — it has maintained scrapers for LinkedIn, Instagram, TikTok, YouTube, and 20+ other platforms that return structured data.
Description
Turn Google Maps into a lead machine. This workflow scrapes listings with the Decodo API, scores each business with Google Gemini, and writes ready-to-send outreach emails. Research that took 20 minutes per lead now runs 100 leads in under an hour.
Last updated: September 2026.
Why Use This Workflow?
- Time Savings: Manual lead research drops from 20 minutes per lead to 30 seconds. 100 leads in under an hour.
- Cost Reduction: Skip $300-500/month lead databases and enrichment tools like Apollo or ZoomInfo.
- Scalability: Process 500+ leads daily without extra staff or subscriptions.
Ideal For
- Sales Teams & BDRs: Targeted prospect lists for local businesses (restaurants, retail, service providers) with verified contacts and outreach hooks.
- Digital Marketing Agencies: High-value clients in specific niches (e.g., “restaurants without websites in Chicago”) with automated first-touch campaigns.
- B2B SaaS Companies: Businesses matching ideal customer profiles based on ratings, reviews, and digital maturity.
- Local Service Providers: Qualified leads for web design, SEO, POS systems, or booking software in underserved markets.
How It Works
- Trigger: Start manually or schedule it (e.g., daily/weekly).
- Data Collection: Scrapes Google Maps results with the Decodo API using your query (e.g., “coffee shops in Austin”), country, and language.
- Processing: Parses raw HTML into structured leads: business name, address, phone, website, ratings, reviews, coordinates.
- Intelligence Layer: Google Gemini analyzes each lead for value propositions, pain points, outreach hooks, and a 1-10 quality score.
- Output & Delivery: Leads scoring 7+ get personalized email templates. Everything saves to Google Sheets with enrichment timestamps.
- Storage & Logging: Complete lead database with outreach status tracking. Telegram alerts on failed runs.
Setup Guide
Prerequisites
| Requirement | Type | Purpose |
|---|---|---|
| n8n instance | Essential | Workflow execution platform |
| Decodo Scrapper API | Essential | Google Maps data extraction (get key at dashboard.decodo.com) |
| Google Gemini API | Essential | AI-powered lead analysis and scoring |
| Google Sheets | Essential | Lead database and outreach tracking |
| Telegram Bot (optional) | Optional | Real-time error notifications |
Installation Steps
-
Import the JSON file to your n8n instance
-
Configure credentials:
- Decodo API: Create HTTP Header Auth credential with header name
Authorizationand valueBasic [YOUR_API_KEY]get from Decodo dashboard - Google Gemini API: Add your Google AI API key in the “2.5 Flash” node credentials
- Google Sheets OAuth2: Authenticate with your Google account (both “Save to Google Sheets” and “Save Outreach To Sheets” nodes)
- Telegram (optional): Add bot token and replace
YOUR-CHAT-IDin “Send Error Notification” node
- Decodo API: Create HTTP Header Auth credential with header name
-
Update environment-specific values:
- In “Set Search Parameters” node: Update
searchQuery(e.g., “Italian restaurants in Miami”),country,targetLanguage, andresultsLimit - In both Google Sheets nodes: Select your destination spreadsheet and sheet name
- In “Set Search Parameters” node: Update
-
Customize settings:
- Adjust lead score threshold in “Filter Hot Leads” (default: ≥7)
- Modify AI prompt in “Lead Enrichment” node to match your value proposition
- Customize outreach email template in “Prepare Outreach Message” node
-
Test execution:
- Start with
resultsLimit: 5to verify all connections work - Check Google Sheets for properly formatted data
- Verify AI enrichment produces actionable insights
- Start with
Technical Details
Core Nodes
| Node | Purpose | Key Configuration |
|---|---|---|
| Decodo Maps Scraper | Fetches Google Maps listings via API | Set target: google_maps, adjust page_to based on resultsLimit |
| Parse & Normalize Data | Extracts business data from HTML | Custom JavaScript handles multiple response formats |
| Lead Enrichment (AI Chain) | Analyzes leads with Gemini 2.5 Flash | Structured output parser ensures JSON compliance |
| Filter Hot Leads | Isolates high-quality prospects | Combines lead score ≥7 + contact info validation |
| Save to Google Sheets | Stores all enriched leads | Uses appendOrUpdate with id as matching column |
| Save Outreach To Sheets | Updates hot leads with messages | Marks leads as “HOT” category for prioritization |
Customization Options
Basic Adjustments
- Search Parameters: Modify
searchQuery,country,targetLanguagein “Set Search Parameters” to target different markets (supports all Google Maps locales) - Lead Scoring Threshold: Change filter condition from
≥7to≥6for broader lead pool or≥8for ultra-qualified prospects - Batch Size: Adjust “Split Into Batches” to process 10-50 items per cycle (lower = more reliable, higher = faster execution)
Advanced Enhancements
- Email Automation: Connect “Prepare Outreach Message” to Gmail/SendGrid nodes for automatic campaign sends (medium complexity)
- CRM Integration: Add HubSpot/Salesforce nodes after enrichment to sync leads directly (requires CRM API credentials)
- Multi-Channel Outreach: Branch hot leads to LinkedIn automation tools or SMS providers (high complexity, needs additional services)
- Custom Scoring Models: Modify AI prompt to prioritize industry-specific signals (e.g., verified badges for healthcare, delivery options for restaurants)
Troubleshooting
Common Issues
| Problem | Cause | Solution |
|---|---|---|
| ”No valid leads extracted” error | Decodo response format changed or empty results | Check Decodo API response in “Parse & Normalize Data” execution logs; verify search query returns results in Google Maps manually |
| AI enrichment produces invalid JSON | Gemini output doesn’t match schema | Review “Result Parser” schema; add retry logic or simplify AI prompt to reduce complexity |
| Google Sheets “matching column not found” | Spreadsheet missing “id” column header | Ensure Sheet1 has headers: id, businessName, category, address, phone, website, rating, reviewCount, valueProposition, painPoints, outreachHook, leadScore, engagementStrategy, googleMapsUrl, scrapedAt, enrichedAt, outreachMessage, status |
| Timeout on large batches | Processing 100+ leads exceeds execution limits | Reduce resultsLimit to 25-50; run workflow multiple times with different queries |
Use Case Examples
Scenario 1: Digital Marketing Agency Prospecting
Challenge: Agency needs 200 qualified restaurant leads monthly for web design services, spending 40 hours on manual research
Solution: Configure workflow with query “restaurants in [city]” filtered by ratings ≥4.0 and missing professional websites (AI scoring detects this)
Result: Generated 312 leads in 8 hours across 3 cities; 89 scored ≥8 (hot prospects); closed 14 clients in first month at $2,500 average contract value
Scenario 2: SaaS Company Market Entry
Challenge: Booking software startup targeting salons/spas in new geographic market with zero existing contacts
Solution: Ran workflow with “beauty salons in Denver” + “day spas in Denver”; AI identified pain points like “manual appointment booking” and “no online presence”
Result: 156 leads enriched in 2 days; personalized outreach hooks increased demo booking rate from 2% (cold template) to 11%; secured 8 pilot customers in 3 weeks
Scenario 3: Local Service Provider Lead Generation
Challenge: POS system reseller needs to identify retail stores still using cash registers, wasting days driving to scout locations
Solution: Configured workflow for “retail stores in [neighborhood]” with AI analyzing reviews for mentions of “cash only” or payment friction
Result: Identified 47 high-probability prospects in 90 minutes; field sales team prioritized top 15 leads (score ≥9), closed 6 deals worth $32K total revenue
Quick Answers
How do I start small?
Set resultsLimit: 5 first to verify connections, Sheets formatting, and AI output quality.
What counts as a hot lead?
Score ≥7 plus validated contact info. Adjust the threshold in “Filter Hot Leads”.
Where does everything land?
Google Sheets: all enriched leads in one tab, hot leads with messages in another.
Credits & Links
Made by: khmuhtadin
Category: Sales & CRM | Tags: lead-generation, google-maps, ai-enrichment, sales-automation, prospecting
Need custom workflows? Contact me
Connect with the creator:
Portfolio • Workflows • LinkedIn • Medium • Threads
Additional info
Built with n8n. Need an assessment on your business? Feel free to reach out at https://khmuhtadin.com/consultation/
đź”— Nodes Used
Google Sheets, HTTP Request, Telegram, Basic LLM Chain, Structured Output Parser, Google Gemini Chat Model
📥 Import
Download workflow.json and import into n8n:
Workflow menu → Import from File