Google Maps est le plus grand répertoire d'entreprises locales, ce qui en fait une source primaire pour la génération de leads B2B. Un pipeline de leads qui extrait les données de Maps, les enrichit avec les informations du site web et des avis, et note les leads selon leur qualité produit un flux régulier de prospects qualifiés. Ce tutoriel montre comment construire un pipeline automatisé de leads Google Maps en utilisant l'API Scavio. Vous interrogerez les entreprises locales par catégorie et emplacement, enrichirez chaque lead avec des données de recherche supplémentaires, et exporterez des leads notés prêts pour la prospection.
Prérequis
- Python 3.8+ installé
- bibliothèque requests installée
- Une clé API Scavio depuis scavio.dev
- Catégories et emplacements d'entreprises cibles
Parcours
Étape 1: Interroger Google Maps pour les entreprises
Rechercher des entreprises par catégorie et emplacement pour constituer la liste initiale de leads.
import os, requests, json
API_KEY = os.environ["SCAVIO_API_KEY"]
def find_businesses(category, location):
query = f"{category} in {location}"
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": query, "type": "maps"})
return resp.json().get("local_results", [])Étape 2: Enrichir les leads avec les données du site web
Rechercher chaque entreprise pour trouver un contexte supplémentaire comme le site web, les profils sociaux et les mentions récentes.
def enrich_lead(business_name, location):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": f"{business_name} {location}"})
results = resp.json().get("organic_results", [])[:3]
websites = [r.get("link","") for r in results if business_name.lower() in r.get("title","").lower()]
return {"website": websites[0] if websites else None,
"mentions": len(results)}Étape 3: Noter et classer les leads
Appliquer une formule de notation basée sur la note, les avis et la présence en ligne.
def score_lead(business, enrichment):
rating = float(business.get("rating", 0))
reviews = int(business.get("reviews", 0))
has_website = 1 if enrichment.get("website") else 0
score = (rating / 5.0) * 40 + min(reviews / 50, 1.0) * 30 + has_website * 30
return round(score, 1)Étape 4: Construire et exporter le pipeline
Exécuter l'ensemble du pipeline pour une catégorie et exporter les leads notés.
def lead_pipeline(category, location, min_score=40):
businesses = find_businesses(category, location)
leads = []
for b in businesses:
enrichment = enrich_lead(b.get("title",""), location)
s = score_lead(b, enrichment)
if s >= min_score:
leads.append({
"name": b.get("title",""), "phone": b.get("phone",""),
"address": b.get("address",""), "rating": b.get("rating",""),
"reviews": b.get("reviews",0), "website": enrichment.get("website",""),
"score": s,
})
leads.sort(key=lambda x: x["score"], reverse=True)
with open("leads_pipeline.json", "w") as f:
json.dump(leads, f, indent=2)
print(f"Exported {len(leads)} leads")
return leads
lead_pipeline("dentists", "Los Angeles CA")Exemple Python
import os, requests
API_KEY = os.environ["SCAVIO_API_KEY"]
def leads(category, location):
resp = requests.post("https://api.scavio.dev/api/v1/search",
headers={"x-api-key": API_KEY},
json={"platform": "google", "query": f"{category} in {location}", "type": "maps"})
for b in resp.json().get("local_results", [])[:5]:
print(f"{b['title']} | {b.get('rating','N/A')} | {b.get('phone','N/A')}")
leads("dentists", "Los Angeles CA")Exemple JavaScript
const H = {"x-api-key": process.env.SCAVIO_API_KEY, "Content-Type": "application/json"};
async function leads(category, location) {
const r = await fetch("https://api.scavio.dev/api/v1/search", {
method: "POST", headers: H,
body: JSON.stringify({platform: "google", query: category+" in "+location, type: "maps"})
});
const results = (await r.json()).local_results || [];
results.slice(0,5).forEach(b =>
console.log(b.title, b.rating, b.phone)
);
}
leads("dentists", "Los Angeles CA");Sortie attendue
An automated lead pipeline that extracts Google Maps businesses, enriches with website data, scores by quality, and exports ranked leads for outreach.