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

Business Features

Business Features

Audit logs, custom fields, e-signature, scheduled backups, custom dashboards, advanced workflows

Business Features Overview

What unlocks at the Business tier ($99/mo)

The Business tier ($99/mo) unlocks a set of operational features designed for established maintenance organizations. Here's what's included beyond Starter.

Automation & integration

  • Unlimited workflow automations (lifted from 5/company cap)
  • Unlimited webhooks (lifted from 100/day cap)
  • GraphQL API (read queries + write mutations) — 5,000 calls/day
  • Custom dashboards (drag-drop builder)

Insight & support

  • Advanced analytics & consolidated reports (Maintenance, Costs, Financial, Inventory, Labor)
  • Priority in-app support
  • 50 GB cloud storage

Data management

  • Custom fields — per-entity (Work Orders, Assets, Parts) extensions
  • E-signature — sign work order completion, LOTO and inspections
  • Scheduled backups — daily/weekly/monthly to MinIO with retention
  • Full audit logs — every create/update/delete tracked with user + diff

Operational planning

  • Contracts — long-form supplier and service agreements with renewal alerts
  • Projects — multi-work-order initiatives with milestone tracking
  • Shutdowns — planned outage windows with task scheduling
  • Task templates — reusable checklists across work orders and PM

Founding Partner price: first 500 companies pay $49/mo for life — half the standard rate.


Audit Logs

Track every create, update and delete across your company

Audit logs capture every state-changing action in FreeMaint — who did what, on which entity, with the before/after values. Available from the Business tier.

Compliance use cases

  • ISO 9001 / ISO 55000 — maintenance traceability
  • SOC 2 — change management evidence
  • GMP / FDA 21 CFR Part 11 — electronic record integrity
  • Internal forensics — who deleted that work order?

Export & retention

Export filtered logs to CSV for compliance audits. Retention is unlimited on Business and Enterprise — no auto-deletion.

Use the date range filter combined with the user filter to investigate a specific incident in seconds.

What's tracked

  • All CRUD on Work Orders, Assets, Parts, Locations, Vendors, Customers, Purchase Orders
  • Status changes (open → in progress → completed)
  • Assignment changes (technician, team)
  • Custom field value updates
  • User/role/permission changes
  • Login attempts and password resets

Where to find them

Open the Audit Logs page from the sidebar (under Reports). Filter by entity type, user, action (CREATE / UPDATE / DELETE) or date range. Each row shows the changed fields with before/after values.


Custom Fields

Add company-specific data to Work Orders, Assets and Parts

Custom fields let you extend FreeMaint entities with fields specific to your operations — without waiting for a feature request. Available on Work Orders, Assets, Parts and Purchase Orders (Business tier).

Creating a custom field

  1. {"title":"Open Settings → Custom Fields","description":"Administrators, and anyone whose role may configure the CMMS."}
  2. {"title":"Pick the entity","description":"Work Order, Asset or Part."}
  3. {"title":"Define the field","description":"Type a Field name and pick a type, then mark it required if needed. The internal ID is generated automatically from the name — open Advanced only if you want to customize it."}
  4. {"title":"Save","description":"The field appears immediately on every entity create/edit form for that type."}

Existing data

Adding a new custom field doesn't touch existing rows — they get the default value (or NULL if no default). Removing a field soft-deletes it; values are kept in audit logs.

Renaming or removing a list option

Records store the option they were given. When you rename or remove options of a list field that records still use, saving asks what those records should hold instead — a renamed line is suggested automatically — and moves them in one step, together with the conditions and workflow rules that name the old option. Choose "Keep as is" to leave them unchanged: they then show the old value, marked as no longer in the list, and it can still be saved until someone picks another option.

Filtering and reporting

Custom field values are indexed and filterable in list views and reports. You can group, count and aggregate by custom field — same as built-in fields.

Organizing fields into sections

Give each custom field an optional Section name to group related fields under a sub-header on the form (for example 'Categorization' or 'Impact analysis'). Fields without a section appear under the default 'Custom Fields' heading. Use the up and down arrows on the Custom Fields settings page to reorder fields within a section.

Mark a field as Required to enforce data quality on new entries without backfilling old ones.

Supported field types

  • Text — single-line, max 500 chars
  • Long text — multi-line, max 5,000 chars
  • Number — integer or decimal
  • Date — ISO date with optional time
  • Boolean — yes/no toggle
  • Select — dropdown with predefined options
  • Multi-select — multiple options
  • URL — clickable link with validation

E-signature

Sign work orders, LOTO procedures and inspections digitally

E-signature lets technicians and supervisors sign off on critical events directly in FreeMaint — work order completion, LOTO procedures, inspections, document approvals. Audit-grade with timestamp, IP and witness fields.

Audit trail

Each signature includes user ID, timestamp (UTC + local), IP address and entity reference. You can prove who signed what and when — meets HIPAA, FDA 21 CFR Part 11, OSHA and ISO standards.

How signing works

  1. {"title":"Open the entity","description":"Work order, LOTO step, inspection, etc."}
  2. {"title":"Click 'Sign'","description":"A signature pad opens — draw with finger on mobile or mouse on desktop."}
  3. {"title":"Confirm","description":"Signature is saved with timestamp, your user ID and the request IP. A copy is logged in the audit trail."}
  4. {"title":"Optional witness","description":"If your workflow requires a witness, a second signer is prompted before save."}

Saved signature

Draw your signature once, then sign in one click. Turn on “Save as my signature for next time” under the signature pad, or draw it in Profile → Security → My signature (in the mobile app: Settings → My signature). The “Sign with my saved signature” button then appears wherever you sign. Each signature still records your name, the date and time and the IP address, and is marked as applied from your saved signature. Only you can use it, and you can replace or delete it at any time.

Signatures at validation and closure

When a workflow step on Validated or Closed requires a signature, it must be given at that stage: signatures added before the work order was completed — such as the technician's sign-off — do not count. The validator signs in the validation window.

Use witness signatures for high-stakes actions like LOTO removal — the second signer must be a different user.

Identity, roles and corrections

  • Employee ID — each signature also shows the signer's Employee ID (from their People profile) so people with the same name are never confused.
  • Configurable roles — an admin can define a fixed list of signing roles under Company Settings → Signatures; signers then pick from a dropdown instead of typing.
  • Correcting a signature — the signer can fix the role or witness afterwards; the signature image, date and IP stay locked, and inspection and calibration signatures remain fully immutable.

Where signatures are required

  • Work order completion — technician signs the closure
  • LOTO procedures — sign apply and remove steps
  • Inspections — sign each inspection point or the whole report
  • Document approvals — sign new versions of SOPs and manuals
  • Custom triggers — any workflow step you configure

Custom Dashboards

Build your own KPI dashboards with drag-drop widgets

Custom dashboards let you compose your own analytics views with widgets. Drag, drop, resize and configure — no coding. Personal dashboards stay private; shared dashboards appear for everyone in the company.

Building a dashboard

  1. {"title":"Open Dashboards → New","description":"From the sidebar (under Reports)."}
  2. {"title":"Pick a layout","description":"12-column responsive grid; widgets snap and resize."}
  3. {"title":"Add widgets","description":"Drag from the library; configure data source, filters and visual options."}
  4. {"title":"Save","description":"Personal (only you see it) or shared (everyone in your company)."}

Personal vs shared

Personal dashboards are private to your user. Shared dashboards appear in /dashboards for everyone in your company; only their creator can edit them. The creator can always delete their own dashboard, even after a change of plan.

Start with 4 KPI cards on top + 2 charts below — that's the dashboard layout most teams converge on.

Available widgets

  • KPI card — single metric (e.g. open WOs, MTBF, downtime cost)
  • Trend chart — line/bar over time
  • Pie chart — distribution by status, priority, asset, technician
  • Top-N table — ranking with drilldown
  • Calendar heatmap — daily activity intensity
  • List — recent items (work orders, requests, low-stock parts)

Scheduled Backups

Automatic daily, weekly or monthly snapshots of your data

Scheduled backups create automatic snapshots of your company's data on a recurring schedule. Snapshots include database content + uploaded files (photos, documents, attachments). Stored encrypted at rest.

Configuration

  1. {"title":"Open Settings → Backups","description":"Admin only."}
  2. {"title":"Pick frequency","description":"Daily (02:00 UTC), Weekly (Sunday 02:00 UTC) or Monthly (1st of month 02:00 UTC)."}
  3. {"title":"Pick retention","description":"7, 30, 90 or 365 days. Older snapshots are pruned automatically."}
  4. {"title":"Toggle on","description":"First backup runs at the next scheduled slot."}

Downloading

From the Backups page you can download any snapshot as an encrypted ZIP. Use this for offline archival or moving to On-Premise.

Restoring a backup

Currently restores are admin-assisted — open a support request and we'll roll back to a specific snapshot within 4 business hours. Self-service restore is on the roadmap.

Schedule a daily backup with 30-day retention as the safe default — that's what most operations teams settle on.

What's included

  • All database tables scoped to your company (work orders, assets, parts, etc.)
  • Uploaded files (photos, attachments, documents)
  • Custom field definitions and values
  • User and role data
  • Audit logs for the period

Workflow Engine

Automate maintenance processes with triggers, conditions and actions

FreeMaint's workflow engine lets you automate any maintenance process: when X happens, check Y, then do Z. Configure once, runs forever. Starter capped at 5 active automations; Business and above unlimited.

Anatomy of a workflow

  • Trigger — what fires the workflow (work order created, status changed, meter reading exceeds threshold, etc.)
  • Conditions — optional filters (priority = HIGH, asset category = pumps, work order overdue, etc.)
  • Actions — what happens (assign technician, send email/notification, create child WO, update field, call webhook)

Step conditions (Business)

Beyond the trigger status, a step can carry conditions that decide whether it is enforced for a given record: cost thresholds on purchase orders and requisitions (the step applies only when the total falls within a min/max band) and request-type conditions on requests (the step applies only to the ticked types — e.g. improvements approved by the zone manager while repairs go to the maintenance manager). Both are Business-plan field-level add-ons over the standard builder; steps without conditions keep applying to everything.

Escalation after a delay (Business)

A step can set "Escalate after (hours)". The clock starts when a record starts waiting for the step — records already waiting when you set the delay are not counted. The approvers are reminded at half the delay; when it runs out, the members of the role chosen in "Escalate to role" who can open the record are alerted. Without an escalation role, the approvers are reminded once the delay runs out. Each happens once per record and per step, and stops as soon as the record moves on. The delay never gives anyone the right to approve. To add a backup approver, tick "This role can also approve" under the escalation role: its members can then approve the step at any time, alongside the approver.

Common patterns

  • Auto-assign — new HIGH priority WO → assign to on-call technician
  • Escalation — WO overdue 2 days → notify manager + raise priority
  • PM trigger — meter reading > 10000 hrs → create PM work order
  • Status sync — WO completed → update parent project + send customer email
  • Webhook out — incident created → POST to Slack/Teams

Simple vs Visual mode

Switch between Simple mode (a form, one card per step) and Visual mode (a drag-and-drop canvas). Both edit the same configuration and save the same thing: a status trigger with its approval steps chained beneath it, running top to bottom. Edit in one, save, and the other shows exactly that.

Which transitions you can gate

A step fires when someone tries to move a record INTO its trigger status. Every status in the record's lifecycle is available.

  • Work orders — Open, Scheduled, In Progress, On Hold, Completed, Validated, Closed and Cancelled. A step on Closed is the usual supervisor sign-off before a job is filed for good; one on Cancelled stops a job being dropped without review.
  • Requests, purchase orders, purchase requisitions and work permits each expose their own statuses.
  • When a rule blocks a transition, the record explains why — which role must approve, or which fields are still missing. If you are allowed to make the move and only information is missing (a photo, a signature, a form), the button stays: its window lists what is missing and collects it.

Tier limits

  • Core — workflow engine not available
  • Starter — 5 active workflows max per company
  • Business — unlimited workflows
  • Enterprise — unlimited workflows + advanced triggers (ML, multi-company)

Always test a new workflow on a sandbox WO first. The 'Disabled' toggle pauses execution without deleting the config.


Outbound Webhooks

Push events from FreeMaint to your external systems in real time

Webhooks let FreeMaint POST to a URL you control the moment something happens, so another system (ERP, billing, inventory, accounting, a chat channel) stays in step without anyone re-keying it. Configure from /company-settings/webhooks. Starter is capped at 100 deliveries/day; Business and above are unlimited. For the full payload reference, see API & GraphQL > Webhooks.

Tier caps

  • Starter — 100 deliveries/day per company (counter resets at 00:00 UTC)
  • Business — unlimited
  • Enterprise — unlimited
  • The counter is per delivery ATTEMPT, so three webhooks on the same event burn three units

Configuration

  1. {"title":"Open /company-settings/webhooks","description":"Requires the company settings permission."}
  2. {"title":"Click 'Add Webhook'","description":"Give it a name, an https:// URL and tick the events you want."}
  3. {"title":"Copy the signing secret","description":"It is shown ONCE on creation. You can generate a new one later with 'Rotate secret', which invalidates the old one."}
  4. {"title":"Watch the deliveries","description":"Open the delivery history on the webhook to confirm events arrive and to replay anything that failed."}

Delivery semantics

  • POST with a JSON body: { event, timestamp, data }
  • X-FreeMaint-Signature header — t=<unix seconds>,v1=<hex>, where v1 is HMAC-SHA256 of "<t>.<raw body>" keyed with your webhook secret. Verify it on every request, against the raw body
  • X-FreeMaint-Event and X-FreeMaint-Delivery-Id are sent alongside
  • Network errors and 5xx retry up to 3 times with exponential backoff (about 2s, 4s, 8s); a 4xx is a permanent rejection and is not retried
  • Every attempt is logged under the webhook with its status, response code and attempt count — and any settled delivery can be replayed from there
  • Optional photos: with Include photos on, "work_order" and "request" events carry up to 4 image links in a "photos" field, valid for 7 days for anyone who has them — turn it on only for an endpoint you control

Available events

  • work_order.created
  • work_order.completed
  • request.created
  • request.status_changed
  • part.low_stock
  • part.out_of_stock
  • part.consumed — consumed on or returned from a work order
  • compliance.chain_divergence (Enterprise)
  • report.daily_summary — the day's completed work, once a day at the hour you choose

Always verify X-FreeMaint-Signature server-side, against the raw request body — without it you cannot tell a genuine FreeMaint event from a spoofed one, and a spoofed part.consumed could move stock in your ERP.


Shutdowns

Plan an outage window: gather the work that needs a machine stop, then place it day by day

A shutdown is a window during which equipment is stopped on purpose: an annual overhaul, a line changeover, a planned outage. FreeMaint gathers the work that needs the stop in one place and lets you plan it day by day. Shutdowns are part of the Business tier.

Create a shutdown

  1. Open Shutdowns from the sidebar.
  2. Create a shutdown: give it a name and its outage window, a start date and an end date.
  3. Open it to gather and plan the work.

Gather the work

  • Work Orders tab → “Add work orders”: pick machines or locations to list the unfinished work flagged “Requires a machine stop” that no outage holds yet, tick it, then “Attach selected”.
  • PM Schedules tab → “Add PM schedules”: pull in active PM schedules (“Due during this outage” keeps the ones due in the window), then “Add to this outage”.
  • Lockout register tab: the lockouts recorded on the work orders of this outage.

Plan on the Planning tab

Each attached work order is a bar from its planned start to its planned finish, and the “Due date” marker shows its deadline. A work order with no date yet is marked “unplanned”.

  • Drag a bar to move it: its duration is kept.
  • Drag its left or right edge to change its start or its finish.
  • Drop a work order that has no date on a day to plan it.
  • With the keyboard, on a selected bar: the arrows move it by one day, Shift + arrow changes its finish.

What re-planning changes

  • An open work order becomes scheduled, through its normal status change, recorded in its history.
  • A scheduled, in-progress or on-hold work order keeps its status: only its planned dates change.
  • The due date never moves. If the new finish passes it, or the bar leaves the outage window, a warning says so.
  • A completed, validated, closed or cancelled work order is locked.
  • Re-planning needs the permission to update shutdowns and the permission to schedule work orders.

Set each work order's due date to the deadline the outage gives it: the marker then shows at a glance which work would overrun.


FreeMaint CMMS

© 2026 FreeMaint. All rights reserved.