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 $399.00 USD; request a quote for a scoped proposal.

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.
अभी कोई भुगतान नहीं। यह हमारी टीम को एक कोटेशन अनुरोध भेजता है — हम कीमत और अगले चरणों के साथ ईमेल द्वारा संपर्क करेंगे।
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.
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
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 2–4 weeks 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.
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.
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.
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.
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.
Buy the license on ecosire.com and download the Facility Management & Cleaning Services module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Facility Management & Cleaning Services, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Fit to facility/cleaning workflow | Built around sites, contracts, recurring visits, rosters and SLA | Whatever you spec, if you get it right | Generic; rarely models sites + SLA together | |
| Recurring schedule generation | Cron + compute auto-generates visits per contract | Must design and build the recurrence engine | Often manual task cloning or basic repeats | |
| Per-site billing from delivered work | Done visits draft `account.move` automatically | You build the billing bridge yourself | Usually disconnected from delivery | |
| Security scoping | Groups + record rules so supervisors see own sites | Depends on developer discipline | Coarse, often all-or-nothing access | |
| Odoo version targeting | Built for 17/18/19, Community or Enterprise | Tied to whatever you commission | May lag latest version or need Enterprise | |
| Delivery time | 2–4 weeks from confirmed scope | Months of internal build and QA | Instant install but poor fit | |
| Ownership & extensibility | Full source + git repo handover | You own it but carry all the effort | Closed module, limited to vendor roadmap | |
| Support after go-live | Support window + optional upgrade retainer | Your team maintains it | Vendor support, variable quality |
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.
Typical delivery is 2–4 weeks 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.
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.
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.
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.
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.
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.
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.