Skip to main content

Module for Odoo 17 · 18 · 19

Hotel PMS and channel-manager connector shell for Odoo: the sync engine ready for an integrator to add its adapter

For integrators and hotels: a reusable framework with an adapter contract, pluggable registry, idempotent sync of availability, rates and reservations, field mapping, encrypted credentials and an audited sync log. Ships a network-free reference adapter proving the end-to-end flow.

  • Odoo versions: Odoo 19.0Odoo 18.0Odoo 17.0
  • Migration to Odoo 20 the day it ships
  • Price: 39 € · one-time payment, source code included
Flexigo Hotel PMS Channel-Ready Connector Shell module cover for Odoo

What it does

  • Adapter contract and pluggable registryEach PMS or channel manager is added with a downstream module declaring its adapter key; no fork of this module.
  • Idempotent two-way syncInbound availability and rates, outbound reservations, with error classification and bounded exponential backoff.
  • Field mapping with quarantineRoom types, rate plans and unmapped external codes are quarantined instead of breaking the sync.
  • Encrypted credentials and audited logWrite-only Fernet credentials, a redacted, auto-purged sync log, multi-property and multi-company isolation.
  • Network-free reference adapterAn in-memory mock adapter proves the whole flow and installs and passes tests without external credentials.
€39 · one-time payment Odoo 17, 18 & 19 · Community & Enterprise Source code included Direct support from Barcelona No SaaS or middleware

Try the connector shell inside a real Odoo 19, no sign-up. User demo / flexigodemo.

Try the live demo View on the App Store

The real problem in every PMS integration

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.

Plumbing rebuilt on every project

Connections, credentials, retries and logging get hand-rolled again for each client and burn weeks before anything even syncs.

Hand-rolled credentials and logs

Home-grown secret handling and ad-hoc logging are easy to get wrong, with real privacy (GDPR) and reliability consequences.

Syncs that duplicate data

Without idempotency, re-running a date window duplicates availability and rates; without error classification, retries fire blind and incidents never close.

The integration engine, no smoke and mirrors

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.

Adapter contract and pluggable registry

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.

Idempotent two-way sync

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.

Field mapping with quarantine

Translates external codes into Odoo records. Unmapped codes are quarantined for review instead of being silently dropped: no data is ever lost.

Audited sync log

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.

Write-only encrypted credentials

Fernet-at-rest secrets that are never rendered back and never appear in logs or tracebacks. The shell never touches payment-card data.

Retry with backoff, multi-company and mock adapter

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.

One developer in Barcelona, not a reseller

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.

17-19native Odoo
0separate SaaS
BCNdirect support

What it is, and what it isn't yet

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.

Questions that usually come up at this stage

Does this hotel PMS connector for Odoo already connect to Mews, Cloudbeds or Booking?

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.

What exactly does the connector shell include?

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.

Does it run inside Odoo or is it a separate app?

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.

Does it work with Odoo Community?

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.

How much does the connector shell cost?

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.

Can I try it before buying?

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.

If you integrate hotels with Odoo, don't rebuild the plumbing.

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.

Try the live demoView on the App Store · +34 616 809 504