Find roofing leads and run AI voice outreach

Posted on Oct 6 • Edited on Oct 6. Task: The author built an n8n automation system for roofing lead outreach, splitting it into two workflows: lead discovery and voice outreach. Discovery uses Apify/Google Places to find businesses, filters duplicates, and stores leads in Google Sheets. Outreach selects eligible leads, checks local calling hours, researches competitors via SerpAPI, generates personalized openers with OpenAI, and executes calls via Vapi. Call outcomes are classified by AI and written back to the spreadsheet. The source does not specify how human review or approval is integrated into this automated loop.; tools: n8n. Human role: The original post does not say how a person stayed involved.; limitations: Prerequisites include API keys for Apify, SerpAPI, OpenAI, and Vapi, plus a Google Sheets database. Operating costs depend on API usage and voice call minutes. Integration uncertainty exists regarding AI voice reliability, retry handling, and human handoff processes, which the author explicitly seeks advice on. Community comments highlight edge cases like phone number normalization (E.164) and multi-timezone states requiring coordinate-based time checks. The source is a self-reported build log with no independent verification of results..

Tools

n8n

Published on Agent Work Atlas:

Overview

Posted on Oct 6 • Edited on Oct 6

Workflow

The author built an n8n automation system for roofing lead outreach, splitting it into two workflows: lead discovery and voice outreach. Discovery uses Apify/Google Places to find businesses, filters duplicates, and stores leads in Google Sheets. Outreach selects eligible leads, checks local calling hours, researches competitors via SerpAPI, generates personalized openers with OpenAI, and executes calls via Vapi. Call outcomes are classified by AI and written back to the spreadsheet. The source does not specify how human review or approval is integrated into this automated loop.

Reported result

The source does not report any measured outcomes, such as conversion rates, call success metrics, or time saved. It describes the architecture and design goals but provides no data on actual performance or failures. A measurable acceptance check would require tracking call connection rates, outcome classification accuracy, and lead conversion percentages over a defined period.

Human role

The original post does not say how a person stayed involved.

Limitations

Prerequisites include API keys for Apify, SerpAPI, OpenAI, and Vapi, plus a Google Sheets database. Operating costs depend on API usage and voice call minutes. Integration uncertainty exists regarding AI voice reliability, retry handling, and human handoff processes, which the author explicitly seeks advice on. Community comments highlight edge cases like phone number normalization (E.164) and multi-timezone states requiring coordinate-based time checks. The source is a self-reported build log with no independent verification of results.

Try it

Act as an n8n workflow engineer. I need to build a roofing lead outreach system. [replaceable inputs: Target City, Google Sheets ID, API Keys for Apify/SerpAPI/OpenAI/Vapi]. First, create a Lead Discovery workflow: use Apify to scrape Google Places for roofing businesses in [Target City], filter for valid phone numbers, normalize to E.164, check for duplicates against the sheet, and append new leads. Second, create an Outreach workflow: select one 'New' or 'Follow-Up' lead, verify local time is 9 AM-9 PM using business coordinates, fetch competitor data via SerpAPI, generate a personalized opener with OpenAI, and initiate a Vapi voice call. Poll call status, classify outcome (Booked, Not Interested, etc.) with AI, and update the sheet. Before running live, perform a dry run with 3 sample leads. Show me the JSON output of the AI classification and the updated sheet rows for human confirmation. Do not send real calls until I approve the dry run results. If any API fails, log the error and stop the workflow.

Original source

Source reports are not independently verified. Publication date is the catalog publication date, not the original article date.

More cases · Marketing & sales