ScavioScavio
ProduitTarifsDocumentation
ConnexionCommencer
  1. Accueil
  2. Tutoriels
  3. Comment créer un pipeline complet de prospection de Google Maps à WhatsApp
Tutoriel

Comment créer un pipeline complet de prospection de Google Maps à WhatsApp

Pipeline complet de la recherche d'entreprises sur Google Maps aux modèles de messages WhatsApp avec extraction de numéros de téléphone et personnalisation des messages.

Obtenez une clé API gratuiteDocumentation API

Un fil r/coldemail a demandé un pipeline complet allant de la recherche d'entreprises sur Google Maps à l'envoi de messages WhatsApp. Ce tutoriel couvre l'ensemble du processus : rechercher par catégorie et emplacement, extraire les numéros de téléphone, générer des messages personnalisés et créer des liens click-to-chat. Toutes les données proviennent d'une seule API.

Prérequis

  • Clé API Scavio
  • Python 3.8+
  • Compte WhatsApp Business ou WhatsApp personnel

Parcours

Étape 1: Recherche par lot sur Google Maps par catégorie

Rechercher plusieurs catégories dans une ville.

Python
import requests, os
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def batch_maps_search(categories, city):
    all_leads = []
    for cat in categories:
        data = requests.post('https://api.scavio.dev/api/v1/search',
            headers=H,
            json={'platform': 'google', 'query': f'{cat} in {city}',
                  'type': 'maps'}).json()
        for b in data.get('local_results', []):
            b['category'] = cat
            all_leads.append(b)
    return all_leads

categories = ['restaurant', 'dentist', 'gym', 'salon']
leads = batch_maps_search(categories, 'Miami FL')

Étape 2: Nettoyer et valider les numéros de téléphone

Formater les numéros de téléphone pour WhatsApp (nécessite l'indicatif du pays).

Python
import re

def clean_phone(phone, country_code='1'):
    if not phone:
        return None
    digits = re.sub(r'\D', '', phone)
    if len(digits) == 10:
        digits = country_code + digits
    if len(digits) < 11:
        return None
    return digits

def extract_leads_with_phones(businesses):
    valid = []
    for b in businesses:
        phone = clean_phone(b.get('phone'))
        if phone:
            valid.append({
                'name': b.get('title', ''),
                'phone': phone,
                'category': b.get('category', ''),
                'rating': b.get('rating'),
                'address': b.get('address', ''),
            })
    return valid

Étape 3: Générer des messages WhatsApp spécifiques à chaque catégorie

Différents modèles pour différents types d'entreprises.

Python
templates = {
    'restaurant': 'Hi! I saw {name} has great reviews ({rating} stars). '
        'I help restaurants increase online orders with a simple website update. '
        'Worth a quick chat?',
    'dentist': 'Hi! I came across {name} and noticed you serve the {area} area. '
        'I help dental practices get more patients through online visibility. '
        'Can I send over a quick case study?',
    'default': 'Hi! I found {name} on Google Maps ({rating} stars -- impressive). '
        'I help local businesses like yours grow their online presence. '
        'Would you be open to a quick chat?'
}

def generate_wa_link(lead, service_templates=templates):
    template = service_templates.get(lead['category'], service_templates['default'])
    msg = template.format(name=lead['name'], rating=lead.get('rating', 'great'),
        area=lead.get('address', '').split(',')[0] if lead.get('address') else 'your')
    encoded = requests.utils.quote(msg)
    return f"https://wa.me/{lead['phone']}?text={encoded}"

Étape 4: Exporter le résultat complet du pipeline

CSV avec toutes les données des prospects et les liens WhatsApp.

Python
import csv

def export_pipeline(leads, filename='whatsapp_pipeline.csv'):
    with open(filename, 'w', newline='') as f:
        fields = ['name', 'phone', 'category', 'rating', 'address', 'wa_link']
        writer = csv.DictWriter(f, fieldnames=fields)
        writer.writeheader()
        for lead in leads:
            lead['wa_link'] = generate_wa_link(lead)
            writer.writerow({k: lead.get(k, '') for k in fields})
    print(f'Exported {len(leads)} leads to {filename}')

# Pipeline: 4 categories = 4 queries = $0.02 total
leads = batch_maps_search(['restaurant', 'dentist', 'gym', 'salon'], 'Miami FL')
valid = extract_leads_with_phones(leads)
export_pipeline(valid)

Exemple Python

Python
import os, requests, re
H = {'x-api-key': os.environ['SCAVIO_API_KEY']}

def maps_to_whatsapp(category, city):
    data = requests.post('https://api.scavio.dev/api/v1/search', headers=H,
        json={'platform': 'google', 'query': f'{category} in {city}', 'type': 'maps'}).json()
    for b in data.get('local_results', []):
        phone = re.sub(r'\D', '', b.get('phone', ''))
        if len(phone) >= 10:
            print(f"{b['title']}: https://wa.me/{phone}")

maps_to_whatsapp('salon', 'Austin TX')

Exemple JavaScript

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: `${category} in ${city}`, type: 'maps'})
}).then(r => r.json());
res.local_results?.filter(b => b.phone).forEach(b => {
  const phone = b.phone.replace(/\D/g, '');
  console.log(`${b.title}: https://wa.me/${phone}`);
});

Sortie attendue

JSON
CSV with business name, phone, category, rating, address, and WhatsApp click-to-chat link. Category-specific message templates. 4 categories = $0.02 total.

Tutoriels associés

  • Comment construire un pipeline de prospects de Google Maps à WhatsApp
  • Comment construire un pipeline de prospection PME de Google Maps à l'email

Questions fréquentes

La plupart des développeurs terminent ce tutoriel en 15 à 30 minutes. Vous aurez besoin d'une clé API Scavio (l'offre gratuite suffit) et d'un environnement Python ou JavaScript fonctionnel.

Clé API Scavio. Python 3.8+. Compte WhatsApp Business ou WhatsApp personnel. Une clé API Scavio vous donne 50 crédits gratuits à l'inscription.

Oui. L'offre gratuite comprend 50 crédits à l'inscription, ce qui est largement suffisant pour terminer ce tutoriel et prototyper une solution fonctionnelle.

Scavio dispose d'un package natif LangChain (langchain-scavio), d'un serveur MCP et d'une API REST simple qui fonctionne avec tout client HTTP. Ce tutoriel utilise the raw REST API, mais vous pouvez l'adapter à votre framework de prédilection.

Ressources connexes

Use Case

Génération de leads locaux Google Maps

Read more
Solution

Prospection WhatsApp avec les prospects Google Maps

Read more
Workflow

Prospection WhatsApp depuis Google Maps

Read more
Best Of

Meilleurs outils de génération de leads Google Maps + WhatsApp (2026)

Read more
Use Case

Pipeline de données pour la prospection d'entreprises locales

Read more
Best Of

Meilleure API Google Maps pour l'extraction de leads en 2026

Read more

Commencer

Pipeline complet de la recherche d'entreprises sur Google Maps aux modèles de messages WhatsApp avec extraction de numéros de téléphone et personnalisation des messages.

Obtenez une clé API gratuiteLire la documentation
ScavioScavio

API de recherche en temps réel pour agents IA. Recherchez sur toutes les plateformes, pas seulement Google.

Produit

  • Fonctionnalités
  • Tarifs
  • Tableau de bord
  • Affiliés

Développeurs

  • Documentation
  • Référence API
  • Démarrage rapide
  • Intégration MCP
  • SDK Python

Alternatives

  • Alternative à Tavily
  • Alternative à SerpAPI
  • Alternative à Firecrawl
  • Alternative à Exa

Outils

  • Formateur JSON
  • cURL vers code
  • Compteur de jetons
  • Tous les outils

© 2026 Scavio. Tous droits réservés.

Featured on TAAFT
Conditions d'utilisationPolitique de confidentialité