TotalApp Docs

Dispatcher Console

Real-time driver-job matching with a four-stage Kanban pipeline and strict capacity guardrails.

Overview

The Dispatcher Console is where you match available drivers with incoming outbound jobs in real time. It uses a four-stage Kanban pipeline that mirrors the physical lifecycle of a delivery job — from an unassigned order waiting in the backlog, through driver binding and departure, to final delivery completion.

Every assignment is validated against two live guardrails before it is accepted: vehicle capacity and vehicle status. This prevents overloading a truck or assigning a job to a vehicle currently in maintenance — without requiring the dispatcher to manually check Fleet Manager first.

Four-Stage Pipeline

1. Unassigned Backlog

Jobs waiting for a driver. Sorted Critical priority first. Click Assign on any card to begin the assignment flow.

2. Manifest Ready

Driver bound, awaiting departure. Shows Hold (returns to Backlog) and Depart (moves to In Transit) action buttons.

3. In Transit

Vehicle on the road. Shows an amber progress bar and a Mark Done button. The progress bar is time-based from departure timestamp.

4. Completed

Locked. Shows an emerald "Delivered" stamp. No further actions available. Preserved for the session for reference.

StageAvailable ActionsTransitions
Unassigned BacklogAssignForward to Manifest Ready (after assignment)
Manifest ReadyHold, DepartHold → Backlog; Depart → In Transit
In TransitMark DoneMark Done → Completed
CompletedNoneTerminal stage

Assignment Flow and Guardrails

Clicking Assign on a job card highlights eligible drivers in the Driver Dock panel on the left. Clicking a highlighted driver binds them to the job — but only after two automatic checks pass:

Capacity Check

The job's loadWeight must not exceed the vehicle's remaining capacity (structuralCapacity − currentCargoWeight). If it does, the assignment is refused with a specific error: CAPACITY_EXCEEDED: load 1820kg > remaining 1240kg on 34 GHI 505.

Vehicle Status Check

The assigned vehicle must be in active status. Vehicles marked Maintenance, Reserved, or Decommissioned in Fleet Manager cannot accept new jobs. The error toast shows the specific status that blocked assignment.

Errors Are Specific

The guardrail system is designed to give the dispatcher actionable information, not vague failure messages. The error toast always includes the vehicle identifier, the blocking condition, and the exact numbers involved so the dispatcher can immediately determine whether to use a different vehicle or split the load.

Driver Dock

The left panel of the Dispatcher Console shows a live list of all drivers bound to active vehicles. Each driver card displays:

  • Live status dot — green (available), amber (in transit), red (offline)
  • Driver name and assigned vehicle plate
  • Capacity bar — visual representation of capacityUsedKg versus structuralCapacity

During an active assignment flow, only drivers whose vehicles can accept the job load are highlighted as eligible. Ineligible drivers are shown dimmed with a brief reason label.

Job Cards

Each job card in the Kanban pipeline shows:

  • Priority badge — Critical (red), High (orange), Medium (amber), Low (slate)
  • Load weight — total cargo weight in kg
  • Destination — delivery address or city
  • Assigned driver — appears after the job moves out of Unassigned Backlog

Jobs in Unassigned Backlog are automatically sorted with Critical priority at the top so dispatchers never miss urgent deliveries.

Creating a New Job

Click the + icon in the Unassigned Backlog column header to open the New Dispatch Job modal. New jobs always enter the pipeline at the Unassigned Backlog stage — there is no way to create a job directly into Manifest Ready, In Transit, or Completed.

The modal collects:

  • Job title — required
  • Priority — Low / Medium / High / Critical, defaults to Medium
  • Load weight (kg) — used later by the capacity guardrail during assignment
  • Destination — required
  • Origin — optional
  • Notes — optional free text

The Create Job button stays disabled until both Job title and Destination are filled in. On success the job appears immediately at the top or bottom of Unassigned Backlog depending on its priority rank, and a confirmation toast is shown. The new job is persisted the same way as every other dispatch record — through fleetService to /api/data/fleet.

AI Assistant

A dedicated AI Assistant is built into the Dispatcher Console. Open it from the vertical AI Assistant tab anchored to the right edge of the screen; it slides in as a dark-glass panel without leaving the board.

The assistant is always working from the live board — the full job list (every lane, not just what's currently visible) and the full driver pool (status, vehicle, load %) are sent as context with every message, so answers reflect the exact state of the screen at the moment you ask.

Assignment Suggestions

Ask which available driver best fits the next unassigned job, weighing capacity and current availability.

Backlog Triage

Flags Critical or High priority jobs that have been sitting unassigned too long.

Workload Balancing

Identifies drivers who are overloaded or sitting idle across the current pool.

Fleet Status Summary

Summarizes how many jobs sit in each lane and how many drivers are currently available.

The panel supports the same conversation tools as every other TotalApp AI Assistant: New Chat, session History, Fullscreen mode, and Attach Knowledge for pulling in extra reference material from your knowledge base. Replies render as formatted Markdown. The assistant respects your global Writer Engine setting (Local CLI, Hosted API, or Ollama) from Settings → AI Assistant.

Moving Cards

Cards can be advanced through the pipeline in two ways:

  • Inline action buttons — Depart (Manifest Ready → In Transit), Mark Done (In Transit → Completed), Hold (Manifest Ready → Backlog). This is the recommended method.
  • Drag-and-drop — drag a card to the target column. The same state machine guards apply.

State Machine Guards on Drag

Attempting to drag a card to an invalid column (e.g. dragging directly from Backlog to Completed, or dragging backwards from In Transit to Backlog) triggers a toast error. The card snaps back to its original column. Use the Hold button if you need to return a Manifest Ready job to the backlog.

Data Persistence

All Dispatcher Console data is saved to the server. Every assignment, stage transition, and unassignment survives a page refresh. The following actions are supported:

  • Load drivers — fetches the live driver list with capacity and status
  • Load jobs — fetches all active jobs with their current stage
  • Assign driver to job — runs guardrail checks then binds the driver
  • Update job status — advances or regresses a job's stage
  • Unassign job — removes the driver binding and returns the job to Backlog

Frequently Asked Questions

Can one driver be assigned to multiple jobs simultaneously?
No — a driver can only be in one active job at a time. Once a driver is bound to a job in Manifest Ready or In Transit, they are marked as unavailable in the Driver Dock and will not be offered during other assignment flows.
What does the Hold action do exactly?
Hold returns a Manifest Ready job to Unassigned Backlog and unassigns the driver, making them available again. Use Hold if departure plans change or if the wrong driver was assigned.
How is the In Transit progress bar calculated?
The progress bar is time-based, using the departure timestamp and the ETA stored on the shipment record. It is a visual estimate only — it advances at a constant rate and does not reflect actual GPS position.
Where do completed jobs go after the session ends?
Completed jobs are preserved in fleet.json and visible in the Completed column on reload. They can also be reviewed in Shipment Tracker, which shows the full milestone history for every completed delivery.