Create, manage, and track maintenance work orders
Complete guide to work order creation
Work orders are the backbone of maintenance. Each gets an auto-generated reference (WO-1, WO-2, etc.) and tracks everything from creation to closure.
For recurring work, create task templates with predefined checklists and apply them when creating work orders.
Open a list already filtered, without re-applying your filters every time
A saved view stores the filters you use most often under a name of your choice. One of your views can be marked as the default: the list then opens already filtered, every time, on every device.
The Columns button above the table shows or hides each column, and its arrows move a column up or down the order. To change a width, drag the edge of the column header; double-click that edge to restore it. Long titles wrap onto several lines, so later columns such as the due date stay in view. Your layout is saved to your account and follows you from one browser to another; "Reset layout" in the same menu restores the original order and widths; the columns you chose to show stay as they are.
Filter the list the way you want it — for example on two teams — then open the Views menu at the start of the filter row and choose "Save current filters…". Give the view a name and it appears in the menu, ready to switch to.
In the Views menu choose "Manage views…", then the star next to the view you want. From then on, opening the page applies that view automatically. The Views button always shows which view is active, and the active-filter chips stay visible, so the list never narrows silently.
When you follow a link that already carries filters — a dashboard card, a notification, an "overdue" tile — the page shows exactly what that link promised and your default view is not applied. Use "All work orders" in the Views menu to go back to the unfiltered list.
Everything happens under "Manage views…": rename a view, delete one, or choose "No default view" if you would rather open the full list again. Deleting a view never touches your work orders or requests. You can keep up to 20 views per list.
The requests list has its own Views menu and its own default view, independent from work orders. Views are personal: yours are visible to you only, and they follow your account from one browser to another.
If the search box holds text when you save — a key you put in work order titles, such as [HEBDO] — the view keeps it. Applying the view puts that text back in the search box; a view saved without a search empties it. The mobile app applies the same search.
Classify your work orders by type — and keep your KPIs honest
Every work order in FreeMaint carries an explicit maintenance type. The type drives how the work appears on your dashboards, how it counts toward reliability KPIs like MTTR and MTBF, and how it groups under the equipment history.
These are TWO separate fields, not a duplicate. Maintenance type is the standard CMMS classifier (Corrective, Preventive, etc.) — it drives KPIs and you should set it on every work order. Category is an OPTIONAL technical sub-classification (Electrical, HVAC, Mechanical, Plumbing, Safety) that helps you slice and filter further. A typical work order is "Corrective" maintenance with category "Electrical". On the Work Orders list you filter by it with the "All Categories" dropdown in the filter bar, just before "All failure categories": tick several categories at once, or pick "(Not assigned)" to find work orders that were never categorised. You can also switch the Category column on from the column picker above the table. Both dropdowns sit behind the "More filters" button.
Rather than configuring the same schedule per asset, you can set a company-wide default once. All NEW assets created afterwards will inherit it automatically. Your existing assets are NOT touched — they keep their current configuration. Useful for SMBs where ~all assets share the same schedule (35h/week, 2-shift, etc.). Aligned with the standard UpKeep, Fiix, Maximo practice.
On the Analytics page (Equipment tab), the MTBF column shows the schedule next to the value when it isn't the default 24/7 (for example '12.5 (8h×5d)'). The detail page also shows the schedule. Existing assets keep their 24/7 default until you edit them explicitly — your historical MTBF values do not change retroactively until you act on each asset.
MTBF measures how often an asset breaks. The number is only meaningful if the denominator — operating time — reflects how the asset actually runs. By default FreeMaint assumes 24 hours per day, 7 days per week. If your asset only runs day shifts or two shifts, edit its 'Operating schedule' on the asset form so the MTBF reflects real operating exposure.
If your week isn't uniform — e.g. 35h/week with Mon-Thu 8h + Friday 3h, or a one-off Saturday morning — switch to « Custom » mode then pick the « Per day » sub-mode. Seven independent inputs appear (Mon, Tue, Wed, Thu, Fri, Sat, Sun), each in hours (0 to 24). A live counter shows the weekly total as you type. MTBF uses that total as the denominator (35 h/week instead of 168 calendar = factor ~0.21).
FreeMaint's taxonomy is aligned with UpKeep, Fiix, MaintainX, and Maximo so analytics stay comparable across systems and benchmarks.
Changing the company default does NOT retroactively update your existing assets. Only assets created AFTER the save inherit. To update an existing asset, edit it individually.
The Operating Schedule describes machine run-time and only affects MTBF and Availability calculations — it never moves any dates. The Work Schedule (Company Settings → Work Schedule, Business plans) is your workforce calendar — working days, shifts and holidays — and is what rolls Preventive Maintenance and Procedure due dates off non-working days.
Complete status flow from creation to closure
Every work order follows a lifecycle. Understanding each status is key to effective maintenance management.
From the Start Work and Mark Complete dialogs, you can update the asset's operational status atomically with the WO transition — no need to navigate to the Asset module.
When closing a work order, leaving 'No change' lets the system auto-reset the asset from DOWN/DEGRADED/MAINTENANCE to OPERATIONAL. Override only when the asset is not fully repaired.
The Work Orders list opens with a row of summary cards and a filter bar, and both can be trimmed down. Each choice is remembered on your own account and changes nothing for anyone else. Use the "Summary cards" button beside the cards to untick the ones you never read, or hide them all — the cards are only shortcuts, so the Status dropdown still reaches every status, Overdue included. The filter bar keeps Search, Status, Priority and "Assigned to" in view and folds the rest — Asset, Location, Category, Failure category, Team, Maintenance type and the date controls — behind the "More filters" button. A number on that button says how many of the folded filters are narrowing the list right now, and every active filter still shows as a removable chip under the bar.
If your workflow asks the requester to validate a completed work order, they receive an email with a link and can sign off without an account — which matters, because a person who reported a fault by scanning a QR code does not have one. The link works for 14 days, once.
"Overdue" sits in the same Status menu as the eight work-order statuses, but it is not one of them — it is a modifier meaning "still active and past its due date". You can therefore tick it together with statuses: "Overdue" plus "In progress" shows late work someone has already started, and "Overdue" plus "Open" shows late work nobody has picked up. The four finished statuses (Completed, Validated, Closed, Cancelled) are greyed out while Overdue is ticked, because a finished work order is by definition not overdue. Both selections travel in the page URL, so a combined view can be bookmarked or shared.
On the Work Orders list, use the "Filter by date" control to narrow the list to a date range. First choose which date to filter on — Due Date, Completed Date, Closed Date, or Created Date — then pick the range. The quick presets follow the date you picked: past windows such as "Last 7 days" for Completed, Closed and Created dates, and forward windows such as "Next 7 days", "This month" or "This year" (January 1st to December 31st) for Due Date, since a due date describes work still ahead of you. For example, to see everything closed last week, set the field to "Closed Date" and choose "Last 7 days". You can also filter by maintenance type (corrective, preventive, and so on) with the "Maintenance type" dropdown. When the date field is set to Due Date, a second dropdown lets you choose between "Any due date", "With a due date" and "No due date". "No due date" isolates work you deliberately leave unscheduled so it never shows up as overdue; it is mutually exclusive with a date range, so choosing it clears the range. Sorting has its own two controls: the "Sort by" dropdown picks the column, and the arrow button next to it shows and flips the direction (ascending or descending). Each column starts in its natural direction — due dates soonest first, creation and completion dates most recent first — and your choice is remembered. Every active filter appears as a removable chip and is kept in the URL, so you can bookmark or share the view. This filtering is available on every plan, including the free Core plan — a paid plan is only needed to export the filtered list.
A work order that was never started can be completed directly from Open or Scheduled — for work already performed off-system, such as a contractor job done under a permit. It needs the "Complete a work order that was never started" permission (Admin, Manager and Supervisor have it by default). No start time is recorded, because none happened: the work order is simply marked complete. Everyone else still goes through Start Work first.
Made a mistake in the completion notes or root cause? Edit them directly on the work order's Details tab while it is COMPLETED. Once a manager validates the work order or it is closed, the completion record locks — reopen the work order to amend it — the "Reopen Work Order" button on the status stepper puts it back to In progress. Costs and labor stay editable from their own tabs.
When you put a work order on hold, pick why: the company's hold reasons ("Waiting for parts", "Waiting for a contractor"…) appear as buttons in the dialog, with an optional note. The reason then shows next to "On Hold" on the work order, in the list, on the Kanban card and in the planner's "Open work orders" list, and the list has a "Hold reason" filter. An administrator renames, adds, reorders or deactivates the reasons in Company Settings › Hold reasons. To make the reason mandatory, an administrator adds a workflow step on the On Hold status with the approver "Anyone allowed to make this change" and the required field "Hold Reason": a reason button or a note is then required.
In the mobile app, "Start Work" on a work order that has no steps keeps you on the work order instead of opening an empty checklist: the button becomes "Finish & Review", next to a pause button for the clock. Work orders with steps still open their checklist.
By default, anyone with the work_orders.close permission can close a COMPLETED work order. To require manager approval first, configure a workflow rule under Settings → Workflows → Work Orders. Company admins — and anyone who can edit your workflows — can always close, so the person who set up the rule is never locked out. Users who can’t close now see which role’s approval is required instead of a missing button.
Starting, pausing and resuming a work order is for the people doing the work: anyone whose role can edit work orders, and anyone assigned to it. A requester following their request sees its progress but cannot start or pause it.
Assign work to individuals or teams
Proper assignment ensures work gets done by the right people.
Tick several work orders in the list, then use Assign in the bar that appears. Only the fields you fill in are changed: pick a technician and the team stays as it is, pick a team and the individual assignees stay as they are, or set both in one go. Leave a field empty and the selected work orders keep what they already have there.
Select a technician from the dropdown. They receive a notification and the WO appears in their 'My Work Orders' view.
On a work order's detail page, the Assignees card in the sidebar lets you add or remove people directly, without entering Edit. Search for a colleague and select them, or use the X beside a name to remove them. The card is always shown, including when nobody is assigned yet. If the work order is linked to a team, that team's people are listed first; everyone else stays selectable, so you are never blocked from assigning someone outside the team. Managing assignees and watchers requires the "Assign work orders" permission. Without it, an assigned technician can only step off the job themselves — and only while their role has the "Self-assign" permission.
The checkbox in the list header selects every work order on the current page; tick it again to clear them. Your selection is kept when you change page. Once a whole page is selected, a link offers to select all the work orders matching your filters, up to 200 at a time. On a phone, use the Select all line above the cards. The bar that appears lets you assign, add watchers, change the status or delete them together.
Assign to a team when any member can do the work. Every team member — the leader and all members — is notified (in-app, push and email, subject to each user's notification preferences). A user who is also a direct assignee is notified once. The team leader can delegate to specific members.
Once a primary team is chosen, its members and its leader are listed first in the assignee picker, on every page of the list, on the web and in the mobile app. Everyone else stays selectable below or through the search.
Check the Calendar view before assigning to avoid overloading specific technicians.
Follow a work order's progress without being assigned
Watchers let people follow a work order and get notified of its progress without being the creator, an assignee, or a team member. This is ideal for supervisors, safety officers, or QA staff who need visibility but do not perform the work themselves.
When you assign a work order to someone else, you are added as a watcher automatically. So a supervisor who assigns work on behalf of a technician keeps full visibility into status changes, comments and photos — even without being the creator or assignee.
In the Work Orders list, tick the work orders (or use Select all), then click Watchers in the bar that appears. Choose Add or Remove, pick the people and click Apply. Adding never removes the watchers a work order already has, and a work order you are not allowed to see is skipped and reported. The button needs the same right as the Watchers card: assigning work orders.
Open a work order and use the Watchers card in the sidebar. Anyone who can edit work orders can add or remove watchers. Search for a colleague and select them; remove a watcher with the X next to their name.
Watchers can open the work order (even under a restricted data-scope role) and are notified on status changes and new comments, subject to each user’s own notification preferences.
A preventive plan can carry default watchers, copied onto every work order it generates. To set them on several plans at once, tick the plans in the preventive maintenance list, click "Bulk edit" and fill in the "Watchers" field, then choose "Add to each plan's current watchers" or "Replace each plan's watchers". Work orders already open keep their own watchers.
When a work order names someone in Requested By, that person is added as a watcher. They can then open the work order and are notified of status changes and new comments — even though they did not create it and are not assigned to it. This covers the common case of a department head or manager who asked for the work but had someone else record it. They are added only at the moment the requester is first set, so removing them from the Watchers card is permanent: a later edit will not bring them back.
Adding someone as a watcher grants them read access to that specific work order — a simple way to give visibility without changing their role.
Add structured tasks to work orders
Tasks break down a work order into trackable steps. You can edit a task's details anytime, and drag the handle (or use the up/down arrows) to set the order technicians follow.
What technicians record on each step — readings with their unit and in/out-of-range verdict, pass/fail results and their notes — is printed under that step in the work order PDF and in the quick print, grouped by section like on screen.
Create task templates for recurring work. A template for 'Monthly HVAC Inspection' saves time and ensures consistency.
Log labor hours and costs
FreeMaint tracks labor time and costs on every work order for cost analysis and capacity planning.
You can also log time against a subcontractor or vendor instead of an internal user — switch the 'Logged for' selector to Subcontractor and pick the vendor.
Log time as work happens for accurate cost data.
Each labor entry has a time type: Intervention or Travel. Travel time is tracked separately but excluded from the asset intervention-time KPI (MTTR); only intervention (hands-on) time feeds it.
Track parts used and costs
Recording material usage is essential for cost tracking. FreeMaint automatically deducts from inventory. On a work order you can also add a part by scanning: open Add part on the work order, then scan into the Scan barcode field — the matching part is selected automatically.
Sometimes a part physically exists but the system shows 0 in stock (a miscount, or a delivery that was never recorded). By default, out-of-stock parts can't be added to a work order. An administrator can enable «Allow adding parts with no stock to work orders» in Settings → System. Once on, technicians can add the part anyway after a confirmation; the stock goes negative so the shortfall is flagged for a physical recount and correction. The maintenance work is never blocked by an inventory record error.
If the part is already on the work order, the new quantity is added to its line instead of creating a second one, and stock and cost move only by the amount you add. Quantities can be decimal (litres, metres). In the mobile app, choosing a part opens a quantity field set to 1, with + and − buttons, before the part is added.
On a work order linked to an asset, switch on «Only this asset's parts» in the Add part form to narrow the picker to that asset's nomenclature (bill of materials) instead of the whole catalog.
Administrators can require every planned part to be confirmed before a work order can be completed: add the "Planned Parts Confirmed" field to the Work Order workflow in Company Settings → Workflows.
To correct a quantity, use the pencil next to it on the work order (web and mobile app): a lower quantity puts the difference back in stock, with the same reason as removing a part, and a higher one is taken from stock. Each line shows the part's reference and, when it has one, its photo.
Track contractor and external costs
Beyond labor and parts, track additional costs like contractor fees, equipment rental, or specialized services.
Link costs to vendors for spending analysis in reports.
Charge customers for parts and labor on a work order
If you do paid work for external customers, you can record what to charge them and show the total on the printed work-order report. Customer billing is a Business-plan feature.
The work-order detail page shows a Customer Billing total (parts + labor). The printed report includes a Customer Billing section with the total to charge. It only appears when at least one sale price or billing rate is set.
The work-order search box also matches the customer's name and reference, so you can type a customer to see every job on their equipment. Searching works on any plan, even where the Customer column itself is a Business feature.
Customer billing is available on the Business plan. The sale price and billing fields stay hidden on lower plans.
If you charge a minimum call-out fee for on-site visits, set Minimum Visit Fee in Company Settings → Regional. It is applied automatically to new work orders that have a customer: the fee covers the first included hour of labor, and additional hours are billed at the normal billing rate. You can adjust or remove the fee on each work order's Customer Billing card (needs the cost-edit permission), and it appears as its own line on the report. Set the included hours to 0 to charge the fee on top of all labor instead.
When to use each priority
Setting the right priority ensures urgent work gets attention first.
In Settings → System you can give each priority a number of days. When a work order is created without a due date, that many days are added to the creation date. A date entered by hand always wins, and preventive maintenance keeps the date from its own schedule.
Sort the work order list by priority in either direction — Critical first when you are deciding what to tackle, Low first when you are looking for filler work. On the web use the Sort control above the list; in the mobile app use the sort button in the work order list toolbar, which remembers your choice on that device and also applies offline.
Define priority guidelines for your organization so everyone uses them consistently.
Quality control after work completion
The validation workflow ensures quality control. Managers review completed work before final closure.
If validating and closing are always the same decision for you, turn on "Close work orders automatically once validated" in Company Settings › System. A validated work order is then closed straight away, in the name of the person who validated it, and its history says it was closed automatically. If your workflow has a step on the Closed status, nothing is closed automatically.
If your company has added custom fields to work orders, they now appear in the Complete dialog — filled in by the person who did the work, on the web or in the mobile app. Required fields must be answered before the work order can be completed. At validation the same form is shown again, already filled, so the reviewer checks the answers instead of writing them. A closure field restricted to the requester or to some roles is read-only for everyone else, on the web and in the mobile app: they see the answers, they cannot change them.
A work order raised internally — by a planner, a preventive maintenance plan or a technician — has nobody to validate it. To keep those from waiting at Completed, turn on "Close internal work orders automatically" in Company Settings › System: a work order with no "Requested by" and no linked request is then closed as soon as it is completed, and its history says it was closed automatically. Work orders with a requester keep the validation step. If your workflow has a step on the Closed status, nothing is closed automatically: that approval still happens.
If you sell the parts you fit, you can stop a work order from being validated while a part has no sale price or sells below its cost. In Company Settings > Workflows > Work Orders, add a step on the Validated status and tick the required field "Parts Priced Above Cost": validation then cannot be confirmed until every billable part is priced, and the Validate window names the parts at fault. Parts supplied by the customer and free-text parts are never counted. Sale prices are a Business-plan feature, and the rule does nothing until you add it.
When rejecting, provide clear feedback so the technician knows what to fix.
See which proof a completed work order still lacks — photos, time, failure code, root cause — and how its record-quality score is calculated.
When you complete a work order, FreeMaint shows how complete its record is: which useful elements are already there and which are still missing. It is a reminder, never a lock — you can always complete the work order.
Important:
The record-quality check never blocks a status change. To make a field mandatory, add a workflow step in Company Settings › Workflows.
The score is the number of criteria satisfied divided by the number of criteria that apply to this work order, as a percentage. A criterion that does not apply is not counted: it is never shown as missing, and never as done. The score is taken once, when the work order is completed; reopening the work order clears it.
A field your company hides in the completion form is never counted against anyone.
Each person sees their own average in "My activity" (dashboard and profile on the web, Home and Me in the mobile app). Managers only see a figure per person if an administrator turns on "Team views and goals" — see the article on team recognition.
LOTO / Lockout-Tagout safety management on work orders
LOTO (Lockout/Tagout) is a critical safety procedure that prevents the unexpected startup of machinery or release of stored energy during maintenance. FreeMaint provides built-in LOTO management on work orders, compliant with OSHA 29 CFR 1910.147 and EN ISO 14118 standards.
FreeMaint prevents work order completion while the machine is locked. This ensures no one accidentally closes a work order before equipment is released.
This feature helps maintain compliance with occupational safety regulations and protects your maintenance team.
Before working on machinery, technicians must physically lock and tag the energy source to prevent unexpected activation. LOTO ensures worker safety by isolating hazardous energy.
Collaborate on work orders
Comments and attachments enable real-time collaboration. When a work order is completed, the technician's completion notes and root cause appear at the top of this tab as a Completion Summary.
Attach photos, documents, manuals, or vendor quotes directly to the work order. You can also paste a screenshot (Ctrl+V / ⌘V): in the Files tab, in a comment, in the work order form, in a request and in a feedback.
Timestamped and attributed to the poster. Use for progress updates, questions, and guidance. Type @ in a comment to mention a colleague by name: they are notified immediately and added as a watcher, so the work order stays visible to them even outside their usual scope.
Need to fix a typo or add a photo you forgot? Click the edit button on your comments to update the text, attach new images, or remove existing ones. An 'edited' badge will appear so teammates know it was revised.
Export PDF generates a complete record of the work order in one file: details, tasks, parts, labor, attachments (photos embedded), comments, custom fields, signatures and status history. Tick the sections you want before downloading, and choose the photo size. Useful for audits, vendors and management. Print stays available on every plan for a quick browser printout; the complete PDF export requires the Starter plan.
Take before/during/after photos for visual documentation and training.
Complete change tracking
FreeMaint maintains a complete audit trail of every change to a work order.
A work order's History tab is one feed of everything that happened to it, newest first: comments (with their photos), status changes, assignment changes and its creation, each with who and when. Comments are still written, edited and deleted in the Comments tab; History shows them in their place in the record. A move to On hold shows the reason picked and the note typed with it. "Show older" loads earlier events. The mobile app shows the same feed under History, ten events at a time.
The audit trail satisfies maintenance compliance requirements. Export for audits.
Backfill maintenance performed before you started using FreeMaint
When you adopt FreeMaint you can record maintenance that was already carried out earlier — so your asset history, analytics and audit trail are complete from day one. This is called historical logging (or backdating a work order). Historical records carry a Historical badge on the work order, and the History tab states who logged the record and when the work was actually completed.
Each historical work order is stored as Closed with its real completion date, so it appears in the asset's maintenance history and counts toward analytics, trends and PM-compliance for the month it actually happened. When you link it to a PM and keep the rebase option, the plan's next due date is recalculated from the completion date — and the schedule is never moved backwards.
Logging past work needs the “Backdate work orders” permission, granted to Admins and Managers by default. Technicians do not see the button, which protects the integrity of your maintenance history. An admin can grant the permission to other roles under People → Roles.
Under “Durations” you can also enter the “Intervention duration” — saved as a time entry for the person who performed the work, so the work order shows its actual duration — and the “Equipment downtime”, saved as a downtime period of the selected equipment that ends at the completion date. No need to open the “Machine downtime” tab afterwards. The downtime field appears once an asset is selected.
Log one work order per service performed. To record many at once, use the work order import: a row with a "Completed Date" is created as a historical work order, Closed on that date. A row with the status Completed but no date is refused, so no work order ends up completed without its real date.
Set the Maintenance type (Corrective, Preventive, Inspection…) so the record counts in the right column of your reliability reports; a record linked to a PM plan is always Preventive. On the mobile app, tap “+” on the work order list and choose “Log past work”, or tap “Work that is already finished — Log past work” at the top of the new work order screen. The form offers the same fields as on the web, durations included: attachments first, then description, maintenance type and who performed the work — several people can be selected.
Warning:
Do not create a new work order and mark it Complete just to record old work — that distorts your completion dates and compliance figures. Always use “Log past work”, which stores the true historical date. To defer an upcoming preventive maintenance instead, use the “Skip next occurrence” option.
Turn a closed work order into knowledge the next technician will actually find
A lesson learned is what your team knows after fixing something — written once, so nobody has to work it out again. FreeMaint builds each one from a work order you have already closed, then surfaces it automatically the next time someone opens a similar job.
A picture is half of a one-point lesson. Open a lesson and add photos or documents (PDF, Word, Excel) under «Photos & documents» — up to 10 per lesson. The author can add them to their own lesson, supervisors and managers to any lesson. Everyone who can read the lesson sees them, on the web and in the mobile app.
When everyone on a shift must know a lesson — rotations, holidays, new starters — send it to them rather than hoping they find it. Distributing is reserved to the people who can publish lessons.
Start with the work orders you already closed with a real root cause — those become good lessons in about a minute each. Ten well-written lessons are worth more than a hundred thin ones.
Manage WOs from the mobile app
The mobile app gives technicians full work order access in the field.
Important:
The Edit work order form has no photo field — do not look for one there. Photos taken offline stay on the phone and upload by themselves once you reconnect.
Cached data remains available when connectivity is limited.
On a work order, photos are sorted Before, then After, each with its badge. Press and hold a photo to mark it as before or after.
FreeMaint CMMS
© 2026 FreeMaint. All rights reserved.