Share:

Studio Lead Engine — what happened today

USA Models API 1 · slyrSVDcRAfDjJHMiPVW  ·  built 26 Aug 2026, 04:45 America/New_York
Where it stands, 26 Aug 04:45. The 25th closed as the biggest day yet — 4,140 real texts at 94.2% delivered, against 26–43% failure rates the week before. The import feed restarted at 14:52 on the 25th with 61 leads on a new path. But of 174 engaged leads over three days, 23 went somewhere wrong, and across the full day 97 people who said yes or sent a photo got no answer at all. Today has not started sending yet — 6 texts so far.

Last full day Tue 25 Aug · America/New_York

Texts sent
4,140
real SMS, in one 4-hour burst
Delivered
3,900 94.2%
126 failed (3.0%) · excludes 310 system rows
Replies
547
from 373 leads
Photos in
113
from 93 leads
Said yes
68
64 reached the CRM
Opted out
57
Leads imported
64
61 enrolled, all after 14:52
Lost yes-sayers
2
said yes, never arrived

25 Aug, hour by hour all times New York

Everything happened between 12:00 and 16:00. Nothing was sent before noon and nothing since 16:00. Replies peak an hour after the biggest send, exactly as you would expect.

HourSent FailedRepliesOpt-outs
00:0010 0.0%10
06:000010
09:000010
10:000010
12:0097928 2.9%797
13:001,09638 3.5%8017
14:0087725 2.9%12211
15:0057310 1.7%853
16:0059625 4.2%868
17:0070 0.0%295
18:0050 0.0%200
19:0010 0.0%134
20:0010 0.0%82
21:0010 0.0%60
22:0020 0.0%120
23:0010 0.0%30

25 Aug by city where the 4,140 texts went

The single biggest group today has no city tag at all — a direct consequence of the enrichment break on 21 Aug. Those leads still route correctly in the CRM (it reads the address itself), but you cannot tell which supplier originally paid for them.

CityTexts 
(no city tag) FAULT841 20.3%
new york731 17.7%
dallas588 14.2%
houston433 10.5%
chicago428 10.3%
florida395 9.5%
boston322 7.8%
nashville271 6.5%
orlando131 3.2%

What was actually said script mix, 25 Aug afternoon sample

Six scripts are in rotation. Two thirds of today’s volume is the opener and the first bump. The CMN script — the one that asks permission to ring them — went to just 75 people, and it is the only script with a zero failure rate.

ScriptSent Failed
OPENER — still interested?
“Hi {name}, USA Models here. We got your photo a little while back and think you have a good look. Are you still interested in becoming a model?”
1,166 28.2%30
BUMP 1 — did my message come through?
“Hi {name}, just checking my last message came through. Could you send a recent photo?”
1,085 26.2%23
RE-ASK — send a recent photo
“Hi {name}, You applied to model with us a little while ago and we would love to take another look. Could you send over a recent photo of yourself? We will get one of the team to review it...”
724 17.5%26
BUMP 2 — did you get it?
“Hey {name}, did you get my latest message? Let us know either way.”
443 10.7%21
CMN — can we call you now?
“Great, thanks {name}. Any chance you would be free for a quick chat now? Reply YES and I will get the team to call you.”
75 1.8%0
MISSED CALL
“Hi {name}, I saw that we just missed your call how can I help?”
3 0.1%0
Counting warning. GHL logged 4,450 outbound rows on 25 Aug, but 310 of those are not messages — 309 Opportunity created/updated entries and 1 DnD event, message types 28 and 25. Real texts sent = 4,140 (type 2). Counting the raw total also drags the apparent delivery rate down from 94.2% to 87.6%. Any report that does not filter on message type will overstate sends and understate delivery.

Half the people who said yes got no answer the worst fault on this page

Across the full day of 25 Aug, 547 real replies came in. The engine answered 150 of them.

Reply typeAnsweredIgnoredTotalAnswered
Positive / photo1149721154%
Negative (correctly ignored)040400%
Other3626029612%
ALL REPLIES15039754727%

Ignoring the negatives is correct. But of the people who said yes or sent a photo, it is a coin flip — 114 answered, 97 ignored.

They are not simply queued. Sending ran to 16:xx and the day is now closed. 97 positive replies went unanswered across the whole day — some replied “Yes” at 12:08 and have had four and a half hours of silence.
Reply came inStill unanswered 
06:001
09:001
12:0021
13:0027
14:0017
15:009

When it does answer, the routing is right. Every follow-up sent after a reply was the CMN script, from every starting point — so the logic is sound, it just fires on about half of what reaches it. One defect visible here: 24 people were sent CMN twice, while 78 others got nothing.

They had been sentNext messagen 
BUMP 1CMN34
RE-ASKCMN25
CMNCMN24SENT TWICE
OPENERCMN14
BUMP 2CMN3
CMNMISSED CALL1
BUMP 1MISSED CALL1

Which places each script went to 25 Aug afternoon sample, 3,496 texts

Two things stand out. RE-ASK is almost entirely the no-city group — 666 of its 724 sends (92%), and 80% of everything that group received; they got one opener between them, so the bare leads are on a separate script track from every real city. And Orlando received no openers at all — 97% of its sends were BUMP 1, a message saying “just checking my last message came through” to people who were never sent a first message today.

Script(no city)new yorkdallashoustonchicagofloridabostonnashvilleorlandoTotal
OPENER131516516316114711410001,166
BUMP 113814710213415012398781151,085
RE-ASK666154011001724
BUMP 2010715752253527400443
CMN29783104101375
MISSED CALL0200001003
TOTAL8345794863523473102502191194,140

The no-city leads have no marketing code at all

834 of today’s texts (23.9%) went to leads with no city tag. I pulled 20 of them and checked every field: 0 of 20 carry a marketing code — the sle:source tag is simply absent, not wrong. So for roughly a quarter of today’s sends you cannot say which supplier originally paid for the lead.

But the CRM has every one of them. I walked 30 months of CRM lead history (Mar 2024 → Aug 2026) and matched all 20 by phone — 46 records for 20 people. The original code below is the earliest CRM record for that person, not the code the engine assigned later. So the attribution hole is only in GHL, and it is fully recoverable.

NameORIGINAL codeFirst came inTimes re-enteredCodes since
Nigeria Mincey#ORL11F03/30/20263#ORLCMN, #ORL6AB, #ORLN1N
Samantha Kratz#NY12F04/26/20260
Deborah Moorman#FLFB33F04/03/20261#FLFB33FR
Barbie Reyes#HOULP204/08/20261#HOU3DE3F
Wanda García#ORLP204/22/20263#ORLCMN x3
Emilia Vergara#FL4IG31F04/29/20261#FLCMN
Ashley Ninteman#HOU4AB07/26/20242#HOU3DE2F, #HOUN1N
Sparkle Pullins#CHI12F03/09/20262#CHILP2, #CHICMN
Autumn Hudson#NAFB309/08/20242#NAFB32F, #NACMN
Shauntel Clark#CHIIG22F04/01/20265#CHIIG22FR, #CHIN1N, #CHI6AB
Nicolas Fernandez#DAL3DE04/21/20262#DALP2, #DALN1N
SANDRA GERALI-CRUZ#CHIIG23F03/30/20261#CHISNAP
Jessica Carter#CHIFB32F02/10/20262#CHI12F, #CHI6AB
Monique Francis#HOU3DE2F03/30/20260
Kristy Patterson#NALP204/16/20260
Emmanuel Weatto#DAL3CX2M03/30/20260
Travionne Lancaster#HOU3DE2M03/30/20260
Dona Maria Jamed#HOU3DE1F03/30/20261#DAL3CX1F
Irma Huerya#CHIIG23F03/30/20260
Paul Donnelly#NY3CX2M03/30/20260

13 of the 20 have been through the CRM more than once — Shauntel Clark six times, Nigeria Mincey and Wanda García four each. The “codes since” column is the recycling trail: #ORL11F#ORLCMN#ORL6AB#ORLN1N is one person re-entering under a new code each time. Two of them first came in back in 2024. Quoting the latest code as the source double-counts the same lead against whichever supplier happens to be last.

What changed this afternoon re-swept 16:31 New York

Mark said he had changed some things. Two sweeps 90 minutes apart show exactly what: the import feed came back on at 14:52 and a new path went live. The published workflows were not touched — both are unchanged since 17:28 UTC — so this was a data and intake change, not a logic change.

PathThis morningNowStatus
sle:path:400k068NEW TODAY
sle:path:cmn502515+13
sle:path:repeat763763unchanged
sle:path:6ab00dead
sle:path:nin00dead
sle:path:photo00dead
The new intake is still bare. All 61 leads carry exactly two tags — sle:path:400k and sle:start20day — and nothing else. No city, no source, no segment, no age-band, no message-path. The 21 August enrichment break is not fixed, so this batch arrives with the same attribution hole. None of them has been texted yet (zero conversations), which means the open question for tomorrow is: which script do they get when they fire, given they have no message-path?

The engine is re-ingesting its own output. Five new source tags appeared between the sweeps. Three of them — chin1n, fln1n, orln1n — mean leads whose original code is an N1N code: leads this engine already pushed into the CRM as N1N are coming back in as fresh nurture leads. Boston, Dallas, Houston, Nashville and New York already did this; Chicago, Florida and Orlando just joined. Worth deciding whether that loop is deliberate.

sle:source:chin1n   sle:source:fln1n   sle:source:orln1n   sle:source:dal3cx1fr   sle:source:orl1fx

Live movement in 90 minutes15:0016:31Change
Contacts170,730170,794+64
Opted out20,55120,634+83
Conversations76,49776,705+208
Said yes502515+13

Yesterday, for comparison Mon 24 Aug

MeasureYesterdayTodayMovement
Texts sent1,3944,140up 163%
Delivered1,205 86.4%3,900 94.2%holding
Replies169547up 116%
Said yes6668flat
Reached the CRM57 86.4%64 94.1%better
Lost yes-sayers62fewer
Leads imported13364stopped

The people who said yes and never arrived today + yesterday

Thirteen yes-sayers are absent from the CRM, but five of those opted out (dnc + remove-requested) — withholding them is correct behaviour, not a fault. That leaves 8 genuine misses. Three of them explicitly asked to be called now. Note that 5 of the 8 should have gone to a 6AB code — yes-without-a-photo is the branch that leaks.

WhenNamePhoneCityShould have landedUrgency
TODAYYen-Ting Chen+18329702906houston#HOU6AB
TODAYBrian Johnson+18178976625dallas#DAL6AB
yesterdayTycell Rufus+18034477212houston#HOUCMNASKED FOR A CALL
yesterdayAlejandro Vasquez+18326774560houston#HOUCMNASKED FOR A CALL
yesterdayBrianna Knowles+12819748654dallas#DALCMNASKED FOR A CALL
yesterdayIsaiah Blackwell+14057643141dallas#DAL6AB
yesterdayDanielle Tibben+18138468435florida#FL6AB
yesterdayJesse Cassim+19549954922(none)#??6AB

Correctly withheld — these opted out, so the engine was right not to push them:

WhenNamePhoneVerdict
todayMelissa Brown+18636083282CORRECT
todayKenzie Bayless+18283013401CORRECT
yesterdayViviana Lucio+18477665918CORRECT
yesterdayTraci Williams+15743375298CORRECT
yesterdayGreg+19734795490CORRECT

Did they go to the right place? accuracy record, 24–26 Aug

Every engaged lead in the last three days, scored against the rule {CITY}{FAMILY}. 174 leads. Mismatches are split by type rather than lumped, because they are not equally bad.

OutcomeLeads 
Landed exactly right130 74.7%
Correctly withheld (opted out)6 3.4%
CRM ahead of the tag (coded CMN)15 8.6%
Photo disagreement (6AB tag, N1N code)8 4.6%
Never arrived8 4.6%
Wrong city3 1.7%
Pushed despite opting out3 1.7%
CRM behind (asked for a call, not coded CMN)1 0.6%
Exactly right
136 78.2%
landed correctly or correctly withheld
Right or defensible
151 86.8%
including tag lag
Genuinely wrong
23 13.2%
named below

The 15 “CRM ahead” cases are leads coded CMN whose GHL tag still says N1N or 6AB — the tag lagging the CRM, not a misroute. I have not counted them as errors, but it does mean the GHL tags are not a reliable record of what actually happened.

The 23 that went wrong named

TypeWhenNamePhoneWhat happened
NEVER ARRIVED25 AugBrian Johnson+18178976625should be #DAL6AB
NEVER ARRIVED25 AugYen-Ting Chen+18329702906should be #HOU6AB
NEVER ARRIVED24 AugJesse Cassim+19549954922should be #??6AB
NEVER ARRIVED24 AugTycell Rufus+18034477212should be #HOUCMN — asked for a call
NEVER ARRIVED24 AugAlejandro Vasquez+18326774560should be #HOUCMN — asked for a call
NEVER ARRIVED24 AugBrianna Knowles+12819748654should be #DALCMN — asked for a call
NEVER ARRIVED24 AugDanielle Tibben+18138468435should be #FL6AB
NEVER ARRIVED24 AugIsaiah Blackwell+14057643141should be #DAL6AB
OPT-OUT PUSHED25 AugAngela Nunez+16469568735dnd=true, pushed anyway
OPT-OUT PUSHED25 AugJan Zimerman+13148059701dnd=true, pushed anyway
OPT-OUT PUSHED24 AugMaksim Belavus+12036675484dnd=true, pushed anyway
PHOTO MISMATCH26 Augmisty espinosatagged no-photo, coded #HOUN1N
PHOTO MISMATCH25 AugMisti Cantutagged no-photo, coded #HOUN1N
PHOTO MISMATCH25 AugValerie Bowenstagged no-photo, coded #BOSN1N
PHOTO MISMATCH25 AugHector Herreratagged no-photo, coded #NYN1N
PHOTO MISMATCH25 AugDavid Amadotagged no-photo, coded #HOUN1N
PHOTO MISMATCH25 AugSophie Riedemanntagged no-photo, coded #CHIN1N
PHOTO MISMATCH25 AugTHYMMBERLIEE STEVENSONtagged no-photo, coded #CHIN1N
PHOTO MISMATCH25 AugJohn Batsontagged no-photo, coded #FLN1N
WRONG CITY25 AugNayana BrocGHL florida, coded #ORL6AB
WRONG CITY24 AugTamara EmeryGHL florida, coded #ORLN1N
WRONG CITY24 AugMiyana BaileyGHL houston, coded #DALN1N
CRM BEHIND25 AugKaseem Holtzclawasked for a call, coded #NY6AB

The 8 photo disagreements are the telling ones. GHL has them tagged no-photo (6AB) but the CRM coded them N1N — so a photo was recognised at push time and the tag was never written. Same failure as the 329 unactioned photos. Two of the three “wrong city” cases are Florida → Orlando, which may well be legitimate since FL codes cover both; only Miyana Bailey (Houston → Dallas) is clearly wrong. And three people who had opted out were pushed into the CRM as callable leads — that is a compliance problem, not an efficiency one.

Every fault found, worst first

#FaultStatusEvidenceConsequence
1Half of all replies get no answerLIVE NOWFull day 25 Aug: 547 replies, 150 answered (27%). Of positive replies and photos: 114 answered, 97 ignored. Some replied Yes at 12:08 and were still unanswered when the day closed.People who said yes are being left in silence. This is the same fault as the unactioned photos, seen from the other side.
2Import feed was dead 4 daysJUST RESTARTED708 imported Fri 21st, 0 Sat/Sun, 133 Mon 24th, then nothing until 14:52 today when 61 arrived on the new 400k path.Four days of empty intake while sending continued. Watch it holds tomorrow.
3The 6AB branch drops leadsLIVE NOW5 of the 8 genuine misses should have gone to a 6AB code. Nine leads with identical state split 5 to 6AB and 4 to N1N.Yes-without-photo is the least reliable path.
4Photo replies not actionedLIVE NOW478 leads sent a photo, only 149 tagged. Sampled 20 untagged: 26 of 26 carried a real image.People did what was asked and were dropped.
5Enrichment broke 21 AugONGOING704 of 708 imported that day (99%) carry no city, source, segment, age-band or message-path. Today 834 of 3,496 texts (23.9%) went to leads with no city tag.A quarter of leads have no supplier attribution.
6Carrier rejection on the rampRECOVERED2,593 of 14,976 (17.3%) never landed. 18 Aug 43.0%, 20 Aug 29.6%, 21 Aug 26.1%. Today 2.9%.Volume ramped past ~1,900/day on numbers with no history.
7Failures are invisibleONGOINGsle_automation_error exists as a field and is empty on every contact sampled.This ran broken for days with no alarm.
8Opportunities all land in DallasONGOINGEvery engaged lead creates a GHL opportunity in the Dallas pipeline regardless of city - about 60% wrong.GHL-side only; CRM city coding is correct (90 of 92).
9Everything classified adultONGOINGmessage-path:adult 7,415. young_adult, child_parent, teen_parent_approval all zero.Kids and teen scripts are dead.

Background — how it got here 13–25 Aug

Two dates matter. 13 Aug — bulk imports switch on, contact creation goes from about 5/day to 761/day. 21 Aug — the old estate is retired: 16 legacy workflows set to draft in one day, leaving three published (SLE - 120 Day Nurture v1, SLE - API 1 Pilot - Reply Router v1, Assign State). Everything before 13 Aug is the old manual world and is excluded. Weekends are quiet by design, so a Saturday or Sunday report reading zero is not itself a fault.

DateDayImportedSentDeliveredFailedRepliesPositiveOpt-out
2026-08-13Thu76126924820 7.4%4046
2026-08-14Fri80958754834 5.8%84128
2026-08-15Sat7970001131
2026-08-16Sun733110 0.0%520
2026-08-17Mon63455350338 6.9%796568
2026-08-18Tue781542302233 43.0%4246
2026-08-19Wed8681,9001,79891 4.8%2092828
2026-08-20Thu9613,3482,286992 29.6%3203930
2026-08-21Fri7084,1262,5351,077 26.1%4699056
2026-08-22Sat065250 0.0%43100
2026-08-23Sun031120 0.0%2930
2026-08-24 FOCUSMon1331,3941,20546 3.3%1694022
2026-08-25 FOCUSTue02,1601,96962 2.9%1905326

Basis note: this history table counts the sle:start20day cohort only (7,629 conversations pulled in full), so its 25 Aug row reads 2,160 where the Today section reads 3,496 — Today covers every conversation in the account, not just that cohort. Both are correct on their own basis; do not add them together.

17 Aug shows 568 "replies" that are DnD enabled by customer system events (message type 25), not texts — real inbound that day was 79. Any report counting raw inbound will be wrong by 8x on days like that.

What this does not cover

One account of 23. Everything here is USA Models API 1. On the recycled-code flow this account explains only 6.8% of CRM arrivals (136 of 2,007 over three days), so the other 22 accounts carry roughly 93% of the volume and are entirely unmeasured. Nothing here should be read as an estate-wide conclusion.

What to do next

1. Check the restarted import holds tomorrow, and ask Mark which script the 61 new 400k leads get when they have no message-path. 2. Push the 8 by hand, starting with the three who asked for a call: Tycell Rufus, Alejandro Vasquez, Brianna Knowles. 3. Get tokens for the other 22 accounts — 93% of the flow is invisible. 4. Fix the 6AB branch; it accounts for 5 of the 8 losses. 5. Fix enrichment so sle:source is written — 24% of leads have no supplier code. 6. Make sle_automation_error actually write, so the next break shows on day one. 7. Ask Mark to filter message type 25 out of the reply count.

Static findings page — a snapshot taken 25 Aug 2026, not a live pull. Sources: GHL API (contacts, conversations, 19,849 messages, tags, custom fields, workflows, pipelines) and CRM leads-in for 23–26 Aug 2026. The CRM pull ran on a stale form-ID cache, so a small number of "missing" leads could sit under a campaign the cache does not know about.