ScavioScavio
ProductoPreciosDocumentación
Iniciar sesionComenzar
  1. Inicio
  2. Tutoriales
  3. Cómo crear un canal de extracción de correo electrónico de Google Maps n8n
Tutorial

Cómo crear un canal de extracción de correo electrónico de Google Maps n8n

Cree un flujo de trabajo n8n que extraiga correos electrónicos comerciales de los resultados de búsqueda de Google Maps. Generación automatizada de leads con API de búsqueda y validación de correo electrónico.

Obtener clave API gratisDocumentacion API

Google Maps es una de las fuentes más ricas de datos comerciales locales para la generación de leads B2B. Un canal n8n puede automatizar el proceso: busque empresas en un nicho y ubicación objetivo, extraiga información de contacto de sus sitios web, valide correos electrónicos y envíe clientes potenciales calificados a su CRM. Este tutorial construye el proceso completo utilizando el nodo de solicitud HTTP de n8n con la API de búsqueda de Scavio. Cada consulta de búsqueda cuesta $0,005, lo que hace que una extracción de 500 empresas cueste $2,50.

Requisitos previos

  • Instancia n8n en ejecución (autohospedada o en la nube)
  • Una clave API de Scavio de scavio.dev
  • Familiaridad básica con el editor de flujo de trabajo n8n
  • Un CRM u hoja de cálculo para recibir leads

Guia paso a paso

Paso 1: Configurar el nodo de consulta de búsqueda

Cree un nodo de solicitud HTTP en n8n que consulte la API de Scavio para obtener resultados de Google Maps. Utilice el parámetro de la plataforma de mapas para obtener listados de empresas con direcciones y números de teléfono.

JSON
// n8n HTTP Request Node configuration:
// Method: POST
// URL: https://api.scavio.dev/api/v1/search
// Headers:
//   x-api-key: {{ $env.SCAVIO_API_KEY }}
//   Content-Type: application/json
// Body (JSON):
{
  "query": "plumbers in Austin TX",
  "platform": "maps",
  "country_code": "us"
}

Paso 2: Recorrer múltiples consultas de búsqueda

Utilice un nodo SplitInBatches para recorrer una lista de nichos y ubicaciones. Introduce cada combinación en el nodo de búsqueda.

JavaScript
// Generate query list in a Code node:
const niches = ['plumbers', 'electricians', 'HVAC contractors'];
const cities = ['Austin TX', 'Dallas TX', 'Houston TX'];

const queries = [];
for (const niche of niches) {
  for (const city of cities) {
    queries.push({ json: { query: `${niche} in ${city}` } });
  }
}

return queries;
// Output: 9 query combinations

Paso 3: Extraer datos comerciales de los resultados

Analice los resultados de Maps para extraer el nombre de la empresa, la dirección, el teléfono, el sitio web y la calificación. Utilice un nodo Código para normalizar los datos.

JavaScript
// n8n Code node to extract business data:
const results = $input.first().json;
const businesses = (results.local_results || []).map(b => ({
  name: b.title || '',
  address: b.address || '',
  phone: b.phone || '',
  website: b.website || '',
  rating: b.rating || 0,
  reviews: b.reviews || 0,
  query: results.search_metadata?.query || ''
}));

return businesses
  .filter(b => b.website)
  .map(b => ({ json: b }));

Paso 4: Buscar direcciones de correo electrónico de sitios web

Para cada empresa con un sitio web, busque su página de contacto para encontrar direcciones de correo electrónico. Utilice una segunda consulta de búsqueda dirigida al dominio.

JavaScript
// n8n HTTP Request node for email discovery:
// URL: https://api.scavio.dev/api/v1/search
// Body:
{
  "query": "site:{{ $json.website }} contact email",
  "country_code": "us"
}

// Then in a Code node, extract emails from snippets:
const data = $input.first().json;
const snippets = (data.organic_results || [])
  .map(r => r.snippet || '')
  .join(' ');

const emailRegex = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g;
const emails = [...new Set(snippets.match(emailRegex) || [])];

return [{ json: { ...($input.first().json), emails } }];

Paso 5: Enviar a CRM o Google Sheets

Envíe clientes potenciales validados a su CRM. Este ejemplo utiliza el nodo Google Sheets pero funciona con HubSpot, Pipedrive o cualquier CRM con integración n8n.

JavaScript
// n8n Google Sheets node configuration:
// Operation: Append Row
// Sheet: Lead Pipeline
// Columns mapping:
//   A: {{ $json.name }}
//   B: {{ $json.address }}
//   C: {{ $json.phone }}
//   D: {{ $json.website }}
//   E: {{ $json.emails[0] || '' }}
//   F: {{ $json.rating }}
//   G: {{ $json.reviews }}
//   H: {{ $json.query }}
//   I: {{ new Date().toISOString() }}

// Cost summary for 9 queries (3 niches x 3 cities):
// Search queries: 9 x $0.005 = $0.045
// Email discovery: ~50 domains x $0.005 = $0.25
// Total: ~$0.30 for 50+ validated leads

Ejemplo en Python

Python
import os, re, requests, time

API_KEY = os.environ['SCAVIO_API_KEY']
ENDPOINT = 'https://api.scavio.dev/api/v1/search'

def search(body: dict) -> dict:
    resp = requests.post(ENDPOINT,
        headers={'x-api-key': API_KEY, 'Content-Type': 'application/json'},
        json=body)
    resp.raise_for_status()
    return resp.json()

def extract_leads(niche: str, city: str) -> list:
    data = search({'query': f'{niche} in {city}', 'platform': 'maps', 'country_code': 'us'})
    leads = []
    for b in data.get('local_results', []):
        if not b.get('website'):
            continue
        # Find emails from website
        email_data = search({'query': f'site:{b["website"]} contact email', 'country_code': 'us'})
        snippets = ' '.join(r.get('snippet', '') for r in email_data.get('organic_results', []))
        emails = list(set(re.findall(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}', snippets)))
        leads.append({'name': b.get('title'), 'phone': b.get('phone'),
                      'website': b['website'], 'emails': emails})
        time.sleep(0.3)
    return leads

leads = extract_leads('plumbers', 'Austin TX')
for lead in leads[:5]:
    print(f'{lead["name"]}: {lead["emails"] or "no email found"}')

Ejemplo en JavaScript

JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;

async function search(body) {
  const resp = await fetch('https://api.scavio.dev/api/v1/search', {
    method: 'POST',
    headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
    body: JSON.stringify(body)
  });
  return resp.json();
}

async function extractLeads(niche, city) {
  const data = await search({ query: `${niche} in ${city}`, platform: 'maps', country_code: 'us' });
  const leads = [];
  for (const b of (data.local_results || []).filter(b => b.website)) {
    const emailData = await search({ query: `site:${b.website} contact email`, country_code: 'us' });
    const text = (emailData.organic_results || []).map(r => r.snippet || '').join(' ');
    const emails = [...new Set(text.match(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g) || [])];
    leads.push({ name: b.title, phone: b.phone, website: b.website, emails });
  }
  return leads;
}

extractLeads('plumbers', 'Austin TX').then(leads => {
  leads.slice(0, 5).forEach(l => console.log(`${l.name}: ${l.emails.length ? l.emails[0] : 'no email'}`));
});

Salida esperada

JSON
Austin Plumbing Pros: info@austinplumbingpros.com
Capital City Plumbers: contact@capitalcityplumbers.com
Reliable Plumbing Austin: no email found
Lone Star Plumbing: service@lonestarplumbing.com
Premier Plumbing Co: no email found

Cost: 9 search queries + ~50 email lookups = ~$0.30 total

Tutoriales relacionados

  • Cómo extraer directorios B2B con n8n y una API de búsqueda
  • Cómo crear puntuación de clientes potenciales n8n con datos de la API de búsqueda
  • Cómo enriquecer clientes potenciales con una API de búsqueda en Python

Preguntas frecuentes

La mayoria de los desarrolladores completan este tutorial en 15 a 30 minutos. Necesitaras una clave API de Scavio (el plan gratuito funciona) y un entorno de Python o JavaScript.

Instancia n8n en ejecución (autohospedada o en la nube). Una clave API de Scavio de scavio.dev. Familiaridad básica con el editor de flujo de trabajo n8n. Un CRM u hoja de cálculo para recibir leads. Una clave API de Scavio te da 50 creditos gratuitos al registrarte.

Si. El plan gratuito incluye 50 creditos al registrarte, mas que suficiente para completar este tutorial y crear un prototipo funcional.

Scavio tiene un paquete nativo de LangChain (langchain-scavio), un servidor MCP y una API REST simple que funciona con cualquier cliente HTTP. Este tutorial usa the raw REST API, pero puedes adaptarlo al framework que prefieras.

Recursos relacionados

Use Case

n8n Generación de leads locales a través de Google Maps

Read more
Use Case

Generación de leads locales de Google Maps

Read more
Best Of

Las mejores API de datos comerciales de Google Maps (mayo de 2026)

Read more
Solution

Extraiga clientes potenciales de empresas locales de Google Maps a través de n8n

Read more
Best Of

La mejor API de Google Maps para la extracción de clientes potenciales en 2026

Read more
Workflow

n8n Google Maps to Email Outreach CRM Workflow

Read more

Empieza a construir

Cree un flujo de trabajo n8n que extraiga correos electrónicos comerciales de los resultados de búsqueda de Google Maps. Generación automatizada de leads con API de búsqueda y validación de correo electrónico.

Obtener clave API gratuitaLeer la documentacion
ScavioScavio

API de busqueda en tiempo real para agentes de IA. Busca en todas las plataformas, no solo en Google.

Producto

  • Funciones
  • Precios
  • Panel
  • Afiliados

Desarrolladores

  • Documentacion
  • Referencia de API
  • Inicio rapido
  • Integracion MCP
  • Python SDK

Alternativas

  • Alternativa a Tavily
  • Alternativa a SerpAPI
  • Alternativa a Firecrawl
  • Alternativa a Exa

Herramientas

  • Formateador JSON
  • cURL a codigo
  • Contador de tokens
  • Todas las herramientas

© 2026 Scavio. Todos los derechos reservados.

Featured on TAAFT
Terminos de servicioPolitica de privacidad