Step-by-step instructions to launch your first Lead Ad campaign from your phone. Wave 1: HVAC, Dental, Plumbing.
facebook-lead-webhook.py)FB_VERIFY_TOKEN and FB_APP_SECRET env vars set on server| Level | Name | Setting |
|---|---|---|
| Campaign | TCT — Lead Gen Wave 1 | Objective: Lead Generation |
| Ad Set 1 | TCT — HVAC Owners | $5/day, HVAC targeting |
| Ad Set 2 | TCT — Dental Owners | $5/day, Dental targeting |
| Ad Set 3 | TCT — Plumbing Owners | $5/day, Plumbing targeting |
| Ads (3 total) | One per ad set | See creative copy below |
Open business.facebook.com on your phone. Tap the menu (3 lines) → Ads Manager → green "Create" button.
On the campaign objective screen, select Leads. This is what unlocks the instant lead form (so leads never leave Facebook).
Name it exactly: TCT — Lead Gen Wave 1. Leave campaign budget optimization OFF — you'll set budget per ad set.
You're now setting up Ad Set 1 (HVAC). You'll duplicate this for Dental and Plumbing after.
Name it: TCT — HVAC Owners (then repeat with Dental, Plumbing).
Select Instant Forms (not website). This keeps leads inside Facebook and gets better completion rates on mobile.
Set daily budget to $5.00. Start date: today. End date: none (run until paused).
Set location to: United States. Optionally start with your top 5 cities (Nashville, Atlanta, Dallas, Houston, Phoenix) and expand when you have data.
Age: 25–65. Gender: All. Don't exclude women — many HVAC/dental/plumbing businesses are owner-operated by women.
Enter the interests listed in Section 4 for each industry. Use "Narrow Audience" to layer small business owner interests on top.
Leave placements on Automatic. Facebook and Instagram feed + Stories get the best lead volume at $5/day.
| Industry | Primary Interests | Layered (Narrow) |
|---|---|---|
| HVAC | HVAC, Air conditioning, Heating, Ventilation, Home services, Contractors | Small business owners, Self-employed, Business owner |
| Dental | Dentistry, Dental care, Oral health, Dental practice management, Healthcare | Small business owners, Private practice, Medical practice management |
| Plumbing | Plumbing, Plumber, Home repair, Trade contractors, Construction | Small business owners, Self-employed, Skilled trades |
Choose Higher Intent form type (not Volume). Higher Intent adds a review screen which filters out accidental taps and improves lead quality.
Headline: Stop Missing Business Calls
Body: "Find out how much revenue you're losing every time your phone goes to voicemail. Takes 30 seconds."
See the Lead Form Fields section below for exact field configuration.
Required by Meta. Enter: https://thecalltaker.com/privacy.html
Headline: We'll be in touch within 24 hours
Description: "In the meantime, call (615) 784-5747 to hear your future AI receptionist right now."
CTA button: "Call Now" → tel:(615) 784-5747
Visit developers.facebook.com → My Apps → Create App → Business type → name it "The Call Taker Lead Handler".
In your app dashboard, find "Webhooks" product → Add. Subscribe to the leadgen field on your Page.
Callback URL: the webhook URL below. Verify token: match your FB_VERIFY_TOKEN env var exactly.
In your Meta App → Tools → Graph API Explorer → select your Page → generate a long-lived Page Access Token. Set as FB_PAGE_ACCESS_TOKEN env var on your server.
Meta provides a "Send Test" button after subscribing. Tap it — you should see the lead appear in your GHL contacts within 30 seconds and receive an ntfy URGENT alert.
Use a single 1080x1080 image to start. Canva works fine from your phone. Keep it simple: dark background, large white text, The Call Taker logo/name bottom-left.
Keep text under 20% of the image area or Meta will reduce reach. One line: "24/7 Phone Answering for [Industry] Businesses" in white on dark background.
Copy the Primary Text, Headline, and Description for the matching industry. These are already Meta-compliant.
In Ads Manager, tap the HVAC ad set → Duplicate (2 copies). Rename to "TCT — Dental Owners" and "TCT — Plumbing Owners".
Swap in the targeting interests from Section 4 and the ad copy from Section 5 for each industry. Create a separate lead form for each so you know which industry each lead came from.
Meta reviews new ads within 24 hours. If rejected, check for: "AI" mentions (not allowed), pricing claims, before/after claims, misleading text. See the Meta policy alert at the top of this guide.
You need at least 2-3 days of data before making changes. Look at: cost per lead, lead quality (do they answer?), which industry performs best.
Pause any ad set with 0 leads after 7 days and shift budget to the winner. At $5/day you should see at least 1 lead per week per ad set if targeting is right.
Enter this URL in your Meta App webhook configuration and in the Facebook Lead Ads test tool.
The GET request is Facebook's verification challenge. Your webhook server responds with the hub.challenge value to prove ownership.
Payload includes: lead ID, form ID, page ID, field_data (business name, phone, industry, email).
HMAC-SHA256 of the raw payload body against FB_APP_SECRET. Rejects tampered requests.
Tags applied: facebook-lead, hot-lead, pilot-candidate, and the industry tag (e.g., hvac). Note added: "Source: Facebook Lead Ad - [industry]".
You get a push notification: "[CRITICAL] Facebook Lead: [name] from [company] - [industry]". Checked by Donny speed-to-lead system within 10 minutes.
"Hey [name]! Thanks for your interest. We help [industry] businesses like [company] never miss another call. Want to hear your receptionist live? Call (615) 784-5747 or reply YES for a free 14-day pilot."
FB_VERIFY_TOKEN is a string YOU choose — it can be anything. Set it in your env vars, then enter the exact same string in the Meta webhook configuration screen. This proves to Meta that you own the server.Save this as ~/Library/LaunchAgents/com.thecalltaker.ops.facebook-webhook.plist and load it with launchctl.
| Metric | Target | Action if Below |
|---|---|---|
| Cost per lead | < $75 | Test new ad copy. Check audience size (aim 500K-2M). |
| Lead form open rate | > 10% | Rewrite headline — it's the first thing they see. |
| Lead form completion | > 50% | Reduce form fields. Make Business Name optional. |
| SMS reply rate | > 20% | Rewrite the welcome SMS. Test "YES" keyword CTA. |
| Demo booked rate | > 10% of leads | Follow up faster. Speed-to-lead under 5 minutes matters most. |
Our AI will call you in under 30 seconds.
Calling you now!
Pick up your phone.
We'll call your business after hours and tell you exactly what your customers are hearing. Free. No strings.
We'll be in touch!
Check your phone for a call from The Call Taker.
Or hear the AI right now: (615) 784-5747