Use this every time you launch a new HVAC client. The steps are in order — build the form top to bottom.
Owner: Tasneem (build) → Mohamed (automation integration after the form is mapped in GHL).
Open Facebook Ads Manager → Lead Forms → Create new form.
Set these: - Format: Optimized Flexible - Background image: ON - Intro headline: same offer text as the ad (do not mystery-box)
Paste this in the description field above the contact fields. It's the same on every form:
We'll use your info to schedule your estimate. Please confirm your phone number is correct.
Add these four fields, all required, in this exact order:
(Use the Zip Code field, not Postal Code. Zip Code is US, Postal Code is European.)
If a client is running unusually low conversion after you've tested for a while, the first thing you can flip optional is Email. Phone is always required.
The question text changes per client — you'll generate it using the location prompt before you build the form (Prompt C in Targeting Audit Workflow). For the build, paste in the per-client question text. The answers never change.
Paste the question:
Are you a homeowner in [Region / County List]?
Paste the answers (one at a time, each in its own answer field):
Yes, I am
No
Paste the question:
What do you need help with?
Paste the answers (one at a time):
Replace my current HVAC system
Install HVAC in a new home/area
Repair my AC or furnace
Important: Repair leads are always disqualified. The only exception is if Griffin has noted in the client's Discord channel that the client wants repair leads (rare — only happens with monthly retainer clients). If you don't see a note, repair is disqualified.
Save the questions first, then toggle Conditional Logic ON.
For each answer, set what happens next:
| Question | Answer | What it does |
|---|---|---|
| Q1 (location) | Yes, I am | Go to next question |
| Q1 (location) | No | Close form (sends to disqualified end page) |
| Q2 (project) | Replace my current HVAC system | Submit form (qualified) |
| Q2 (project) | Install HVAC in a new home/area | Submit form (qualified) |
| Q2 (project) | Repair my AC or furnace | Close form (sends to disqualified end page) |
Paste this URL in the privacy policy field. Same URL for every form:
https://test.directestimatepro.com/privacy-policy
This is the page people see after they submit a qualified lead.
Paste the headline:
ONE LAST STEP!
Paste the body:
1. You will receive a Text Message from us
2. Reply "Yes" to confirm your phone number
3. Once confirmed, we will schedule your FREE quote.
In a hurry to get started? Click "𝗛𝗼𝗹𝗱 𝗠𝘆 𝗦𝗽𝗼𝘁" below to pick your preferred time. We'll call to confirm it.
(𝗛𝗼𝗹𝗱 𝗠𝘆 𝗦𝗽𝗼𝘁 in the body uses Unicode bold characters. Copy it directly — don't retype it as plain text.)
Paste the CTA button label:
HOLD MY SPOT
Set the CTA button destination URL. Get it from Griffin's announcement in the client's Discord channel. The format is always:
[clientname].directestimatepro.com/schedule-appointment
Example: if Griffin posts the domain cotd.directestimatepro.com, the CTA destination is cotd.directestimatepro.com/schedule-appointment.
This is where people go if they answered "No" to location or "Repair" to project. Paste this URL:
https://www.facebook.com/
(They go back to their Facebook feed. We don't want disqualified people calling the client.)
Find the Start Conversations on Messenger toggle and turn it ON.
Use this naming format:
CompanyInitials_Location_Niche_OfferType_Version
Examples:
GE_Vegas_HVAC_StartingAt7997_1.0
GE_Vegas_HVAC_MoFi_1.0
MP_Cleveland_HVAC_StartingAt7997_4Q_1.0
CompanyInitials — GE = GoEcho, MP = Multi-Point, etc.Location — main city (Vegas, Cleveland, Lubbock)Niche — almost always HVACOfferType — StartingAt7997, MoFi (monthly financing), etc.Version — start at 1.0Version bump rules:
- Same form, fix a typo → 1.0 → 1.1
- Same form, add or remove a question → 1.0 → 2.0
- Form has extra questions beyond the default 2 → add -4Q after OfferType
GHL's interface moved this recently. Find it here:
service_area and project_scope to the corresponding GHL contact fields.If the page is not connected, post in the Discord channel and tag Hanif.
In the client's Discord channel, type:
Form is mapped and ready for automation.
Mohamed will build the GHL automation from there.
Only add this when the client specifically asks. This bumps the form name to include -4Q (because it's a third question beyond the default two).
Paste the question:
How old is your current system?
Paste the answers (one at a time):
Less than 5 years
5 – 10 years
10 – 15 years
15+ years
I don't have one / new install
All answers route to the next step (submit form → E1). Every answer is still a valid lead — this is information for the client's setter team, not a qualification gate.
If the client asks for a different optional question (e.g., "Do you own or rent?", "Have you gotten quotes already?"), copy the exact phrasing into the Discord channel and ping Sean before adding it.
If the client is going to run more than one offer type (e.g., starting-at price and monthly financing), build all the variants together so Mohamed integrates them in one pass. Each offer = its own form.
Example: build both of these on Day 1:
GE_Vegas_HVAC_StartingAt7997_1.0
GE_Vegas_HVAC_MoFi_1.0
Don't combine offers into one form — separate forms make ad-level offer swaps clean.