The Larchmont GTM OS · Every Workflow, Every Screen, With Routing

Twelve workflows, six pipeline stages, and one number that decides all of it: 5.2 minutes

Reverse engineered from eight delivery days of real lead data on a contractor in the same county, selling to the same buyer, through the same channel. Every build below exists because a number said so.

1 System step
Conditional logic
YES Qualified path
NO Filter / recycle
The Install Order · Which layer goes live in which week
Week 0
Gates

A2P 10DLC brand and campaign submitted. Sub account, numbers, pipelines, locked loss reason list. Nothing sends until the campaign shows approved.

Week 1
The sixty seconds

Layer 05 workflows WF-01, WF-02, WF-07. Calendar on the last form step. Webhook carrying visitor id and click ids into the CRM.

Week 2 to 3
Middle and loop

WF-03, WF-04, WF-05, WF-11. Full event map before any spend. WF-12 writes closed revenue back to the ad account.

Week 4+
Scale

Paid launches small and feed only. Layer 07 intelligence in payback order. Layer 08 commercial lane opens on a named list.

00
Layer 00 · Provenance

Where The Evidence Comes From

Read this first or the numbers will mislead you. The funnel data behind this document is not Larchmont's.

1

The source account

Elite Northwest Flooring. 8 delivery days, $252.42 of Meta spend, 10 leads, 7 booked, 3 estimates run, 3 quotes sent, $0 closed. Snohomish County, homeowner buyer, Facebook lead form.

Borrowed data8 days
2

Why it transfers

The shape transfers, not the forecast. Same county, same buyer age, same channel, same job size band, same problem of a two person operation answering a phone from a job site.

Shape only
3

Why it does not

Nobody can tell you Larchmont's cost per lead from someone else's account. This document never tries. Where a number does not exist it says UNKNOWN and names who produces it.

See Layer 12
4

Already built, do not rebuild

A first party beacon capturing UTMs, platform click ids, a persistent visitor id, firing on phone taps and text taps. For a contractor the call is the lead.

Live
5

Also already live

Lead store and dashboard with source, campaign and journey stitching. Nightly SEO bot. 153 page SEO property, AEO pages, GMB post library.

LiveNeeds wiring
6

The actual gap

Not traffic and not tracking. Nothing catches the lead in the first sixty seconds and nothing carries it to a signature. That is what Layers 01 through 05 build.

Feeds Layer 01
The rule this document follows
Applies to every figure on the page

Where a number is borrowed, it says borrowed. Where a number is Larchmont's, it says so. Where a number does not exist yet, it says UNKNOWN. There are no invented figures anywhere in here, and none should be added later.

01
Layer 01 · The Finding

Seven Of Eight Bookings Inside 5.2 Minutes

Not hours. Minutes. The reason is boring and mechanical: the calendar sat on the last step of the form, so the person booked themselves while still holding the phone.

1

The window

Seven of eight bookings landed between 1.3 and 5.2 minutes after submit. Nothing else in that funnel moved the number this much, and it had nothing to do with creative.

1.3 to 5.2 minBorrowed
2

The outlier

The one lead who took 883 minutes to book is also the only booked lead who never got an estimate run. One data point, so treat it as a hint rather than a law.

n = 1
3

What it costs

No ad budget. It is a form layout and two automations. Cheapest finding in the document and the most expensive to ignore.

Zero spend
4

Larchmont today

The site posts a lead to /api/lead, pings a notification, and stops. No calendar on the form, no automated call. A lead at 7pm Saturday sits until someone opens a phone.

Current state
5

The two builds

WF-01 Speed to Lead and WF-02 Missed Call Text Back. Calendar on the last form step, call bridge inside sixty seconds. Both in Layer 05.

Feeds Layer 05
6

The governing rule

Fix the sixty seconds before spending another dollar on reach. Every other build in this document is downstream of it. WF-07 measures it daily.

Gate
The Response Machine · Every message, with routing
1
Lead lands
Larchmont Builds. Got your request. We are calling you now.
Sent inside 60 seconds
Instant SMS
Buys the unknown number
2
Call bridge
Ring Eddie · 25 seconds
Call Connect
Whisper names the service
Answered?
First contact
Routes the flow
YES
Booked and guarded
You are set for Thu at 10am
On my way. Should be there around 10.
Stage: Contacted
WF-03 takes over
NO
2
Second number
+45s · ring 25 seconds
Then task, tag lead-uncaught
Escalation
Never a dead end
02
Layer 02 · Refusals

Do Not Build These

Every one of these will be sold to Larchmont by someone. Four have hard evidence against them from the reference account itself.

The thingVerdictWhat the record shows
AI texting bot as the booking mechanismFailed167 outbound messages, 6 inbound replies at 3.5 percent, zero bookings traceable to it. A human call inside five minutes booked 7 of 10.
Tool that scores a video and predicts viewsDo not buyCreative features explain 10 to 25 percent of performance variance, ceiling near 30 percent. Anything promising a view count is selling an R squared near 0.2.
Hashtags for reachDeadHead of Instagram on record: not an important thing for reach.
Trending audio for distributionFolkloreNo documented mechanism. It survives only as a creative prompt.
Best time to postFolkloreNo methodology behind any of it and the vendors contradict each other.
Tag a friend giveawayNeverTrips engagement bait rules and giveaway conditions at once. The demotion lands on the account, not the post, and it is durable.
Reels and Stories placements at launchOffTook 17 percent of spend across both platforms and produced zero leads. Facebook feed took 77.7 percent and produced 9 of 10.
101 ad variantsNoOne ad set took 78 percent of spend and produced 100 percent of leads. The other 100 were budget that never got a chance.
Cutting the radius to kill far leadsReversedCutting it would have removed 94 percent of quoted pipeline. The two biggest quotes were the two furthest leads.
Caveat on the variant count
Spend is not independent of performance here

Meta concentrated budget early, so the winner and the ad Meta fed are confounded. The honest read is not that one creative was brilliant. It is that 101 variants split a small budget so thin that most never got tested at all. Ship five to eight, let them run, then judge.

03
Layer 03 · Traceability

Evidence To Build

Every build traced back to the number that caused it. Nothing on this page exists because it sounded good in a meeting.

FindingWhat it meansBuild
7 of 8 bookings inside 5.2 minutesCalendar sat on the last form step.WF-01 + WF-02
7 booked, 3 run, 4 lost betweenCancellations and no shows ate the middle.WF-03
3 quotes sent, nothing moved past sentNo follow up existed after the quote.WF-05
Pixel fired only on submit153 clicks, 10 page views, page views equalled leads.Layer 06
Every large quote came from a GC or PMNothing in the ad stack targeted that buyer.Layer 08
GBP category set to RemodelerLarchmont's own audit. Invisible for the money terms.Layer 09
04
Layer 04 · Pipeline

Six Stages, And The Two Where Money Dies

Booking is close to solved by speed. Getting the booked person to be home, and the quoted person to sign, is where every dollar of the reference account died.

The reference funnel, 8 delivery days
Borrowed data · Elite Northwest Flooring · every boundary measured
Borrowed
StageEnters whenExits whenReference drop
1. New LeadForm, call, or text arrivesTwo way contact made10 in
2. ContactedLead replies or answersAppointment on the calendar10 to 7
3. Estimate BookedCalendar slot heldEddie is standing in the house7 to 3
4. Estimate RunWalkthrough doneWritten number sent3 to 3
5. Quote SentPrice deliveredSigned or dead3 to 0
6. Won / LostDecision madeClosed out with a reason0 won
1

Stage 3 is the first leak

Four jobs lost between a yes and a doorstep, on a funnel with ten leads in it. WF-03 exists for this number and nothing else.

Routes to WF-03
2

Stage 5 is the bigger one

Three live quotes worth $37,550 sat with no sequence behind them. The single largest recoverable number in the dataset.

Routes to WF-05
3

Loss reason is required

Fixed list only: price, timing, another bid, cancelled, could not reach, out of area, not a fit. A fixed list lets you sort a year of losses and see which one costs most.

Locked fieldFeeds Layer 07
05
Layer 05 · GoHighLevel

The Twelve Workflows

Each one names its trigger, its exact waits, and its exit. Written so they can be built without a second conversation. Every SMS line has been through the Larchmont copy gate.

Hard gate before any of this can send
A2P 10DLC · budget a week
Blocking

Brand and campaign registration has to be approved before GHL will deliver SMS at volume. Unregistered traffic gets filtered by the carriers, not by GHL, so it fails silently and looks like people are ignoring you. Register the brand, register a campaign per use case, and do not build the SMS steps until the campaign shows approved.

01

Speed to Lead

Form, webhook or FB lead form fires it. SMS at 0 seconds, Call Connect at 5 seconds, second number at +45s, task at +2 min. Exits on two way contact.

Under 60 secondsTag lead-uncaught
02

Missed Call Text Back

Any missed, voicemail or busy on a tracked number. SMS at 8 seconds from the same number. One follow up at +1 hour, then drops to WF-10.

Highest return
03

Show Rate Defense

Confirm on booking, question at 24 hours, on my way at 2 hours. No Show fires a recovery text plus a manual task. Aimed at the 7 to 3 drop.

24h / 2hStage 3 leak
04

Estimate to Quote SLA

Task to Eddie due in 24 hours. Internal nudge at 24h, escalation at 48h. Nothing to the customer until the number is real. Guard rail, not a fix.

Internal only
05

Quote Ladder

Four touches over 21 days, then close the file. Day 2 asks about the price, day 7 asks what is blocking it, day 21 releases pressure. Never discount inside it.

$37,550 idleStage 5 leak
06

Review Engine

One ask by text at +1 day, one email reminder at +4 days, then stop permanently. No gating, no incentive, no filtering by star rating. 16 CFR Part 465.

UngatedLegal
07

Speed Report

Daily at 07:00. Median seconds from lead created to first two way contact, plus every lead that broke five minutes, named. One line, no dashboard to open.

Governs Layer 01
08

Commercial Intake

Routes to the Commercial pipeline, not Residential. Internal notification only. No automated SMS to a GC. Ever. Call plus capability one pager at +1 business day.

Separate laneSee Layer 08
09

Emergency Water Route

Skips the calendar entirely. This buyer does not book a Tuesday. All numbers in sequence with no 45 second gap, escalation at 90 seconds.

No calendarContractor not adjuster
10

Long Nurture

One text every 45 days. No campaign, no newsletter, no blast. A reply pulls the contact back to New Lead and restarts WF-01. Four silent cycles then stop.

45 day cycleTag dormant
11

Unbooked Lead Recovery

Contacted for over 24 hours with no appointment. One text that lowers the cost of saying yes, manual call at +3 days, drops to WF-10 at +7.

24h trigger
12

Won to Cash

Writes contract value and close date, then fires the offline conversion to Meta CAPI with the hashed contact and real revenue. Step two is the one nobody builds.

Closes the loopFeeds Layer 06
WF-02 Missed Call Text Back · The highest return automation on the list
1
Call rings out
Missed · voicemail · busy
Trigger
Any tracked number
2
Text back
Sorry we missed you. This is Larchmont Builds. What do you need done?
Sent 8 seconds later
Same number
Not a new one
Replied?
10 minute wait
Routes the flow
YES
Human takes it
Need a fence quote
Notify Eddie · open thread
Workflow stops
No further automation
NO
2
One follow up
Tried you just now. Want me to come look at it this week?
+1 hour, then WF-10 at +1 day
Routes to nurture
Never a dead end
WF-05 Quote Ladder
The single largest recoverable number in the dataset
Day 0SMSPrice delivered · stage moves to Quote Sent, ladder starts
Day 2SMSAsk about the number, not the job · "Did the price make sense? Happy to walk through it."
Day 7SMSAsk what is blocking it · "Still thinking on the deck? Tell me what is holding it up." No discount here
Day 14Written scope re attached · subject line names the service and the price
Day 21SMSThe close out · "Closing out your file. Want me to leave it open?" This one gets replies because it releases pressure
Day 22CloseMove to Lost with a required reason · then drop into WF-10 long nurture. Nothing is ever just abandoned
WF-09 response ladder
Clock starts on first inbound
0 sec
Water, flood, moldSkip the calendar. All numbers in sequence, no 45 second gap.
↓ if no answer
90 sec
Second channelEscalate and mark the opportunity urgent.
↓ standard path
60 sec
Everything elseWF-01. SMS then call bridge. Calendar sits on the form.
↓ if median breaks 5 min
Daily
WF-07 names itIf this number drifts above five minutes the rest of the stack stops mattering.
Scope law, carried from the site legal pass
Non negotiable in copy and in scripts
Larchmont is a contractor, not a public adjusterWF-09
No claim negotiation, customer pays the deductible in fullWF-09
No review gating, no incentive, no star rating filterWF-06
STOP language on the first automated messageWF-01
Registration LARCHBL744BK on every paid pieceLayer 10
A2P 10DLC campaign approved before any SMS step is builtWeek 0
06
Layer 06 · Measurement

Stop Optimizing Toward Form Fills

The reference account fired its pixel on submit and nothing else. 153 link clicks produced 10 landing page views, and page views equalled leads exactly. That is not a funnel, it is a single event.

EventFires whenCarriesWhy it exists
PageViewAny pagevisitor id, sourceBaseline and audience building
ViewContentService or city page, 15s dwellservice, citySeparates a real reader from a bounce
InitiateCheckoutForm started, first field focusedserviceThe abandonment signal. Nobody tracks this and it is where the form dies
LeadForm submittedservice, city, sourceThe current only event
ScheduleAppointment bookedslot, serviceThe real top of the money funnel
ContactPhone tap or text tappage, sourceLarchmont's beacon already emits this. Feed it to the pixel too
PurchaseOffline, on stage Woncontract valueSent by WF-12 through CAPI, not the browser
1

Sequencing warning

Adding events mid flight to a campaign that is already learning will reset that learning. Build the full map before the first dollar, or accept a reset on a day you choose.

Before any spend
2

Three missing links

/api/lead posts to GHL by webhook carrying _lv_vid, UTM fields and click ids. GHL writes appointment and closed value back. WF-12 sends the offline Purchase.

3 wires
3

The click id is the whole thing

The click id captured on day one is what makes the closed job on day forty attributable. Capture it or the rest is theatre.

First touchFeeds WF-12
The Attribution Loop · First touch to closed revenue
1
Beacon fires
_lv_vid + fbclid stored
Day 0
Already built
2
Lead to CRM
Custom fields carry click id
Webhook
The missing wire
3
Job closes
Contract value written
Stage: Won
Day 40
WF-12 fires
CAPI Purchase
Meta optimizes on jobs
Loop closed
Not form fills
07
Layer 07 · Intelligence

Six AI Builds, In The Order They Pay

Every one processes data that already exists or that the layers above start producing. None of them talk to a customer unsupervised, because the one that did produced zero bookings out of 167 messages.

1

Call intelligence

Record and transcribe every inbound call, then mine the objection, service, city and the words the caller used. For a contractor the call recording is the only unfiltered voice of customer data in the business. Feed top objections into WF-05 monthly.

Build first
2

Creative defect gate

Not a performance predictor. A mechanical pre publish check, because predicting failure is far easier than predicting success. Fails on missing final line, late first cut, wrong caption font, missing reg number, unapproved claim, em dash, banned word.

Build secondExisting lint gate
3

Competitor ad monitor

Weekly Meta Ad Library sweep across the radius. Days on air, variant count, offer, relaunch behaviour are the only honest proxies that exist. Any tool claiming a competitor cost per lead invented it.

Build thirdFinds the open lane
4

Quote autopsy

Once thirty quotes exist with loss reasons, cluster by service, job size, city, source and reason. Output is one sentence a month: this is the job we keep losing and this is why.

Build fourthNeeds Layer 04 data
5

AI discovery monitor

Assisted local discovery moved from roughly 6 percent to roughly 45 percent inside a year. Asks the assistants the twenty questions a Snohomish County homeowner would ask, logs whether Larchmont appears and what got cited instead.

Build fifthAEO pages exist
6

Nurture drafter

Drafts WF-10 variants so the 45 day text is not identical for two years. A human approves the batch monthly. The model never sends, never replies, never holds a thread.

Build last
The line that keeps this honest
Applies to all six

Anything that cannot be answered returns a refusal instead of an estimate, because a plausible number is worse than no number when you act on it. Every output carries where it came from.

08
Layer 08 · Commercial

The Branch With The Biggest Jobs And No Marketing Attached

In the reference account every large quote on file came from a general contractor or a property manager, and not one came from an ad. The largest was $200,500 against an average residential quote of $12,517.

ChannelMechanismResponse productPaid social role
Property managersNamed list, quarterly touch, unit turn pricing sheetPredictable pricingNone
Insurance restorationReferral relationships, standing availabilityResponse time is the productNone
Realtors, pre list repairsFast small jobs, list of what kills an inspectionTurnaround inside a close windowNone
General contractorsPrequalification, plan rooms, certificate of insurance on filePaperwork already doneNone
1

The mirror image applies

Larchmont is a general contractor rather than a flooring sub, so the repeat volume buyer is the property manager, the insurance restoration referrer, and the realtor with turns.

Different buyer
2

The SOP already exists

Larchmont has a partnership SOP built for exactly this and it is not wired to anything. WF-08 is the wire.

Built, unwired
3

Why it gets its own lane

A property manager who gets a chirpy automated text at 8pm is a relationship you just spent. The residential machine is wrong for this buyer.

No auto SMSRoutes to WF-08
Why this lane is worth the patience
Named list, a calendar, and WF-08

Paid social has no role in any row above. This lane is slower to start and it does not decay when the ad budget stops.

09
Layer 09 · Profile

Fix The Category Before Anything Else

Larchmont's own GBP audit found the primary category set to Remodeler, which made the profile invisible for the terms that carry intent. Category is the one field that moves the most and it costs nothing to change.

Profile gate
In order, top to bottom
Primary category set to the service that carries the most revenueDay 1
Secondary categories for the rest, reviewed quarterlyDay 1
Service areas by city, matching the site city pages exactlyWeek 2
WF-06 live, ungated, one ask plus one reminderWeek 2
Real job photos only, no stock on the profileOngoing
Posts from the existing library, no phone number or URL in post textOngoing
Standing rule
The class of claim that was purged once already

Never publish a review count, a star rating, or a job count that is not verifiable on the day it ships. It does not come back through a side door.

Site
Stock photos, disclosed as representativeFine for the site. Not fine for the profile.
GBP
No verified review count exists yetSo no review number gets published anywhere until it does. Layer 12 tracks it.
Never
Gated or incentivised review asksFTC 16 CFR Part 465. Ask everyone the same way, or do not ask.
10
Layer 10 · Paid

Small, Boring, And Pointed At The Feed

Six settings. Each one is a reversal of what the reference account did, and each one has the number that caused the reversal sitting next to it.

SettingLaunch withBecause
PlacementsManual, feed onlyFeed produced 9 of 10 leads on 77.7 percent of spend. Reels and Stories produced zero on 17 percent.
Creative count5 to 8101 variants split a small budget so thin most never got a real test.
AgeDo not exclude 55+Women 65+ were the cheapest lead in the reference account at $14.03. Men 65+ produced nothing on similar spend.
RadiusWide, price the drive inCutting distance would have removed 94 percent of quoted pipeline.
ObjectiveLeads, then PurchaseOptimizing on form fills buys form fills. Switch once WF-12 feeds CAPI.
Every adLARCHBL744BKRCW 18.27.100 requires the registration number in contractor advertising.
What a test costs before you promise one
Posts required per arm, realistic small account variance
28
46
138
2x, topic paired2x effect1.5x effect

A 1.25x effect has no bar because it is not reachable at this account size at any post count worth running. Do not promise to detect one.

The trap under the trap
Why undersized tests are worse than no test

An undersized test does not fail loudly. At fifteen per arm it reports roughly 2x whether the truth is 1.15x or 2x, because only the lucky results clear the bar.

Reports 2x when truth is 2x2.0x
Reports 2x when truth is 1.15x2.0x
Points the wrong direction1 in 9

That is the machinery behind every confident marketing case study. Run fewer tests, properly powered, and read nothing until the arm closes.

11
Layer 11 · Install

What Ships In What Week

A2P registration is the only item with a lead time you cannot compress, which is why it sits in week 0 and why nothing in Layer 05 sends until it clears.

Workstream
W0
W1
W2
W3
W4
W5
W6
W7
W8
W9
W10
W11
A2P 10DLC registrationBlocks all SMS
Sub account + pipelinesLoss reason list locked
Calendar on the formThe sixty seconds
WF-01, WF-02, WF-07Speed layer live
Webhook into GHLVisitor id + click ids
WF-03, 04, 05, 11Middle of the funnel
Full pixel event mapBefore any spend
GBP category + WF-06Layer 09
WF-12 + CAPI loopMilestone: revenue attributable
Paid launchFeed only, 5 to 8 creatives
Call intelligenceLayer 07, first
Defect gate, competitor sweepLayer 07, second and third
WF-08 + partner listCommercial lane opens
Quote autopsyGated on 30 quotes
Already built, do not rebuild
None of it needs replacing, it needs wiring into Layer 04
Beacon with UTM, click id, visitor id Lead store and analytics dashboard Nightly SEO bot, propose and promote 153 page SEO property AEO pages GMB post library Registration published TCPA consent under every form
12
Layer 12 · Gauges

The Five Numbers You Have To Supply

Everything above is structural and holds regardless of the figures. What it cannot do is tell you whether to scale or stop. That takes five numbers only Larchmont has.

InputValueWho has itStatus
Average job value, residentialUNKNOWNEddie, last 20 invoices
Gross margin, blendedUNKNOWNEddie
Close rate, quote to signedUNKNOWNProduced by this system after 30 quotes
Current inbound call volumeUNKNOWNPhone records, this month
Verified Google review countUNKNOWNGBP, today
The question these five answer
Once the first two exist

The governing question stops being cost per lead and becomes one sentence: how many jobs does one month of spend have to close to pay for itself. In the reference account that answer was one job in seven, and it had nothing to do with the $25.24 cost per lead everyone was staring at.

MAP
The Whole Machine · One View

Every Layer, Wired

Blue hub is the system. Black nodes are the six functions. White leaves are the builds, each labelled with the layer or workflow that owns it.