Resumen
Este flujo de trabajo searches Google Maps for businesses coincidencia un consulta y ubicacion, extrae structured detalles like nombre, address, phone, rating, y sitio web, entonces enriquece cada lead con additional datos antes de pushing to un CRM o hoja de calculo. It es ideal for sales teams ese necesita un repeatable pipeline for local lead sourcing sin manual busqueda.
Desencadenador
Cron programar (diario at 9 AM UTC) o manual activar
Programación
Ejecuta diario at 9 AM UTC o on manual activar
Pasos del flujo de trabajo
Define search parametros
Set el business tipo, ubicacion, y cualquier filtra tal as minimo rating o resena conteo.
Search Google Maps
Call el Scavio API con plataforma google-maps to encontrar businesses coincidencia el criterios.
Extraer lead detalles
Analizar cada resultado for nombre, address, phone numero, sitio web, rating, y resena conteo.
Deduplicate contra existing leads
Comparar extraido leads contra el CRM o base de datos to avoid creating duplicates.
Enriquecer con sitio web datos
For leads con un sitio web, optionally obtener el homepage to extraer correo electronico addresses o social perfiles.
Push to CRM
Crear nuevo lead registros in el CRM con todos enriquecido campos attached.
Implementacion en Python
import requests
import json
API_KEY = "your_scavio_api_key"
def search_maps(query: str, location: str) -> list[dict]:
res = requests.post(
"https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={
"platform": "google-maps",
"query": f"{query} in {location}",
},
timeout=15,
)
res.raise_for_status()
data = res.json()
leads = []
for place in data.get("local_results", []):
leads.append({
"name": place.get("title"),
"address": place.get("address"),
"phone": place.get("phone"),
"website": place.get("website"),
"rating": place.get("rating"),
"reviews": place.get("reviews"),
})
return leads
def push_to_crm(leads: list[dict]):
# Replace with your CRM API call
for lead in leads:
print(f"Creating lead: {lead['name']} - {lead.get('phone', 'N/A')}")
def run():
queries = [
{"query": "plumber", "location": "Austin, TX"},
{"query": "dentist", "location": "Denver, CO"},
]
all_leads = []
for q in queries:
leads = search_maps(q["query"], q["location"])
all_leads.extend(leads)
print(f"Found {len(all_leads)} leads")
push_to_crm(all_leads)
if __name__ == "__main__":
run()Implementacion en JavaScript
const API_KEY = "your_scavio_api_key";
async function searchMaps(query, location) {
const res = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: {
"x-api-key": API_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
platform: "google-maps",
query: `${query} in ${location}`,
}),
});
if (!res.ok) throw new Error(`scavio ${res.status}`);
const data = await res.json();
return (data.local_results ?? []).map((place) => ({
name: place.title,
address: place.address,
phone: place.phone,
website: place.website,
rating: place.rating,
reviews: place.reviews,
}));
}
async function pushToCrm(leads) {
// Replace with your CRM API call
for (const lead of leads) {
console.log(`Creating lead: ${lead.name} - ${lead.phone ?? "N/A"}`);
}
}
async function run() {
const queries = [
{ query: "plumber", location: "Austin, TX" },
{ query: "dentist", location: "Denver, CO" },
];
const allLeads = [];
for (const q of queries) {
const leads = await searchMaps(q.query, q.location);
allLeads.push(...leads);
}
console.log(`Found ${allLeads.length} leads`);
await pushToCrm(allLeads);
}
run();Plataformas utilizadas
Google Maps
Búsqueda de negocios locales con calificaciones e información de contacto