In Odoo 20, records you opened while online can be edited, archived, unarchived or deleted when the connection drops. You can also create a new record if you created one of the same type while you were online, and repeat searches you already ran. Changes wait in a local queue and sync automatically when the connection returns. Odoo's documentation says plainly that this is for short interruptions. It isn't designed for long-term offline work.
What changed from Odoo 19
Odoo 19 already had an offline mode, but it was read-only. The 19.0 documentation says: "Previously opened records can be viewed but not modified while offline." Odoo 20 adds writing. The release notes list two items under offline mode: "Create, edit, archive, unarchive, and delete records while being offline" and "Execute previously run searches while working offline."
| Offline, you can… | Odoo 19 | Odoo 20 |
|---|---|---|
| Reopen views and records opened earlier while online | Yes | Yes |
| Edit, archive, unarchive or delete those records | No | Yes |
| Create a new record | No | Yes, if you created one of the same type while online |
| Repeat a search you ran online | Not documented | Yes |
| Upload or delete attachments and images | No | No (they can be opened, not changed) |
| Storage cap for offline data | 2 GB | 2 GB |
How offline mode works in Odoo 20
When the connection drops, a Working offline button appears in the database header. Anything not available offline is greyed out. Views and records you opened while online can be reopened, even if they weren't on screen when the signal went.
Two conditions decide what you can do:
- Editing needs a prior visit. You can edit, delete, archive or unarchive a record only if you opened it while online.
- Creating needs a prior example. You can create a record only if you created one of the same type while online. If a technician has never created a timesheet entry on that device, they can't create one offline.
Searches work the same way. Click in the search bar and pick from the searches you already ran. A search you never ran online isn't available.
The documentation adds that offline access covers apps and modules "built using standard Odoo framework components". If a custom module draws its own screens outside the standard views, offline support for it isn't guaranteed. Test it before you promise it to anyone.
How sync behaves when the connection returns
Changes made offline are stored in a temporary local queue. When connectivity is restored, Odoo syncs them automatically and they appear in the database.
While still offline, you can check and correct the queue:
- Open the queue. Click the Working offline button to list the records you changed. Each one has a tag: Created, Edited, Archived or Unarchived.
- Check the details. Hover over an Edited tag to see what changed. The documentation's example shows a salesperson and an expected revenue changed on an opportunity.
- Keep working on a record. Click it to open it locally and make further changes.
- Undo a mistake. Use the Discard offline changes icon to drop pending changes, for example if they were made in error or in the wrong order.
The limits: storage, refreshes and long outages
Three limits from the documentation shape how far you can push offline mode:
- 2 GB of offline data. When the limit is reached, Odoo removes the oldest data to make room for recent activity. On a long day, records opened in the morning may be gone by the afternoon.
- A hard refresh wipes it. Ctrl + F5, or Cmd + Shift + R on a Mac, removes all locally stored data. Tell staff not to do this while offline. The documentation doesn't say whether queued changes survive it, so assume they don't.
- Short interruptions only. Odoo's wording is that offline mode "is not intended to offer full or long-term offline capabilities". It suits a basement storeroom or a drive between sites. It doesn't suit a technician who works out of signal for a full day.
Some views shouldn't show cached data at all. Reporting views are the documentation's example. An administrator can make a view unavailable offline: open the view, turn on developer mode, click the bug icon, choose Action and disable Data caching.
Preparing field and warehouse teams
The documentation's main tip is to prepare before the signal goes. Briefly open the views and records you will need, and run the searches, so they are still there offline. That turns into a short routine:
- Before leaving coverage, open the day's jobs, transfers or tasks one by one, and run the searches you'll need, such as "my tasks today".
- Create one example of each record type the person will need to add offline, such as a timesheet line or an activity, while still online. Offline creation depends on it.
- Don't refresh the browser until the Working offline button has gone and the queue is empty.
- Check the queue before reconnecting and discard anything entered by mistake.
- Take photos and signatures later. Attachments and images can't be uploaded offline, so capture them once you are back online.
What about the Barcode app?
Warehouse teams will ask whether barcode scanning works offline. The Odoo 20 release notes include a long list of Barcode improvements, but neither they nor the 20.0 offline page say that the Barcode app's scanning screens are covered. Since offline support is promised for standard framework components, check the Barcode app on your own devices and network before planning around it.
Point of Sale has its own offline mode
Don't confuse the general offline mode with the one in Point of Sale. The 20.0 POS documentation describes a separate mechanism. Products and customers are loaded into the browser cache when a session starts, orders made offline are stored there and synced later, and printers and scales on the local network keep working. Payment terminals, registering customers, real-time stock sync and generating invoices need a connection. Invoices requested offline are generated once the connection is back. The POS page warns not to close, reload or clear the browser cache until the POS has synced.
If your field team needs something closer to a full offline app, with large local datasets, offline photo capture and rules for resolving conflicts, that's still a custom build. We cover the trade-offs in mobile apps for Odoo field teams and offline-first sync architecture. For Odoo's standard field flows, see our Odoo 19 Field Service guide.
Questions we get asked
Does Odoo 20 work offline?
Partly. In Odoo 20, records you opened while online can be edited, archived, unarchived or deleted offline. New records can be created if one of the same type was created online first, and previous searches can be repeated. Changes queue locally and sync when the connection returns. Odoo describes this as a solution for short interruptions, not full or long-term offline use.
What is the difference between Odoo 19 and Odoo 20 offline mode?
Odoo 19's offline mode was read-only: you could reopen records you had viewed online, but not change them. Odoo 20 adds creating, editing, archiving, unarchiving and deleting records offline, repeating earlier searches, and a queue of pending changes you can review or discard before sync. Both versions cap offline data at 2 GB and drop the oldest data first.
How does Odoo 20 sync changes made offline?
Changes made offline are held in a temporary local queue. When the connection is restored, Odoo syncs them automatically to the database. While still offline, the Working offline button lists each changed record as Created, Edited, Archived or Unarchived, and you can open, adjust or discard pending changes. The documentation does not describe how conflicting edits by other users are resolved.
Can I upload photos or attachments in Odoo 20 offline mode?
No. Odoo's 20.0 documentation says attachments and images can be opened while offline, but they cannot be uploaded or deleted. Field staff who need photos, signed documents or scans on a record should capture them once the device is back online. A hard browser refresh also clears all locally stored offline data, so avoid one until everything has synced.