Appearance
LLM Voice Agent Integration Policy
Document ID: PLCY-VOI-001
Version: 1.7
Effective Date: January 21, 2026
Last Review: January 21, 2026
Owner: Hop And Haul Team
CONFIDENTIAL
This document is CONFIDENTIAL and for internal use only. Do not distribute outside the organization.
1. Purpose
This document defines the LLM voice agent behavior for Hop And Haul. The core principle: the agent IS dispatch—a modern, automated dispatcher calling drivers over their hands-free Bluetooth headsets.
Voice is LAST RESORT
As of January 2026, voice calls are the LAST RESORT fallback for routine offers. The PRIMARY communication channel is now Samsara Messages API. Voice calls only trigger when Samsara Messages timeout without response AND the driver is still STOPPED/PARKED. See PLCY-COM-001 for details.
Hop And Haul is Dispatch
Dispatchers have called drivers over hands-free systems for decades. Hop And Haul simply makes dispatch more efficient. The voice agent presents transport opportunities, the driver says yes or no, and on acceptance we push the updated route to Samsara.
Related Documents:
- PLCY-VOI-002 - Voice Agent Technical Specification (Twilio + OpenAI architecture)
- PLCY-VOI-003 - Voice Escalation Procedures (human handoff)
- PLCY-ADM-002 - Admin Call Routing Configuration
- PLCY-COM-001 - Driver Communication Protocol
2. Prerequisite: One-Touch Bluetooth Headset
COMPANY POLICY REQUIREMENT
All drivers participating in Hop And Haul voice dispatch must have a one-touch Bluetooth headset or hands-free vehicle integration. This is enforced through fleet onboarding.
2.1 Acceptable Equipment
| Equipment Type | Examples |
|---|---|
| Bluetooth mono headsets | BlueParrott B550-XT, Plantronics Voyager |
| Trucker single-ear headsets | BlueParrott B450-XT |
| Vehicle-integrated Bluetooth | Factory or aftermarket hands-free |
| Smartphone integration | Apple CarPlay, Android Auto with voice activation |
2.2 Driver Onboarding Checklist
[ ] Hands-free device configured and paired
[ ] Single-button or voice-activated answer verified
[ ] Device does not require reaching or holding during call
[ ] Driver acknowledges hands-free policyWhy This Works: Drivers have received dispatch calls over hands-free systems for decades—CB radio, Qualcomm, phone calls. Hop And Haul is dispatch. The one-touch headset requirement ensures DOT compliance (49 CFR 392.82).
2.3 Voice as Last Resort Fallback
CRITICAL CHANGE (January 2026)
Voice calls are now LAST RESORT for routine offer delivery. Samsara Messages API is the PRIMARY channel.
When Voice Calls Trigger
Voice calls ONLY initiate when ALL of the following are true:
| Condition | Requirement |
|---|---|
| Samsara Message delivered | No API error on send |
| No response within timeout | 5 min (STOPPED) or 10 min (PARKED) |
| Driver state unchanged | STILL in STOPPED or PARKED |
| Voice fallback enabled | Platform setting voice_fallback.enabled = true |
| Driver opted in | Driver has voice_dispatch_opted_in = true |
| Hands-free verified | Driver has verified hands-free setup |
| Pre-contact gates pass | Speed, maneuvers, traffic checks pass |
Voice Fallback Decision Flow
[SAMSARA MESSAGE TIMEOUT - NO RESPONSE]
│
▼
┌─────────────────────┐
│ Check Driver State │
└─────────┬───────────┘
│
┌─────────┴─────────────────────┐
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ STILL │ │ NOW │
│ STOPPED/ │ │ MOVING │
│ PARKED │ │ │
└──────┬───────┘ └──────┬───────┘
│ │
▼ ▼
┌──────────────────┐ ┌──────────────┐
│ Voice fallback │ │ EXPIRE OFFER │
│ enabled? │ │ (no voice) │
└───────┬──────────┘ └──────────────┘
│
┌─────┴─────┐
▼ ▼
YES NO
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Driver │ │ EXPIRE OFFER │
│ opted in? │ │ │
└──────┬───────┘ └──────────────┘
│
┌────┴────┐
▼ ▼
YES NO
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ Pre-contact │ │ EXPIRE OFFER │
│ gates pass? │ │ │
└──────┬───────┘ └──────────────┘
│
┌────┴────┐
▼ ▼
YES NO
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ INITIATE │ │ DEFER │
│ VOICE CALL │ │ (wait) │
└──────────────┘ └──────────────┘Voice Fallback Script
For timeout fallback, use the standard call script per PLCY-COM-001 Section 4.3:
Standard Call Script:
"Hey [Driver Name] — got a ride that fits your route. Pickup near [Location]
in about [X] minutes, drop-off in [Destination]. Adds [X] miles, pays [$X].
No rush — let me know in the next few minutes if you want it."Accepted Response Options (per PLCY-COM-001 Section 4.4):
| Driver Says | Agent Response | Then |
|---|---|---|
| "Yes" / affirmation | "Confirmed. Route updating now." | End call, update Samsara |
| "No" / decline | "Got it. No problem. Drive safe." | End call, close offer, no penalty |
| "Hold" / "Let me think" | "No rush. I'll check back in a few." | Schedule follow-up |
| Nothing (5 sec) | Silence | End call, expire offer |
Follow-Up and Timeout (per PLCY-COM-001 Section 4.5):
| Timing | Action |
|---|---|
| 3-4 minutes | Soft follow-up: "Still got that [Destination] ride if you want it. Otherwise I'll pass it along." |
| 5 minutes | Auto-decline: "No problem — I've released that one. Drive safe." |
Exceptions: When Voice Initiates First
Voice MAY initiate WITHOUT prior Samsara Message for:
| Scenario | Voice Behavior |
|---|---|
| EMERGENCY | Voice call immediately (bypass all checks) |
| Driver-initiated call | Respond per current state rules |
| Urgent/safety (STOPPED/PARKED) | Voice permitted if opted in |
For ROUTINE offers: Always Samsara Message first, voice only on timeout.
3. The Real Constraint
3.1 What DOT Actually Says
| Rule | Prohibited | Allowed |
|---|---|---|
| 49 CFR 392.82 | Handheld phone use | Hands-free voice |
| 49 CFR 392.80 | Texting/reading text | Listening/speaking |
| Common practice | - | CB radio, Bluetooth calls, dispatch calls |
DOT does not prohibit voice conversation while driving. Hop And Haul calls are legally equivalent to a dispatcher calling a driver on their Bluetooth.
3.2 What Actually Matters
The blocker is not DOT legality. The blocker is risk allocation and control.
| Scenario | Responsibility |
|---|---|
| Driver chooses to chat with buddy | Driver's discretion |
| Company deploys conversational agent | Company-directed activity |
When you design a system, you inherit responsibility for:
- Predictability
- Repeatability
- Foreseeability of distraction
3.3 The Real Risk: Task Pressure
A human phone call has fuzzy boundaries—pauses, interruptions, social pacing. The driver self-regulates.
An LLM agent:
- Prompts
- Asks follow-ups
- Expects responses
- Optimizes for completion
The moment the agent asks clarifying questions, enumerates options, confirms details, or re-prompts after silence—it's guiding task execution while driving.
That's where risk appears.
4. The Solution: Radio Mode vs Desk Mode
The agent changes personality by vehicle state.
| State | Human Analogy | Agent Role |
|---|---|---|
| MOVING | CB radio squawk | Alert + interest signal |
| STOPPED | Dispatch desk | Clarification + consent |
| PARKED | Paperwork | Verification + logging |
5. Voice-Turn Budget
5.1 Moving State Budget
| Constraint | Limit |
|---|---|
| Agent speaks | Once |
| Agent words | Max 20 words |
| Driver response | 2 words ("hold" / "no thanks" / "later") |
| Follow-up turns | Zero |
| Clarifying questions | Zero |
| Re-prompts | Zero |
| Total interaction | < 10 seconds |
5.2 Stopped State Budget
| Constraint | Limit |
|---|---|
| Agent turns | Max 3 |
| Agent words per turn | Max 40 words |
| Clarifying questions | Max 2 |
| Total interaction | < 60 seconds |
5.3 Parked State Budget
| Constraint | Limit |
|---|---|
| Agent turns | Unlimited |
| Clarifying questions | As needed |
| Multi-step workflow | Allowed |
| Verification steps | Allowed |
6. Voice Scripts by Vehicle State
6.1 MOVING: Radio Squawk Only
Initiation (agent speaks first):
"Hop And Haul. Transport nearby. Say 'hold' or 'pass'."That's it. Stop talking.
| Driver Says | Agent Response | Then |
|---|---|---|
| "Hold" | "Queued. Details when stopped." | Silence |
| "Pass" | "Got it." | Silence |
| "Later" | "Queued." | Silence |
| Nothing (5 sec) | Silence | End call |
| Anything unclear | Silence | End call, queue for stopped |
Prohibited while moving:
- "Let me explain the pickup options…"
- "Would you prefer location A or B?"
- "Confirm the detour is acceptable"
- "I didn't catch that—can you repeat?"
- "Are you sure?"
- Any question requiring thought
6.2 STOPPED: Dispatch Desk Mode
Opening:
"Hop And Haul. You held an opportunity. Ready for details?"| Driver Says | Agent Response |
|---|---|
| "Yes" / "Go ahead" | Proceed to summary |
| "Not now" | "Queued for later." [End] |
| "Cancel" | "Removed." [End] |
Summary (if driver says yes):
"Company driver needs transport.
Pickup: 2 miles off route.
Drop-off: 20 miles past destination.
Adds about 20 minutes.
You'd still be on time.
Accept or pass?"| Driver Says | Agent Response |
|---|---|
| "Accept" | "Confirmed. Navigation updates when parked." [End] |
| "Pass" | "Got it. No problem." [End] |
| "More info?" | One clarifying answer, then re-ask |
Clarifying questions allowed (max 2):
- "What's the pickup?" → Give fuzzed location
- "How much time?" → Repeat estimate
- "Who is it?" → First name + last initial
Then stop. No sales pitch. No persuasion.
6.3 PARKED: Full Workflow
Available interactions:
- Complete ride details
- Exact pickup address
- Navigation preview
- Passenger contact info
- Accept with confirmation
- Route update
- Rating submission
- Support escalation
Example flow:
Agent: "Ready to confirm the transport?"
Driver: "Yes"
Agent: "Pickup is at [address].
Passenger is John D.
Their number is in the app if needed.
Navigation is updating now.
Safe travels."7. Agent Initiation Policy
7.1 Pre-Contact Safety Gate (REQUIRED)
Before ANY voice contact, system must verify via Samsara:
| Check | Threshold | If Fails |
|---|---|---|
| Speed | <70 mph | Defer contact |
| Time to next maneuver | >3 min | Defer contact |
| Time since last maneuver | >1 min | Defer contact |
| Traffic density | Not "heavy/severe" | Defer contact |
| Merge zone | Not within 1 mile | Defer contact |
| Data freshness | Speed <10 sec old | Block contact |
See: safety-buffer-parameters.md for full gate logic and company-tunable thresholds.
7.2 When Agent May Initiate (After Gate Pass)
| State | Agent Initiates? | Condition |
|---|---|---|
| MOVING | Yes, but minimal | Only if pre-contact gate passes |
| STOPPED | Yes | If driver has pending items |
| PARKED | Yes | Full access |
7.3 When Agent Must Wait for Driver
| Scenario | Agent Behavior |
|---|---|
| Routine offer (any state) | Samsara Message FIRST, voice only on timeout |
| Routine offer, driver moving | FYI Message via Samsara, no voice |
| Routine offer, driver STOPPED/PARKED | Offer Message via Samsara, voice on timeout only |
| Driver declined recently | No initiation for 30 min |
| Driver in active ride | No new offers until complete |
Primary Channel Change
As of January 2026, Samsara Messages API is the primary channel for all routine offers. Voice calls are last resort fallback after message timeout. See Section 2.3.
7.4 Driver-Initiated Always Allowed
If driver calls in:
- Agent responds at current state's conversation level
- Moving: still limited to radio squawk
- Stopped: dispatch desk mode
- Parked: full workflow
8. Support Escalation Tiers
Detailed Procedures
For complete escalation procedures, role definitions, on-call configuration, and routing logic, see PLCY-VOI-003 Voice Escalation Procedures.
8.1 Tier Architecture
┌─────────────────────────────────────────────────────────────┐
│ TIER 1: LLM VOICE AGENT │
│ • Ride status • ETA • Cancellation • FAQ │
│ Escalation: "speak to person" / safety / unresolved │
└─────────────────────────┬───────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ TIER 2: CALL CENTER │
│ • Complex issues • Disputes • Technical • Policy │
│ Escalation: liability / injury / regulatory / legal │
└─────────────────────────┬───────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ TIER 3: COMPANY LEADERSHIP │
│ • Serious accidents • DOT contact • Media • Legal │
└─────────────────────────────────────────────────────────────┘8.2 Emergency Override
8.2.1 Emergency Definition
| Category | Examples | Classification |
|---|---|---|
| EMERGENCY | Active accident, driver incapacitation, immediate safety threat | Full agent capability |
| SAFETY_URGENT | HOS violation imminent, vehicle alert, weather warning | Elevated priority, standard state rules |
8.2.2 Emergency Mode Capabilities
For genuine emergencies, company operations takes precedence:
| Capability | Emergency Mode |
|---|---|
| Agent initiation | Regardless of state |
| Conversation scope | Full (company ops discretion) |
| Human escalation | Immediate availability |
| Goal | Driver safety and assistance |
8.2.3 Recording Consent in Emergencies
| Scenario | Recording | Documented Basis |
|---|---|---|
| Emergency, one-party consent state | Enabled | "Emergency assistance - one-party state" |
| Emergency, all-party consent state | Enabled if verbal consent OR exigent circumstances | Log basis: "verbal consent obtained" or "exigent circumstances - [reason]" |
| Emergency, driver incapacitated | Enabled | "Driver incapacitated - exigent circumstances" |
Critical: Recording basis MUST be logged for each emergency call. This creates the audit trail needed if recording is challenged.
8.2.4 Post-Emergency Documentation
All emergency overrides require within 24 hours:
- Incident report filed
- Recording basis documented (if applicable)
- Outcome documented
- Review by Safety Lead
8.2.5 Emergency Mode Audit Trail
| Field | Captured |
|---|---|
| Trigger condition | What initiated emergency mode |
| Driver state at initiation | MOVING/STOPPED/PARKED |
| Recording basis | Legal basis logged |
| Agent turns | Count |
| Human escalation | Yes/No, to whom |
| Outcome | Resolution summary |
9. Hands-Free Compliance
9.1 Requirements (49 CFR 392.82)
| Requirement | Implementation |
|---|---|
| Device mounted/integrated | Phone in cradle, built-in, or Bluetooth |
| Single-button answer | No multi-tap, no dialing |
| No reaching | Within arm's reach, seated position |
| No holding | Never hold phone during call |
9.2 Driver Setup
[ ] Hands-free device configured
[ ] Device mounted or integrated
[ ] Single-button/voice answer verified
[ ] Driver acknowledges policy10. Call Recording & Consent
10.1 All-Party Consent States
| State | Consent Required |
|---|---|
| CA, CT, DE, FL, IL, MD, MA, MI, MT, NV, NH, PA, WA | All-party |
10.2 Consent Flow
Moving state (minimal):
"Hop And Haul. Recorded. Transport nearby. Hold or pass?"Stopped/Parked (full consent):
"This call is recorded. Permission to continue?"
[Wait for yes/no]If consent denied → proceed without recording OR route to non-recorded line.
11. Coercion Prevention
11.1 Core Principles (49 CFR 390.6)
| Principle | Implementation |
|---|---|
| No acceptance required | Declining has zero consequences |
| No pressure | Max 1 notification per offer |
| Decline is final | No follow-up after "pass" |
| No metrics | Acceptance rate not tracked |
11.2 Prohibited Behaviors
| Prohibited | Why |
|---|---|
| "Are you sure?" | Pressure after decline |
| Re-prompting silence | Coercion |
| Explaining benefits | Sales pressure |
| Calling back after pass | Harassment |
| Acceptance rate reviews | Indirect pressure |
11.3 Prohibited Language (per PLCY-COM-001 Section 4.6)
The automated system shall never use:
| Prohibited | Rationale |
|---|---|
| Urgent or pressuring language ("hurry," "last chance," "you need to decide now") | Creates unsafe pressure |
| Requests to view a screen or tap a button | Violates hands-free requirement |
| Complex routing instructions during the decision call | Cognitive distraction |
| Guilt-based framing for declines | Coercion per 49 CFR 390.6 |
11.4 Driver Rights (per PLCY-COM-001 Section 7)
| Right | Implementation |
|---|---|
| Right to Decline | Drivers may decline any ride opportunity without explanation or penalty |
| Right to Pause | Drivers may request temporary removal from automated opportunity calls at any time |
| Right to Review | Drivers may request a summary of their opportunity history upon request |
12. Why This Matters for Audits
If there's an incident, the question won't be:
"Was voice allowed?"
It will be:
"Did the company deploy a system that encouraged cognitive load during driving?"
Your defense:
- State-aware behavior
- Limited prompts while moving
- No task completion until stopped
- Driver-controlled engagement
- Documented turn budgets
13. Audit Logging
13.1 Voice Interaction Logs
| Field | Captured |
|---|---|
| Call ID | Unique identifier |
| Vehicle state | MOVING/STOPPED/PARKED |
| Agent turns | Count |
| Agent words | Count |
| Driver response | Captured |
| Outcome | HELD/ACCEPTED/PASSED/EXPIRED |
| Consent | GRANTED/DENIED/WAIVED |
| Recording | YES/NO |
| Duration | Seconds |
13.2 Compliance Queries
- Proof moving calls stayed within turn budget
- No follow-up questions while moving
- No re-prompts after silence
- State verification at time of call
14. Document Control
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | [DATE] | [NAME] | Initial release |
| 1.1 | [DATE] | [NAME] | Added multi-state consent, hands-free requirements |
| 1.2 | [DATE] | [NAME] | Reframed as "radio vs desk" model, added voice-turn budgets, simplified moving scripts to single-sentence squawk |
| 1.3 | [DATE] | [NAME] | Added pre-contact safety gate using Samsara data (speed, maneuvers, traffic), linked to safety-buffer-parameters.md |
| 1.4 | December 30, 2025 | Hop And Haul Team | Added references to PLCY-VOI-002, PLCY-VOI-003, PLCY-ADM-002 |
| 1.5 | December 30, 2025 | Hop And Haul Team | Clarified "Hop And Haul is Dispatch" model, added Section 2 (one-touch Bluetooth headset prerequisite), updated framing to emphasize dispatch coordination, Samsara route updates on acceptance |
| 1.6 | January 2, 2026 | Hop And Haul Team | Voice as Last Resort: Added Section 2.3 defining voice as fallback after Samsara Message timeout. Updated Section 7.3 to clarify Samsara Messages as primary channel for routine offers. Voice only triggers on timeout when driver still STOPPED/PARKED. |
| 1.7 | January 21, 2026 | Hop And Haul Team | Aligned with PLCY-COM-001 v3.0: Updated voice fallback script to use standard call script. Added accepted response options (Yes/No/Hold). Added follow-up and timeout logic (soft follow-up at 3-4 min, auto-decline at 5 min). Added prohibited language list (Section 11.3). Added driver rights (Section 11.4). |