
Use this every time you launch a new client. The steps are in order — build the form top to bottom.
Owner: Hanif (build, as part of Skeleton Campaign Setup SOP) → Mohamed (automation integration after the form is mapped in GHL). Tasneem and Abdelhamed test variants on live accounts after launch.
NOTE
Ownership moved 2026-07-27. The form used to be built by the media buyer. It is now built by Hanif at setup time, together with the skeleton campaign and the GoHighLevel connection, so the whole detail-heavy setup lives with one person.
Always write dollar amounts as $X,XXX.
$8,997$8997This applies everywhere — greeting pages, ad copy, headlines. If you see a live form missing the comma, that is a typo to fix, not a pattern to copy.
Open Facebook Ads Manager → Lead Forms → Create new form.
Set these:
| Setting | Value |
|---|---|
| Form type | More Volume |
| Format | Optimized Flexible |
| Background image | ON |
On Form type: always use More Volume for setup. Higher Intent (the version with the OTP phone-verification review step) is something Tasneem and Abdelhamed may test on a live account later — it is never the launch default.
On Background image: turn it on so the person sees the ad they just came from. Without it the form looks like an unrelated page and reads as a scam.
Pick the template that matches the client's offer, then paste into the intro screen's headline and description fields.
All of these are transcribed from live forms. Swap the client's price and system type; keep the shape.
HVAC — full system replacement (reference: Heating & Air Paramedics, $7,997)
Paste the headline:
Full System Upgrade + Bonus Smart Thermostat!
Paste the description:
Lock in the $7,997 Starting Offer for a full replacement. Includes Smart Thermostat Bonus with install.
👇 Tap below to confirm eligibility 👇
HVAC — full system, higher starting price (reference: Call on the Double, $8,997)
Use this shape when the starting price is high enough that people will assume it is the final price. The extra line manages that expectation up front.
Paste the headline:
Full System Upgrade + FULL 10-Year Warranty!
Paste the description:
Starting at $8,997 for a complete HVAC replacement. Final pricing is based on your home's setup. Includes a FREE Smart Thermostat with installation.
👇 Tap below to confirm eligibility 👇
HVAC — AC only (reference: Paradise Heating, $4,997)
Paste the headline:
Full AC Upgrade + FREE Bonus Thermostat!
Paste the description:
Lock in the $4,997 Starting Offer for a full AC replacement. Includes Thermostat Bonus with install + 10-Year Warranty.
👇 Tap below to confirm eligibility 👇
HVAC — furnace only ($5,997 typical)
Paste the headline:
Full Furnace Upgrade + FREE Bonus Thermostat!
Paste the description:
Lock in the $5,997 Starting Offer for a full furnace replacement. Includes Thermostat Bonus with install + 10-Year Warranty.
👇 Tap below to confirm eligibility 👇
HVAC — monthly financing (reference: Sam's Air Control, $129/mo)
Use this when the client has no strong starting price to lead with.
Paste the headline:
Full System Upgrade + FREE Bonus Thermostat!
Paste the description:
Lock in custom pricing for a complete system upgrade tailored to your home's needs.
Starting at $129/mo. Includes full 10-year warranty + bonus thermostat.
👇 Tap below to confirm eligibility 👇
WARNING
Never put a starting price and a monthly payment in the same copy. It is one or the other. Use the monthly payment only when there is no good starting price to lead with. Same rule as ad copy — see Ad Creative Strategy.
Windows & Doors — existing clients only (reference: I Windows Remodeling, $8,997)
Paste the headline:
Full House Windows From $8,997 + Full Lifetime Warranty
Paste the description:
See if your home qualifies for our 2026 summer installation incentives. It takes less than 30 seconds to check styles and pricing.
👇 Fill out the info below. 👇
WARNING
Windows & Doors is a sunset niche. This template is here to service the clients we already have. We do not take on new Windows & Doors clients — if someone asks you to launch one, check with Sean first.
Full [System Type] Upgrade + [FREE ]Bonus [Smart ]Thermostat! — swap [System Type] for System, AC, Furnace. Where the warranty is the stronger selling point, swap the thermostat for it: Full System Upgrade + FULL 10-Year Warranty!Lock in the $[price] Starting Offer for a full [system type] replacement. Includes Thermostat Bonus with install + 10-Year Warranty.👇 Tap below to confirm eligibility 👇. Windows & Doors uses 👇 Fill out the info below. 👇.Write AC, not A/C. Write 10-Year Warranty, not 10 Years Warranty.
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.
Every launch gets this question. It used to be optional; as of 2026-07-27 it is standard.
Paste the question:
How do you plan to pay?
Paste the answers (one at a time):
Cash/Credit
Financing
Both answers are qualified — every answer submits. This is not a qualification gate. It is information for the setter team: when a lead picks Financing, the setter opens with the client's financing offer instead of pitching it cold. See HVAC Setter Playbook.
Add every question before you turn conditional logic on. Turning it on locks the question order — you cannot drag questions around afterwards. If you get the order wrong you have to rebuild.
The order to build in is: all questions → conditional logic → end pages last.
Then toggle Conditional Logic ON and set what happens for each answer:
| 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 | Go to next question |
| Q2 (project) | Install HVAC in a new home/area | Go to next question |
| Q2 (project) | Repair my AC or furnace | Close form (sends to disqualified end page) |
| Q3 (payment) | Cash/Credit | Submit form (qualified) |
| Q3 (payment) | Financing | Submit form (qualified) |
Everyone who is not disqualified passes through the contact-info screen before the end page.
WARNING
Build the end pages after conditional logic, not before. Turning conditional logic on wipes the standard end-page message. This was caught on the Turnkey Mechanicals form (2026-07-08) — it had turned into a broken two-click redirect instead of a direct link to the booking page, which quietly cost self-bookings.
Paste this URL in the privacy policy field. Same URL for every form:
https://test.directestimatepro.com/privacy-policy
NOTE
The
test.in that URL is intentional and correct. It is the live production privacy policy — it covers everything we do on this domain. Do not "fix" it to a client subdomain.
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. It is on by default and adds no friction — leave it on.
This is what pushes the lead into GoHighLevel when the contact is created. It matters.
Use this naming format. Separate the parts with dashes, not underscores:
CompanyInitials - Location - Offer - FormType - Version
Examples:
GE - Vegas 40mi - StartingAt7997 - MoreVolume - 1.0
GE - Vegas 40mi - MoFi - MoreVolume - 1.0
MP - Cleveland - StartingAt7997 - MoreVolume - 2.0
IMPORTANT
Dashes are deliberate — they are how you tell a form name from an ad name at a glance. Form names use
-. Ad names use_. Do not swap them.
CompanyInitials — GE = GoEcho, MP = Multi-Point, etc.Location — main city, plus the radius if it fits neatly (Vegas 40mi, Tucson 40mi). Rough is fine.Offer — StartingAt7997, MoFi (monthly financing), etc.FormType — MoreVolume on every setup. Only differs if a media buyer later builds a HigherIntent variant.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 standard 3 → add -4Q after Offer
Full steps: Connect Facebook Page to GoHighLevel. Short version:
service_area, project_scope, and payment method.[Company initials] W1 → click the trigger → select the page and the new form → Save.WARNING
Step 3 is the one that gets skipped, and skipping it means leads arrive and no automation fires. Do not stop after mapping the fields.
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.
Add when the client wants urgency/lead-priority signal for the setter team. Not a qualification gate — every answer submits.
Paste the question:
How soon are you looking to get this done?
Paste the answers (one at a time):
ASAP
Within 1-2 weeks
Over 30 days
All answers route to submit (→ E1).
WARNING
Answer-text typo caught 2026-07-08 (H&A Paramedics form). The third option had shipped as "within 30+ days" — self-contradictory ("within" = under, "30+" = over). Correct text is "Over 30 days" (fix in progress). Use "Over 30 days" on all new builds; don't copy the old "within 30+ days" string.
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.
NOTE
Observed live variant — split location qualifier (documented 2026-07-09). The default build above combines homeowner + location into a single Q1 ("Are you a homeowner in [Region]?"). The live Heating & Air Paramedics (Tucson) form instead runs them as two separate qualifier questions —
Are you the homeowner?(Yes/No) andIs your project located within our [City] service area?(Yes/No) — plus the payment and timeline questions above. Both patterns are in production; the split version is worth knowing when auditing an existing form against this SOP. Confirmed against a 2026-07-08 lead payload.
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 40mi - StartingAt7997 - MoreVolume - 1.0
GE - Vegas 40mi - MoFi - MoreVolume - 1.0
Don't combine offers into one form — separate forms make ad-level offer swaps clean.
Open the form → Duplicate. Facebook names the copy ... - Copy; change that to the new version number (1.1 for a typo fix, 2.0 if you added or removed a question).
Then archive the old one. Archiving is reversible and keeps the list clean — there is no harm in it.
Nearly every post-launch fix is one of two things: a typo in the greeting, or a typo in a question.