Offline mobile CRM · Odoo 19 · REST sync

Offline mobile CRM for Odoo 19: the REST contacts sync backend

Your reps visit customers in basements, warehouses and rural areas, but the CRM only works online. This Odoo 19 module is the server-side backend for an offline mobile contacts app: it exposes the REST endpoints the app uses to download your contacts (res.partner), keep them on the phone and push changes back once it is online again. It syncs the customer record only, not leads or opportunities, and everything lands back in your Odoo.

Works with no signalThe mobile app reads and edits contacts on a local copy stored on the phone.
Sync over RESTEndpoints in your Odoo that download data and take changes back when the network returns.
Data stays in your OdooNo middleware SaaS: your contacts keep living in your own database.
Native to Odoo 19The backend runs inside the ERP, with no extra platform to maintain.
Sales rep using a mobile contacts app synced with Odoo 19
19 EUR (one-time payment) Odoo 17 - 18 - 19 Source code included (OPL-1) No middleware SaaS Direct support from the developer

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

Try the live demo View on the App Store

The CRM lets you down right in front of the customer

Field teams work in trade parks, loading docks, basements and rural areas with patchy signal. A CRM that only responds on a good connection leaves the rep stranded mid-visit and forces them to scribble the details on paper to type in later.

No signal, no CRM

When the app needs a connection for every single lookup, a visit with no coverage turns into loose notes on the phone that someone has to re-enter later, with all the errors and gaps that brings.

Changes that overwrite each other

When two people touch the same contact from the phone and the desktop, without a clear sync process it is easy to overwrite data and never know which version is the correct one.

Yet another cloud to watch

Most mobile CRM apps push your contacts into a separate SaaS. That is one more system to maintain, another bill to pay and customer data leaving your Odoo.

What the backend does inside Odoo

The module is the server side: it adds to your Odoo 19 the REST endpoints the mobile contacts app needs to download, edit offline and reconcile. It syncs contacts (res.partner) only -- the customer record, not leads or opportunities.

Delta sync that saves data

The pull endpoint returns only the contacts that changed since the last sync: less mobile data burned and faster syncs on every visit.

Bearer token with brute-force lockout

REST authentication with Bearer tokens for the mobile clients, with automatic lockout after repeated failed login attempts.

Last-write-wins conflicts, logged without PII

When the same contact is edited in two places, the last write wins and the conflict is recorded in the server log with no personal data attached.

GDPR anonymisation and retention crons

Right to erasure built in: one scheduled job anonymises the data and another enforces audit-log retention, with no manual clean-up.

Selective sync filter in Settings

You decide which contacts the app sees with a server-side filter domain, configurable straight from Settings without touching any code.

Transactional bulk endpoints

Bulk create, update and delete with per-batch rollback: either the whole batch of changes applies or nothing is left half-applied.

Download, work offline, reconcile

Three steps, all driven by the REST endpoints this module adds to your Odoo. You install it once and point your mobile app at your own server.

1 · Download contacts

Before the reps head out, the app authenticates with a Bearer token and pulls the contacts allowed by your sync filter. After the first full pull, every later sync is a delta -- only what changed.

2 · Work offline

Out in the field, the rep looks up, edits and creates contacts on the phone's local copy with zero connection. Nothing waits on a spinner, and no detail has to be written on paper for later.

3 · Reconcile on reconnect

Back on a network, the app pushes the batch of changes to the transactional endpoints. Odoo applies them last-write-wins, logs any conflict without PII and returns the newest server-side updates in the same round trip.

19 EUR, once. Source code included.

One flat payment of 19 EUR on the Odoo App Store -- no subscriptions, no per-user seats, no per-sync fees. The full source code ships under the OPL-1 license, so you own it and can adapt it. A single purchase covers Odoo 17, 18 and 19, and updates for the versions you own are included. It installs on both Community and Enterprise.

19€One-time
17-19Odoo versions
0Recurring fees
Buy on the App Store

What it does and what it does not

This module is the server-side backend: it adds to Odoo 19 the REST endpoints that sync contacts (res.partner) with an offline mobile app. It syncs the customer record, not leads or opportunities, and on its own it is not the complete phone app -- it is the server piece that makes the offline flow possible. We tell you that before you buy, not after, and in the demo you can see it working so you decide on facts. Behind it is a single developer at FlexigoTech in Barcelona, so when you ask about the sync backend you talk straight to whoever wrote the code.

Try the live demoAsk a question

If the offline mobile CRM brought you here, this helps too

Sales-team mobility rarely comes alone. It usually shows up next to the need to keep sales, contacts and day-to-day operations inside a single Odoo.

Questions that usually come up about the offline mobile CRM

What exactly does this offline mobile CRM module for Odoo do?

It is the server-side sync backend for an offline mobile contacts app. It exposes REST endpoints on your Odoo 19 so the mobile app can download your contacts (res.partner), store them locally on the phone and push changes back when it regains connectivity. Only contacts are synced -- the customer record, not leads or opportunities -- and the reconciliation logic lives inside Odoo, not in an external cloud.

Does it really work with no signal?

Yes. The mobile app works on a local copy of the contacts, so a rep can look up, edit and create records with no network at all. When the device gets coverage again, the backend receives those changes over REST, applies them in Odoo and returns the latest server-side updates in the same call. Offline work is never lost.

Does my customer data leave my Odoo?

No. There is no middleware SaaS in between: the backend runs inside your own Odoo 19 instance and the mobile app talks straight to your server over REST. Your contacts keep living in your database. The module only adds the sync endpoints the app needs, secured with a Bearer token and an audit log that stores no personal data.

Does it work with Odoo Community?

Yes. The module builds on res.partner and standard Odoo web controllers, so it installs and runs on Odoo Community as well as Enterprise, across versions 17, 18 and 19. You do not need any Enterprise app for the sync backend itself.

What do I get for 19 EUR and are there recurring fees?

One flat payment of 19 EUR on the Odoo App Store, with the full source code included under the OPL-1 license. There are no subscriptions, no per-user seats and no per-sync fees. You buy it once for Odoo 17, 18 and 19, and updates for the versions you own are included.

Can I try it before I buy?

Yes. There is a live demo -- a real Odoo 19 with no sign-up (user demo, password flexigodemo) -- where you can see the module installed and the contacts the mobile app would sync. When you are ready you buy the license on the Odoo App Store, and if you need it we help you wire up the mobile side.

Your field team should not lose the CRM the moment it loses signal.

The question is whether they keep writing it down on paper or you solve it with an offline mobile CRM synced against your own Odoo. Tell us how your team works and we will tell you straight whether the module fits.

Try the live demoView on the App Store · +34 639 913 105