A build-to-order Odoo module that connects your database to Dropbox — auto-syncing attachments, mirroring a folder structure per record, offloading storage, and generating shareable links. ECOSIRE builds, installs and supports it for Odoo 17, 18 and 19. 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 connects your database to Dropbox — auto-syncing attachments, mirroring a folder structure per record, offloading storage, and generating shareable links. ECOSIRE builds, installs and supports it for Odoo 17, 18 and 19.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Teams that live in Dropbox but run operations in Odoo end up maintaining two parallel filing systems. A signed contract gets dropped into a Dropbox client folder, then re-uploaded as an ir.attachment on the sales order; a QC photo sits in Dropbox but the manufacturing order references nothing. Odoo's native attachment model stores files in the PostgreSQL filestore (or an S3-style backend if you configure ir_attachment storage), but it has no concept of Dropbox — no two-way sync, no per-record folder mapping, and no way to hand a customer a Dropbox shared link straight from a record. Beyond a certain document volume the filestore also bloats backups, and finance/legal want the canonical copy to live where the rest of the company already collaborates: Dropbox.
OAuth2 connection to the Dropbox HTTP API v2 with refresh-token rotation; tokens stored encrypted in `ir.config_parameter` (not hardcoded)
Two-way sync via an `ir.cron` job using Dropbox delta cursors, so Odoo attachments and Dropbox files reconcile in both directions with conflict handling
`ir.attachment` `create`/`write` overrides that transparently push any new attachment on a mapped model to Dropbox and store `dropbox_path` + `dropbox_file_id`
Per-record folder auto-generation from a configurable template (e.g. `/Odoo/{model}/{partner}/{name}`) with placeholder resolution from record fields
Selective-sync matrix — enable Dropbox sync per model (`sale.order`, `project.task`, `account.move`, `hr.employee`, custom models) from a `res.config.settings` OWL/XML page
Attachment offloading: large files uploaded to Dropbox and the local `filestore` copy dropped, shrinking PostgreSQL backups while records still serve the file
This is a build-to-order module that ECOSIRE designs, builds and installs against your database — not an existing apps.odoo.com download. We add a Dropbox connection layer wired to the Dropbox HTTP API v2 with OAuth2 (short-lived access tokens plus a stored refresh token, encrypted in ir.config_parameter). Attachments are intercepted at the ir.attachment ORM level via overridden create/write, so any file added to a mapped model — a sale.order, project.task, hr.employee, whatever your scope names — is pushed to Dropbox and linked back by a stored dropbox_path / dropbox_file_id on a companion model. A models.Model mixin exposes compute fields (@api.depends) for sync status and the current shared link, and the folder path per record is generated from a configurable template (for example /Odoo/Sales/{partner}/{name}).
Technically, sync runs through Odoo's scheduler: an ir.cron automated action reconciles changes both ways using Dropbox cursors/deltas, so files added in Dropbox appear as Odoo attachments and vice versa, with conflict handling and per-model selective-sync toggles. Access is governed by ir.model.access.csv plus record rules so only entitled users trigger syncs or mint shared links; a settings page (Odoo res.config.settings OWL/XML view) holds the OAuth connection, folder templates and the selective-sync matrix. Everything is exposed over the standard XML-RPC/JSON-RPC API too, so external systems can query a record's Dropbox link. Where you want offloading, large attachments are uploaded to Dropbox and the local filestore copy is dropped, with the record still serving the file through a proxied download or the shared link — shrinking your Odoo backups. The build works on Community and Enterprise; we flag the handful of places (e.g. Documents app overlap on Enterprise) where behavior differs and scope accordingly.
Delivery is build-to-order. We start with a short scoping call to pin down exactly which models sync, your folder-naming convention, offload policy and Community-vs-Enterprise target, then confirm the scope in writing. Typical delivery is 2–4 weeks from confirmed scope. You get the installable source for your Odoo version, UAT on a staging database, a rollback plan, technical and user documentation, a training session, and a post-go-live support window — plus the git repository so the code is yours to keep.
Runs the business day-to-day on Odoo but the company's canonical files already live in Dropbox. Wants attachments to land in the right Dropbox client/project folder automatically instead of staff filing everything twice.
Needs signed contracts, invoices and supporting documents stored in the company's audited Dropbox structure with controlled shared links, while keeping the Odoo record as the system of reference.
Owns the Odoo instance and is watching filestore growth balloon backups. Wants large attachments offloaded to Dropbox, sync governed by clear security rules, and the source in a git repo they control.
Coordinates work in Odoo Projects but shares deliverables with clients via Dropbox links. Wants a per-task folder and a one-click shared link generated straight from the task without leaving Odoo.
Buy the license on ecosire.com and download the Dropbox Integration for Odoo 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 Dropbox Integration for Odoo, 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 |
|---|---|---|---|---|
| Two-way Dropbox sync | Built-in, `ir.cron` delta-cursor reconciliation both directions | Possible but you design cursors, conflicts and idempotency yourself | Often one-way push only, or fixed to specific models | |
| Per-record folder structure | Configurable template resolved from record fields | Hand-coded per model | Usually a single flat or fixed folder | |
| Attachment offloading | Optional per-model offload, filestore copy dropped, backups shrink | Buildable but you handle serving/proxying yourself | Rarely offered — most only mirror | |
| Odoo version & edition fit | Built for your exact 17/18/19, Community or Enterprise | Whatever you build for | May lag new Odoo releases or need paid upgrades | |
| Security & access control | `ir.model.access.csv` + record rules, encrypted OAuth tokens | Your responsibility to implement correctly | Varies; token handling not always transparent | |
| Shared-link generation | One-click on record, stored in compute field, re-mintable | Extra work to wire into the UI | Sometimes available, often manual | |
| Support & ownership | Post-go-live support window + git repo handover, code is yours | You own it but also own all maintenance | Vendor-dependent; source often obfuscated | |
| Delivery model | Build-to-order, scoped to you, 2–4 weeks from confirmed scope | Full project timeline, you manage it | Instant download but generic fit |
No. It is build-to-order: ECOSIRE builds the module against your specific Odoo version and requirements, then installs and supports it. There is no instant download — we start with a scoping call to confirm exactly which models sync and how folders are named.
Typical delivery is 2–4 weeks from confirmed scope. The timeline depends on how many models you want synced, your offloading and folder-template rules, and Community-vs-Enterprise specifics. We lock the scope in writing after the scoping call before development starts.
Yes — we build for Odoo 17.0, 18.0 or 19.0, on Community or Enterprise. On Enterprise we account for overlap with the Documents app and scope behavior accordingly; the sync itself works on Community without any Enterprise dependency.
Yes. Files added as Odoo attachments on mapped records are pushed to Dropbox, and files added in the mapped Dropbox folders are pulled back as `ir.attachment` records. Reconciliation runs on an `ir.cron` schedule using Dropbox delta cursors, with conflict handling and idempotency keyed on the Dropbox file id.
Every build includes a post-go-live support window for defect fixes and configuration adjustments. Because you receive the git repository, the code is yours to keep. Beyond the included window we offer ongoing support and can adapt the module when you upgrade Odoo versions or Dropbox changes its API.
Access is governed by `ir.model.access.csv` and record rules, so only entitled users can trigger syncs or mint shared links. OAuth tokens are stored encrypted in `ir.config_parameter` rather than hardcoded, and Dropbox rate limits and `Retry-After` responses are respected with backoff.
No. When a file is offloaded, the record still serves it — either through a proxied download or the Dropbox shared link — so users experience no change while your PostgreSQL filestore and backups shrink. Offloading is optional and scoped per model during the scoping call.
A build-to-order Odoo module that connects your database to Dropbox — auto-syncing attachments, mirroring a folder structure per record, offloading storage, and generating shareable links. ECOSIRE builds, installs and supports it for Odoo 17, 18 and 19.