Job Management
Full job lifecycle from intake to invoice — create, search, assign, start, complete, and bill all field jobs from one screen.
Overview
Field Service Management gives dispatchers, technicians, and managers everything they need to run field operations without switching tools. The module is organized into four screens that cover the complete job lifecycle: a real-time Dispatch Board for assigning jobs, a Job Management screen for tracking each job from creation to invoice, a Van Inventory screen for managing technician stock, and a Performance Dashboard for reviewing team and technician metrics.
Dispatch Board
Drag-and-drop job assignment across a live technician grid. Each technician column shows current status, active job count, and the full day's schedule at a glance.
Job Management
Full job lifecycle from intake to invoice. Create jobs, attach parts, log time, capture signatures, and push to billing — all from one screen.
Van Inventory
Each technician's van is its own stock location. Replenish parts, record usage per job, and flag low-stock vans before technicians run short in the field.
Performance Dashboard
Team-level and technician-level KPIs: jobs completed, first-time fix rate, average travel and job duration, customer satisfaction scores, and revenue per technician.
Quick Start
- Switch to Field Service mode using the mode switcher in the app header.
- Click Job Management in the left sidebar.
- Click Add Job in the top-right to open the new job form.
- Enter the job title (required), customer name, phone, email, address, priority, and scheduled start and end times.
- Click Save. The job is created with status Pending and appears as a card in the Pending column of the board.
- Click the job card to open its detail panel, then click Assign to open the assignment modal. Select the technician and confirm the scheduled time.
- When the technician starts work, open the card's detail panel and click Start to advance the status to In Progress — the card moves to the In Progress column.
- When complete, open the card, click Complete, enter the customer rating and any final notes, and save. The card moves to the Completed column and the job is ready for invoicing.
Use the Status Tabs
Set the filter tab to In Progress during the day to focus only on active jobs. Switch to Pending first thing in the morning to check for overnight intake jobs that still need assignment.
Job Board
Job Management offers two views, switchable from the toggle next to the filter bar: a Table view and a Kanban view with four columns — Pending, Assigned, In Progress, and Completed — one per job status. In both views each job reflects its current status, and updates automatically as that status changes.
| Card element | Description |
|---|---|
| Job title | Short description of the work (e.g., "Replace water heater") |
| Priority badge | Color-coded: High = red, Medium = amber, Low = green |
| Customer name | Shown directly on the card |
| Scheduled time | Planned start date and time |
| Technician | Assigned technician name, or an "Unassigned" label when no technician is set |
| Customer rating | Star rating shown on Completed cards once captured |
Click a Card to Open Its Detail Panel
Clicking anywhere on a job card opens a full-screen detail panel with the customer's full contact info, technician, schedule, location, description, and notes — plus the contextual action button for that job's status (Assign, Start, Complete, or View Completion). Use the back arrow in the top-left of the panel to return to the board.
Multi-Select in Table View
The Table view includes a checkbox in front of every row plus a header checkbox to select or deselect every visible job at once. Selecting one or more rows shows a live count ("N selected") in the filter bar with a quick clear (✕) action next to it.
Checkbox Style Follows Your Appearance Settings
The checkbox shape (circle or square), whether a check icon is shown inside a selected checkbox, and the table's corner style (sharp or rounded) are controlled globally from Settings → Appearance → List Style — the same setting used across every multi-select table in TotalApp, so Job Management always matches the rest of the app.
Job Status Workflow
Jobs move through a linear sequence of statuses. Each transition is triggered by a specific action in the Actions column.
| Status | Badge Color | Triggered By | What Happens |
|---|---|---|---|
| Pending | Slate | Job creation | Job is created and visible on the Dispatch Board as unassigned |
| Assigned | Blue | Assign modal — select technician | Technician is linked; job appears in their queue on the Dispatch Board |
| In Progress | Amber | Start button in the row | Actual start time is recorded; job is live |
| Completed | Green | Complete modal — rating + notes | Actual end time recorded; customer rating saved; job feeds into Performance Dashboard |
| Cancelled | Red | Cancel action from any active status | Job is closed; removed from technician's queue; not counted in performance metrics |
Creating a Job
Click Add Job in the top-right of the header row. The new job modal contains the following fields:
| Field | Required? | Notes |
|---|---|---|
| Job Title | Required | The Save button is disabled until this field is non-empty |
| Customer Name | Optional | Free text — link to CRM manually if needed |
| Phone | Optional | Shown on the job card for quick-dial |
| Optional | Used for completion notifications if enabled | |
| Address | Optional | Service location — shown in the job detail panel and on the Dispatch Board map |
| Priority | Optional | High / Medium / Low — defaults to Medium |
| Scheduled Start | Optional | datetime-local input; used for sorting on the Dispatch Board |
| Scheduled End | Optional | Used to estimate job duration |
| Description | Optional | Detailed problem description visible in the job row and to the technician |
| Notes | Optional | Internal dispatcher notes |
Minimum Required: Title Only
The only required field is the job title. You can save a bare-minimum job immediately and fill in customer details, address, and scheduling later. This is useful when a call comes in and you need to capture the job quickly before getting full details from the customer.
Assigning a Job
Click a Pending job's card to open its detail panel, then click Assign. The assignment modal prompts for:
- Technician — select from a dropdown of active technicians with their current status visible. The Save button is disabled until a technician is selected.
- Scheduled Start — pre-filled from the job record; can be adjusted here.
- Scheduled End — pre-filled from the job record; can be adjusted here.
- Notes — optional dispatcher instructions for the technician.
After saving, the job status changes to Assigned and the card moves to the Assigned column with the technician's name visible. The job is also visible on the Dispatch Board under the assigned technician's column.
Completing a Job
Click an In Progress job's card to open its detail panel, then click Complete. The completion modal prompts for:
- Customer Rating — 1–5 star buttons. Optional but strongly recommended; feeds into the Performance Dashboard.
- Parts Used — add line items (part name, quantity, unit price) consumed on the job.
- Customer Signature — capture a signature directly on a signature pad.
- Photos — attach one or more photos of the completed work.
- Completion Notes — summary of work performed, parts used, or follow-up actions required.
After saving, the job status changes to Completed, the actual end time is recorded, and the card moves to the Completed column.
Always Capture a Rating
Even a quick 5-star tap takes one second and significantly improves the value of the Performance Dashboard. Teams that consistently capture ratings can identify patterns in customer satisfaction by technician, job type, and time of day — insights that are impossible without this data.
Pushing a Completed Job to Billing
Once a job's status is Completed, a Push to Billing button appears in the Actions column of its table row — it is only shown for completed jobs that have not yet been billed. Clicking it sends the logged parts and job details as a new billing record to Contracts & Warranty — Service Billing, where it enters the Pending approval queue.
After a job has been pushed to billing, the Actions column shows a Sent label in that same spot instead of the button, so it's immediately clear which completed jobs still need to be billed and which have already been forwarded.
One Push Per Job
Push to Billing is a one-way action — once a job shows the Sent label, use the Service Billing screen (Contracts & Warranty) to review, approve, or make corrections to the resulting billing record rather than trying to push the same job again.
Adding a Technician
Click Add Technician next to Add Job in the top-right header row. The modal offers two sources:
| Source | Behavior |
|---|---|
| From Tenant | Pick an existing employee from this tenant's HR personnel list (name and job title shown). The technician record inherits the employee's name, phone, email, and skills. |
| Out of Tenant | Manually enter a name (required), phone, and email for a technician who is not an employee record in this tenant — useful for subcontractors or temporary field staff. |
The new technician immediately appears in the Assign Technician dropdown and on the Dispatch Board, with status "Available" and zero jobs logged.
Same Modal as Performance Dashboard
The Add Technician modal is a shared component used identically on both Job Management and the Performance Dashboard's technician filter row (the icon button next to "All Technicians"). Adding a technician from either screen produces the same result and refreshes the technician list on the screen you added it from.
AI Assistant
Click the vertical AI Assistant tab on the right edge of the screen to open a chat panel scoped to the jobs currently loaded on this screen. The assistant can summarize job load by technician and status, flag high-priority jobs that are unassigned or stuck, point out scheduling conflicts or gaps, and highlight jobs that have been pending too long.
The panel respects your Settings → Agentic → Writer Engine selection: Ollama, Local LLM, and In-Browser models run entirely in your browser or on your own machine, while API and Local CLI route through the server. Suggested prompts are shown when the chat is empty; use the history and new-chat icons in the panel header to manage multiple conversations.
Searching and Filtering
| Control | Location | Behavior |
|---|---|---|
| Search input | Left side of filter bar | Searches job title and customer name in real time as you type, filtering cards across all board columns |
| Status tabs | Filter bar — All / Pending / Assigned / In Progress / Completed | Selecting a single status narrows the board to that one column; All shows every column |
| Priority dropdown | Filter bar | Narrows to High, Medium, or Low priority job cards within the selected status tab |
| Refresh button | Right side of filter bar | Reloads jobs from the server; useful after bulk operations or to sync with other dispatchers |