A build-to-order Odoo module that streams any Odoo model into Google Sheets for live analysis, reporting and sharing — with scheduled auto-refresh, per-sheet field/filter selection, and an optional two-way write-back. ECOSIRE scopes, builds, installs and supports it. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $199.00 USD; request a quote for a scoped proposal.

A build-to-order Odoo module that streams any Odoo model into Google Sheets for live analysis, reporting and sharing — with scheduled auto-refresh, per-sheet field/filter selection, and an optional two-way write-back. ECOSIRE scopes, builds, installs and supports it.
ابھی کوئی ادائیگی نہیں۔ یہ ہماری ٹیم کو قیمت کی درخواست بھیجتا ہے — ہم قیمت اور اگلے اقدامات کے ساتھ ای میل کے ذریعے رابطہ کریں گے۔
Analysts and managers do their real work in spreadsheets, but the numbers they need are locked inside Odoo. Today the workaround is a manual dance: open a list view, apply filters, hit Export, download a CSV, re-import into Google Sheets, then fix broken formulas and pivot tables every single time. Odoo's native export is a one-shot snapshot — it has no schedule, no refresh, and no way to write a corrected value back. QWeb reports and dashboards live inside Odoo where a CFO who prefers Sheets can't touch them, and stitching a custom pivot across sale.order, account.move and stock.quant in the UI is painful. The moment someone wants "the same view, but updated automatically and shareable with a link," Odoo native runs out of road.
Sync any Odoo model — `sale.order`, `account.move.line`, `crm.lead`, `stock.quant` or custom `x_` models — into a named Google Sheets range
Per-sheet field selection maps chosen Odoo `fields` (including related and stored compute fields) to spreadsheet columns
Domain-filter builder translates UI conditions into Odoo `search_read` domains (e.g. `[('state','=','done'),('date','>=',...)]`) per connection
Scheduled auto-refresh via an `ir.cron` job or Apps Script time trigger — every 15 min, hourly, daily, or on open
Optional two-way write-back: whitelisted editable columns validated by field type and pushed via `write()` with conflict detection
Reads and writes fully honor `ir.model.access.csv` and record rules — Sheets users never exceed their Odoo user's entitlements
The Google Sheets Live Connector closes that gap. We build a dedicated Odoo module (__manifest__.py declaring dependencies on base plus whichever business apps your reports touch) that exposes a governed read path over Odoo's JSON-RPC / XML-RPC API and a companion Google Apps Script bound to your target spreadsheet. From a sidebar in Sheets an authorized user picks an Odoo model (sale.order, account.move.line, crm.lead, or any custom model), selects the exact fields and a domain filter, and the data materializes into a named range. A new ir.model in Odoo stores each connection's definition — model, field list, domain, target range, refresh cadence — so the mapping is versioned, auditable, and reusable rather than trapped in one person's macro.
Under the hood, refresh is driven by a ir.cron automated action on the Odoo side (or a time-based trigger in Apps Script) that re-runs each saved query on the schedule you choose — every 15 minutes, hourly, or on open. Reads honor ir.model.access.csv and record rules, so a Sheets user only ever sees rows their linked Odoo user is entitled to see; there is no bypass of Odoo's security layer. Where you need editable lists, we build an optional two-way write-back: edited cells in a whitelisted range are validated against field types and access rights, then pushed back via write() with a full audit log and conflict detection, so a stale cell never silently clobbers a newer Odoo value. Connection uses a dedicated service account or OAuth credential configured once — no passwords pasted into cells.
Because this is build-to-order, nothing ships as a blind download. We start with a short scoping call to map exactly which models, fields, filters and refresh cadences you need, whether you're on Odoo 17.0, 18.0 or 19.0, and Community vs Enterprise (both supported — no Enterprise-only dependency). We then build the module and Apps Script against your data model, run UAT on a staging database, and deploy to production with a rollback plan. Typical delivery is 2–4 weeks from confirmed scope. You receive the full source, documentation, a training session, and a post-go-live support window — and you own the Git repository outright.
Lives in Google Sheets building pivots, models and dashboards. Needs live Odoo data — sales, invoices, inventory — landing in named ranges on a schedule instead of re-exporting CSVs by hand every morning.
Wants a shareable, always-current view of KPIs from `account.move` and `sale.order` for the team and leadership, without giving everyone an Odoo login or waiting on IT to rebuild a report.
Needs the connector to respect `ir.model.access.csv` and record rules so Sheets access never leaks rows, with credentials centrally managed, refresh cadences controlled, and write-back fully audited.
Manages data like forecast adjustments or status updates in a shared sheet and needs validated two-way write-back into Odoo, with conflict detection so concurrent edits don't overwrite fresher values.
Buy the license on ecosire.com and download the Google Sheets Live Connector module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Google Sheets Live Connector, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Live / scheduled refresh | Auto-refresh via `ir.cron` or Apps Script trigger, per-connection cadence | Possible but you build and maintain the scheduler yourself | Often manual refresh or fixed intervals only | |
| Security enforcement | Honors `ir.model.access.csv` + record rules; runs as real Odoo user | Depends entirely on your implementation quality | Varies; some use a shared admin token that bypasses rules | |
| Two-way write-back | Optional, validated `write()` with audit log + conflict detection | Buildable but conflict handling is easy to get wrong | Usually read-only | |
| Field & filter selection | Per-sheet field picker + domain-filter builder, saved as records | Hard-coded unless you build a config UI | Limited to preset fields or basic filters | |
| Odoo version coverage | Built and tested for 17.0 / 18.0 / 19.0, Community + Enterprise | Whatever you target and test | May lag on newest major versions | |
| Delivery & ownership | 2–4 weeks build-to-order; full source + Git repo handover | Weeks to months; you own it but carry all the build cost | Instant install but closed source, licence-locked | |
| Support & maintenance | Post-go-live window + optional retainer + docs + training | Internal team owns all upkeep | Vendor support tiers, upgrade-dependent | |
| Fit to your data model | Scoped to your exact models, custom fields and reports | Fully bespoke, at full cost and timeline | Generic; custom models may need workarounds |
This is a build-to-order module, not an instant download. After a short scoping call to confirm the models, fields, filters, refresh cadences and your Odoo version, typical delivery is 2–4 weeks from confirmed scope. We build against your data model, run UAT on staging, then deploy to production with a rollback plan.
Every engagement includes a post-go-live support window for bug fixes and adjustments. You also receive the full source and Git repository, so your team can extend it. Version upgrades (e.g. moving from Odoo 17 to 18 or 19) or new models can be handled as a follow-on scope, and we offer optional ongoing support retainers.
Both. The connector is built on standard Odoo primitives — the ORM, `ir.cron`, security via `ir.model.access.csv` and record rules, and the JSON-RPC/XML-RPC API — with no Enterprise-only dependency. It targets Odoo 17.0, 18.0 and 19.0, and we confirm your exact version during scoping.
No. Every read and write runs as a real Odoo user, so `ir.model.access.csv` and record rules are fully enforced — a Sheets user only ever sees or edits rows their linked Odoo user is entitled to. The connection uses a dedicated service account or OAuth credential configured once by an admin; no passwords are stored in the spreadsheet.
Both modes are supported. Read-only sync is the default. Where you need editable lists, we build an optional two-way write-back on whitelisted columns: edits are validated against field types and access rights, pushed via the ORM `write()` method, logged to an audit trail, and protected by conflict detection so a stale cell can't overwrite a newer Odoo value.
The connector uses paginated, batched `search_read` calls with rate limiting and retry/backoff to stay within Odoo worker and Google API quotas. Refresh cadence is configurable per connection (every 15 minutes, hourly, daily, or on open), and during scoping we size the schedule to your data volume and server capacity.
You own everything: the full Odoo module source, the Google Apps Script package, technical and user documentation, and the complete Git repository with history. There is no vendor lock-in — your team can maintain and extend the module independently.
A build-to-order Odoo module that streams any Odoo model into Google Sheets for live analysis, reporting and sharing — with scheduled auto-refresh, per-sheet field/filter selection, and an optional two-way write-back. ECOSIRE scopes, builds, installs and supports it.