โ™ ๏ธ Ace Diabetic Supply

Cron Workflow Map โ€” Updated April 14, 2026

๐Ÿ“ฅ
Lead Intake
Zapier โ†’ Worker (0 LLM cost)
Automated Flow
FB Lead Ad โ†’ Zapier โ†’ Airtable (New) โ†’ Worker /new-lead โ†’ GHL SMS (instant intro)
    โ†ณ Bilingual (Spanish name detection), supply-type matching, price-anchored intros
    โ†ณ 90s delay before text (feels human)
Backup (LLM-powered)
hybrid-outreach.sh โ€” 8AM catch for overnight leads that fell through (cron-based)
๐Ÿ”„
Lead Lifecycle
6 crons
CONTACTED (intro sent)
GHL Poll Every 15 min glm-5.1
Reads inbound messages, quotes leads, negotiates, flags to Anthony
โ†’ #ace-alerts
VAPI Quick Call Every 15 min
Calls leads 5min after intro text
CONTACTED
Smart Contacted Follow-up Every 30min 9AM-8PM glm-5.1
Day 1-2: friendly check ยท Day 3-5: value nudge ยท Day 7-10: direct ask ยท Day 14+: close out ยท 5 leads/run
โ†’ #ace-alerts
QUOTED
Smart Quoted Follow-up Hourly 9AM-8PM glm-5.1
Day 2: soft check ยท Day 4: interest nudge ยท Day 7: direct ask ยท Day 14: close-out ยท 5 leads/run
โ†’ #ace-alerts
DEAL MADE
Shipping Follow-up 10AM Mon-Sat glm-5.1
Nudges leads to drop off packages + flags void candidates (21+ days unused labels)
โ†’ #ace-alerts
โœ… COMPLETE
๐Ÿ‘๏ธ
Monitoring
5 crons
Delivery Monitor
Checks tracking for delivered packages, flags for payment
8AM 10AM 12PM 2PM 4PM 6PM daily glm-5.1
Message Gap Audit
Detects inbound msgs that got no reply
Every 30min 9AM-7PM (19x/day) glm-5.1
Conversation Audit
End-of-day quality review of conversations
9PM daily glm-5.1 โ†’ Telegram
Flagged Items Digest
Summarizes flagged leads to Slack
Every 3hrs (~8x/day)
Kit Tracker
Tracks outbound kits: Preparing โ†’ Mailed โ†’ Delivered โ†’ Nudged โ†’ Shipped Back. Reports to #ace-alerts
10AM Mon-Sat glm-5.1
โšก
Webhooks & API Endpoints
Cloudflare Worker
Base URL
https://ace-vapi-api.anthony-1cd.workers.dev
POST /
VAPI serverUrl โ€” routes assistant requests, end-of-call reports, and function calls
VAPI Assistant
POST /vapi-webhook
End-of-call reports โ†’ logs to Airtable + DMs Lance
VAPI End-of-Call
POST /lookup-customer
Looks up caller by phone in Airtable โ€” recognizes repeat customers
VAPI Function Call
POST /get-quote
Real-time quote calculation (55% of wholesale) during calls
VAPI Function Call
POST /new-lead
Zapier webhook โ€” instant intro SMS to new leads. Supply-type matching, bilingual, GHL contact creation. 0 LLM cost
Zapier โ†’ Worker
POST /follow-up
Follow-up drip โ€” disabled (replaced by OpenClaw Smart Follow-up crons)
Disabled
GET /health
Health check endpoint โ€” uptime monitoring
Monitoring
Call Flow
๐Ÿ“ž Caller โ†’ GHL (512-643-6823) โ†’ VAPI (737-702-6080)
    โ†’ POST / (assistant request)
    โ†’ lookupCustomer(phone) โ†’ Airtable
    โ†’ getQuote(items) โ†’ Price data
    โ†’ end-of-call-report โ†’ Airtable + Slack DM Lance
๐Ÿ“ž
VAPI Call Flow โ€” How It All Connects
Inbound + Outbound
โฌ‡๏ธ Inbound Call (customer calls us)
Customer โ”€โ”€โ”€โ”€โ†’ GHL (512-643-6823) โ”€โ”€โ”€โ”€โ†’ VAPI (737-702-6080)
โ”‚
Step 1: VAPI sends POST / to Worker (assistant-request)
Worker โ†’ Airtable lookupCustomer(phone)
Worker โ†’ Returns context to VAPI (name, repeat status, agreed pricing, shipment history)
โ”‚
Step 2: VAPI AI talks to customer, may call getQuote(items)
VAPI AI โ†’ Worker getQuote() โ†’ Price data (55% of wholesale)
โ†ณ AI quotes customer live on the call (e.g. "I can offer $165 per box")
โ”‚
Step 3: Call ends โ†’ VAPI sends end-of-call-report to Worker
Worker โ†’ OpenRouter GLM-5.1 classifyCall() (Quoted / Contacted / Dead / Nurture)
Worker โ†’ Airtable (update status + notes)
Worker โ†’ Slack #ace-alerts (call summary + DM Lance)
Worker โ†’ Creates new Airtable lead if new caller
โฌ†๏ธ Outbound Call (we call lead)
Trigger: OpenClaw cron runs vapi-quick-call.sh (every 15 min, 10AM-7PM)
Cron โ†’ Airtable (finds Contacted leads w/ 3+ texts, no reply) โ†’ VAPI API (create call)
Step 1: VAPI calls lead from (512) 488-1528 (Twilio outbound)
โ†ณ Uses Outbound Agent (Elliot voice, different from Inbound Agent)
โ†ณ Opens with "following up on the form you submitted"
โ”‚
Step 2: Same Worker flow as inbound โ€” assistant request, function calls
โ”‚
Step 3: End-of-call report โ†’ same Worker processing
Worker โ†’ GLM-5.1 classifyCall()
Worker โ†’ Airtable (status + notes)
Worker โ†’ Slack #ace-alerts
โ†ณ Voicemail detection โ†’ logs "no answer" if only AI spoke
โ†ณ After 2 failed calls โ†’ moves lead to "No Response"
๐Ÿ—๏ธ Architecture โ€” What Runs Where
VAPI (Cloud)
โ€ข Voice AI agent (inbound + outbound)
โ€ข Speech-to-text + text-to-speech
โ€ข Function call orchestration
โ€ข Sends webhooks to Worker
โ€ข Phones: 737-702-6080 (in), 512-488-1528 (out)
Cloudflare Worker
โ€ข Receives VAPI webhooks
โ€ข Customer lookup (Airtable)
โ€ข Quote calculation (price data)
โ€ข Call classification (GLM-5.1 via OpenRouter)
โ€ข New lead outreach (Zapier โ†’ /new-lead)
โ€ข Zero cold start, global edge
OpenClaw (MacBook)
โ€ข GHL Polling cron (every 15 min)
โ€ข VAPI Quick Call cron (triggers outbound)
โ€ข Smart Follow-up crons
โ€ข Delivery / Shipping monitors
โ€ข Main session (Anthony's chat)
โ€ข All LLM calls via OpenRouter GLM-5.1
๐ŸŒฑ
Nurture
1 cron
Nurture Follow-up 10:30AM + 1:30PM + 4:30PM glm-5.1
Soft 30-day check-ins for leads not ready to sell yet