ScavioScavio
产品定价文档
登录开始使用
  1. 首页
  2. 教程
  3. 如何构建完整的 Google 地图到 WhatsApp 的外展管道
教程

如何构建完整的 Google 地图到 WhatsApp 的外展管道

从 Google 地图商业搜索到 WhatsApp 消息模板的完整管道,具有电话号码提取和消息个性化功能。

获取免费API密钥API文档

r/coldemail 线程要求提供从在 Google 地图上查找企业到发送 WhatsApp 消息的完整管道。本教程涵盖了完整的循环:按类别和位置搜索、提取电话号码、生成个性化消息以及创建点击聊天链接。所有数据均来自一个 API。

前置条件

  • Scavio API 密钥
  • Python 3.8+
  • WhatsApp 企业帐户或个人 WhatsApp

操作指南

步骤 1: 按类别批量搜索Google地图

搜索整个城市的多个类别。

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')

步骤 2: 清理并验证电话号码

设置 WhatsApp 电话号码的格式(需要国家/地区代码)。

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

步骤 3: 生成特定类别的 WhatsApp 消息

不同的业务类型有不同的模板。

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}"

步骤 4: 导出完整的管道输出

包含所有潜在客户数据和 WhatsApp 链接的 CSV。

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)

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')

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}`);
});

预期输出

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

相关教程

  • 如何构建 Google 地图到 WhatsApp 的潜在客户管道
  • 如何构建从 Google 地图到电子邮件的 SMB 外展管道

常见问题

大多数开发者在15到30分钟内完成本教程。您需要一个Scavio API密钥(免费套餐即可)和可用的Python或JavaScript环境。

Scavio API 密钥. Python 3.8+. WhatsApp 企业帐户或个人 WhatsApp. Scavio API密钥注册即送50个免费积分。

可以。免费套餐注册即送50个积分,完全足够完成本教程并构建一个可运行的原型解决方案。

Scavio提供原生LangChain包(langchain-scavio)、MCP服务器以及适用于任何HTTP客户端的REST API。本教程使用 the raw REST API, 但您可以根据需要适配您选择的框架。

相关资源

Best Of

2026 年 WhatsApp 业务自动化的最佳工具

Read more
Best Of

适合小型企业潜在客户开发的最佳 WhatsApp 外展工具(2026 年)

Read more
Solution

WhatsApp

Read more
Workflow

WhatsApp 客户深度研究工作流

Read more
Glossary

WhatsApp Business API

Read more
Use Case

WhatsApp 接地客户机器人

Read more

开始构建

从 Google 地图商业搜索到 WhatsApp 消息模板的完整管道,具有电话号码提取和消息个性化功能。

获取免费API密钥阅读文档
ScavioScavio

面向AI智能体的实时搜索API。搜索所有平台,不仅仅是Google。

产品

  • 功能
  • 定价
  • 控制台
  • 联盟计划

开发者

  • 文档
  • API参考
  • 快速开始
  • MCP集成
  • Python SDK

替代方案

  • Tavily替代方案
  • SerpAPI替代方案
  • Firecrawl替代方案
  • Exa替代方案

工具

  • JSON格式化
  • cURL转代码
  • Token计数器
  • 全部工具

© 2026 Scavio. 保留所有权利。

Featured on TAAFT
服务条款隐私政策