Un hilo de r/coldemail preguntó sobre cómo llegar a las empresas locales a través de WhatsApp en lugar del correo electrónico. El proceso: encontrar empresas en Google Maps, extraer números de teléfono, redactar mensajes personalizados de WhatsApp. Este tutorial desarrolla los pasos de recopilación de datos y generación de mensajes.
Requisitos previos
- Clave API de Scavio
- Python 3.8+
- API de WhatsApp Business o flujo de trabajo de divulgación manual
Guia paso a paso
Paso 1: Busque en Google Maps empresas locales
Utilice Scavio para buscar empresas por categoría y ubicación.
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
def find_businesses(category, location):
data = requests.post('https://api.scavio.dev/api/v1/search',
headers=H,
json={'platform': 'google', 'query': f'{category} in {location}',
'type': 'maps'}).json()
return data.get('local_results', [])Paso 2: Extraer y calificar clientes potenciales
Filtre empresas con números de teléfono y sin sitio web existente (mayor potencial de conversión).
def qualify_leads(businesses):
qualified = []
for b in businesses:
phone = b.get('phone')
website = b.get('website')
if phone:
qualified.append({
'name': b.get('title'),
'phone': phone,
'address': b.get('address'),
'rating': b.get('rating'),
'has_website': bool(website),
'reviews': b.get('reviews', 0)
})
return qualifiedPaso 3: Genera mensajes personalizados de WhatsApp
Cree plantillas de mensajes con detalles específicos de la empresa.
def whatsapp_message(lead, your_service):
name = lead['name']
msg = (f'Hi, I came across {name} and noticed you have great reviews '
f'({lead["rating"]} stars). I help local businesses like yours with '
f'{your_service}. Would you be open to a quick chat?')
# WhatsApp click-to-chat URL
phone_clean = lead['phone'].replace(' ', '').replace('-', '').replace('(', '').replace(')', '')
wa_url = f'https://wa.me/{phone_clean}?text={requests.utils.quote(msg)}'
return {'message': msg, 'wa_url': wa_url}Paso 4: Exportar lista de clientes potenciales con enlaces de WhatsApp
Guarde clientes potenciales calificados con enlaces de WhatsApp prediseñados.
import csv
def export_leads(leads, service, filename='leads.csv'):
with open(filename, 'w', newline='') as f:
w = csv.DictWriter(f, fieldnames=['name', 'phone', 'rating', 'reviews', 'wa_url'])
w.writeheader()
for lead in leads:
msg = whatsapp_message(lead, service)
lead['wa_url'] = msg['wa_url']
w.writerow({k: lead.get(k) for k in w.fieldnames})Ejemplo en Python
import os, requests
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}
leads = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
json={'platform': 'google', 'query': 'plumber in Austin TX', 'type': 'maps'}).json()
for biz in leads.get('local_results', []):
if biz.get('phone'):
print(f"{biz['title']}: {biz['phone']}")Ejemplo en JavaScript
const res = 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: 'plumber in Austin TX', type: 'maps'})
});
const data = await res.json();
data.local_results?.filter(b => b.phone).forEach(b => console.log(b.title, b.phone));Salida esperada
CSV of qualified local business leads with phone numbers, ratings, and pre-built WhatsApp click-to-chat URLs. One search query = $0.005.