Google Sheets Two-Way Sync
Two-way sync between any Odoo model and a Google Sheets tab, with field mapping and conflict resolution
Google Sheets Two-Way Sync
Two-way sync between any Odoo model and a Google Sheets tab, with field mapping and conflict resolution
Google Sheets Two-Way Sync keeps any Odoo model in sync with a Google Sheets spreadsheet tab: push Odoo records out, pull sheet edits back in, or run both directions at once. It is bring-your-own-key (BYOK), connecting with either a Google service-account JSON key or an API key against your own Google Cloud project.
Key Features
BYOK Connections
One or more connections use a Service Account JSON key or an API key, each with a Test Connection check; service-account connections perform a real JWT-bearer token exchange against Google's OAuth endpoint and cache/refresh the access token automatically. API keys are read-only; use a service account for push / two-way.
Flexible Sync Configuration
Pick any Odoo model, a spreadsheet ID and tab name, a header row, and a sync direction: Odoo to Sheet, Sheet to Odoo, or Two-Way.
Field Mapping with Key Field Matching
Field mapping lines map any Odoo field (char/text/number/boolean/date/many2one) to a spreadsheet column letter with an optional custom header, and a designated key field matches an Odoo record to its spreadsheet row across runs.
Record Filtering
An optional record filter, an Odoo domain, restricts which records participate in the sync.
Baseline-Based Conflict Detection
A baseline snapshot recorded after every successful sync detects which side actually changed since then, so unrelated rows are left untouched.
Configurable Conflict Resolution Policy
When both sides changed the same row, the configured policy decides the outcome: Odoo Always Wins, Sheet Always Wins, or Last Modified Wins, comparing Odoo's write date against a mapped sheet timestamp column when configured.
Duplicate Key Detection
Duplicate keys on either side are detected and reported rather than silently overwriting one row with another.
Scheduling & Sync Log
An optional scheduled push/pull per configuration (minutes/hours/days) runs via a periodic cron, a Sync Now button runs the same engine on demand, and every run is recorded in a sync log with pushed/pulled/conflict/error counts, duration and a clear message.
Use Cases
Screenshots
01 Sync Config Form
02 Sync Log List
03 Connection Form
Why Choose This Module
Spreadsheets remain the tool many non-technical teams reach for first, and forcing everyone into Odoo's UI is not always realistic. This module bridges the two worlds with a genuine two-way sync engine, field-level mapping, baseline-based conflict detection and a configurable resolution policy, so a shared Google Sheet and Odoo data can coexist without one silently clobbering the other.
Specifications
- Compatible: Odoo 18.0 / 19.0 / 20.0
- License: OPL-1
- Languages: 35+
- Author: Pokutsoft
- Dependencies: base, mail
- Support: support@pokutsoft.com
- Update date: 2026-10-02
Related modules
Approval Workflow Pro
Configurable multi-level approval workflows for any document
Certificate Generator & QR Verification
Generate QWeb PDF certificates from any record with a unique number and a public QR verification page
Document Management DMS
Folders, versioning, tags and access control - a document management system for Odoo Community.