PMS connector shell · Odoo 17-19 · For integrators

The hotel PMS & channel manager connector for Odoo: the integration plumbing, solved.

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.

Adapter registryAdd a PMS with an addon that declares its adapter key. No fork.
Idempotent two-way syncPull availability and rates, push reservations. Re-running never duplicates.
Mapping with quarantineUnmapped external codes are quarantined for review, never silently lost.
Encrypted credentials & audited logWrite-only Fernet, redacted log with automatic purge (GDPR) and retry with backoff.
Hotel front desk managed with a PMS inside Odoo
Connector shell inside the ERPAdapters, sync and audit trail in the same Odoo where you invoice.
€39 · one-time payment Odoo 17, 18 & 19 · Community & Enterprise Source code included Direct support from Barcelona No SaaS or middleware

Real module screenshots

The very screens you get in Odoo — the real thing.

Odoo hotel PMS connector screenshot 1 Odoo hotel PMS connector screenshot 2 Odoo hotel PMS connector screenshot 3 Odoo hotel PMS connector screenshot 4 Odoo hotel PMS connector screenshot 6

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.

Try the live demoTalk about the integration

If you landed here from this search, these help too

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.

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 639 913 105