Plumbing rebuilt on every project
Connections, credentials, retries and logging get hand-rolled again for each client and burn weeks before anything even syncs.
A ready-to-extend Odoo 17-19 framework for wiring any hotel PMS or channel manager into your ERP: adapter contract, pluggable registry, idempotent two-way sync, field mapping with quarantine, encrypted credentials and an audited log. It doesn't promise magic out-of-the-box integrations — it hands you the proven engine, so connecting Mews, Cloudbeds or SiteMinder means writing one adapter, not rebuilding the plumbing.

Try the connector shell inside a real Odoo 19, no sign-up. User demo / flexigodemo.
Every hotel integration project rebuilds the same plumbing: connections, credentials, sync, mapping, retries and audit trail. Weeks of work before the first booking flows, and every hand-rolled piece is a liability.
Connections, credentials, retries and logging get hand-rolled again for each client and burn weeks before anything even syncs.
Home-grown secret handling and ad-hoc logging are easy to get wrong, with real privacy (GDPR) and reliability consequences.
Without idempotency, re-running a date window duplicates availability and rates; without error classification, retries fire blind and incidents never close.
This module is the reusable plumbing, not a room-inventory PMS: the shell pulls availability and rates from the external PMS and pushes reservations out. The concrete adapter (Mews, Cloudbeds, SiteMinder...) is added on top as an addon, no fork.
Each adapter implements the abstract contract and registers under its adapter key; the shell resolves it at runtime. You add a PMS with a downstream addon, no fork of the shell.
Pulls availability and rates from the external PMS and pushes reservations out. Re-running a window updates existing rows instead of duplicating them, keyed on external ID, date and room type.
Translates external codes into Odoo records. Unmapped codes are quarantined for review instead of being silently dropped: no data is ever lost.
Every operation is recorded with direction, status and error class, redacted of secrets and auto-purged by a daily cron to respect GDPR storage-limitation.
Fernet-at-rest secrets that are never rendered back and never appear in logs or tracebacks. The shell never touches payment-card data.
Classified errors (auth, rate-limit, timeout, transient, permanent) with bounded exponential backoff, per-company isolation and an in-memory reference adapter that exercises the whole loop with no network and no credentials.
FlexigoTech (Flexibles y Accesorios Gobe, S.L.) is an independent developer in Barcelona specialised in native modules for Odoo. We don't sell a separate SaaS or resell third-party licences: the module code is ours and support comes from the person who wrote it. If you need to connect a specific channel, you talk directly to the engineer who will build the integration.
We'll be straight with you: this module is the connector shell, not a complete out-of-the-box channel manager and not a room-inventory PMS. It gives you the adapter contract, the idempotent sync, the mapping with quarantine, the encrypted credentials and the audited log, plus a mock adapter that exercises the whole loop offline. Connecting a specific PMS or OTA is an adapter you build on top. We'd rather say that clearly than promise what the module doesn't do.
We connect this page to the rest of the site so you can find the module, the contact form and the path to a custom integration.
Not on its own. It ships an in-memory reference (mock) adapter that exercises the entire loop with no network and no credentials. To connect a real PMS or channel manager (Mews, Cloudbeds, Opera Cloud, SiteMinder) you add an adapter addon that inherits the shell and declares its adapter key: the registry resolves it at runtime, no fork required.
An adapter contract with a pluggable registry, idempotent two-way sync (pull availability and rates, push reservations), field mapping with quarantine, an audited and auto-purged sync log (GDPR-aware), write-only Fernet-encrypted credentials, classified errors with bounded retry and backoff, and multi-company isolation.
It runs inside Odoo (17, 18 and 19) as a native module. It depends only on base and mail plus the Python cryptography library: no external SaaS, no hidden credentials and no outbound traffic. It installs and passes its full test suite on a clean database.
Yes. It runs on both Odoo Community and Enterprise, versions 17, 18 and 19. It only depends on the base and mail modules plus the Python cryptography library, so there are no Enterprise-only dependencies to worry about.
The shell is a one-time purchase of 39 €, with full source code included and no per-database fee. You buy it from the Odoo App Store. Production adapters for a specific PMS are sold separately as addons, and if you need it we also do custom integration work.
Yes. There is a live demo, a real Odoo 19 with the module installed and no sign-up (user demo, password flexigodemo), where you can see the connections, the sync log, the field mappings and the mock adapter running. When you are ready, you buy it from the Odoo App Store (39 €, one-time payment, source code included); if you need a production adapter or help with the integration, let's talk.
Adapter contract, idempotent sync, mapping with quarantine, encrypted credentials and an audited log, ready for you to build your adapter on top. Tell us your case and we'll tell you what's viable and in what order.