RETREAD
Mission Control · sign in
Skip to content
RETREAD
AI Voice Ops
BP
Boris Panov
Signed in · KSM
Sign out ↗
Retention ConsoleDRIVER RETENTION · CHECK-IN CADENCE
--:--:--
CT · synced
LIVE
—
· enrolled
· due today
· flags
· drivers
STANDBYMaster switch is OFF — no live calling is running. Arm the dialer to resume check-ins.

Maya — Live Calls

mila-13-live-calls · polls every 20s
live
Maya is idle— no calls in progress

Retention Scoreboard

ROI · last 30 days
·
CarrierEnrolledActiveFlaggedSavedRetention %

Live Activity

retention_checkins
check-in feed

Saves — What Maya Fixed

flag → alert → verified retained
·
A save = Maya flagged a problem, the team was alerted, and the driver was still on the job at the next check-in — verified automatically by Maya's follow-up call, no manual bookkeeping.
DriverClientWhat was wrongFlagged onConfirmed still driving

Enroll drivers in Maya's check-ins

enrolling = Maya starts calling on the cadence
Enrolling a driver puts them on Maya's check-in schedule (currently day 3 / 7 / 14 / 30 — editable in Controls). The moment you enroll, Maya's first check-in is scheduled; when a day comes due Maya calls automatically within the 9am–8pm local window (only while the master switch is armed). Enrollment is always manual — Maya never pulls drivers from the CRM on her own.

Enrolled from Roster

Existing drivers you added to a client's roster

·

Enrolled as New Hire

Auto-enrolled when a driver is marked hired

·

Enroll a Driver

Add a roster driver to the check-in cadence

+

Run all due check-ins now

Manually trigger Maya to place every scheduled retention call for today.

Live: routes through secure server — Vapi key stays server-side.
Client

Check-ins done today

·
Check-in cadence · tap a day to filter · due today by day-offset

Overdue Check-ins

missed · needs a call
·
DriverCarrierRecruiterDayOverdueAction

At-Risk Drivers

what Maya caught · team alerted via Chat + email
·
DriverCarrierRecruiterDayFlag / sentimentMaya's summaryAction

Due for Check-in Today

tap “Call now” to dial
·
DriverTypeDayLocationAction
Recruiting leads and controls are kept separate from the retention roster — no shared switches, no shared numbers.

Now Dialing

recruiting dialer
0 ON CALL
STANDBY
Recruiting dialer disarmed — arm to resume live calling
Calls Today
0
no recruiting calls yet
Answered
0
— answer rate
Interested
0
of answered
Warm Deliveries
0
handed to recruiters

Call Queue

HOT drivers — dial now
0 ready
DriverLocationWantsSaid on AI call

Live Activity

recruiting dialer
No activity yet— feed starts once recruiting calls begin

Campaign Pipeline

recruiting leads · real counts
All
Hot
Contacted
New
Submitted
Hired
Do not call
Live: “Call now” routes through secure server — Vapi key stays server-side.
Drag & drop a CSV of leads — or click to browse
headers auto-map: full_name · first_name · last_name · phone · email · zip · home_city · state · run_type · driver_type · crew_type · recruiter

Driver Records

tap a row to edit · “Call now” to dial
·
DriverPhoneLocationRecruiterCarrierRunStatusMaya callsUpdatedAction

Client roster

Add, edit or remove clients here — no Supabase needed. Each client's brief becomes Maya's knowledge.

Clients

tap a row to edit · status inline
·
ClientDrivers enrolledActiveOpen flagsRetention %StatusReport
Live: routes through secure server — Vapi key stays server-side.

Maya — the agent

voice · script · model
Voice + script changes push to Vapi through the secure server — no Vapi login needed.
Claude Haiku 4.5
fast (~1.2s) · read-only
LOCKED

Guardrails

always on · read-only
AI disclosure in first line ✓ Never quotes pay ✓ Permanent opt-out ✓ Offers notes-or-transfer ✓ Recorded-line notice ✓
Maya follows these rules on every call — they can't be turned off from the console.

Per-client knowledge

carrier brief
Pay/home-time/equipment/quirks become Maya's knowledge for this client's drivers. Edit the full brief on the Clients screen.

Actions

demo triggers
Live: routes through secure server — Vapi key stays server-side.
All
Completed
Flagged
No answer
Voicemail
Opt-out
Inbound
Transferred
Client

Call Log

retention_calls · tap a row for driver detail
·
WhenDirDriverClientDayDispositionDurationSentimentSummary

Called In

drivers who rang us · unresolved first
·
DriverWhenWantedWhat happenedOutcome

Unmatched Callers

rang us from a number not on file
·
NumberWhenSaid they wereReason

How inbound calls are handled

read-only · enforced in the prompt + transfer server
When a driver callsTransferNoteFlag
Retention concern · Mon–Fri 8am–4pm CT→ recruiteryesyes
Retention concern · any other timenoyesyes
Dispatch / loads complaint · any timeneveryes + callback promisedyes
Named a driver, no record foundnoyesunmatched
Never identified as a drivernononone · ends 60s
Maya never chooses a phone number. The transfer destination is decided server-side from the recruiters table, so she cannot transfer a driver anywhere except their own recruiter's direct line.

Check-in cadence

retread_settings.cadence_days

When Maya is allowed to dial

read-only · enforced in SQL
RuleValueWhere it lives
Calling window9:00am – 8:00pmdriver's own timezone · retention_due_checkins
Days of weekevery dayno weekday rule is applied
Retry cooldown—retry_cooldown_hours
Attempts per check-in—max_attempts_per_checkin
After a voicemail is left—voicemail_left_cooldown_hours
These are enforced inside the database views the dialer reads, not in the console — so they hold even if a workflow forgets to check them.

Inbound routing

read-only · lives in Maya's prompt + the transfer server
When a driver callsTransferNoteFlag
Retention concern · Mon–Fri 8am–4pm CT→ recruiteryesyes
Retention concern · any other timenoyesyes
Dispatch / loads complaint · any timeneveryes + callback promisedyes
Named a driver, no record foundnoyesunmatched
Never identified as a drivernononone · ends 60s
Maya never chooses a phone number. The transfer destination is decided server-side from the recruiters table, so she cannot transfer a driver anywhere except their own recruiter's direct line.

Who a transfer reaches

recruiters.direct_line
RecruiterDirect line on file
A driver is transferred to their own recruiter's line. Edit these under Records › Recruiters.

Unplaced callers

nobody of their own · who catches them

Someone rings us who isn't in the driver list — an ex-driver asking about coming back, or a driver whose recruiter has no direct line on file. Maya connects them to this person instead of telling them she can't help.

If this person is inactive, has no direct line, or is the caller, Maya connects them to any other active recruiter rather than nobody. Business hours still apply — outside them she takes a note instead.

Dialer & limits

master controls
Retention
Daily budget
Test mode—
Master · Dialer —
Recruiting
Master · Recruiting —

Safety & Kill Switch

retread_settings

Test Allowlist

retread_test_allowlist
PhoneLabel

Opt-out Registry

retread_opt_out_registry · DNC
PhoneRequestedSource
Opt-outs are permanent and cross-campaign.
When a driver asks to speak to a person, Maya warm-transfers to their recruiter's direct line. Match happens on the recruiter name set on each driver. No line on file → Maya takes notes and the team follows up today.

Add recruiter

recruiters
The recruiter name must match what's set on the driver (Drivers tab → Recruiter). Leave the line blank if you don't have it yet — those transfers fall back to notes.

Recruiters

tap Edit to update a line
·
RecruiterDirect lineEmailDrivers

Are you sure?

--

Driver

—
Latest touch

—

Live: routes through secure server — Vapi key stays server-side.
Edit record
Enroll in check-ins
When Maya calls next
Sets the day Maya next calls this driver (she dials within 9am–8pm their local time). Overrides the automatic cadence for the next check-in only.
Hire date
Loading…
Team truck
Loading…
Driver left the client
Stops Maya calling immediately and takes the driver out of Today. Does not add them to the do-not-call list — leaving a carrier is not a request never to be called, and they stay a recruiting lead. Reversible.
Contact history
    +

    Enroll Driver

    enroll_roster_driver()
    --

    Driver

    —
    Latest touch

    —

    Place a check-in call
    Live: routes through secure server — Vapi key stays server-side.
    Driver
    What Maya knows
    Loading…
    Schedule next check-in
    Sets the day Maya next calls this driver. She dials within the 9am–8pm local window on that date. Overrides the automatic cadence for the next check-in only.
    Pause check-ins
    Pauses Maya's whole cadence for this driver. For a single day, use 💤 Snooze on the due row.
    Hire date
    Loading…
    Team truck
    Loading…
    Driver left the client
    Stops Maya calling immediately and takes the driver out of Today. Does not add them to the do-not-call list — leaving a carrier is not a request never to be called, and they stay a recruiting lead. Reversible.
    Check-in history
      +

      Add client

      new client record
      Pay/home-time/equipment/quirks become Maya's knowledge (carrier brief) for this client's drivers.
      Where this carrier hears about their own drivers' flags. Sends pay, home time, miles/dispatch and equipment automatically — the things a carrier can actually fix.

      Deliberately held back: dispatcher complaints, a driver thinking about leaving, and personal matters. A driver tells Maya things he has not told his employer; a named complaint landing in the carrier's channel an hour later is how this becomes a retaliation risk, and how the next driver learns not to be honest. Those queue for you to route by hand.
      --

      Monthly Report

      —