Scrape Local Business Leads with Dumpling AI and Launch Instant AI Calls with Vapi
Cold outreach doesn’t have to be manual, slow, or messy. With this automation built in n8n, you can:
Pull targeted business lead keywords from Google Sheets
Scrape verified local business contact data using Dumpling AI
Automatically clean and filter for valid phone numbers
Launch cold calls through Vapi AI voice agents
Log all call attempts and contact details into a Google Sheet
This is an end-to-end workflow that goes from lead generation to direct contact in minutes, no human dialing, no copy-paste, and no spreadsheets to manage manually.
Let’s walk through how each part works and how it all connects.
Step 1: Start Workflow Manually
Node: Start Workflow Manually
This is your trigger node, ideal for testing or running on demand.
You can replace this later with a scheduler, webhook, or CRM signal once the workflow is stable.
Step 2: Get Search Queries from Google Sheets
Node: Get Search Keywords from Google Sheets
This pulls your list of local lead search queries such as:
“best salons in Dallas”
“top HVAC companies in Miami”
“dentists near Manhattan”
Each row in the sheet triggers a separate lead scraping request. This allows for multi-location or multi-niche targeting in one automation.
What to configure:
Connect your Google account
Select your spreadsheet and sheet
Output the search phrases as a JSON field (URLs, or however your column is labeled)
Mapping:
Step 3: Scrape Google Maps Results with Dumpling AI
Node: Scrape Google Map Businesses using Dumpling AI
This node makes a POST request to Dumpling AI’s search-maps endpoint.
Request Payload:
{
"query": "{{ $json.URLs }}",
"language": "en"
}
What it returns:
A rich list of business objects including:
Business name
Phone number
Website
Rating
Location
Why this is powerful:
You skip the headache of writing scrapers or using proxies. Dumpling AI returns structured business data in one API call.
Mapping:
Step 4: Split Out Each Business Entry
Node: Split Each Business Result
The Dumpling AI response contains an array of businesses under the places field. This node splits them into individual items so each lead can be processed one by one.
Pro Tip:
If you want to later filter based on rating or review count, you can do it after this split node.
Mapping:
Step 5: Extract Business Name, Phone, and Website
Node: Edit field
This step pulls just the 3 critical values we need for calling and logging:
title → business name
phoneNumber → raw phone
website → optional for logging
Mapping:
Step 6: Filter Leads Without Valid Phone Numbers
Node: Filter Valid Phone Numbers Only
Leads without a phone number are filtered out here. This saves API credits and avoids wasting Vapi calls.
Condition:
phoneNumber must exist and not be empty
Why this is essential:
It prevents null or undefined numbers from triggering failed calls downstream.
Step 7: Format Phone Numbers for Vapi
Node: Format Phone Number for Calling
Vapi requires properly formatted international numbers. This node:
Removes non-digit characters
Adds +1 (USA country code) by default
Formula:
'+1' + $json["phoneNumber"].replace(/\D/g, '')
Pro Tip:
For international campaigns, change the country code dynamically based on area or search input.
Mapping:
Step 8: Call the Business Using Vapi AI Assistant
Node: Initiate Vapi AI Call to Business
This is the heart of your outreach. It calls the cleaned number using your Vapi voice agent.
What it sends:
The phone number to call
The business name (injected into the assistant’s prompt)
Assistant ID and Number ID (you’ll need to preconfigure these in Vapi)
Payload:
{
"customers": [
{
"number": "{{ $json.formattedPhone }}",
"name": ""
}
],
"assistantId": "",
"phoneNumberId": "",
"assistantOverrides": {
"variableValues": {
"Name": "{{ $('Filter Valid Phone Numbers Only').item.json.title }}"
}
}
}
Why this is powerful:
You now have an autonomous AI voice system that contacts qualified businesses on your behalf.
Mapping:
Step 9: Log Call Outcome to Google Sheets
Node: Log Called Business Info to Sheet
This final step appends each contacted business into a Google Sheet for tracking and follow-up.
Logged Fields:
Company Name
Phone Number
Website
You can extend this to log after the call:
Call time
Status (answered, failed, voicemail)
Agent notes or transcript summary
Mapping:
Automation Flow Summary
Here’s how the whole thing runs:
Start manually or from Google Sheets
Scrape local leads using Dumpling AI
Filter and clean results
Auto-call businesses using Vapi AI assistant
Log the outreach in a centralized Google Sheet
Conclusion: This Is Smart Cold Outreach at Scale
This is no longer cold calling with a spreadsheet and a phone.
You now have:
A targeted lead scraping engine
A real-time calling system powered by AI
A logging mechanism that captures every attempt
You can run this daily, weekly, or connect it to CRM triggers. You can even route calls based on business type, location, or campaign type.
Why this workflow works:
It keeps your pipeline filled with fresh leads
It runs without needing a team of sales reps
It gives you full visibility, tracking, and control
💡 Want to level this up?
Add a step to enrich the business (emails, review counts, etc.)
Log call responses using Vapi's webhook
Build a dashboard in Airtable or Notion to monitor performance
Auto-schedule call retries for failed numbers
Download the blueprint used in this blog post
Click here to access the blueprint.