The full production loop is proven live end-to-end: review queue → approve → real dial → conversation → transcript → outcome → work order scheduled → calendar mirrored → callback recognized → reschedule applied. The night's open question — IVR menu navigation — is now answered and bounded: the agent cannot press mid-speech (a hard ElevenLabs platform limit, proven across every config), but presses correctly at the first silence 9/9 times. What remains before turn-on is merging tonight's four fix PRs, the arm decision, and a supervised first call.
| Lane | Before (start of night) | After (measured) | Verdict |
|---|---|---|---|
| Real-job E2E (schedule → callback → reschedule) | Untested as one loop | 3/3 legs PASS live — real WO scheduled by a call (firm Aug 4 2:00 PM), vendor callback recognized by phone with correct PO cited, reschedule moved WO + calendar event in place. Call QA 4/5, 5/5. | PASS |
| Review-queue chain (UI → approve → dial → record → transcribe) | Assumed built, unproven | Spine proven at every hop with record-level evidence (adversarially audited). 10 defects found, ranked; top 4 fixed same night (PRs #5114, #5115, #5117 + prompt fix). | PARTIAL → fixes in flight |
| Off-phone behavior battery (23 gating scenarios vs live agent) | 16/23 (two consecutive runs) | 20–22/23 stable, 23/23 peak across 32 runs. Every targeted scenario flipped green: overnight-hour sanity check, closing discipline, wrong-number etiquette, hold acknowledgment, name-mismatch echo, PO spoken in reason-for-call, no-narration rule. Live agent verified byte-identical to merged source. | PASS (87–96%) |
| Continuous-menu IVR (the Royal Textile failure) | 0/3 real probes ever pressed; cause unknown | Cause isolated + bounded: 9/9 pressed correctly at first silence (78.9–83.7s on a 78s menu) over SIP; mid-speech press impossible on any config. | BOUNDED |
| DTMF transport | Presses inconsistently heard by real IVRs (in-band) | SIP trunking delivers RFC 4733 that Twilio Gather detects, every run. PoC rig standing. | SOLVED (migration decision pending) |
| Human-detection safety | Instant-hangup rule, small sample | 10/10 clean human aborts across two sweeps (4–27s, zero words spoken to humans, zero forbidden presses incl. explicit emergency-option refusals). | PASS |
| Verified caller ID (Camellia office line) | Unproven concept | Full chain proven with test numbers; Camellia runbook written (one 6-digit code keyed at the office). Resolver works unchanged. | READY |
Every prior press-failure against real IVRs traced to one cause: ElevenLabs never gives the agent a turn while the far side is speaking. Turn detection is a probability threshold on VAD silence — no silence, no turn, regardless of configuration.
| Finding | Evidence |
|---|---|
| ~53% of vendor-type businesses answer with a human during hours | 81-business daytime sample |
| Even at 10:30 PM, ~50% of trade contractors put a live human on the line (answering services, forwarded cells) | Sweep 2: 5 humans in 10 calls — "after-hours = unstaffed" is false for this vertical |
| Gate navigation works on cooperative IVRs | Redi Carpet: clean 2-layer navigation to voicemail; Piper: correct option, emergency options explicitly declined |
| In-band DTMF is unreliable per-platform | Allstar + Drain Pros menus replayed verbatim after presses; Miracle Method ZIP gate consumed presses fine → SIP migration is the fix |
| Dead ends exist that no config solves | Roto-Rooter: pure marketing loop, no menu; Colorado Conveyance: mailbox full — needs re-dial cadence (built, #5063) + eventual cross-channel fallback |
| Defect (all live-proven) | Severity | Fix |
|---|---|---|
| Callback context pairs one work order's job with another's time — Clara read a nonexistent slot aloud and the vendor confirmed it | High | PR #5115 |
dispatch_work_order silently binds a different vendor while telling the PM "unassigned" (record self-contradicts) | High | PR #5114 |
| PO number in payload but never spoken on a purchase-order-mode call (vendor invoices against it) | High | Merged (prompt PR) — spoken once in reason-for-call, hard anti-fabrication rule, never leads the call |
| Agent spoke a narration turn aloud into a real call ("(Menu has finished. Pressing 3…)") despite tool-speech config off | Medium | Merged (prompt PR) — no-narration rule |
| PO cache 24h staleness cliff → bogus "PO required" hold for a PO that exists | Medium | PR #5117 |
| E2E rig reported false green by matching stale queue rows | Medium (test infra) | PR #5117 |
| Truncated PO fetch marked real POs removed (wiped bench read model mid-run) | Medium | Merged (#5111) |
Still open, ranked lower: PM notification unproven on bench (email sink), bench units don't exist in AppFolio (PMS-write leg untestable there), audio endpoint ignores Range requests (seek likely broken), stale robo-vendor PO scenario, PO approvalState unfiltered. Details in the QA audit memory/report.
Sources: live E2E agent report (4 calls), review-queue QA workflow (5 agents, adversarial audit), turn-taking experiment log (10 calls), sweeps 1–2 (23 businesses called of 130 targeted), simulate-battery logs, verified-caller-ID PoC, SIP PoC. All raw call IDs and DDB keys preserved in session records.