Submitting and Triaging Work Orders
Work orders are the heartbeat of ArkanPM's maintenance engine. This article walks through how requests turn into work orders, the full state machine, the seven types, and how to triage efficiently using the kanban board.
From request to work order
Anyone — residents, staff, or vendor users — can submit a work request with a title, description, photos, location (building, floor, unit), and priority. Residents are automatically scoped to their own unit.
Each request moves through:
- Submitted — newly created, awaiting triage.
- Triage — a facility manager reviews, adjusts priority, and either approves or rejects with a reason.
- Approved — converted to a work order.
- Rejected — closed with a recorded reason and notified back to the submitter.
Emergency-flagged requests skip ahead to expedited processing. PostgreSQL full-text search lets you find any request by title or description instantly.
The work order state machine
Work orders follow a strict lifecycle:
Draft → Open → Assigned → In Progress ↔ On Hold → Completed → Verified → Closed (or Cancelled at any stage).
Every transition is recorded in status history with a timestamp, actor, and optional reason. You cannot jump states — for example, you cannot move from Draft directly to Completed. The backend validates transitions.
The seven work order types
| Type | When to use |
|---|---|
| Corrective | A fix for something broken |
| Preventive | A scheduled routine task |
| Predictive | Triggered by condition or meter data |
| Emergency | Immediate safety or operational risk |
| Inspection | A standalone inspection task |
| Project | Multi-step initiatives (retrofits, upgrades) |
| Warranty Repair | Work covered by an active warranty |
Each type carries its own operational context. Warranty repair work orders, for example, link back to a warranty claim for cost coverage tracking.
Triaging efficiently with the kanban board
Switch the work order list to Kanban view to see everything laid out by status column. Columns include Open, Assigned, In Progress, On Hold, Completed, and Verified. Each card shows:
- Work order number (auto-numbered as
WO-2025-00001). - Priority color coding.
- Assignee avatar.
- Due date.
Drag and drop cards between columns to transition status. The system records the actor and timestamp for every drag.
Assigning technicians
From a work order's detail page, click Assign. Pick a technician (filtered by role and building scope) and optionally a role. The technician will:
- Receive a notification (in-app, email, push, or SMS — depending on preferences).
- Acknowledge the assignment.
- Start work, logging the start time.
- Log completion, including actual hours worked.
Compare estimated vs actual hours on the work order for performance analysis.
Checklists, parts, and costs
Work orders can carry:
- Interactive checklists with five response types: checkbox, text, number, photo, and select. Required items must be completed before closing.
- Parts reservations and usage — integrated with the spare parts inventory to keep stock accurate.
- Cost breakdowns across labor, parts, vendor, and other categories.
- Internal and external comment threads with attachment support. Internal notes are hidden from non-privileged users.
Batch creation
For large-scale planned events — a quarterly HVAC sweep, a building-wide inspection — use the Batch create API or UI to generate multiple work orders in a single call.
Escalations
If a work order sits too long or breaches an SLA, the Escalation engine background processor acts. Rules can notify users, reassign work, or bump escalation level (1 through 3). Configure rules scoped to buildings, categories, or priorities.
What next
Read Configuring SLA and preventive maintenance to set up dual response and resolution timers and PM schedules.