FreeMaint
FeaturesPricing
AcademyFree maintenance coursesCommunityShared templates & maintenance Q&ADocsGuides & API referenceBlogPlaybooks & product updatesComparisonFreeMaint vs the alternativesChangelogWhat's new
AffiliatesEarn recurring commissionServicesPartners for setup & training
Contact
ENSign inSign up

Product

FeaturesPricing

Resources

AcademyCommunityDocsBlogComparisonChangelog

Partnership

AffiliatesServices

Account

ContactSign in
FreeMaint

Free your maintenance

Product

FeaturesPricingComparisonChangelogSign up

Resources

BlogDocumentationAcademyCommunityResearchSolutionsIndustriesFree templates

Company

AboutServicesAffiliatesContact

Legal

PrivacyTermsRefund PolicyExport Compliance
FreeMaint © 2026 · All rights reserved.GDPR & LGPD CompliantMobile app
Back to Documentation

FreeMaint CMMS

Inventory & Parts

Inventory & Parts

Manage spare parts, stock levels, and consumption

Adding Parts

Register spare parts

Each part gets a reference (PART-1, etc.) and tracks stock, costs, and usage.

Name
Descriptive name
Part Number
Supplier SKU
Category
Mechanical, Electrical, etc.
Quantity
Current stock
Min Quantity
Low-stock threshold
Unit Cost
Price per unit
Location
Storage location
Barcode
Scanning ID

Part Fields

Name
Descriptive name
Part Number
Supplier SKU
Category
Mechanical, Electrical, etc.
Quantity
Current stock
Min Quantity
Low-stock threshold
Unit Cost
Price per unit
Location
Storage location
Barcode
Scanning ID

Finding a Part

Use the search box on the Parts page to find a part by its name, part number, reference, or barcode — or by the name or serial number of a machine it is linked to. Typing a machine name returns every part attached to that machine.

Set min quantities for critical parts to get automatic low-stock alerts.


Importing Parts in Bulk

Load your whole spare-parts catalog and stock from one spreadsheet

If you are starting from a spreadsheet, you do not have to key parts in one at a time. The Parts page accepts a CSV or Excel file and creates or updates hundreds of records in a single pass.

Name
The only required column. Everything else is optional.
Part Number
Your reference for the part. It is also how the importer recognizes a part you already have, so a corrected sheet updates it instead of creating a duplicate.
Quantity and Min Quantity
On-hand stock, and the level at which a low-stock alert is raised.
Non-stock Item
true or false — the part's “Non-stock item” setting. true marks a part kept for purchasing and asset parts lists, but never counted as low stock and never reordered automatically; a quantity is still accepted. A blank cell leaves the part as it is. Exported files carry the same column (header “Non Stock”), so you can export a sheet, edit it and re-import it.
Unit Cost and Sale Price
What you pay for the part, and what you charge when parts are billed to a customer.
Location (Name), Category (Name), Vendor (Name)
Matched by name against records you already have.
Storage Location
Free text for the shelf or bin, such as "Aisle A-5". This is not a warehouse.

What you can load

Name
The only required column. Everything else is optional.
Part Number
Your reference for the part. It is also how the importer recognizes a part you already have, so a corrected sheet updates it instead of creating a duplicate.
Quantity and Min Quantity
On-hand stock, and the level at which a low-stock alert is raised.
Non-stock Item
true or false — the part's “Non-stock item” setting. true marks a part kept for purchasing and asset parts lists, but never counted as low stock and never reordered automatically; a quantity is still accepted. A blank cell leaves the part as it is. Exported files carry the same column (header “Non Stock”), so you can export a sheet, edit it and re-import it.
Unit Cost and Sale Price
What you pay for the part, and what you charge when parts are billed to a customer.
Location (Name), Category (Name), Vendor (Name)
Matched by name against records you already have.
Storage Location
Free text for the shelf or bin, such as "Aisle A-5". This is not a warehouse.

Limits

  • 8,000 rows and 25 MB per file. Exception: a parts file whose rows give both a quantity and a location, imported in "Update existing only" or "Update existing & create the rest" mode, updates stock location by location and is limited to 2,500 rows per file, because each of those rows takes longer to write.
  • No limit on the total number of parts — split a larger sheet and upload the pieces one after another.
  • Each import adds to what is already there.

Create, update, or both

Before the import runs you choose what should happen to rows that match a part you already have: create new records only, update existing ones only, or update the matches and create the rest. Because matching uses the Part Number, you can export your parts, correct them in Excel and re-import the same sheet without creating duplicates.

Running an import

  1. Go to Inventory, then Parts.
  2. Click Import at the top of the page.
  3. Download the Excel or CSV template from the "Need a template?" line, or drop in a file you already have.
  4. Match each column of your file to a FreeMaint field. Columns you do not need can be skipped.
  5. Review the preview, choose how the file should be applied, and start the import.

Using the template

The Excel template arrives with the right headers already in place. Row 1 holds the column names, row 2 shows the expected type, and row 3 shows an example. Enter your data from row 4 down — rows 2 and 3 are hints and are ignored when you import.

Running an import needs the "import parts" permission, which Admin, Manager and Warehouse Manager have by default. If the Import button returns an error, ask an administrator to check your role.

Stock spread over several warehouses

Filling in both Quantity and Location (Name) records that quantity at that location, and the part's overall on-hand becomes the sum of its locations. That is what lets you load one file per site.

  1. Import your first site, with its quantities and its warehouse in the Location column.
  2. Import each further site the same way, in "Update existing & create the rest" mode. Each file adds its own site's stock instead of replacing the total.
  3. Leave the Location column empty if you keep a single overall figure instead — the Quantity column then updates that figure directly.

Warning:

In update mode, a blank cell leaves the current value unchanged rather than clearing it. To clear Description, Part Number, Manufacturer or Storage Location, type NONE in the cell; NONE in the Location (Name) column detaches the part from its location. On a new part, NONE is ignored.


Stock Management

Track quantities and movements

FreeMaint maintains real-time counts with a complete audit trail of every movement.

On Hand
Current physical stock. Parts allocated to open work orders are already deducted, so this value matches your warehouse.
On Order
Quantities still expected on open purchase orders (Pending, Approved, Ordered, Partially received): ordered minus already received. It drops with each delivery you receive.
Projected Available
On Hand + On Order. The forward-looking number to consult before deciding to reorder.

Stock Breakdown

Every part page surfaces three live values: On Hand (your current stock), On Order (what is still expected on open purchase orders) and Projected Available (On Hand + On Order). On Order only counts what has not arrived yet: when an order is delivered in part, the delivered quantity moves to On Hand and only the remainder stays on order. There is no manual field to edit — the breakdown always reflects your purchase orders.

On Hand
Current physical stock. Parts allocated to open work orders are already deducted, so this value matches your warehouse.
On Order
Quantities still expected on open purchase orders (Pending, Approved, Ordered, Partially received): ordered minus already received. It drops with each delivery you receive.
Projected Available
On Hand + On Order. The forward-looking number to consult before deciding to reorder.

Perform regular stock audits comparing physical counts to system records.

PURCHASE
Stock from PO receipt
WORK_ORDER
Parts used in WOs
ADJUSTMENT
Manual correction
TRANSFER
Between locations
RETURN
Parts returned from WOs
SCRAP
Damaged/expired
INITIAL
Opening stock
CORRECTION
Audit correction

Movement Types

PURCHASE
Stock from PO receipt
WORK_ORDER
Parts used in WOs
ADJUSTMENT
Manual correction
TRANSFER
Between locations
RETURN
Parts returned from WOs
SCRAP
Damaged/expired
INITIAL
Opening stock
CORRECTION
Audit correction

Adjusting a part tracked per location

Once a part tracks its stock per location, every change names its location: “Adjust stock” asks which location the units leave or enter, and the total follows. After creation, the quantity on the part form is read-only: change it with “Adjust stock”, so that every change appears in the stock history.

Multiple warehouses / storerooms

If the same part is stocked in several warehouses or storerooms with different quantities (for example cement: 5 bags in the Infra Warehouse and 10 bags in the Electrical Warehouse), create the part once and track its stock per location — do not create the part twice. Start per-location tracking by creating a Stock Transfer into each warehouse (Inventory > Stock Transfers), or by adjusting the per-location stock. The part then shows a “Stock by location” breakdown on its detail page, and its global quantity stays equal to the sum of all locations. To give each warehouse its own responsible section, set the manager on each Location. Per-warehouse stock transfers are available on the Business plan.


Low Stock Alerts

Automatic notifications when stock is low

When a part drops below its minimum threshold, FreeMaint sends notifications.

Ordering from this page

Filter by supplier to see only what one vendor owes you, then tick the rows you want and create a single requisition for the lot. It opens as a draft, so you can still change quantities or drop a line before turning it into a purchase order. Quantities are proposed from each part's reorder rule, and the supplier travels with each line so the draft splits cleanly per vendor.

Setting Up

  1. Set 'Min Quantity' on each part
  2. Enable inventory notifications in Settings
  3. Choose recipients (for example Admin, Warehouse Manager, Buyer)

The three cards at the top count every part below its threshold across the whole company, not just the rows on screen. The list itself is paginated — use Previous / Next to reach the rest.

Set minimums based on lead times. If a part takes 2 weeks and you use 10/week, set minimum to 20+.

For references you track for purchasing or asset BOMs but never keep on hand: open the part, go to Settings and enable "Non-stock item". It stays in the database with its full history but never triggers low-stock or out-of-stock warnings, even at zero quantity. (To only temporarily silence a normal part, select rows in the Parts list and click "Deactivate selection"; toggle "Show inactive" to restore.)


Consumption Tracking

Analyze part usage patterns

Track which parts are used most, on which assets, and by which work orders.

Asset column and export

Each movement linked to a work order also shows that work order's asset. The Export button downloads the current filtered view as PDF or Excel — newest first, up to 5,000 rows in Excel and 2,000 in PDF — and the file states the filters that were applied. Export requires the Starter plan or higher.

Reviewing every stock movement

Inventory > Stock movements lists every movement of every part across the company, newest first: parts used on a work order, returns (with the reason given when the part was removed from the work order, and its note), receipts, adjustments and transfers. Filter by type, reason, part, work order, location and dates; each row links to its work order. This is how a warehouse keeper checks the parts used on and returned from work orders. It needs the permission to read inventory (inventory:read); opening a work order from a row also needs that work order to be within the user's data visibility.

Use history to forecast needs. 50 filters/month used = order accordingly.

What Is Tracked

  • Parts used per WO with quantities
  • Parts returned (unused)
  • Net consumption = used - returned
  • Trends over time
  • Top-consumed parts

Stock Adjustments

Correct inventory quantities

Correct discrepancies between physical stock and system records.

Recording who took the goods

When stock leaves for operational use rather than a work order, choose the reason “Issued from stock” and, in “Issued to (optional)”, the person who took it — who recorded it is kept automatically. Use “Notes (optional)” for remarks. Inventory > Stock movements then shows each receipt's supplier and document number, and “recorded by → issued to” for each withdrawal, and exports them to Excel or PDF.

Recording where the goods came from

In the advanced form you can record the supplier and the invoice or delivery-note number for this particular movement. Both are optional and both are stored on the stock movement itself, so the history shows who supplied these goods and under which document — which is what an audit reads. The supplier is not filled in for you from the part: a part’s default supplier is right only until you buy the same part elsewhere.

Making Adjustments

  1. Open part detail page
  2. Click 'Adjust Stock'
  3. Enter correct quantity
  4. Select reason
  5. Add notes
  6. Save — movement record created

Schedule regular audits: monthly for high-value parts, quarterly for others.


Part Categories

Organize inventory

Categories help organize parts for browsing, filtering, and reporting.

Classify several parts at once

In Inventory › Parts, tick the parts to classify, then click "Bulk edit" — in the table view it sits in the bar that appears above the selected rows. Choose a category, a location and/or a storage location: only the fields you fill in change, the others are left as they are. Stock quantities never move with this action (use Stock Transfers for that), and the supplier is still edited part by part.

Managing Categories

Admins create/edit categories in Settings > Categories > Parts.

Define categories matching your maintenance domains for meaningful analytics.

In the tree view, “Expand all” and “Collapse all” are remembered for the Parts page only: expanding your locations no longer opens every category of the inventory.

Kind of spare → Category
Electrical, Pneumatic, Hydraulic, Mechanical, Consumables… This is the axis with many values, so it belongs in the category: it is filterable, groups the tree view, and round-trips through export and import.
Criticality → Critical Part checkbox
Tick "Critical Part" on the part form. Critical parts show a red Critical badge in the list, can be filtered from the Critical Part dropdown in the filter bar, and are included in the export and import template so you can flag a whole inventory from Excel. Free on every plan.
A third axis → Custom field (Business)
If you need more, an Admin can add a Select custom field on entity = Part in Company Settings > Custom Fields. Custom fields are part of the Business plan.

One Category per Part — and How to Classify on Two Axes

A part holds exactly one category, and categories cannot be nested. That is rarely a problem, because the two things people usually want to record — what kind of spare it is, and how critical it is — are not both categories. Use the category for the kind of spare, and the built-in Critical Part checkbox for criticality.

Kind of spare → Category
Electrical, Pneumatic, Hydraulic, Mechanical, Consumables… This is the axis with many values, so it belongs in the category: it is filterable, groups the tree view, and round-trips through export and import.
Criticality → Critical Part checkbox
Tick "Critical Part" on the part form. Critical parts show a red Critical badge in the list, can be filtered from the Critical Part dropdown in the filter bar, and are included in the export and import template so you can flag a whole inventory from Excel. Free on every plan.
A third axis → Custom field (Business)
If you need more, an Admin can add a Select custom field on entity = Part in Company Settings > Custom Fields. Custom fields are part of the Business plan.

Find the parts that have no category

In Inventory › Parts, open the Category filter and pick “Uncategorized”: the list shows only the parts filed nowhere. Tick them (scroll down to load them all) and use Bulk edit to give them a category. Only people allowed to create categories see “Create new category” in the category picker; everyone else picks from the existing list, which keeps similar spares from ending up in different categories.


Inventory Costs

Track financial value

Total inventory value = sum of (unit cost x quantity) for all parts.

Calculate unit cost from a total

Next to the Unit cost field, use 'Calculate from total' to type a total price and a quantity (already pre-filled with the pack size when you set one). The unit cost is filled in for you, so you never divide by hand.

Important:

Pricing data requires INVENTORY_VIEW_PRICES and INVENTORY_VIEW_VALUE permissions.

Buying in packs (drums, boxes, spools)

If you buy a part in a larger pack but keep stock in a smaller unit — like a 400-liter drum of oil counted in liters — open the part, set the Unit of measure to your stock unit (Liter), then fill in a Purchase unit (Drum) and a Pack size (400). On a purchase order, switch the line to 'Order by pack' to enter the number of drums and the price per drum: the system records the cost per liter automatically and keeps the per-drum total for your financial control. Costs are always stored per stock unit.

Purchase units and the cost calculator are available on every plan.

Inventory Valuation

Visible on the Inventory dashboard and Financial Reports. Requires INVENTORY_VIEW_VALUE permission.


Barcode Scanning for Parts

Find a part and book it out against a work order by scanning its barcode — with the mobile app, the web camera or a hand scanner

FreeMaint reads the barcodes already printed on your spare parts and store bins (Code 128, Code 39, EAN, UPC, QR, Data Matrix) as well as the labels FreeMaint prints. A scan finds the exact part, and from there you can book it out against a work order: the stock goes down and a stock movement records who took the part, for which work order, when and from which location. Scanning works with the mobile app camera, with the camera scanner of the web app, and with any USB or Bluetooth hand scanner.

Book a part out against a work order

There are four ways to take a part from the store and charge it to a work order. Each one lowers the stock and writes a stock movement with the person, the work order, the date and the location, which you can review in Inventory → Stock movements.

  1. {"title":"On mobile, from the part","description":"In Parts, tap Scan to use a part, scan the label, enter the quantity, then tap Use on a work order and choose the work order."}
  2. {"title":"On mobile, from the work order","description":"Open the work order, tap Add a part, then Scan a part. Scan the label and confirm the quantity: the part is booked to that work order."}
  3. {"title":"On the web, with a hand scanner","description":"Open the work order, Parts tab, click Add Part, click in the Scan barcode field and scan: the matching part is selected and the cursor moves to the quantity. Then click Save."}
  4. {"title":"On the web, from the scanner in the top bar","description":"Click the scan icon in the top bar and scan the part's label. Use on a work order comes first: choose an open work order, enter the quantity (and Take from, for a part stocked in several locations), then click Add to the work order. Adjust the stock without a work order stays below, for the roles allowed to adjust stock."}
QR Code
2D code — the labels FreeMaint prints for parts, assets and locations
Data Matrix
Compact 2D code used for direct part marking and traceability
Code 128
Variable-length alphanumeric code — the usual format for part and bin labels
Code 39
Variable-length alphanumeric code, lower density — common on older asset and bin tags
EAN-13
13-digit European Article Number — typical on packaged parts
EAN-8
8-digit short form for small packaging
UPC-A
12-digit Universal Product Code, common in North America
UPC-E
Compressed UPC for small packaging

Supported barcode formats

Nothing to configure: the format is detected automatically. The mobile app and the web camera scanner read all the formats below. A USB or Bluetooth hand scanner reads whatever it is set up to decode, because it simply types the code.

QR Code
2D code — the labels FreeMaint prints for parts, assets and locations
Data Matrix
Compact 2D code used for direct part marking and traceability
Code 128
Variable-length alphanumeric code — the usual format for part and bin labels
Code 39
Variable-length alphanumeric code, lower density — common on older asset and bin tags
EAN-13
13-digit European Article Number — typical on packaged parts
EAN-8
8-digit short form for small packaging
UPC-A
12-digit Universal Product Code, common in North America
UPC-E
Compressed UPC for small packaging

Choosing the location you take it from

When a part is stocked in two or more locations, for example a critical spares store next to the main store, Take from lets you choose the location the part comes out of. A part kept in a single place asks nothing. By default, the part comes from the work order's location if it holds some, otherwise from the location holding the most. Removing the part from the work order returns it to the location it was taken from.

More than one barcode on a part

A stocked item often carries two codes — the distributor's and the manufacturer's — and recording only one means scanning stops working the day you change supplier. Under the barcode field you can add as many extra codes as you need. Scanning any of them finds the part, and so does typing any of them into the search box.

Phone / tablet camera
Built-in scanner in the FreeMaint mobile app — no extra hardware, works on any modern device
Bluetooth ring scanners
Zebra RS5100, ProGlove MARK — keep both hands free for picking
USB handheld scanners
Honeywell Voyager, Zebra DS2200 — plug-and-play on desktop receiving stations
Fixed-mount scanners
For conveyor or pass-through stations — use the REST API to feed scanned values

Compatible scanner hardware

In the web app, any USB or Bluetooth scanner that works as a keyboard (HID) is supported: click in the scan field and the scanner types the decoded code followed by Enter. The scan icon in the web app header also opens your device's camera. On mobile, the phone or tablet camera is the scanner, so no extra hardware is needed.

Phone / tablet camera
Built-in scanner in the FreeMaint mobile app — no extra hardware, works on any modern device
Bluetooth ring scanners
Zebra RS5100, ProGlove MARK — keep both hands free for picking
USB handheld scanners
Honeywell Voyager, Zebra DS2200 — plug-and-play on desktop receiving stations
Fixed-mount scanners
For conveyor or pass-through stations — use the REST API to feed scanned values

To print Code 128 labels for your store bins: go to Inventory → Parts, select the parts, click Generate QR codes, choose A4 PDF grid (24 labels/page), set Barcode type to Code 128 barcode (or Both), then click Download. A single label prints the same way from a part's page, with the selector next to Print Label. The bars encode the part's short code — the same code as its QR — printed in clear under the bars, so if a label gets scratched, technicians can still type it. Stick the labels on the store bins.

Issue: The scanner reads the code but the part is not found

Solution: Search for the scanned value in Inventory → Parts. If the code is not on the part yet, edit the part and enter it in the Barcode field or as an additional barcode. A scan also finds a part by its part number or its reference.

Issue: A barcode saved with spaces does not scan

Solution: Spaces before or after a barcode are now removed when a part is saved or imported, and a code saved earlier with a trailing space is still found. A space or a dash in the middle of a code is part of it: it must match the label.

Issue: A 12-digit UPC is read as a 13-digit number

Solution: Some phones read a UPC-A as an EAN-13 starting with 0. FreeMaint tries both forms, so the part is found whichever form was saved.

Issue: A barcode starting with 0 lost its zero after an import

Solution: A spreadsheet import reads a column of digits as numbers, which drops leading zeros. Check the Barcode field of the imported parts and retype the codes that lost their zero.

Issue: Low light kills the camera scanner

Solution: Enable torch (flash) in the scanner overlay; for production environments, prefer a Bluetooth ring scanner

Common scanning issues

Issue: The scanner reads the code but the part is not found

Solution: Search for the scanned value in Inventory → Parts. If the code is not on the part yet, edit the part and enter it in the Barcode field or as an additional barcode. A scan also finds a part by its part number or its reference.

Issue: A barcode saved with spaces does not scan

Solution: Spaces before or after a barcode are now removed when a part is saved or imported, and a code saved earlier with a trailing space is still found. A space or a dash in the middle of a code is part of it: it must match the label.

Issue: A 12-digit UPC is read as a 13-digit number

Solution: Some phones read a UPC-A as an EAN-13 starting with 0. FreeMaint tries both forms, so the part is found whichever form was saved.

Issue: A barcode starting with 0 lost its zero after an import

Solution: A spreadsheet import reads a column of digits as numbers, which drops leading zeros. Check the Barcode field of the imported parts and retype the codes that lost their zero.

Issue: Low light kills the camera scanner

Solution: Enable torch (flash) in the scanner overlay; for production environments, prefer a Bluetooth ring scanner

Scanning workflow on mobile

  1. {"title":"Open the mobile app","description":"Sign in and allow camera access when asked"}
  2. {"title":"Tap Scan","description":"In the bottom bar"}
  3. {"title":"Frame the barcode","description":"Hold the phone 5–20 cm from the label; the code is read as soon as it is in focus"}
  4. {"title":"Check the part","description":"Its name, stock and location are shown: check them before going further"}
  5. {"title":"Tap Take from stock","description":"Enter the quantity, then Use on a work order to book it out, or Adjust without a work order"}

Restricting inventory by location

Let each crew see only the parts in the storerooms they work from

By default every user who can read inventory sees every part in the company. If you run several crews out of one site — HVAC, fleet, plant — you can limit each one to the stock held in the locations their team works from.

Setting it up

  1. Create a location for each storeroom or shelf, under your warehouse: Locations > Add location.
  2. Give every part a location. Parts list > select rows > Assign location. Parts left without one stay visible to everyone.
  3. Grant each team its storeroom: Organization > Teams > open the team > 'Locations this team can access'.
  4. Set the members' role to a data visibility other than 'All company data': Organization > Roles > open the role > 'Data visibility'.
  5. Turn the feature on: Company settings > System > 'Inventory location scope'.

A part is visible if its location is granted, or if it has a stock record in a granted location — even one currently at zero, so you can still see what needs reordering. Moving stock between storerooms with a transfer therefore changes who can see it.

Access to a location covers all of its sub-locations. A sub-location's own access list only adds people: it never removes those who reach it through a parent, and the location page lists them under “Access inherited from a parent location”. To keep a storeroom for one team only, place it outside the location another team is granted, by changing its parent: its stock, its history and its own access are kept.

The same setting applies to tools: a user sees the tools whose location is granted to their team, plus the tools with no location. It covers the tools list, a tool's page, its loan history and label, the tools tree and exports. Giving out or returning a tool still depends only on the user's permissions.

Parts with no location remain visible to everyone. That is deliberate — it stops a half-finished setup from emptying the inventory for your whole team. It also means the separation only takes effect once your parts are actually classified.

Administrators and managers, and anyone whose role data visibility is 'All company data', always see the full inventory. The restriction applies to the parts list, the part detail page, the parts tree, barcode lookups, search, exports and the low-stock alerts on the dashboard — all at once, so they never disagree. Low-stock and out-of-stock notifications follow the same rule: a user only hears about the parts they can open.


Parts Kits

Reusable bundles of parts

A parts kit is a reusable bundle of parts you use together for a job — for example a pump rebuild kit. Build it once, then add all of its parts to a work order or an asset in a single step.

To a work order
Adds the kit's parts to the work order and deducts them from inventory, just like adding parts one by one.
To an asset (Bill of Materials)
Lists the kit's parts as components of the asset. Stock is not affected — a Bill of Materials describes what the machine is made of.

Applying a kit

To a work order
Adds the kit's parts to the work order and deducts them from inventory, just like adding parts one by one.
To an asset (Bill of Materials)
Lists the kit's parts as components of the asset. Stock is not affected — a Bill of Materials describes what the machine is made of.

Creating a kit

  1. Go to Inventory and open Parts Kits.
  2. Click New Kit and give it a name.
  3. Add each part and the quantity included in the kit.
  4. Save the kit.

Kits save time on recurring jobs — add one line instead of ten.

Tip

Kits save time on recurring jobs — add one line instead of ten.


Tools

Register durable tools, separate from consumable parts

Tools are the durable, returnable equipment you maintain WITH — a welding machine, a torque wrench, a drill — as opposed to consumable parts (screws, welding wire) which you track under Inventory > Parts. Each tool gets its own reference (TOOL-1, etc.).

Optional calibration

For measuring instruments (torque wrench, micrometer, multimeter), enable "Requires calibration" on the tool and set an interval. FreeMaint then tracks the next due date and reminds the assignee before it expires. Leave it off for tools that do not need calibration — nothing changes for them.

Name
e.g. Welding machine, torque wrench
Photo
A photo of the tool — see its condition and what it actually looks like (plus extra photos for detail)
Category
Hand Tools, Power Tools, Welding, Measuring…
Status
Available, In use, In repair, Retired
Location & assignee
Where the tool is and who holds it

Tool fields

Name
e.g. Welding machine, torque wrench
Photo
A photo of the tool — see its condition and what it actually looks like (plus extra photos for detail)
Category
Hand Tools, Power Tools, Welding, Measuring…
Status
Available, In use, In repair, Retired
Location & assignee
Where the tool is and who holds it

Filtering by category

On the web, the Tools list can be filtered by category, and its tree view groups tools by category or by location. In the mobile app, tap “Filters” next to the search field to show a single category and/or a single location; the choice is remembered on the phone.

Lending tools out and taking them back

  1. Open the tool and find the “Loans” card.
  2. Click “Check out”, choose the borrower and, if you want, an expected return date and the purpose in the notes.
  3. The tool becomes “In use” and the list shows who has it, with an “Overdue” badge once the expected return has passed.
  4. When it comes back, click “Return” and note its condition if needed: the tool is “Available” again.
  5. Every loan stays in “Loan history”, and the tools export lists the current borrower.

QR codes on tools

A new tool gets its QR code when it is created. For an existing tool, open it and click "Generate QR Code" in the QR Code card (this needs permission to edit tools and the Business plan). The same card offers "Copy Link", "Download" (PNG) and "Print Label" (a PDF label with the name, reference and location). Stick the label on the tool or its case: scanning it with the mobile app shows "Open tool", and a scan without an account shows only its name, reference, status and location. The tool's own barcode is recognized too, and a code never changes once generated.

Availability

Viewing tools is available on every plan. Creating and editing tools (and logging calibration) requires the Business plan.

On the mobile app, scan the tool's QR code and use the same “Check out” and “Return” buttons. Lending needs the “Check out and return tools” permission and the Business plan. A tool is out with one person at a time, and a tool in repair or retired cannot be lent.

The tools list can be filtered by location; tools stored in its sub-locations are included.

Tool vs part

Register an item as a Tool when it is reused rather than consumed: it does not have a stock quantity and is not deducted when used on a job. Register screws, lubricants and other consumables as Parts instead.

Linking tools to a work order

Open a work order, go to the Parts tab, and use the "Tools used" section to attach the tools applied on the job. This records which tools were used without affecting any stock.


FreeMaint CMMS

© 2026 FreeMaint. All rights reserved.