Resumen
Este flujo de trabajo searches Google Maps via Scavio for local businesses in un objetivo categoria y geography, extrae phone numbers y business detalles, genera personalized WhatsApp mensaje plantillas, y salidas un ready-to-send lead sheet. Cada lead incluye el business nombre, categoria, phone, rating, y un personalized opening line.
Desencadenador
Manual (ejecutar cuando building un nuevo lead lista)
Programación
On-demand (manual activar)
Pasos del flujo de trabajo
Define objetivo consultas
Specify business categoria y ubicacion combinations: 'dentist Miami FL', 'plumber Austin TX', 'restaurant Chicago IL'. Cada combination becomes un consulta de busqueda.
Search Google Maps via Scavio
For cada consulta, call Scavio con plataforma google y tipo maps. Extraer local_results con business nombre, phone, address, rating, y categoria.
Filtrar leads con phone numbers
Discard resultados sin phone numbers. Estos businesses cannot be reached via WhatsApp. Keep solo leads con valid phone datos.
Generar personalized plantillas
For cada lead, crear un WhatsApp mensaje plantilla ese references el business nombre, categoria, y ubicacion. Keep mensajes bajo 200 characters for readability.
Exportar lead sheet
Escribir el final lead lista to CSV o JSON con columnas: nombre, phone, address, rating, categoria, message_template.
Implementacion en Python
import requests, os, csv
SCAVIO_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": SCAVIO_KEY}
QUERIES = ["dentist Miami FL", "plumber Austin TX", "accountant Denver CO"]
def get_leads(query: str) -> list:
resp = requests.post("https://api.scavio.dev/api/v1/search", headers=H,
json={"platform": "google", "query": query, "type": "maps"}, timeout=10)
results = resp.json().get("local_results", [])
leads = []
for r in results:
if r.get("phone"):
leads.append({
"name": r["title"], "phone": r["phone"],
"address": r.get("address", ""), "rating": r.get("rating", ""),
"category": query.split()[0],
"template": f"Hi {r['title']}, I help {query.split()[0]}s in {' '.join(query.split()[1:])} grow online. Quick question about your website?"
})
return leads
all_leads = []
for q in QUERIES:
all_leads.extend(get_leads(q))
with open("leads.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=["name", "phone", "address", "rating", "category", "template"])
w.writeheader()
w.writerows(all_leads)
print(f"Exported {len(all_leads)} leads")Implementacion en JavaScript
const QUERIES = ["dentist Miami FL", "plumber Austin TX", "accountant Denver CO"];
async function getLeads(query) {
const resp = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST",
headers: { "x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json" },
body: JSON.stringify({ platform: "google", query, type: "maps" })
});
const results = (await resp.json()).local_results || [];
const category = query.split(" ")[0];
const location = query.split(" ").slice(1).join(" ");
return results.filter(r => r.phone).map(r => ({
name: r.title, phone: r.phone, address: r.address || "",
rating: r.rating || "", category,
template: `Hi ${r.title}, I help ${category}s in ${location} grow online. Quick question about your website?`
}));
}
const allLeads = [];
for (const q of QUERIES) {
allLeads.push(...await getLeads(q));
}
console.log(`Total leads: ${allLeads.length}`);
console.log(JSON.stringify(allLeads, null, 2));Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA