🎣 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.

View All Scrapers

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?

Ideal For

How It Works

  1. Trigger: Start manually or schedule it (e.g., daily/weekly).
  2. Data Collection: Scrapes Google Maps results with the Decodo API using your query (e.g., “coffee shops in Austin”), country, and language.
  3. Processing: Parses raw HTML into structured leads: business name, address, phone, website, ratings, reviews, coordinates.
  4. Intelligence Layer: Google Gemini analyzes each lead for value propositions, pain points, outreach hooks, and a 1-10 quality score.
  5. Output & Delivery: Leads scoring 7+ get personalized email templates. Everything saves to Google Sheets with enrichment timestamps.
  6. Storage & Logging: Complete lead database with outreach status tracking. Telegram alerts on failed runs.

Setup Guide

Prerequisites

RequirementTypePurpose
n8n instanceEssentialWorkflow execution platform
Decodo Scrapper APIEssentialGoogle Maps data extraction (get key at dashboard.decodo.com)
Google Gemini APIEssentialAI-powered lead analysis and scoring
Google SheetsEssentialLead database and outreach tracking
Telegram Bot (optional)OptionalReal-time error notifications

Installation Steps

  1. Import the JSON file to your n8n instance

  2. Configure credentials:

    • Decodo API: Create HTTP Header Auth credential with header name Authorization and value Basic [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-ID in “Send Error Notification” node
  3. Update environment-specific values:

    • In “Set Search Parameters” node: Update searchQuery (e.g., “Italian restaurants in Miami”), country, targetLanguage, and resultsLimit
    • In both Google Sheets nodes: Select your destination spreadsheet and sheet name
  4. 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
  5. Test execution:

    • Start with resultsLimit: 5 to verify all connections work
    • Check Google Sheets for properly formatted data
    • Verify AI enrichment produces actionable insights

Technical Details

Core Nodes

NodePurposeKey Configuration
Decodo Maps ScraperFetches Google Maps listings via APISet target: google_maps, adjust page_to based on resultsLimit
Parse & Normalize DataExtracts business data from HTMLCustom JavaScript handles multiple response formats
Lead Enrichment (AI Chain)Analyzes leads with Gemini 2.5 FlashStructured output parser ensures JSON compliance
Filter Hot LeadsIsolates high-quality prospectsCombines lead score ≥7 + contact info validation
Save to Google SheetsStores all enriched leadsUses appendOrUpdate with id as matching column
Save Outreach To SheetsUpdates hot leads with messagesMarks leads as “HOT” category for prioritization

Customization Options

Basic Adjustments

Advanced Enhancements

Troubleshooting

Common Issues

ProblemCauseSolution
”No valid leads extracted” errorDecodo response format changed or empty resultsCheck Decodo API response in “Parse & Normalize Data” execution logs; verify search query returns results in Google Maps manually
AI enrichment produces invalid JSONGemini output doesn’t match schemaReview “Result Parser” schema; add retry logic or simplify AI prompt to reduce complexity
Google Sheets “matching column not found”Spreadsheet missing “id” column headerEnsure Sheet1 has headers: id, businessName, category, address, phone, website, rating, reviewCount, valueProposition, painPoints, outreachHook, leadScore, engagementStrategy, googleMapsUrl, scrapedAt, enrichedAt, outreachMessage, status
Timeout on large batchesProcessing 100+ leads exceeds execution limitsReduce 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.

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

📖 Importing guide · 🔑 Credential setup