Intern
What you actually do
You own the stopwatch. Ingest and first SMS. Token not expired. Campaign field filled. CSV is not a workaround you get to keep.
Library / Wire / Meta lead ads expire in minutes. GHL must be the router.
Facebook Lead Ads do not fail because the form is ugly. They fail because the lead never becomes a contact with a clock. Instant Form → GHL contact → SMS or call in minutes, source tagged, opportunity on a speed-sensitive stage. This is the wire, including the after-hours path.
Facebook Lead Ads do not fail because the form is ugly. They fail because the lead never becomes a contact with a clock. Instant Form → GHL contact → SMS or call in minutes, source tagged, opportunity on a speed-sensitive stage. This is the wire, including the after-hours path.
Speed-to-lead is the product. If GHL sees the lead at 9:12 and the form was submitted at 9:03, you already lost a share of them. Measure ingest time, not just first human reply.
Map Instant Form fields to the spec. Full name splits. Phone in a consistent format. Consent language stored if you need it. Do not only store what Meta shows in Ads Manager.
Source, campaign, and ad set stay separate. One tag 'FB-lead-summer' cannot answer which ad to buy more of.
The first message should not be a novel. Confirm receipt, one question or a booking link if that is the job, and a human on the reply. Broadcast-on-lead is how you look like a bot and still miss the clock.
After-hours is a designed path. Silence until morning is how you pay Meta for a competitor's calendar. Auto SMS is allowed; claiming you called is not.
Intern
You own the stopwatch. Ingest and first SMS. Token not expired. Campaign field filled. CSV is not a workaround you get to keep.
Operator
Treat webhook/token failure as an outage. Protect after-hours honesty. Do not let an agency remain the inbox.
CEO
Meta is a clock. If GHL is not the router, you are buying leads for whoever texts first. Speed-to-lead is the board number, not CPL alone.
Meta Instant Form, leadgen webhook or native GHL Facebook integration, GHL contact, phone as speed key, source:meta tag, campaign name field, opportunity, Conversations SMS, missed-lead SLA, after-hours workflow.
Instant Form submit → GHL contact within the SLA (minutes, not a nightly sync)
Phone + email written; source:meta + campaign/adset names on fields, not mashed into one tag
New lead → Conversations SMS or task for a human inside the speed window
After hours → auto SMS with a next step; human task queued for morning; opportunity still created now
Native GHL Facebook Lead Ads, or a single webhook. Disable CSV downloads from Ads Manager as an operating step.
Why: Nightly CSV is a eulogy. Duplicate ingest (native + Zap) duplicates contacts and double-texts.
Done when: A test Instant Form appears in GHL in minutes. Ads Manager is not the CRM.
Standard + custom questions → named fields. Campaign, ad set, ad name → fields. Lead id stored for debugging.
Why: Without campaign fields you will scale spend on folklore. Without phone, SMS speed is dead.
Done when: Test lead shows campaign name and phone on the contact.
Opportunity on New meta lead (or equivalent). Timestamp first_inbound. Workflow: SMS in under five minutes during coverage hours.
Why: A lead without a clock is a contact you will 'get to'. Meta buyers do not wait.
Done when: Test lead during hours gets SMS under five minutes. Timestamp visible.
Outside coverage: auto SMS that tells the truth (we open at X, reply now and we will pick up). Create the opportunity anyway. Morning queue ordered by time waiting.
Why: Holding the lead until a human is in the seat is how overnight Instant Forms die.
Done when: An after-hours test creates the contact immediately and sends the honest SMS.
Median minutes from Meta submit to GHL ingest, then to first outbound. Broken ingest is a P1, not a marketing story.
Why: Creative tests hide a dead webhook. You will 'optimize ads' on a CRM outage.
Done when: Two numbers on Monday: ingest lag and first-touch lag, with a coverage-hours filter.
Publish a test Instant Form. Submit with a real phone you control. Time the minutes until GHL shows the contact and until SMS leaves. Write ingest lag and first-touch lag. If ingest is hours, do not write copy. Fix the integration. Confirm campaign name landed on a field.
More Meta spend, a new creative batch, or a 'lead vendor' until ingest is minutes and first-touch is measured in coverage hours. Spend into a slow router is how CAC lies.
Native connection was 'set up once'. Token expired. Leads pile in Ads Manager. Someone downloads CSV on Monday. Duplicate texts when the token is refreshed. After-hours Instant Forms wait until 10:00. Speed-to-lead is a slogan on a slide. That is paid demand with no router.
In-hours submit: contact + SMS under five minutes, campaign field present, one opportunity. After-hours submit: contact now, honest SMS, queued task. Token health checked. No CSV in the weekly ritual.
Ads Manager is not a pipeline. You cannot assign, recover no-shows, or sunset. The process is write-in plus a clock.
For Instant Forms, phone is usually the speed channel. Email can follow. If you only email, you are competing with a text from the next advertiser.
If an agency inbox is the destination, GHL will never be the system. Move ingest or you are renting a vendor's spreadsheet.
This week
This week: one Instant Form, one ingest path, in-hours and after-hours tests, speed numbers named. Pause extra lead forms.
A full calendar and an empty pipeline is two databases.
Read ↗A high score in a CSV is not a qualified opportunity.
Read ↗If the thank-you does not change the contact, the page was a brochure.
Read ↗If paid lives in Stripe and the opportunity is still open, reporting is theatre.
Read ↗Working notes
The minimum CRM, pipeline, and nurture spec before you add more pages. Request the file. It arrives by email — not a public dump, not a drip of slogans.
Email and WhatsApp stay open. A call is for installing the system — not for a tour of tools.