Resumen
Marketing teams necesita directory datos in spreadsheets, no JSON. Este n8n flujo de trabajo searches Google Maps for businesses in objetivo categorias, extrae datos estructurados (nombre, address, phone, rating, sitio web), y escribe resultados directamente en un Google Sheet. No code, no CSV exporta, no manual copy-paste. El sheet actualiza on programar con fresh datos cada semana.
Desencadenador
Semanal on Monday 9 AM via n8n cron activar.
Programación
Semanal
Pasos del flujo de trabajo
n8n Cron Activar
Programar node fires semanal. Configurar timezone y dia of semana.
HTTP Solicitud to Scavio API
HTTP Solicitud node calls Scavio con google-maps plataforma parametro y business categoria consulta.
Analizar y Flatten Resultados
Function node extrae nombre, address, phone, rating, resenas, y sitio web de cada resultado.
Escribir to Google Sheets
Google Sheets node appends filas to el objetivo sheet. One fila per business con todos extraido campos.
Enviar Completion Notification
Slack o correo electronico node envia un resumen: numero of nuevo businesses encontrado y sheet enlace.
Implementacion en Python
import requests, os, json
API_KEY = os.environ["SCAVIO_API_KEY"]
H = {"x-api-key": API_KEY, "Content-Type": "application/json"}
# This mirrors the n8n HTTP Request node logic
def extract_directory(queries: list) -> list:
all_rows = []
for query in queries:
resp = requests.post(
"https://api.scavio.dev/api/v1/search",
headers=H,
json={"query": query, "platform": "google-maps"},
timeout=15,
)
results = resp.json().get("local_results", [])
for r in results:
all_rows.append({
"name": r.get("title", ""),
"address": r.get("address", ""),
"phone": r.get("phone", ""),
"rating": r.get("rating", ""),
"reviews": r.get("reviews", 0),
"website": r.get("website", ""),
"query": query,
})
return all_rows
queries = [
"accounting firms in Denver CO",
"marketing agencies in Denver CO",
"law firms in Denver CO",
]
rows = extract_directory(queries)
print(f"Extracted {len(rows)} directory entries")
for row in rows[:3]:
print(f" {row['name']} | {row['rating']} stars | {row['reviews']} reviews")
# In n8n, the Google Sheets node writes these rows directly
# No CSV export needed -- n8n handles the Sheets API connectionImplementacion en JavaScript
const H = {'x-api-key': process.env.SCAVIO_API_KEY, 'Content-Type': 'application/json'};
async function extractDirectory(queries) {
const allRows = [];
for (const query of queries) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {method:'POST', headers:H, body:JSON.stringify({query, platform:'google-maps'})});
const results = (await r.json()).local_results || [];
for (const res of results) {
allRows.push({name:res.title||'', address:res.address||'', phone:res.phone||'', rating:res.rating||'', reviews:res.reviews||0, website:res.website||'', query});
}
}
return allRows;
}
const queries = ['accounting firms in Denver CO', 'marketing agencies in Denver CO', 'law firms in Denver CO'];
const rows = await extractDirectory(queries);
console.log('Extracted '+rows.length+' directory entries');
for (const row of rows.slice(0,3)) console.log(' '+row.name+' | '+row.rating+' stars | '+row.reviews+' reviews');
// In n8n, the Google Sheets node writes these rows directly
// No CSV export needed -- n8n handles the Sheets API connectionPlataformas utilizadas
Google Maps
Búsqueda de negocios locales con calificaciones e información de contacto