Skip to main content
Facility Management & Cleaning Services — A build-to-order Odoo module for facility management and janitorial companies to ru — 1/1Illustrative preview

A build-to-order Odoo module for facility management and janitorial companies to run recurring site contracts,

cleaning schedules, staff rosters and per-site billing in one system.

ECOSIRE scopes, builds, installs and supports it on Odoo 17, 18 or 19.

What is Facility Management & Cleaning Services?

A build-to-order Odoo module for facility management and janitorial companies to run recurring site contracts, cleaning schedules, staff rosters and per-site billing in one system. ECOSIRE scopes, builds, installs and supports it on Odoo 17, 18 or 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Site registry model (`facility.site`) linked to `res.partner`, with location, assigned team, supervisor and a one-to-many of on-site assets (`facility.asset`)
Recurrence engine that auto-generates `facility.visit` occurrences from a contract frequency via `ir.cron` + a `@api.depends` next-visit compute — daily, weekly or custom patterns
Service contract model (`facility.contract`) holding billing frequency, term dates, scope-of-work lines and the linked SLA definition
SLA tracking with response/completion deadline stamps and automated-action breach flagging when a visit closes late or is missed
Staff roster and per-site shift assignment integrating `hr.employee` (and Odoo Enterprise `planning` where available) with double-booking checks
Per-site consumables and equipment inventory backed by `stock` — usage and restock post as real stock moves, not free-text notes
Field completion workflow: supervisors move visits through draft → in-progress → done with a checklist and optional photo/attachment capture
Per-site billing that drafts `account.move` invoices from delivered (done) visits, with configurable fixed-fee vs per-visit vs consumables-billed logic
Group-based security via `ir.model.access.csv` plus record rules so supervisors see only their sites while ops managers see the full portfolio
QWeb reports: printable per-site service sheet and an SLA-compliance summary per contract/period
List, form, kanban and calendar XML views, with OWL widgets where a custom field UI (e.g. route/shift board) adds real value
Portfolio dashboard aggregating upcoming visits, overdue SLAs and unbilled delivered visits with drill-down filters
Full XML-RPC / JSON-RPC exposure of all custom models for integration with check-in hardware, client portals or a mobile app
Version-targeted build for Odoo 17.0 / 18.0 / 19.0 with a documented Community-vs-Enterprise capability split

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Cleaning and facility-management companies live or die on recurring execution: dozens of sites, each with its own scope, frequency, assigned crew, consumables and SLA — repeating every week and month. In stock Odoo you can fake pieces of this with project, planning, maintenance and a subscription add-on, but nothing ties a physical site to its contract, its recurring visit calendar, the roster of staff who are supposed to show up, and the invoice that should follow. Schedules end up in spreadsheets, supervisors reconcile attendance by WhatsApp, and month-end billing becomes a manual reconstruction of "what did we actually deliver at each site." That gap is where margin leaks and SLA penalties appear.

ECOSIRE builds a purpose-fit Odoo module that models your operation directly. At its core is a facility/site registry (facility.site) linked to res.partner for the client, carrying location, contacted supervisor, assigned team and a one-to-many of on-site assets (facility.asset) — floors, restrooms, HVAC units, whatever you clean or maintain. A facility.contract model holds the commercial terms, billing frequency and the SLA definition, with a recurrence engine (an ir.cron job plus a @api.depends-driven next-visit compute) that generates the actual facility.visit occurrences — daily, weekly, or custom RRULE-style patterns — instead of you cloning tasks by hand. Each visit references the site, the planned crew shift, the consumables checklist and a completion state that supervisors close from the field.

On top of that we wire the day-to-day flows: staff rostering and shift assignment per site (integrating cleanly with hr employees and, on Enterprise, planning), an SLA tracker that stamps response/completion deadlines and flags breaches via automated actions, and a per-site consumables and equipment inventory backed by stock so restock and usage are real transactions, not notes. Security is proper Odoo — ir.model.access.csv for group-level CRUD plus record rules so a site supervisor sees only their sites while operations managers see the whole portfolio. Views are delivered as list/form/kanban/calendar XML (with OWL components where a richer field widget earns its keep), and month-end billing runs off delivered visits, either drafting account.move invoices directly or pushing billable lines so finance keeps one workflow. QWeb reports give you a site service sheet and an SLA-compliance summary, and every model is reachable over Odoo's XML-RPC / JSON-RPC API for integration with access-control hardware, client portals or a mobile check-in app.

Because this is build-to-order, nothing here is a shrink-wrapped download. We start from a short scoping call, agree the exact models, contract types, SLA rules and billing logic your business actually uses, then build against your target — Odoo 17.0, 18.0 or 19.0, Community or Enterprise (we tell you honestly which capabilities lean on Enterprise apps like planning and which we implement natively so Community stays viable). Typical delivery is one working week from confirmed scope. You get the installable source, a staging UAT round, and a support window after go-live — not a black box, but a module your own team can read, run and extend.

What you get

  • Installable module source code for your confirmed Odoo version (17.0, 18.0 or 19.0), Community or Enterprise
  • Installation and configuration on your environment, including `ir.model.access.csv`, record rules and cron setup
  • Technical documentation: model/field reference, ERD, security matrix and integration/API notes
  • End-user guide plus a live training session for supervisors, dispatchers and finance
  • UAT on a staging database with a signed-off test script and a documented rollback plan
  • Post-go-live support window for bug fixes and configuration adjustments
  • Git repository handover with full commit history and branch/tag conventions
  • Seed/demo data and a QWeb report set (service sheet + SLA summary) ready to adapt to your branding

Who this is for

Facility management company owner / operations director

Runs multiple client sites under recurring contracts and needs one system that connects each site's scope, schedule, crew and billing so nothing is delivered unbilled or missed against SLA.

Janitorial / cleaning-service operations manager

Builds weekly rosters, assigns crews to sites and tracks that recurring visits actually happen — wants auto-generated schedules and shift assignment instead of spreadsheets and group chats.

Site supervisor / team lead

Works from the field, needs a simple list of today's visits per site, a consumables checklist, and a one-tap way to mark work done that flows straight back to billing and SLA tracking.

Finance / accounts manager

Owns month-end invoicing across dozens of sites and needs billing driven automatically from delivered visits into `account.move`, with clean reports rather than manual reconstruction.

How Facility Management & Cleaning Services Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Fit to facility/cleaning workflowBuilt around sites, contracts, recurring visits, rosters and SLAWhatever you spec, if you get it rightGeneric; rarely models sites + SLA togetherNo site or SLA concept out of the box
Recurring schedule generationCron + compute auto-generates visits per contractMust design and build the recurrence engineOften manual task cloning or basic repeatsManual recurring tasks in project/planning
Per-site billing from delivered workDone visits draft `account.move` automaticallyYou build the billing bridge yourselfUsually disconnected from deliveryManual invoices reconstructed by hand
Security scopingGroups + record rules so supervisors see own sitesDepends on developer disciplineCoarse, often all-or-nothing accessGeneric access rights, no site scoping
Odoo version targetingBuilt for 17/18/19, Community or EnterpriseTied to whatever you commissionMay lag latest version or need EnterpriseCurrent version only, no vertical logic
Delivery timeone working week from confirmed scopeMonths of internal build and QAInstant install but poor fitImmediate but no vertical capability
Ownership & extensibilityFull source + git repo handoverYou own it but carry all the effortClosed module, limited to vendor roadmapCore code, but no facility features to extend
Support after go-liveSupport window + optional upgrade retainerYour team maintains itVendor support, variable qualityCommunity/Enterprise support, not vertical

Frequently Asked Questions about Facility Management & Cleaning Services

Is this an existing app I can download and install right now?

No. This is a build-to-order Odoo module. ECOSIRE scopes it with you, builds it against your target Odoo version, then installs and supports it. There is no instant apps.odoo.com download — you get source code and a working system tailored to how your facility operation actually runs.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we agree the exact models, SLA rules and billing logic; that written scope starts the clock. Larger portfolios or heavy integrations (access hardware, mobile check-in) can extend the timeline, and we tell you honestly up front.

Which Odoo versions and editions do you support?

We build for Odoo 17.0, 18.0 and 19.0, on Community or Enterprise. Some conveniences (like the `planning` shift board) lean on Enterprise apps; where you're on Community we implement equivalent capability natively and document exactly what differs, so you're never surprised by an Enterprise dependency.

How does the recurring-schedule generation work technically?

Each contract defines a frequency, and an `ir.cron` job plus a `@api.depends` next-visit compute generates `facility.visit` records forward on the calendar — daily, weekly or custom patterns. You don't clone tasks manually; supervisors just work the generated visits, and completed ones feed SLA tracking and billing.

What about support and updates after go-live?

Every build includes a post-go-live support window for bug fixes and configuration tweaks. Because you receive the full git repository and source, your own team can maintain and extend it. We also offer ongoing support and version-upgrade retainers if you'd rather we handle 17→18→19 migrations for you.

Can it bill each site automatically and integrate with our other tools?

Yes. Delivered (done) visits drive per-site invoicing into `account.move` with configurable fixed-fee, per-visit or consumables-based logic. All custom models are exposed over Odoo's XML-RPC / JSON-RPC API, so we can integrate check-in hardware, a client portal or a mobile app during or after the build.

Will supervisors only see their own sites?

Yes. Security is proper Odoo — `ir.model.access.csv` sets group-level CRUD and record rules scope visibility, so a site supervisor sees only their assigned sites while operations managers see the entire portfolio. We define the exact group matrix with you during scoping.

Request a quote

Facility Management & Cleaning Services

A build-to-order Odoo module for facility management and janitorial companies to run recurring site contracts, cleaning schedules, staff rosters and per-site billing in one system. ECOSIRE scopes, builds, installs and supports it on Odoo 17, 18 or 19.

  • Site registry model (`facility.site`) linked to `res.partner`, with location, assigned team, supervisor and a one-to-many of on-site assets (`facility.asset`)
  • Recurrence engine that auto-generates `facility.visit` occurrences from a contract frequency via `ir.cron` + a `@api.depends` next-visit compute — daily, weekly or custom patterns
  • Service contract model (`facility.contract`) holding billing frequency, term dates, scope-of-work lines and the linked SLA definition
  • SLA tracking with response/completion deadline stamps and automated-action breach flagging when a visit closes late or is missed

Request a Quotation

Tell us about your Facility Management & Cleaning Services requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.