Phase 03
Pre-warm (parallel fan-out)
⚙ Background watchdogs
elliot-guardian5min · self-heal · TG alerts
elliot-monitor15min · health probe
legalshield-ghl-sync15min · pipeline writes
reina-supervisordaily 08 UTC · rule check
check-callbacks5min · 1 dial per run
01📝
4LegalLeads form fill
4LL · TCPA-consented
Live
Warm leads · attorney-vetted source
02🔗
Lead webhook fires
POST /process-lead :8081
Live
X-Lead-Secret header gate
03⚖️
Auth + dedup check
leads-active.json · leads-done.json
Watch
Ghost-queue risk on restart
04🚫
DNC list filter
/dnc/list endpoint
Live
2 numbers blocked currently
05🕐
Business hours guard
9AM-8PM · state TZ map
Live
Out-of-hours queues to callbacks
06📩
Email enrollment link
Step 1 · SMTP
Live
dewing.legalshieldassociate.com URL
07💬
SMS pre-warm
GHL A2P · branded number
Live
Fires BEFORE dial · Apr 27 universal rule
08💾
GHL contact upsert
Pipeline DYkEa... · 5 stages
Live
Returns 201 on /process-lead
09🔀
Background dial task
FastAPI BackgroundTasks
Watch
Dies on systemctl restart · untag manually
10📞
Elliot dial fires
POST :8082/call · Twilio + Pipecat
Live
5 calls fired this session · Twilio SIDs returned
11🧠
Live conversation
Deepgram · Haiku · Cartesia
Live
Sub-ms TTFB on STT/LLM/TTS
12🏷️
Auto-classify outcome
conversation · voicemail · hung_up
Live
Posts to /call-outcome · GHL stage write
13🎯
Lead requests link
Elliot SMS during call
Live
Link sent live · re-confirmed in convo
14📄
LS enrollment portal
dewing.legalshieldassociate.com/legal
Live
Pre-paid legal application · NOT Stripe
15🔄
GHL pipeline sync
Cron 15min · sync.py
Live
Last run 20:45 · 24 phones synced
16📨
Voicemail recovery
Elliot leaves callback msg
Live
Auto-tags voicemail in GHL
17🔁
Callback queue retry
callbacks.json · /opt/voice-agent
Live
Cron 5min · TZ-aware reschedule
18🚫
DNC + max attempts
/dnc/add · auto on hung_up
Patch
No max-attempts threshold yet
This week's punch list
- Clean 4 stale duplicate callbacks scheduled tomorrow 9am EDT — same leads will re-dial
- Auto ghost-queue cleanup hook on voice-agent restart — kill manual untag step
- Verify all 5 leads from tonight's run complete + GHL stage writes correct
- Add max-attempts → auto-DNC threshold (Stage 18) — currently unbounded
- Reset opener classifier when prior attempts were ghost-failures — Heather/Loren got "circling back" when it was effectively their first real call
- Investigate WebRTC + Twilio media-stream first-word gap — perceived "took too long" hangup signal
- Live calls dashboard tab in War Room — see SIDs + outcomes without SSH
Cohort math · April
Cohort processed24 leads (6 active + 18 done)
Lead acquisition cost~$840 ($35 avg)
Close rate today (2.7%)~1 enrollment
Close rate goal (10%)~3 enrollments
First-month commission$50-100 per
Trail recurring$20-30/mo per enrollment
Break-even at scale10% close · 30 leads/day
Trail compounds — Mo 12 = $9k+ residual