DESIGN PREVIEW + LIVE — Calls, the Console recap and the Answering switch are wired to the office API (operator sign-in required); amber stays canned · green V1 = the plumbing increment, amber V2+ = tuned on the working platform · Robert approves or edits THIS file
🥾 BootsOnCall voice
OPERATOR SIGN-IN
🥾 BootsOnCall voice
🎩 Manager V2
Console — the room
Watch, join, take over, kill. Nothing starts here — in V1 every call starts with a homeowner or a pro dialing the line, and everything live is visible here with its name on it.
● LIVE · none■ STOP📞 line: (847) 245-6707 · voice-only · never a campaign numberRuby — ON · OFF = the old voicemail, nothing lost
door — Telnyx webhookbridge — pm2 · box BOCengine — xAIrecord — Postgreswatchdog — QNAP · outsideall green · 12:06 PM · a grey light here = the same alarm that pings Telegram V1
THE FLOOR — RIGHT NOW · 12:06 PM CT
ON A CALL NOW V10
No live call. When someone dials the line, the room appears here — watch V1 · listen / join / take over V2.
HANDOFF → FLOOR V20
No live transfers. V2 — when Ruby hits a hazard or a hot job, the closer rings here. In V1 she books a callback instead.
SCHEDULED1
(847) 555-0117
callback · Mon 8:00 AM
booked
BOOKED → JOBS V11
Jobs ›Faucet repair
plumbing · Wilmette · from Maria's call
filed into the existing Jobs pipeline
RECAP3
open ›Maria Fuentes
inbound · 9:41 AM · ES→EN
ungraded
open ›Tony Kowalski
contractor · 9:12 AM
open ›(224) 555-0199
hazard · 8:03 AM · 911 line read
THE PROCESS — HOW THE FLOOR RUNS
1Inbound answer — Ruby picks up, gets four things, files the call reportV1● the plumbing
2Callback choreography — the promise, inside your hoursV1● with the plumbing
3Warm transfer — the closer rings, Ruby stays on until the joinV2◐ tuned on the platform
4AUTO on the dispatch floor — she assigns through dispatch, switches offV4○ your presses
5Outbound from a file — campaigns, per-campaign GOV3+○ not here yet
▶ DAILY LOG — 9 moves · every call (Ruby · you) · AI spend today $0.84 · 6 calls · glass box: actor + old → new V1
9:42 AM · ruby · callback booked — Maria Fuentes · Mon 8:00 AM (inside hours 7–21)
9:41 AM · ruby · call filed — Maria Fuentes · report → Calls · job → Jobs
9:12 AM · ruby · wall held — contractor doc question answered "under review"
8:47 AM · you · controls: spend cap $10 → $15
8:03 AM · ruby · hazard — safety script + 911 line read · filed
7:00 AM · system · answering ON — schedule · old OFF → new ON
FLOOR — WHO CAN TAKE A PATCH V2
● Robert P1 · availableeveryone off → Ruby books instead of patching · edit on Controls
MANAGER · LATEST FLOOR READ V2
FLOOR CHECK — SUN AUG 31, 12PM CT
🔥 Gas-smell call handled clean — safety script + 911 line read in 25 seconds, filed. Maria Fuentes · Wilmette · leaking kitchen faucet · wants tomorrow 8–12 · gate code and dog noted · no eligible pro yet → callback booked 8:00 AM — that's the play. Tony Kowalski asked about his certificate; the wall held ("under review").
Calling floor — the schedule of the room
In V1 the floor holds callbacks and job windows only. Campaign colors and dial-queue day-spans arrive with outbound (V3).
V2 — design preview · sample data · this page gets wired after the plumbing carries real calls
The forecast makes the levers visible. Solid gold = a promised callback (the five-minute/next-morning promise). Hatched green = a job window Ruby proposed, waiting on your OK in semi mode. Painted past goes grey.
Controls — the standing defaults
What the line inherits. Nothing dials from here. Every edit lands in the Daily Log with actor + old → new.
Answering V1
ON — Ruby picks up. OFF — callers hear the old voicemail greeting; nothing is lost, voicemail still records.
the off switch is the first brake — it works before anything else does
Callback hours V1
7–21h CT
inside them she promises a callback; outside them she says "first thing in the morning"
target: Robert · cell
Spend cap today V2
$15/ day
beyond it callers hear voicemail · Telegram at 50 / 80 / 100%
used today $0.84 · 6 calls
Miss chain — the call she didn't catch DECISIONOFFON
busy · hung up before the answer · cap voicemail → a text-back within 60s riding Steve's existing channel: "Sorry we missed you — want us to call back?" The reply lands in Steve's texts, attributed to the call for 14 days.
EB runs 2 retries · redial 180s · + miss-text — you rule which stage this rides in
Mode V2+autosemimanual
semi = she proposes, you approve · auto = she assigns through dispatch · manual = messages only
every mode switch defaults OFF — deploying changes nothing
Transfer floor — who takes a warm patch V2
Ruby patches a qualified caller to the available person with the lowest priority. Empty or all-off → she books a callback instead.
NAME
PHONE
PRIORITY
STATUS
Robert
cell
1
Available
THE FLOOR THAT ISN'T YOURS
Locked by design — the wall. She never quotes a firm price, never promises a specific pro or a time, and never tells a contractor why a document was judged — those words are "the team confirms" and "under review". No control on this page widens that. REKRA's line is a different trunk and stays untouched.
Calls — the record
One line, every caller — homeowner or pro — one surface. The door owns the record: if it isn't here, it didn't happen.
FLOOR MANAGER — GRADE & COACHING V2auto-grade OFF — grade on demand
Not graded yet.
TRANSCRIPT
Hi, thanks for calling Boots On Call, this is Ruby!0:03 RUBY 0.8s
Hola — mi grifo de la cocina está goteando.EN · my kitchen faucet is leaking0:09 MARIA
¡No hay problema, la ayudo en español! ¿Desde cuándo gotea?EN · No problem, I can help in Spanish! How long has it been leaking?0:13 RUBY 0.9s
Desde ayer. Quiero que alguien venga mañana por la mañana.EN · Since yesterday. I want someone to come tomorrow morning.0:22 MARIA
Entendido — mañana por la mañana. ¿Cuál es la dirección?EN · Understood — tomorrow morning. What is the address?0:27 RUBY 0.7s
1827 Chestnut Ave, Wilmette. El código de la puerta es 4410 — y hay un perro en el patio.EN · … gate code 4410 — and there is a dog in the yard.0:38 MARIA
Perfecto, lo anoté todo. Un miembro del equipo la llamará muy pronto para confirmar la ventana y el precio.EN · Perfect, I noted everything. A team member will call you right back to confirm the window and the price.0:47 RUBY 1.1s
Agents — the cast, one truth
Everything below is read from the box — bridge files + env, live. There is no second list to drift. An agent = cast (prompt file) + engine + voice params. Numbers are assignments, not identity.
LIVE — SERVING REAL CALLERS · READ FROM THE BOX
Ruby LIVEV1
xAI · grok
VOICE tbd at build · MODEL grok-voice-latest · CAST ruby
voice/prompt-boc.txt · from fileView
CURRENT JOBS — door: (847) 245-6707 · OFF = voicemail
ruby-draft TRAININGroad · V2
copied from ruby · sandbox — never a real caller
The road out, ear-gated: test-drive dials your number, never a customer — the transcript lands in Calls. Promote unlocks after a test call exists, asks the agent's name typed back, and is only live when the bridge confirms the version hash back to you.
Prompts are read-only on the live card — editing live call behavior is what the training lane is for. Live rows are computed from the box on every read, so the roster cannot drift from what callers actually hear.
Campaigns — proof of work
Every launch a named campaign: its own list, its own caller, its own GO and STOP, its own results.
V3+ — nothing here in V1. Ruby answers; she does not dial. When outbound arrives it brings the whole EB pattern: the manager drafts on your desk → Approve → review → per-campaign GO → the floor dials → glass-box archive. The landline/carrier bench on uploads rides in with it.
Every move on every tab is a touch on the master log the moment it happens · the log reports, never decides · if Ruby stops answering, the outside watchdog alarms Telegram — the pill going grey up top is the same signal on this screen.