Resumen
Cold correo electronico agencies manualmente search Google Maps, copy business detalles en spreadsheets, entonces importar en outreach herramientas. Este n8n flujo de trabajo automatiza el entire pipeline: search Google Maps by industria y ubicacion, extraer contact detalles, enriquecer con Google search datos, y push qualified leads directamente to el CRM. 1,000 leads cost $10 (Maps search + enriquecimiento).
Desencadenador
Diario cron at 6 AM o activado by nuevo ubicacion added to el watchlist.
Programación
Diario at 6 AM UTC
Pasos del flujo de trabajo
Cargar Target Industries y Locations
Leer el lista of industry-location pairs de un Google Sheet o base de datos. Cada fila defines un consulta de busqueda for Google Maps.
Search Google Maps for Businesses
For cada industry-location pair, search Google Maps via Scavio API. Extraer business nombre, phone, address, rating, resena conteo, y sitio web.
Filtrar by Calidad Signals
Eliminar businesses below el minimo rating umbral (default 3.5 stars) y esos sin sitios web o phone numbers.
Enriquecer con Google Search Datos
For cada qualified lead, ejecutar un Google search for el business nombre to pull company descripcion, social perfiles, y reciente news.
Push to CRM y Outreach Herramienta
Crear o actualizacion contacts in HubSpot, Salesforce, o un Google Sheet. Tag leads con fuente, industria, y calidad puntuacion.
Implementacion en Python
import requests, os
API_KEY = os.environ["SCAVIO_API_KEY"]
def maps_to_leads(industry: str, location: str, min_rating: float = 3.5) -> list:
# Step 1: Search Google Maps
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": f"{industry} {location}", "platform": "google-maps", "country_code": "us"},
timeout=15,
)
maps_data = resp.json()
leads = []
for place in maps_data.get("local_results", []):
if place.get("rating", 0) < min_rating:
continue
if not place.get("phone"):
continue
# Step 2: Enrich with Google search
enrich = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY, "Content-Type": "application/json"},
json={"query": place.get("title", ""), "country_code": "us"},
timeout=10,
)
enrich_data = enrich.json()
leads.append({
"name": place.get("title", ""),
"phone": place.get("phone", ""),
"address": place.get("address", ""),
"rating": place.get("rating"),
"reviews": place.get("reviews"),
"website": place.get("website", ""),
"description": enrich_data.get("knowledge_graph", {}).get("description", ""),
})
return leads
leads = maps_to_leads("roofing contractors", "Dallas TX")
print(f"{len(leads)} qualified leads ready for CRM")Implementacion en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function mapsToLeads(industry, location, minRating=3.5) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:industry+' '+location, platform:'google-maps', country_code:'us'})});
const d = await r.json();
const leads = [];
for (const p of (d.local_results||[]).filter(p=>(p.rating||0)>=minRating && p.phone)) {
const er = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query:p.title, country_code:'us'})});
const ed = await er.json();
leads.push({name:p.title, phone:p.phone, address:p.address, rating:p.rating, reviews:p.reviews, website:p.website, description:ed.knowledge_graph?.description||''});
}
return leads;
}
const leads = await mapsToLeads('roofing contractors','Dallas TX');
console.log(leads.length+' qualified leads');Plataformas utilizadas
Google Maps
Búsqueda de negocios locales con calificaciones e información de contacto
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA