Maintenance carries a fault from report through triage, assignment, approval, repair verification and closure. Reporting a fault, approving spend, dispatching a contractor and verifying a repair are separate authorities.
Control desk and job sheets
The /maintenance workspace presents operational attention, pending spend, contractor visits and verified
hand-backs. Its work functions cover Control desk, Job sheets, Approvals, Contractor visits and
Reporting access. Job sheets can be searched by job, venue or asset and filtered by operational state. A
selected sheet shows fault details, risk/immediate control, location, responsible work, evidence and currently
permitted next actions.
Use Report a maintenance fault to record title, what happened, priority, likely trade, observed risk, risk summary, whether the area is secured, venue and area/space within the building. The optional asset selector appears when Assets contributes permitted records. Add up to five photos and inspect/remove them in the draft before submission.
Report-only staff can submit without gaining the work queue. Triage reviews safety and whether work can wait. Critical work bypasses routine consolidation. Internal assignment selects an eligible Person. Quote requests, approval requests, contractor details, amounts and decision notes become attributed workflow evidence on the same ticket.
Contractor visits and governed spending
- Select compatible job sheets and Plan a shared contractor call-out with contractor and access start/end. Each ticket retains its own evidence and approval; a shared visit does not pool away those controls.
- Record contractor contact evidence, such as a phone note, email-thread or portal reference. This records contact; it is not a claim that Soupy sent it.
- Record acceptance and obtain current approved spend for every visit item. Dispatch requires those facts and the appropriate capability.
- Use the time-bounded contractor link to expose only assigned visit work and required access/evidence. Contractors submit their work evidence there.
- An authorised operator verifies the repair. Close verified maintenance work then records final hand-back notes; verification and closure differ.
Independent approvals do not allow requesters to approve their own requests. Changed or expired approval evidence can invalidate a next action. Emergency users can record an immediate safety action and why normal approval could not wait; a separate retrospective review remains required.
Restricted public reporting
Reporting access → Create a restricted reporting tag generates a create-only NFC/QR link at
/maintenance/report/{token}. Its reporting-point name identifies the source. The same bounded form can be
reached for one asset at /maintenance/report/asset/{token}. A bearer may submit a fault but cannot browse
Maintenance or read private photos. Links can expire or be revoked.
Photo uploads bind to the reporting source and draft for 30 minutes. Submission consumes the report and its selected evidence together. Failed uploads keep the draft open; an uncertain submission retains its operation and checks for the existing report before retrying. Anonymous evidence records its link/tag source without inventing a staff identity. The reporting point is not an authenticated workplace or general public read account.
Permission and settings reference
| Capability | Responsibility |
|---|---|
maintenance.report | Create a bounded fault report. |
maintenance.view | Read permitted work and history. |
maintenance.triage | Triage and reporting-access administration. |
maintenance.assign_internal | Assign internal repair responsibility. |
maintenance.approval.request | Request approval. |
maintenance.quote.request | Request/record quotation workflow. |
maintenance.contractor.contact | Plan/contact contractor visits. |
maintenance.contractor.dispatch | Dispatch approved contractor work. |
maintenance.spend.approve | Decide permitted spend independently. |
maintenance.verify | Verify submitted repairs. |
maintenance.close | Close verified work with hand-back evidence. |
maintenance.emergency.act | Record exceptional immediate safety action. |
maintenance.settings.view, maintenance.settings.manage | Settings reach. |
General, Triage, Contractors and Approvals settings sections currently display configuration shells rather than general-purpose policy editors. The work queue and its exact record permissions determine the available operational actions. Missing escalation/approval readiness can block dispatch; a hidden button is not the only enforcement because the backend rechecks the stored ticket.