LegalShield Pipeline 4LegalLeads → Elliot voice → LS enrollment · 18-stage map · April 28, 2026
Live (15)
Patch / Watch (3)
Build (0)
Blocked (0)
Phase 01
Source
Phase 02
Intake + Guards
Phase 03
Pre-warm (parallel fan-out)
Phase 04
Call
Phase 05
Close + Recover
⚙ 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

  1. Clean 4 stale duplicate callbacks scheduled tomorrow 9am EDT — same leads will re-dial
  2. Auto ghost-queue cleanup hook on voice-agent restart — kill manual untag step
  3. Verify all 5 leads from tonight's run complete + GHL stage writes correct
  4. Add max-attempts → auto-DNC threshold (Stage 18) — currently unbounded
  5. Reset opener classifier when prior attempts were ghost-failures — Heather/Loren got "circling back" when it was effectively their first real call
  6. Investigate WebRTC + Twilio media-stream first-word gap — perceived "took too long" hangup signal
  7. 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