The exact architecture for unifying Facebook Lead Ads, Google LSAs, and web forms into one pipeline with sub-2-minute response.
Lead generation is a multi-source game now. A typical home-services or real-estate business is pulling leads from:
Each source has a different payload format. A different speed-to-lead expectation. A different cost per acquisition. And โ in most GHL setups I audit โ each is going into a different pipeline, with no unified view.
Reps end up checking 3-4 places. Owners can't answer "which channel made me money this month?" Duplicate leads slip through. Some leads sit untouched for 30 minutes while others get called twice in 5 minutes.
This article is about how to fix that.
The pattern that scales is one unified pipeline with source-specific intake bridges. Every lead, regardless of where it came from, lands in the same pipeline. The source is preserved as a tag and custom field, never as a separate pipeline.
Each source needs a different intake method. Here's what works for each:
Use GHL's native Facebook integration. Map every form field to a custom field in GHL. Critical fields to capture: lead source identifier (ad set name or campaign), UTM parameters (if you use a custom thank-you redirect), and consent checkbox state.
Common pitfall: leaving the native integration on default settings. It'll capture the lead but won't preserve which ad set or creative produced it. Always pass the ad_id through to a custom field.
Google LSA leads come in as phone calls and messages. Google doesn't push these directly to GHL. Options:
Tag every LSA-sourced lead with source: google-lsa and the specific service category.
Direct webhook integration. Every form on your site should post to a GHL inbound webhook. Preserve all UTM parameters (utm_source, utm_medium, utm_campaign, utm_content) as custom fields.
If your forms are on WordPress, Webflow, or another framework โ use the native HTTP request capability or a Gravity Forms / WS Form bridge.
CallRail and CallTrackingMetrics both push to GHL via webhook on call completion. Include call duration, recording URL, and source tracking number in the payload.
Different sources send different field names. Facebook calls it full_name. Your website might send name. LSA sends customer_name.
Don't let those land in different custom fields. Normalize in a workflow step before the lead enters the pipeline.
The pattern:
full_name, phone_e164, email, source, source_detail)For phone numbers specifically, normalize to E.164 format (+15551234567). This avoids deduplication misses and makes A2P SMS reliable.
Once normalized, the routing workflow assigns the lead. The combination that works for most multi-rep businesses:
Check the prospect's ZIP code (or service area) against rep coverage. Each rep has a custom field listing their ZIP codes. The lead is only eligible for reps whose territory includes the prospect's location.
If a lead comes in outside business hours, don't assign to anyone โ drop it in a "Pending Assignment" stage. Assignment happens at the start of the next business day.
If it's during business hours, only assign to reps who are currently on shift (use a custom field currently_available that reps toggle via SMS or app, or tie it to a shift schedule).
From the reps who passed filters 1 and 2, assign to whoever's next in the round-robin queue. GHL's native round-robin works fine for this once the eligible set is determined.
Industry research consistently shows that calling a lead within 5 minutes of inbound is 9-10ร more effective than calling at 30 minutes. The realistic target for a well-tuned setup is under 2 minutes.
To hit that:
If you're auto-firing SMS within seconds of form submission, you're using A2P 10DLC infrastructure. Your brand and campaign must be registered before any of this works at scale.
I've written a separate complete guide to A2P 10DLC registration โ read that before you launch a multi-source routing system.
This is the payoff. Every lead carries source tags through every stage. When an opportunity moves to Won, you can finally answer:
These are the questions that let you reallocate ad spend instead of guessing.
If you're building this from scratch, the order that works:
source, source_detail, phone_e164, UTM fields)Each step takes 1-3 days. Full build is realistically 2-3 weeks for a typical multi-source setup.
You'll know it's working when (a) every lead lands in the same pipeline within 60 seconds, (b) rep response time is consistent across sources, (c) you can pull a "revenue by source last 90 days" report without asking anyone to compile it manually, and (d) reps stop checking multiple inboxes.
I work with home services operators, real estate brokerages, and marketing agencies on the exact systems described in this article. Most projects start at $300โ$1,200 depending on scope.