Jobs & Scheduling
Job Pipeline Board
Drag jobs between status columns on a Kanban board.
4 min readJob Pipeline Board
Move jobs across status columns on a drag-and-drop Kanban board for a quick operational picture — with enterprise transition rules, required-field prompts, customer-contact gates, optimistic moves, and persisted column order.
Overview
The Job Board at
/jobs/board groups jobs into columns by status: Draft, Scheduled, In Progress, On Hold, Completed, and Cancelled. Drag cards between columns to update status without opening each job. Cards can also be reordered within a column; that order is saved.How to access
- Jobs → view toggle Board →
/jobs/board - Or navigate directly to
/jobs/board
Requires
jobs:view to open; status changes require jobs:update (cancel requires jobs:delete / manage).What you can do today
- See up to 500 jobs across six status columns (sorted by board order, then schedule).
- Drag and drop a job card to another allowed status column.
- Reorder cards within a column; order persists for the team.
- Click a card to open
/jobs/:id. - Refresh the board after external changes.
- New Job shortcut to
/jobs/new. - Open a message drawer or place a call from a card (telephony when configured).
- After a successful move, use Undo when the reverse status transition is allowed.
Transition rules
Only workflow edges are allowed (same rules as job detail / API):
| From | To |
|---|---|
| DRAFT | SCHEDULED, CANCELLED |
| SCHEDULED | IN_PROGRESS, CANCELLED |
| IN_PROGRESS | ON_HOLD, COMPLETED |
| ON_HOLD | IN_PROGRESS, CANCELLED |
Invalid columns show a visual reject while dragging. Completed and Cancelled cards are not draggable.
Required fields
If a move needs missing data, a modal collects it before the status change:
- DRAFT → SCHEDULED: customer, scheduled date, service address
- SCHEDULED → IN_PROGRESS: assigned technician (start time auto-fills)
- IN_PROGRESS → ON_HOLD: hold notes
- IN_PROGRESS → COMPLETED: end time / completed date auto-fill
Customer contact gate
Before SCHEDULED → IN_PROGRESS or IN_PROGRESS → COMPLETED, ServiceFlow requires recorded customer contact. Contact counts when:
- An outbound SMS/email is sent for the job, or
- A call is linked / placed from the board, or
- You choose Mark as contacted in the transition modal
Prerequisites
jobs:viewpermission.jobs:updateto move cards (status changes).jobs:delete(or manage) to cancel via the board.
Step-by-step
Move jobs on the board
- Go to Jobs and select Board, or open
/jobs/board. - Locate the job card in its current column.
- Drag the card to a valid target status column (invalid columns are highlighted as not allowed).
- If required fields or customer contact are missing, complete the modal, then confirm.
- The card moves immediately; a success toast appears (with Undo when reversible).
Reorder within a column
- Drag a card above or below another card in the same status column.
- Release — the new order is saved for everyone on the board.
Start from the board
- Click New Job to open
/jobs/new. - After creation, return to the board — the job appears in Draft or Scheduled depending on how you saved it.
Current limitations
- The board loads a large page size (500 jobs); very high-volume shops may need list filters elsewhere first.
- Contact rules for start/complete are fixed for this release (not per-business configurable yet).
- Mobile layout stacks columns; drag may be less convenient on small screens — use the status menu or job detail if needed.
Related features
- Jobs List & Detail — full list filters and job detail editing
- Scheduler & Dispatch — time-based dispatch view
- Calendar View — week calendar for scheduled jobs
