Un fil r/coldemail a demandé comment contacter des entreprises locales via WhatsApp au lieu de l'email. Le pipeline : trouver des entreprises sur Google Maps, extraire les numéros de téléphone, composer des messages WhatsApp personnalisés. Ce tutoriel construit les étapes de collecte de données et de génération de messages.
Prérequis
- Clé API Scavio
- Python 3.8+
- API WhatsApp Business ou workflow de prospection manuelle
Parcours
Étape 1: Rechercher des entreprises locales sur Google Maps
Utiliser Scavio pour trouver des entreprises par catégorie et localisation.
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', [])Étape 2: Extraire et qualifier les prospects
Filtrer les entreprises avec numéros de téléphone et sans site web existant (potentiel de conversion plus élevé).
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 qualifiedÉtape 3: Générer des messages WhatsApp personnalisés
Créer des modèles de messages avec des détails spécifiques à l'entreprise.
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}Étape 4: Exporter la liste de prospects avec les liens WhatsApp
Enregistrer les prospects qualifiés avec des liens WhatsApp préétablis.
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})Exemple 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']}")Exemple 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));Sortie attendue
CSV of qualified local business leads with phone numbers, ratings, and pre-built WhatsApp click-to-chat URLs. One search query = $0.005.