Block 1 - Parse & Normalize Data
- Type / Role
- n8n-nodes-base.code - code
- Config choices
- Version 2
This workflow is provided as-is. Please review and test before using in production.
This workflow scrapes Google Maps via Decodo API, analyzes each business using Google Gemini 2.5 Flash, scores lead quality, and generates ready to send outreach emails. Why Use This Workflow? Time...
n8n-nodes-base.code, n8n-nodes-base.splitinbatches, n8n-nodes-base.googlesheets, n8n-nodes-base.if, n8n-nodes-base.errortrigger, @n8n/n8n-nodes-langchain.outputparserstructured, n8n-nodes-base.stickynote, @n8n/n8n-nodes-langchain.lmchatgooglegemini
This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Khairul Muhtadin.
Original n8n.io sourceThis workflow scrapes Google Maps via Decodo API, analyzes each business using Google Gemini 2.5 Flash, scores lead quality, and generates ready to send outreach emails.
Time Savings: Reduces manual lead research from 20 minutes per lead to 30 seconds processing 100 leads in under an hour
Cost Reduction: Eliminates $300-500/month spent on lead databases and enrichment tools like Apollo or ZoomInfo
Scalability: Process 500+ leads daily without additional staff or subscription costs
| Requirement | Type | Purpose |
|---|---|---|
| n8n instance | Essential | Workflow execution platform |
| Decodo Scraper 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 |
Import the JSON file to your n8n instance
Configure credentials:
Authorization and value Basic [YOUR_API_KEY] get from Decodo dashboardYOUR-CHAT-ID in "Send Error Notification" nodeUpdate environment-specific values:
searchQuery (e.g., "Italian restaurants in Miami"), country, targetLanguage, and resultsLimitCustomize settings:
Test execution:
resultsLimit: 5 to verify all connections work| 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 |
searchQuery, country, targetLanguage in "Set Search Parameters" to target different markets (supports all Google Maps locales)≥7 to ≥6 for broader lead pool or ≥8 for ultra-qualified prospects| 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 |
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
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
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
Created by: Khaisa Studio
Category: Sales & CRM | Tags: lead-generation, google-maps, ai-enrichment, sales-automation, prospecting
Need custom workflows? Contact us
Connect with the creator:
This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.
| Workflow | Scrape & enrich Google Maps leads with Decodo API and Gemini 2.5 Flash |
|---|---|
| Complexity | advanced |
| Nodes | 23 |
| Categories | Lead Generation, AI Summarization |
| Author | Khairul Muhtadin |
| Published | 12 Nov 2025 |
Use the JSON export at /data/workflows/10760/10760.json as the source template for this automation.
Open n8n, import the downloaded JSON, and review each node before activating the workflow.
Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.
Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.
Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.
Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.
Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.
This workflow scrapes Google Maps via Decodo API, analyzes each business using Google Gemini 2.5 Flash, scores lead quality, and generates ready to send outreach emails. Why Use This Workflow? Time...
Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.
Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Lead Generation, AI Summarization use case.