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.
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
{
"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
// 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
// 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.
{
"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.