n8nlead-gengoogle-maps

n8n Google Maps Lead Gen: Cheaper Than SerpAPI

Google Maps lead gen in n8n costs $0.005/lead with Scavio vs $0.025/lead with SerpAPI. Same workflow, 5x cost difference.

7 min

Building a Google Maps lead generation pipeline in n8n costs $0.005/lead with Scavio versus $0.025/lead with SerpAPI. The workflow is identical -- HTTP Request node, JSON parsing, sheet output -- but the underlying API pricing makes a 5x difference at scale. For 10K leads/month, that is $50 versus $250.

The n8n workflow architecture

Four nodes: Schedule Trigger (daily at 6 AM), HTTP Request (Google Maps search), Function (parse and filter results), Google Sheets (append qualified leads). The HTTP Request node hits a Maps search API with location + business category queries.

SerpAPI Maps pricing breakdown

SerpAPI charges one search credit per Maps query. At $75/mo for 5K searches ($0.015/search), each lead costs at least $0.015 -- more if you need multiple queries per business category. The $275/mo plan gives 30K searches at ~$0.009/search. Unused credits expire monthly.

Setting up the n8n HTTP Request node

JSON
{
  "method": "POST",
  "url": "https://api.scavio.dev/api/v1/search",
  "headers": {
    "x-api-key": "={{ $env.SCAVIO_API_KEY }}",
    "Content-Type": "application/json"
  },
  "body": {
    "query": "={{ $json.category }} in {{ $json.city }}",
    "search_type": "maps",
    "num_results": 20
  }
}

Parsing Maps results in n8n Function node

JavaScript
// n8n Function node: parse and qualify leads
const results = $input.first().json.local_results || [];
const qualified = [];

for (const biz of results) {
  // Filter: must have phone, rating > 3.5, and a website
  if (biz.phone && biz.rating >= 3.5 && biz.website) {
    qualified.push({
      name: biz.title,
      address: biz.address,
      phone: biz.phone,
      website: biz.website,
      rating: biz.rating,
      reviews: biz.reviews,
      category: biz.type || "unknown",
      maps_link: biz.link,
    });
  }
}

return qualified.map(lead => ({ json: lead }));

Scaling to multiple cities

JavaScript
// n8n Function node: generate search combinations
const categories = [
  "plumber", "electrician", "dentist",
  "restaurant", "auto repair", "realtor"
];
const cities = [
  "Austin TX", "Denver CO", "Nashville TN",
  "Portland OR", "Raleigh NC"
];

const queries = [];
for (const cat of categories) {
  for (const city of cities) {
    queries.push({ json: { category: cat, city: city } });
  }
}
// 6 categories x 5 cities = 30 queries = 30 credits = $0.15
return queries;

Cost comparison at real volumes

  • 500 leads/mo (freelancer): Scavio $2.50, SerpAPI $7.50
  • 5K leads/mo (small agency): Scavio $25, SerpAPI $75
  • 20K leads/mo (lead gen business): Scavio $100, SerpAPI $275+
  • 50K leads/mo (enterprise): Scavio $250, SerpAPI custom pricing

Enrichment step: add email and social

After collecting Maps data, add a second HTTP Request node to search for each company domain. This returns organic results including LinkedIn profiles, social media pages, and contact pages. Two credits per lead total: one for Maps, one for domain enrichment.

JSON
{
  "method": "POST",
  "url": "https://api.scavio.dev/api/v1/search",
  "headers": {
    "x-api-key": "={{ $env.SCAVIO_API_KEY }}"
  },
  "body": {
    "query": "{{ $json.website }} contact email",
    "num_results": 5
  }
}

Key takeaway

The n8n workflow is the same regardless of API provider. The only difference is the HTTP Request URL, auth header format, and response parsing. Switching from SerpAPI to a cheaper Maps API is a 5-minute node edit that saves $150+/month at 20K lead volume.