Appearance
Admin Call Routing Configuration
Document ID: PLCY-ADM-002
Version: 1.0
Effective Date: December 30, 2025
Last Review: December 30, 2025
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 admin dashboard capabilities for configuring voice call routing, on-call schedules, role assignments, and escalation rules. It provides guidance for fleet administrators and operations staff on managing the voice agent escalation system.
Related Documents:
- PLCY-VOI-003 - Voice Escalation Procedures
- PLCY-VOI-001 - Voice Agent Integration Policy
- PLCY-ACC-001 - Access Control Matrix
2. Dashboard Overview
2.1 Access Levels
| Role | Capabilities |
|---|---|
| Hop And Haul Admin | Full access: all fleets, global settings |
| Fleet Admin | Fleet-scoped: own fleet settings only |
| Safety Ops Manager | Safety settings: on-call, escalation rules |
| Support Manager | Support settings: schedules, routing |
2.2 Dashboard Sections
┌─────────────────────────────────────────────────────────────────────┐
│ ADMIN DASHBOARD - Call Routing │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌────────────┐ │
│ │ On-Call │ │ Role │ │ Escalation │ │ Reports │ │
│ │ Schedules │ │ Assignments │ │ Rules │ │ │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ └────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Notification│ │ Fleet │ │ Audit │ │
│ │ Settings │ │ Overrides │ │ Log │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘3. On-Call Schedule Management
3.1 Schedule Types
| Type | Description | Use Case |
|---|---|---|
| Rotating | Cycles through team members | Safety Ops weekly rotation |
| Fixed | Same person always on-call | Small team operations |
| Calendar-based | Specific dates/times assigned | Support coverage |
| Hybrid | Rotating with manual overrides | Vacation coverage |
3.2 Creating a Rotation Schedule
UI Flow:
1. Navigate to: On-Call Schedules → Create New
2. Select Role: Safety Ops / Driver Support / Fleet Admin
3. Select Type: Rotating
4. Add Team Members:
- Name: [Alice Smith]
- Phone: [+1XXXXXXXXXX]
- Email: [alice@example.com]
[Add Another]
5. Configure Rotation:
- Rotation Period: Weekly / Daily / Custom
- Start Day: Monday
- Handoff Time: 9:00 AM
6. Set Backup Rules:
- Backup Assignment: Next in rotation
- Escalation Timeout: 30 seconds
7. Save Schedule3.3 Schedule Configuration Options
| Option | Values | Default |
|---|---|---|
| Rotation period | Daily, Weekly, Bi-weekly, Monthly | Weekly |
| Handoff time | Any time | 9:00 AM local |
| Timezone | Any timezone | Fleet timezone |
| Backup rule | Next in rotation, Specific person, Skip to manager | Next in rotation |
| Escalation timeout | 15s, 30s, 60s, 120s | 30s |
3.4 Schedule Calendar View
┌─────────────────────────────────────────────────────────────────────┐
│ Safety Ops On-Call - January 2026 │
├─────────────────────────────────────────────────────────────────────┤
│ Sun Mon Tue Wed Thu Fri Sat │
│ 1 2 3 4 │
│ Alice Alice Alice Alice │
│ │
│ 5 6 7 8 9 10 11 │
│ Alice Bob Bob Bob Bob Bob Bob │
│ │
│ 12 13 14 15 16 17 18 │
│ Bob Charlie Charlie Charlie Charlie Charlie Charlie │
│ (override: Alice - vacation) │
└─────────────────────────────────────────────────────────────────────┘3.5 Manual Overrides
Override Types:
| Type | Description | Duration |
|---|---|---|
| Swap | Exchange shifts with another | Permanent until next rotation |
| Cover | Temporary coverage | Specified date range |
| Block | Mark unavailable | Specified date range |
Creating an Override:
1. Click on calendar date
2. Select: Swap / Cover / Block
3. If Swap: Select swap partner
4. If Cover: Select covering person + date range
5. If Block: Specify date range + require coverage assignment
6. Add reason (optional)
7. Notify affected parties: Yes/No
8. Confirm3.6 Holiday & Exception Handling
| Setting | Options |
|---|---|
| Holiday calendar | US Federal, Custom, None |
| Holiday behavior | Normal rotation, Skip, Specific assignment |
| Exception dates | Custom list of dates with special handling |
4. Role Assignment
4.1 Role Types
| Role | Scope | Assignable By |
|---|---|---|
| Safety Ops | Global | Hop And Haul Admin |
| Driver Support | Global | Hop And Haul Admin, Support Manager |
| Fleet Admin | Per-fleet | Hop And Haul Admin, Fleet Owner |
4.2 Assigning Roles
UI Flow:
1. Navigate to: Role Assignments → [Role Type]
2. Click: Add Team Member
3. Enter:
- Name: [Full Name]
- Email: [work email]
- Phone: [mobile for on-call]
4. Set Permissions:
- Can be on-call: Yes/No
- Can modify schedules: Yes/No
- Can configure routing: Yes/No
5. Training Status:
- Required training completed: [checkbox]
- Training completion date: [date]
6. Save Assignment4.3 Fleet Admin Delegation
For Fleet Admins, additional configuration:
| Setting | Description |
|---|---|
| Fleet assignment | Which fleet(s) this admin manages |
| Escalation recipient | Receives escalations for their fleet |
| Hours of availability | When they can receive calls |
| Backup delegation | Who covers when unavailable |
5. Escalation Rules
5.1 Rule Components
| Component | Description |
|---|---|
| Trigger | What initiates the escalation |
| Condition | Additional criteria to match |
| Destination | Where to route |
| Timeout | How long before escalating further |
5.2 Default Escalation Rules
| Priority | Trigger | Destination | Timeout | Next Step |
|---|---|---|---|---|
| 1 | Safety keywords | Safety Ops Primary | 30s | Safety Ops Backup |
| 2 | Support keywords | Driver Support | 60s | Safety Ops |
| 3 | Fleet-specific | Fleet Admin | 60s | Driver Support |
| 4 | Unresolved (3x) | Driver Support | 60s | Voicemail |
| 5 | System error | Driver Support | 30s | Voicemail |
5.3 Creating Custom Rules
UI Flow:
1. Navigate to: Escalation Rules → Create New
2. Define Trigger:
- Type: Keyword / Event / Time-based
- If Keyword: Enter keywords (comma-separated)
- If Event: Select from list
- If Time-based: Set schedule
3. Add Conditions (optional):
- Driver fleet: [specific fleet or any]
- Vehicle state: [MOVING, STOPPED, PARKED, any]
- Time of day: [business hours, after-hours, any]
4. Set Destination:
- Role: Safety Ops / Driver Support / Fleet Admin
- Specific person (optional)
5. Configure Timeout:
- Duration: [seconds]
- On timeout: Next in chain / Voicemail / Specific person
6. Set Priority:
- Higher priority = evaluated first
7. Enable/Disable
8. Save Rule5.4 Rule Priority & Evaluation
INCOMING ESCALATION:
↓
┌─────────────────┐
│ Evaluate rules │
│ by priority │
│ (highest first) │
└────────┬────────┘
↓
┌─────────────┐
│ Rule 1 │ ← Priority 100 (Safety)
│ matches? │
└─────┬───────┘
Yes │ No
│ ↓
│ ┌─────────────┐
│ │ Rule 2 │ ← Priority 50 (Support)
│ │ matches? │
│ └─────┬───────┘
│ Yes │ No
│ │ ↓
│ │ ┌─────────────┐
│ │ │ Default │ ← Fallback
│ │ │ rule │
│ │ └─────────────┘
↓ ↓
┌─────────────────┐
│ Route to │
│ destination │
└─────────────────┘5.5 Fleet-Specific Rules
Fleet Admins can create rules scoped to their fleet:
| Rule Type | Example |
|---|---|
| Custom keywords | Route "dispatch" to fleet-specific line |
| Time-based | After 6 PM → voicemail only |
| Driver-specific | VIP drivers → priority routing |
6. Notification Configuration
6.1 Notification Channels
| Channel | Use Case | Configuration |
|---|---|---|
| Phone call | Critical escalations | Phone number required |
| SMS | Backup notification | Phone number required |
| Push notification | All escalations | PagerDuty app required |
| Low priority, summaries | Email required |
6.2 PagerDuty Integration
Setup:
1. Navigate to: Notification Settings → PagerDuty
2. Enter API Key: [PagerDuty API key]
3. Configure Services:
- Safety Ops Service ID: [service_id]
- Driver Support Service ID: [service_id]
4. Map Escalation Policies:
- P1 (Critical) → Safety Ops
- P2 (High) → Driver Support
- P3 (Normal) → Driver Support
5. Test Connection
6. Save6.3 Notification Preferences (Per User)
| Setting | Options |
|---|---|
| Primary contact | Phone / SMS / Push |
| Backup contact | Phone / SMS / Push / Email |
| Quiet hours | Time range to suppress non-critical |
| Critical override | Always notify for safety (cannot disable) |
7. Fleet Overrides
7.1 Override Types
| Override | Description |
|---|---|
| Routing override | Route all calls for a fleet differently |
| Hours override | Different availability hours |
| Escalation override | Custom escalation chain |
| Blackout | Temporarily disable voice agent for fleet |
7.2 Creating Fleet Overrides
Example: Custom Routing
Fleet: Acme Trucking
Override Type: Routing
Configuration:
- All support calls → Fleet Admin (John) first
- Timeout: 45 seconds
- Fallback: Standard Driver Support
- Effective: Immediately
- Expiration: Ongoing (no end date)7.3 Emergency Blackout
For fleet-wide voice agent disable:
1. Navigate to: Fleet Overrides → [Fleet Name]
2. Click: Emergency Blackout
3. Select Duration:
- 1 hour
- 4 hours
- 24 hours
- Until manually disabled
4. Set Message:
"Voice agent temporarily unavailable. Please use the app or
call [backup number] for assistance."
5. Notify Fleet Admin: Yes
6. Confirm Blackout8. Audit & Reporting
8.1 Audit Log
Logged Events:
| Event | Details Captured |
|---|---|
| Schedule change | Who, what changed, when |
| Role assignment | Who assigned, to whom, role |
| Rule modification | Rule ID, changes, by whom |
| Override creation | Override details, reason |
| Configuration export | Who, what exported |
8.2 Reports
Available Reports:
| Report | Description | Frequency |
|---|---|---|
| Escalation Summary | Count by type, outcome | Daily, Weekly, Monthly |
| Response Time | Average, P95 by role | Daily, Weekly |
| Coverage Gaps | Periods with no on-call | Weekly |
| On-Call Hours | Hours per person | Weekly, Monthly |
| Resolution Rate | First-call resolution % | Weekly |
8.3 Report Configuration
1. Navigate to: Reports → Schedule Report
2. Select Report Type: [Escalation Summary]
3. Set Parameters:
- Date range: Last 7 days
- Group by: Role / Fleet / Outcome
- Include: All fleets / Specific fleet
4. Set Delivery:
- Email to: [recipients]
- Format: PDF / CSV
- Frequency: Weekly (Monday 9 AM)
5. Save Schedule8.4 Dashboard Metrics
Real-Time Dashboard:
┌─────────────────────────────────────────────────────────────────────┐
│ CALL ROUTING DASHBOARD │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Active Calls │ │ Escalations │ │ Avg Response │ │
│ │ 3 │ │ Today: 12 │ │ 45 sec │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ │
│ On-Call Now: │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ Safety Ops: Alice Smith (Primary), Bob Johnson (Backup) │ │
│ │ Driver Support: Charlie Brown │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │
│ Recent Escalations: │
│ ┌────────────────────────────────────────────────────────────────┐ │
│ │ 14:32 | Support | John D. | App issue | Resolved (2 min) │ │
│ │ 14:15 | Support | Jane S. | Navigation | Resolved (5 min) │ │
│ │ 13:45 | Safety | Mike R. | Accident | Resolved (15 min) │ │
│ └────────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘9. Single-Person Operations Mode
9.1 Enabling Single-Person Mode
For small fleets or startups with limited staff:
1. Navigate to: Settings → Operations Mode
2. Select: Single-Person Operations
3. Configure Primary Operator:
- Name: [Operator Name]
- Phone: [Primary phone]
- Email: [Email]
- Backup Phone: [Secondary phone]
4. Set Availability:
- Available hours: [8 AM - 10 PM]
- Timezone: [Local timezone]
5. After-Hours Behavior:
- Safety calls: Page operator (phone + SMS)
- Support calls: Voicemail + SMS notification
- Message: [Custom voicemail message]
6. Enable Mode9.2 Single-Person Dashboard
Simplified view for single-operator mode:
┌─────────────────────────────────────────────────────────────────────┐
│ SINGLE OPERATOR MODE │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ Status: AVAILABLE [Toggle Availability] │
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ You will receive: │ │
│ │ • All safety escalations (immediate) │ │
│ │ • All support escalations (immediate during available hours) │ │
│ │ • Voicemail alerts (after hours) │ │
│ └──────────────────────────────────────────────────────────────┘ │
│ │
│ Today: 3 escalations handled, 0 pending │
│ │
│ [View History] [Update Settings] [Set Backup] │
│ │
└─────────────────────────────────────────────────────────────────────┘10. API Access
10.1 Configuration API Endpoints
| Endpoint | Method | Purpose |
|---|---|---|
/api/admin/schedules | GET, POST, PUT, DELETE | Manage on-call schedules |
/api/admin/roles | GET, POST, PUT, DELETE | Manage role assignments |
/api/admin/rules | GET, POST, PUT, DELETE | Manage escalation rules |
/api/admin/overrides | GET, POST, PUT, DELETE | Manage fleet overrides |
/api/admin/notifications | GET, PUT | Configure notifications |
10.2 Example: Update On-Call Schedule
http
PUT /api/admin/schedules/{schedule_id}
Authorization: Bearer {token}
Content-Type: application/json
{
"rotation": {
"period": "weekly",
"handoff_day": "monday",
"handoff_time": "09:00",
"timezone": "America/New_York"
},
"members": [
{ "user_id": "usr_alice", "order": 1 },
{ "user_id": "usr_bob", "order": 2 },
{ "user_id": "usr_charlie", "order": 3 }
],
"backup_rule": "next_in_rotation",
"escalation_timeout_seconds": 30
}11. NIST 800-53 Control Mapping
| Control | Title | Implementation |
|---|---|---|
| AC-2 | Account Management | Role assignments, access control |
| AC-3 | Access Enforcement | Role-based dashboard access |
| AU-2 | Event Logging | Configuration change audit log |
| AU-6 | Audit Review | Reporting and metrics |
| CM-3 | Configuration Change Control | Audit trail for changes |
12. Document Control
| Version | Date | Author | Changes |
|---|---|---|---|
| 1.0 | December 30, 2025 | Hop And Haul Team | Initial release |