Odoo Maintenance Module: Preventive and Corrective Maintenance

Complete guide to Odoo 19 Maintenance: configure equipment records, schedule preventive maintenance, manage work orders, track downtime, and optimize MTTR and MTBF.

E
ECOSIRE Research and Development Team
|March 19, 202612 min read2.7k Words|

Odoo Maintenance Module: Preventive and Corrective Maintenance

Equipment downtime is one of the most expensive and disruptive events in any production or service operation. A machine breakdown doesn't just cost the repair bill — it costs lost production, idle labor, expediting fees for rush parts, and potentially lost customer orders. The root cause of most unplanned downtime isn't equipment failure; it's the absence of a systematic preventive maintenance program. Odoo 19 Enterprise Maintenance module provides the structure, scheduling, and analytics needed to shift your maintenance operation from reactive (fix it when it breaks) to preventive (maintain it before it breaks) — and eventually to predictive (predict when it will break).

This guide covers the complete Odoo Maintenance module: equipment registry, maintenance teams, preventive maintenance scheduling, corrective maintenance workflows, spare parts management, MTTR/MTBF tracking, and maintenance cost reporting. Whether you manage a production facility, a facilities team, or a field service operation, this guide provides the implementation blueprint.

Key Takeaways

  • Build a complete equipment registry with technical specs, location, and maintenance history
  • Schedule preventive maintenance by time interval or meter reading with automatic request generation
  • Manage maintenance requests through a structured workflow from reporting to resolution
  • Track maintenance team workload and technician performance in real time
  • Calculate MTBF (Mean Time Between Failures) and MTTR (Mean Time To Repair) by equipment
  • Integrate maintenance with manufacturing work centers for automatic capacity adjustments
  • Track spare parts inventory and generate replenishment requests automatically
  • Allocate maintenance costs to equipment, departments, or cost centers via analytic accounting

Equipment Registry Configuration

The equipment registry is the foundation of your maintenance management system. Every piece of equipment you want to maintain, track, and report on needs a record in Odoo.

Creating equipment records: Navigate to Maintenance > Equipment > New to create an equipment record. Core fields include:

  • Name: Clear, unique identifier (e.g., "CNC Lathe #3" or "HVAC Unit - Building B")
  • Equipment category: Classification for grouping and reporting (Machine, Vehicle, Infrastructure, IT Equipment)
  • Technician: The primary maintenance technician responsible for this equipment
  • Maintenance team: The team responsible for maintaining this equipment
  • Used by: The department or production team that operates this equipment
  • Location: Physical location (plant, floor, work center)
  • Company: For multi-company setups
  • Effective date: Date the equipment was placed in service

Technical specifications tab: Record the equipment's technical details: serial number, model, manufacturer, vendor, purchase date, warranty expiry date, and any applicable technical documentation. Attach the original equipment manual, technical drawings, and calibration certificates to the equipment record.

Work center linkage: For manufacturing equipment, link the equipment record to the corresponding Odoo Manufacturing work center. When a maintenance request is created for this equipment and marked as "In Progress," the linked work center's available capacity is automatically reduced. Production planners see the reduced capacity and can reschedule affected manufacturing orders without waiting for manual notification.

Equipment hierarchy: Some equipment has subcomponents that need independent maintenance tracking (e.g., a printing press with separate maintenance schedules for the printing unit, inking system, and delivery unit). Create a parent-child hierarchy between equipment records to represent this relationship while maintaining independent maintenance histories.


Maintenance Teams and Technicians

Maintenance work is performed by people. Configuring maintenance teams correctly ensures the right work reaches the right technician efficiently.

Creating maintenance teams: Navigate to Maintenance > Configuration > Maintenance Teams. Create teams that reflect your maintenance organization: Electrical Team, Mechanical Team, Facilities Team, IT Team. Each team has a team leader who receives notifications for new requests assigned to that team.

Technician skills: While Odoo doesn't have a formal skill matrix for maintenance technicians, use technician notes and team structure to represent specialization. Electrical-certified technicians should be on the Electrical Team; HVAC-certified on the Facilities Team. Routing requests to the appropriate team gets them to the right technician implicitly.

Request assignment rules: Configure automatic assignment rules that route incoming maintenance requests to the appropriate team based on equipment category, location, or priority. A new request for an electrical machine automatically assigns to the Electrical Team; a new facilities request assigns to the Facilities Team. Individual technician assignment within the team can be automatic (round-robin) or manual.

Contractor management: For maintenance requiring external service providers, create vendor records for your maintenance contractors. Maintenance requests that require external work are assigned to the vendor. Purchase orders for contractor services are created from the maintenance request, ensuring cost capture and proper approval workflow.


Preventive Maintenance Scheduling

Preventive maintenance is maintenance performed on a schedule, before failure occurs. Effective PM programs are the single most impactful intervention for improving equipment reliability and reducing total maintenance cost.

Creating PM triggers: Navigate to Maintenance > Equipment > [Equipment] > Preventive Maintenance tab to create preventive maintenance plans. Each plan defines:

  • Trigger: Time-based (every N days/weeks/months) or meter-based (every N operating hours or cycles)
  • Activity type: The type of maintenance (Lubrication, Inspection, Calibration, Replacement, Full Service)
  • Duration: Expected time to complete
  • Responsible team: Which maintenance team performs this PM
  • Next date: Calculated automatically from the last maintenance date and interval

Meter reading integration: For equipment with operating hour meters or cycle counters, configure meter readings in Odoo. When a meter reading is logged (manually or via IoT sensor), Odoo calculates whether any PM tasks are due based on the meter-triggered intervals. This ensures engine lubrication happens at 500 operating hours even if the calendar-based interval hasn't triggered yet.

Automatic PM request generation: When a PM is due (by date or meter reading), Odoo automatically generates a maintenance request. The request is assigned to the configured team, appearing in their maintenance queue. A notification goes to the team leader and the equipment's responsible technician. No manual monitoring of PM schedules is required.

PM request vs. maintenance order: Generated PM requests can be reviewed before execution. For routine PMs, confirm and schedule automatically. For complex PMs requiring parts ordering, shut-down coordination, and multi-technician planning, review the request and convert it to a full maintenance work order with detailed task breakdown.


Corrective Maintenance Workflow

Corrective maintenance addresses equipment failures and defects that weren't prevented. A structured workflow ensures corrective maintenance is fast, well-documented, and analyzed for prevention.

Creating corrective requests: Any authorized user can create a maintenance request for equipment issues. Navigate to Maintenance > Maintenance Requests > New. Enter: equipment (with autocomplete from the registry), description of the problem, urgency level (Normal, High, Very High), and any photos of the failure. The request is assigned to the appropriate maintenance team automatically.

Priority and triage: The maintenance team leader reviews incoming requests and sets priorities. Urgent requests (production-stopping breakdowns) are moved to the top of the queue. Non-urgent requests (minor lubrication leak, noisy bearing that hasn't failed) are scheduled for the next available maintenance window. Priority-based scheduling prevents critical breakdowns from being delayed by a backlog of minor work.

Work order execution: When a technician starts work on a maintenance request, they log their start time, record parts used (consuming from spare parts inventory), and document the repair with text notes and photos. When work is complete, they log their end time and mark the request as "Repaired." The total repair time (MTTR) is calculated automatically from the logged time.

Root cause capture: After closing each corrective maintenance request, require the technician to select a root cause category: Wear/Aging, Operator Error, Improper PM, Design Defect, External Factor. This data aggregates into root cause analysis reports — showing which failure causes are most common and therefore where prevention efforts should be focused.

Downtime recording: When corrective maintenance takes equipment out of service, record the start and end time of the downtime period. Odoo calculates the downtime duration automatically. This feeds into availability calculations and MTBF reporting, providing objective data on equipment reliability trends.


Spare Parts Management

A maintenance operation is only as good as its parts inventory. Running out of a critical spare part can turn a 2-hour repair into a 2-day shutdown while parts are expedited.

Spare parts linkage: Link spare parts (Odoo inventory products) to equipment records. Each equipment record can list its associated spare parts with the recommended stocking quantity. This creates a clear reference for what parts should be on hand for each piece of equipment.

Spare parts consumption tracking: When a technician uses spare parts from inventory during a maintenance request, they record the parts consumed on the maintenance request. Odoo creates a stock move from the maintenance spare parts inventory location to the equipment, reducing stock on hand. This real-time consumption tracking prevents the "I thought we had that part in stock" scenario.

Automatic replenishment: Configure reordering rules for critical spare parts. When spare parts inventory falls below the minimum quantity, Odoo automatically generates a purchase order to the preferred vendor. Critical spare parts should always have a minimum stock of at least one unit — the cost of holding a spare is always less than the cost of an extended breakdown waiting for delivery.

Spare parts cost allocation: Spare parts consumed in maintenance are allocated to the equipment's maintenance cost via analytic accounting. This enables accurate total cost of ownership calculation — purchase cost plus total maintenance cost (labor + parts) vs. replacement cost — to inform the repair-or-replace decision.


MTBF and MTTR Analytics

Mean Time Between Failures (MTBF) and Mean Time To Repair (MTTR) are the core equipment reliability metrics. Odoo calculates these automatically from your maintenance records.

MTBF calculation: MTBF is calculated as total operating time divided by the number of failures during that period. Odoo tracks equipment failure dates from corrective maintenance requests and calculates operating time from the periods between failures. Navigate to Maintenance > Reporting > MTBF Analysis to see MTBF by equipment and by equipment category.

MTTR calculation: MTTR is the average time from failure detection to repair completion. Odoo calculates MTTR from the time between maintenance request creation (failure detected) and request completion (repair done). Navigate to Maintenance > Reporting > MTTR Analysis to see repair time performance by technician, team, and equipment type.

Reliability trending: Track MTBF trends over time for each piece of equipment. Declining MTBF (failures becoming more frequent) indicates aging equipment approaching end of life or a deteriorating PM program. Improving MTBF indicates that preventive maintenance interventions are working. These trends directly inform capital replacement planning.

OEE contribution: Equipment downtime from maintenance events feeds directly into OEE (Overall Equipment Effectiveness) calculations in the Manufacturing module. The "Availability" component of OEE reflects the percentage of scheduled production time that equipment was actually available (not in maintenance). Improving MTBF and MTTR directly improves OEE Availability.


Maintenance Cost Reporting

Total maintenance cost is a critical input to equipment lifecycle management and replacement decisions.

Labor cost tracking: Maintenance requests record technician time. If technician labor costs are configured in Odoo (hourly rate per employee from HR), the maintenance request automatically calculates labor cost from logged time. This provides objective maintenance labor cost data without requiring manual timesheet allocation.

Parts cost tracking: Spare parts consumed from inventory are valued at their inventory cost. Parts purchased specifically for a maintenance job are valued at the purchase price. All parts costs are captured on the maintenance request and aggregate into the equipment's total maintenance cost.

Maintenance cost report: Navigate to Maintenance > Reporting > Maintenance Cost Analysis. View total maintenance cost by equipment, category, location, team, or time period. Compare corrective maintenance cost against preventive maintenance cost — in a well-functioning PM program, preventive cost should be less than corrective cost.

Repair-or-replace analysis: For aging equipment with increasing maintenance costs, compare the annualized maintenance cost against the annualized cost of replacement (capital cost amortized over useful life). When annual maintenance cost exceeds the annualized replacement cost, replacement is economically justified. Odoo's maintenance cost data makes this calculation objective.


Frequently Asked Questions

Can Odoo Maintenance integrate with IoT sensors for predictive maintenance?

Yes. The Odoo IoT Box connects to sensors (vibration, temperature, current draw) via OPC-UA or HTTP. When sensor readings exceed configurable thresholds, Odoo generates an automatic maintenance request with the sensor reading attached. This is the foundation of predictive maintenance — acting on condition data rather than fixed schedules. ECOSIRE has implemented IoT-triggered maintenance for manufacturing clients using CNC machines, compressors, and HVAC systems.

How does Odoo handle maintenance for equipment at multiple physical sites?

Each equipment record includes a location field. Maintenance teams can be location-specific (Site A Mechanical Team, Site B Electrical Team). The maintenance dashboard can be filtered by location, showing only equipment at a specific site. For multi-company operations, separate maintenance teams can exist per company with consolidated reporting available to corporate maintenance management.

Can we create maintenance checklists for technicians to follow during PM work?

Yes. Configure maintenance worksheets by attaching a form template to maintenance request types. PM worksheets typically include: safety lockout/tagout confirmation, items to inspect, items to lubricate, measurements to record (vibration levels, oil viscosity, clearances), and final test results. The technician completes the worksheet within the maintenance request, creating a permanent record of what was checked and what was found.

How does Odoo notify the production team when a machine will be taken for maintenance?

When a maintenance request is created for equipment linked to a manufacturing work center, the work center's capacity is reduced automatically during the maintenance period. This updates the manufacturing schedule, flagging orders that will be affected. Additionally, configure an automatic email notification to the production supervisor when equipment status changes to "Under Maintenance." The supervisor sees the expected return date and can coordinate with the maintenance team on timing.

Can Odoo Maintenance handle regulatory calibration requirements (e.g., ISO 17025)?

Yes. Create a maintenance request type "Calibration" for measurement equipment (scales, gauges, test instruments) requiring periodic calibration. Configure the calibration interval per equipment (typically defined by the equipment specification). Each calibration generates a maintenance request with a calibration worksheet. Completed calibration records include the calibration date, calibrating entity, certificate number, and next calibration due date. The equipment record shows the current calibration status — a critical data point for quality compliance.

How do we handle external repair when equipment needs to be sent to a service center?

Create a maintenance request and assign it to a vendor (service center). Create a delivery order to ship the equipment to the service center, tracking it as out-of-stock at your location. When the repaired equipment is returned, receive it back into inventory at your location. The maintenance request tracks the full out-for-repair period as downtime. Purchase orders for external repair services are linked to the maintenance request for cost capture.

Is there a mobile app for maintenance technicians working in the field?

Yes. The Odoo mobile app provides full maintenance request access. Technicians can view their assigned requests, start and complete work orders, log time, record parts used, and attach photos of repairs — all from their mobile device. For field service teams, the mobile app supports offline operation, syncing when connectivity is available. Technicians don't need to return to a computer to complete maintenance records.


Next Steps

Odoo Maintenance Management transforms equipment maintenance from a reactive cost center into a proactive reliability program. When preventive maintenance is scheduled systematically, corrective maintenance is documented thoroughly, and reliability metrics are tracked objectively, equipment availability improves and total maintenance cost decreases — typically 15-25% within the first 12 months of implementation.

ECOSIRE implements Odoo Maintenance for manufacturing plants, facilities management companies, utilities, and field service operations. Our implementation includes equipment data migration, PM plan design, IoT sensor integration scoping, and technician training.

Visit our Odoo services page to explore maintenance module implementation options, or browse our marketplace modules for maintenance extensions including IoT-triggered predictive maintenance, advanced reliability analytics, and mobile technician tools for Odoo 19 Enterprise.

E

Written by

ECOSIRE Research and Development Team

Building enterprise-grade digital products at ECOSIRE. Sharing insights on Odoo integrations, e-commerce automation, and AI-powered business solutions.

Chat on WhatsApp