Register, monitor, and maintain your equipment and machinery
Add equipment with all details
Each asset gets a unique reference (ASS-1, ASS-2, etc.) and stores specs, financial data, and maintenance history.
The asset list filters on status, criticality, category, location and area โ and the search box matches the name, model, serial number, manufacturer, QR code and area at once. The five counters above the list follow whatever you filter on, so they always describe the list you are looking at. The one exception is the status filter itself: clicking a counter is how you apply it, so the counters keep showing every status.
You can also register equipment where it stands, without going back to a desk. In the app, open More > Assets and tap the "+" at the top right: the "New asset" sheet asks only for a Name, with Location optional. Everything else โ model, serial number, manufacturer, photo โ is added afterwards on the asset's own screen, so a machine can be on the register in seconds and completed later. If the "+" is not there, the account is missing the "Create assets" permission (an admin grants it at People > Roles), or the phone has not yet taken the app update that added it.
Complete records make maintenance planning significantly more effective.
When to register something as an asset and when to track it as an inventory part
An asset and an inventory part are two different things in a CMMS. An asset is one physical unit you maintain over time โ it has its own work orders, preventive maintenance, meter readings and certificates. A part is stock you count and consume. Choosing the right one keeps your maintenance history accurate.
10 Philips 18W downlight lamps in Room ABC are not 10 assets. Create one part in Inventory > Parts with quantity 10 and location Room ABC. You then get stock tracking, low-stock alerts and automatic deduction when lamps are used on a work order.
There is intentionally no quantity field on the asset form โ one asset means one maintainable unit with its own history. If you really want a count on a group you maintain together (for example a lighting circuit you relamp on a schedule), an admin can add a custom Quantity number field to assets in Company Settings > Custom Fields. For consumables, always use Inventory > Parts.
Understanding the asset detail page
The asset detail page is your central hub for everything related to equipment.
Area / Zone is a free-text field that groups assets inside a location โ useful when many assets share one location and you still need a second axis to filter on. As you type, the areas already used in your company are suggested, so the same area does not end up spelled three different ways. To change it for many assets at once, select them in the asset list and use Bulk edit. Leaving the field empty there means "no change": bulk edit can set an area, but never clear one.
If you maintain equipment that belongs to external clients (a service shop), you can link an asset to a Customer. Open the asset, pick the customer in the form, and save. Assets then show their customer, you can filter the asset list by customer, and each customer page lists the assets you maintain for them. This requires the Customers feature (Starter plan and above).
Two exports sit at the top of the asset page. Export Excel gives you a working spreadsheet of the asset's identity, specifications, location, purchase details, components, maintenance history, preventive schedules and meter readings. Export PDF gives you the same as a printable record, plus the inspection runs, the defect findings with their current state (open or corrected) and the asset photos โ the version to attach to a handover, an audit file or an equipment log book.
An admin can hide asset page tabs the company does not use โ Meters, Calibration, Bill of Materials and others โ under Company Settings โ Asset form. Hidden tabs keep their data; they are only removed from the page. This applies to everyone in the company, admins included, and the Overview tab can never be hidden. Editing this list requires the Business plan; the hiding itself keeps working on any plan.
Manuals, certificates and warranties attached to an asset are readable from the phone: open the asset in the FreeMaint mobile app and scroll to Documents. Tap a file and it opens in whatever your phone uses for it โ a PDF reader, the browser, a document app. The section appears only when the asset actually has documents, and reading them needs nothing more than permission to view the asset.
Use the reference number (ASS-1) to quickly find any asset.
Parent-child relationships
Model real-world equipment structure โ a production line contains machines, each with sub-components.
For equipment shared across several machines โ like a removable test fixture used on more than one tester โ link them as associated equipment instead of forcing a single parent. It is a lateral link that keeps each machine's hierarchy and cost roll-ups intact.
Keep hierarchies 2-3 levels deep for practicality.
Group by location is on by default. Turn it off to see the flat asset tree without the location layer.
The six operational states
Asset status reflects current operational condition.
Give an operator or a requester "Report downtime" so they can flag a breakdown themselves, without being able to touch the asset registry.
Keep statuses current for accurate reporting and resource decisions.
Track equipment measurements
Meters measure operational parameters for condition-based maintenance.
A mistyped reading (e.g. 4999 instead of 499) can throw meter-based preventive maintenance off schedule. You can fix it from the meter detail page: open Meters, select the meter, then use the (โฆ) menu next to the reading in the readings history.
When adding a reading you can enter the absolute total (the default) or, if there is already a previous reading, switch to "Daily increment" and enter only the amount run since the last reading โ for example 10 hours today. The system adds it to the latest reading to compute the new total, which is what gets stored. You can set a default mode per meter when you create it; operators can still switch per entry. The stored value is always the absolute total, so triggers and statistics are unaffected.
Most meters record a plain decimal value. For running-hour meters โ common on engines and generators โ you can set the meter's reading format to Hours:Minutes when you create it. Operators then enter and read values as HH:MM (for example, 1130:30 means 1130 hours and 30 minutes) instead of converting to a decimal. The stored value is identical either way, so preventive maintenance triggers and statistics are unaffected. Leave the format on Decimal for gauges, odometers and counters.
Use the mobile app for field readings โ scan QR, record value with photo.
If you delete a work order that recorded a wrong meter reading, keep the "also void the meter reading(s)" checkbox ticked โ the reading is voided and your meter-based preventive maintenance is recalculated in one step.
Filing an asset under the Vehicles category gives it an Odometer and an Engine hours meter straight away, so fleet work has somewhere to record readings without any setup. If you later move that asset to another category, those two meters are removed again โ but only while they hold no readings. A meter someone has already read is real history: it stays, whatever the category. This also decides whether the asset can be deleted: meters that carry readings block deletion until you remove them from the asset's Meters tab, while empty ones simply go with the asset.
Automate actions on readings
Triggers automate responses when readings reach defined thresholds.
Use DELTA for runtime meters โ trigger maintenance every 500-hour increment.
Complete maintenance record
Every asset shows all work orders, PM executions, downtime events, and costs.
Logging past work requires the 'work_orders.backdate' permission (default: Admin and Manager).
Use 'Log past work' from the asset's Preventive Maintenance tab to record an intervention that has already happened โ including before you started using FreeMaint. The work order is created directly in Closed state with the date you provide. When you link it to a PM plan and tick 'Update this PM plan', the next due date is recalculated from your historical date. A monotonic guard prevents older entries from rewinding a more recent completion.
On every asset, the Preventive Maintenance tab shows three sections: the active PM plans linked to that asset, the history of preventive interventions (terminal status โ completed, validated, or closed), and the history of corrective interventions. A date range filter at the top scopes both history sections. Entries stay visible after the work order has been validated or closed.
If maintenance cost exceeds 50% of replacement cost, plan for replacement.
Track financial value over time
FreeMaint calculates depreciation from acquisition cost and age using straight-line method.
Enter acquisition cost and purchase date when registering. FreeMaint calculates current value automatically.
Important:
Financial data requires ASSETS_VIEW_VALUE and ASSETS_VIEW_DEPRECIATION permissions.
Generate, print, and scan QR labels for fast asset identification on the shop floor
Every asset in FreeMaint carries a unique QR code. Scanning the code from the mobile app or a public landing page jumps directly to the asset record โ its history, open work orders, attached documents, and the option to file a new intervention request.
Bulk generation respects your asset scope (data scope filters apply). If you have ASSIGNED scope, only your assets are eligible โ no cross-tenant leaks, even via QR slug enumeration.
Besides per-asset and per-location QR codes, you can create one general QR code for your whole site โ not tied to any asset or location. Post it at entrances or common areas; anyone can scan it to submit a maintenance request and pick the location afterward. No login is needed.
Beside the QR image, a printed label carries the record's name, its reference (for example ASS-12 or LOC-655), and where it sits in your location hierarchy โ the full path, not just the immediate parent, such as Plant A / Building 2 / Production Center / Floor 2. The full path matters on large sites, where the same floor or room name exists under several buildings. Location labels print the path down to the parent; asset and part labels print the path down to the location they sit in. The CSV export carries the same path in its own Location Path column, next to the existing Parent column.
The FreeMaint mobile app has a built-in QR scanner accessible from the bottom navigation bar. It uses the camera natively (no third-party app needed), works in low light, and decodes through gloves and behind protective laminate.
Anyone holding a printed label can open the public page, and the code is matched against the asset's QR code, its barcode and its serial number โ a number often stamped on the nameplate. If your equipment data should not be readable by visitors, contractors or passers-by, change the level at Company Settings โ Intervention Request form โ Public QR landing page โ โAsset details on a public scanโ. It applies only to people with no account: your own team, once signed in, always sees everything, including in the mobile app, so a stricter level never blinds your technicians. โReport a problemโ keeps working at every level.
Unauthenticated scans land on /qr/{slug}. By default the page renders a read-only summary โ name, status, description, photo, model, serial number, manufacturer, category and site โ plus the option to file a new request. It never exposes assignee names, costs or labour data, and it respects your tenant's branding (Enterprise white-label). How much of that summary a visitor sees is a setting: see โHiding asset details from the publicโ below.
For machines in harsh environments (washdown, abrasive, outdoor), use a polyester thermal label and laminate it; standard paper stickers fade within months.
The public landing page and the request form follow the visitorโs own device language automatically. A language selector in the page header also lets anyone switch to any of the 15 supported languages before filling out the form.
Always print the asset's human-readable reference (e.g. PUMP-12) alongside the QR. If the label gets damaged, technicians can still find the asset in the search bar.
Bulk QR generation works the same way for inventory parts (Inventory โ Parts) and locations (Locations list): select the items with the checkboxes, then choose Generate QR codes in the bulk actions bar โ same three output formats.
Two toggles on the same card are often mistaken for this one, and one of them now follows it. โShow meters on asset QRโ hides meter readings only. โShow assets on location QRโ lists the assets at a site โ and because that list IS asset information, setting the level to Hidden also withholds it (the switch is disabled to say so), while Name only drops the photos and categories from it.
From the public landing page, technicians without an account can submit a maintenance request and attach a photo of the issue. The request lands in the standard intake queue.
Record and analyze outages
Track when assets go down, for how long, and why.
Track MTTR (Mean Time To Repair) to measure response efficiency.
How FreeMaint organises asset data to industry standards (ISO 14224 / ISO 55000), and how to track statutory test certificates with automatic expiry alerts.
FreeMaint structures every asset around the data maintenance and reliability teams actually need โ built to align with ISO 14224 (equipment taxonomy) and ISO 55000 (asset lifecycle). This article maps that structure and shows how to track compliance certificates and statutory tests with automatic expiry alerts.
Track statutory and compliance tests on your equipment: load tests on lifting gear (LOLER), pressure tests on vessels (PED), periodic electrical testing, lifting examinations, calibration, thermography, and more. Each certificate records its number, issuing authority, issue and expiry dates, and pass / fail result.
Need a field we don't ship by default (e.g. capacity, replacement value)? Add it yourself with Custom Fields โ no developer required.
Viewing certifications is available on every plan. Adding and editing them is included from the Starter plan upward.
Vehicles, forklifts, construction equipment โ registration, mileage-based PM, drivers, fuel
Fleet Management is a Business-tier module that extends Assets with a dedicated layer for rolling equipment: cars, vans, light & heavy trucks, forklifts, construction equipment, trailers, buses and motorcycles. Each vehicle is still an Asset under the hood โ but with a richer profile (VIN, license plate, fuel type, capacities) and automatic odometer + engine-hour meters wired in for mileage-based PM.
Submit readings from the vehicle detail page (Open in Assets โ Meters tab) or via QR code scan in the field. Mileage-based PM trigger every 10 000 km or 250 engine hours, whichever comes first โ define it in Preventive.
Every vehicle you create gets two ready-to-use meters attached to it:
Fleet-wide average consumption is **weighted by distance** (total litres burned รท total kilometres ร 100), never the simple mean of per-vehicle averages โ short-distance vehicles do not skew the headline number. A vehicle counts only if it has a vehicle profile attached (an asset categorised as Vehicles without a profile is excluded so ghost-vehicles after a profile-only delete do not pollute the KPIs).
A single read-only page at /fleet/dashboard surfaces fleet-wide operational state in one bundled payload โ no client-side fan-out. Five KPI cards (vehicle count, documents expiring 30d with past-due sub-line, licences expiring 30d with past-due sub-line, fuel spend 30d, average consumption 30d) sit above two clickable lists: upcoming expiries (next 30 days, combining vehicle docs and driver licences sorted by date) and top 5 spenders (last 30 days by fuel cost).
Documents are sorted by expiry date ascending โ the most urgent renewal is always on top. A red "Expired" badge shows up automatically when the expiry passes. Editing the expiry date resets the alert state, so the daily cron will warn you again at the new 30/15/7-day windows.
Centralize every paper a vehicle needs: insurance, registration, technical inspection (CT), tax sticker, low-emission sticker, operating permit. Each document carries an issue date, expiry date, provider, policy/serial number, file URL (MinIO upload) and free-text notes.
The driver profile is 1:1 with the user โ one row per person, edited via PUT (upsert). Delete the profile to stop tracking; the user account itself stays intact.
Attach a driver profile to any user to track their driving licence: class (B/BE/C/CE/D/DE/โฆ), licence number, issue date, expiry date, and issuing authority. Drivers without a system login are supported via passive users โ create them once, never invite them.
Default recipients are ADMIN + MANAGER roles, plus the driver themselves on licence alerts. Configure recipients and channels per event at /settings/notifications under the "Fleet Management" category. Past-due rows are surfaced via UI badges but not re-spammed by the cron.
A daily cron at 04:00 UTC scans every driver licence and vehicle document and fires alerts 30, 15, and 7 days before the expiry date. Alerts land in the bell (in-app), mobile push, and email โ admins choose which channels via /settings/notifications.
Consumption math (l/100km, cost/km) is recomputed on every read โ never stored โ so editing or deleting an entry instantly fixes the summary. If the odometer reading is regressive (lower than the latest stored), the meter sync logs a warning and skips, but the fuel log itself is still saved.
Track every pump visit and let FreeMaint compute fuel economy automatically. Each fuel entry feeds two metrics: rolling 30-day l/100km and cost per km. If you fill in the odometer, the reading is auto-pushed to the vehicle's ODOMETER meter (with the same monotone guard as standard meter readings).
Custom roles (e.g. SHIFT_LEADER, QC_INSPECTOR) start without Fleet access. An admin can grant fleet:read / fleet:create / fleet:update / fleet:delete via /people/roles.
Fleet uses the standard CMMS RBAC system. Four permissions are seeded by default on the system roles:
GPS / IoT telematics integration (Samsara, GeoTab) is intentionally not on the roadmap โ we focus on the operational tracking side, not the hardware.
Vehicles follow exactly the same visibility rules as standard Assets โ they respect the company's data scope (ALL, TEAM, ASSIGNED), location subtree restrictions and multi-team assignment. A technician with TEAM scope only sees vehicles assigned to their team.
Fleet Management is included in the Business tier ($99/mo, Founding $49). Starter and Core tenants see the upgrade card when they navigate to /fleet. Vehicle profiles you create on Business are preserved if you later downgrade โ only writes are blocked, reads keep working.
Use Fleet whenever the equipment moves on its own power and you need to track mileage, fuel, or driver assignments. Stationary equipment (production lines, HVAC, electrical, plumbing, buildings) stays in the standard Assets module.
FreeMaint CMMS
ยฉ 2026 Freemaint LLC. All rights reserved.