End-to-end workflows
How work moves through Maintenance from start to finish, who does each step and what the system does in response.
On this page (10)
Breakdown: request to closed job with parts, labour and downtimeRequest turned downCalendar preventive plan generates, runs and moves onMeter-based preventive maintenanceFailed inspection raises a request that becomes a jobCondition monitoring: sensor reading to requestParts shortage to purchase and back to workOutside vendor: purchase order, AMC visit and warranty claimCalibration fails and is redoneTwo-person control: approval, completion and close
Breakdown: request to closed job with parts, labour and downtime
Who: Requester R (request.create), Manager M (role Maintenance manager), Technician T (role Maintenance technician, linked employee)
| # | What the person does | What the system does |
|---|---|---|
| 1 | R: Report Issue on asset CHL-001, type Breakdown, priority Urgent | Request MR-... New; asset status Breakdown; Assets Down +1 |
| 2 | M: open the request, Review, Approve | Status Approved; decided by M |
| 3 | M: Create Work Order, technician T | WO-... Draft with T; T's bell shows 'WO-... assigned to you'; request Work Order Created |
| 4 | T: My Work > Start Work | In Progress; labour timer for T; asset Under Maintenance; the breakdown's running downtime (or a new unplanned one) linked to the job |
| 5 | M (or T with parts.issue): Parts tab: Add Part 2 x V-belt, Issue | Inventory transfer done, stock -2, part cost in ledger, journal Dr 5200 / Cr 1200 |
| 6 | T: Complete with failure code MECH, cause, signature | Completed; labour and downtime closed and costed; asset Active |
| 7 | M: Close | Closed; request MR-... Closed automatically; costs final (Add Cost refused) |
Request turned down
Who: Requester R, Approver M
| # | What the person does | What the system does |
|---|---|---|
| 1 | R: Report Issue with no asset | Request New |
| 2 | M: Approve | Refused 'Say which asset it is about before approving it.' |
| 3 | M: Reject with reason 'Duplicate' | Status Rejected; decision note kept |
| 4 | M: Close | Status Closed; no work order exists |
| 5 | R: try to edit the request (API PUT) | Refused 'A request is changed only before it is decided.' |
Calendar preventive plan generates, runs and moves on
Who: Planner P (plan.edit, workorder.create), Technician T
| # | What the person does | What the system does |
|---|---|---|
| 1 | P: New Plan 'Quarterly chiller service', every 3 Months, First Due = today + 5 days, lead 7, default technician T, checklist 3 lines, 2 assets | Plan MP-...; both assets due in 5 days; Preventive Due tile counts them |
| 2 | P: Preventive Maintenance > Generate Due Work Orders | Two WOs Assigned to T, planned start on the due date 08:00, 3 tasks each, plan snapshot |
| 3 | P: Generate again | 'Nothing is due.' - no duplicates |
| 4 | T: Start one job, tick the 3 tasks Done, Complete | Completed; asset last done = today; next due = today + 3 months |
| 5 | P: open the plan > Assets tab | Completed asset shows the new next due and no open job; the other still has its open job |
| 6 | P: edit the plan checklist (API) and open the first job | The job keeps its original checklist and plan revision |
Meter-based preventive maintenance
Who: Planner P, Technician T
| # | What the person does | What the system does |
|---|---|---|
| 1 | P: Add Meter Operating Hours on GEN-001; Log Reading 12000 | Meter at 12000 h |
| 2 | P: New Plan, trigger Runtime, meter Operating Hours, every 500, asset GEN-001 | Next due meter 12500 |
| 3 | T: Log Reading 12400 | Nothing generated; Due list shows 12400 / 12500 h (within 90 %) |
| 4 | T: Log Reading 12510 | A work order is generated at once with due meter 12500 |
| 5 | T: Start and Complete it with Meter Reading at Completion 12520 | Reading recorded (source Work Order); next due meter 13020 |
| 6 | T: Log Reading 12000 without reset | Refused 'This counter was at 12520 h. A smaller reading is recorded as a meter reset.' |
Failed inspection raises a request that becomes a job
Who: Inspector I (maintenance.edit), Manager M
| # | What the person does | What the system does |
|---|---|---|
| 1 | I: New Inspection, template Safety Inspection, asset CHL-001 | INS-... planned with 3 checks |
| 2 | I: answer Pass, Fail ('guard missing'), Pass; Complete Inspection | Result FAIL; one request 'Failed inspection INS-...' priority high, source Inspection |
| 3 | M: open the request from the Request smart button; Approve; Create Work Order | WO-... linked to the request |
| 4 | M: Complete and Close the job | Request Closed |
| 5 | Admin: switch off 'A failed inspection raises a maintenance request'; repeat with another failure | Result FAIL but no request is raised |
Condition monitoring: sensor reading to request
Who: Configurator C (configure), Integration (maintenance.edit API user), Manager M
| # | What the person does | What the system does |
|---|---|---|
| 1 | C: Add Meter Temperature on CHL-001; Alert Rule 'Temperature > 45', raise request, urgent | Rule active |
| 2 | C: IoT Sensors > New TS-CHL-01 on CHL-001 linked to the Temperature meter | Sensor active |
| 3 | Integration: POST sensors/ingest {sensor: 'TS-CHL-01', value: 47} three times | Three readings (source IoT); one open alert; one request 'Condition alert: ...' priority urgent, source IoT |
| 4 | M: Meters > Acknowledge the alert | Alert acknowledged |
| 5 | Integration: send 48 | A new alert and a new request (the previous alert is no longer open) |
Parts shortage to purchase and back to work
Who: Technician T, Storekeeper / Manager M, Buyer B
| # | What the person does | What the system does |
|---|---|---|
| 1 | M: on an In Progress job Add Part 5 x filter with only 3 free | Reserved 3, short 2 |
| 2 | M: Request Shortage, vendor V | Draft purchase document (RFQ) for 2 filters, VAT 5 %; job Waiting Parts; labour stopped |
| 3 | B: confirm and receive the purchase in Purchase / Inventory | Stock +2 (Inventory's own flow) |
| 4 | T: Resume; M: Reserve, then Issue all 5 | Issued 5 at stock cost; journal Dr 5200 / Cr 1200 |
| 5 | T: Complete; M: Return Unused 1 | Reverse transfer at the issue unit cost; part cost reduced |
| 6 | M: Close; try Return Unused again (API) | Refused 'A closed work order's parts are final. Reopen it first.' |
Outside vendor: purchase order, AMC visit and warranty claim
Who: Manager M (configure, cost.view)
| # | What the person does | What the system does |
|---|---|---|
| 1 | M: New Contract AMC with vendor V, 2026-01-01..2026-12-31, 4 visits, asset CHL-001 | AMC-...; visits 0 / 4 |
| 2 | M: on a job Create Purchase Order to V, 'Rewind motor' 1 x 1200 | Purchase order in Purchase; job Waiting Vendor |
| 3 | M: Vendors > Record Visit with the contract, Done, cost 800, asset CHL-001 | Within Contract; no cost booked; visits 1 / 4 |
| 4 | M: Record Visit without contract, Done, cost 800 | 800.00 AED vendor cost on the asset |
| 5 | M: Asset 360 > Add Warranty (valid); Create Warranty Claim 2400 linked to the job (API work_order_id) | WCL-... Draft; job shows the claim; asset Warranty card shows the reference |
Calibration fails and is redone
Who: Quality user Q (maintenance.calibration)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Q: Asset 360 > More > Record Calibration, Fail, measured 0.09 mm vs ±0.05 | CAL-...; register Failed; next calibration = today; request 'Calibration failed CAL-...' high |
| 2 | Q: Calibration register filter Failed | Asset listed |
| 3 | Q: Record Calibration again, Pass, interval 180 | Register Valid; next = today + 180 days |
| 4 | Q: open the calendar 6 months ahead | 'Calibration due <code>' event on the next date |
Two-person control: approval, completion and close
Who: Planner A (workorder.create), Approver B (request.approve), Technician T, Manager C (workorder.close)
| # | What the person does | What the system does |
|---|---|---|
| 1 | Admin: Maintenance Settings > Work orders need approval ON | Saved |
| 2 | A: New Work Order (Draft); try Start / Schedule | Refused 'Approve the work order before starting it.' / '...scheduling it.' |
| 3 | B: Approve | Approved |
| 4 | A or B: Assign T; T: Start, Complete | Completed by T |
| 5 | T: try Close | Not offered; API 'You do not have permission for this action.' (technician has no workorder.close) |
| 6 | C: Close | Closed by C |