Skip to main content
Dropbox Integration for Odoo — A build-to-order Odoo module that connects your database to Dropbox — auto-syncing attachments — 1/1Illustrative preview

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.

What is Dropbox Integration for Odoo?

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 $999.00 USD; request a quote for a scoped proposal.

Key Features

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
One-click Dropbox shared-link generation on a record, with link stored in a `@api.depends` compute field and re-mintable on demand
Access governed by `ir.model.access.csv` and record rules so only entitled users trigger syncs or create shared links
Sync-status indicators (synced / pending / error) as compute fields with a per-record retry action for failed transfers
Chunked/upload-session handling for files above the Dropbox single-request limit (150 MB) so large attachments transfer reliably
XML-RPC / JSON-RPC exposure of a record's Dropbox path and shared link for external systems and integrations
Error logging and rate-limit backoff (respecting Dropbox `Retry-After`) with failures surfaced in the chatter / server logs rather than silently swallowed
Multi-company aware — folder roots and Dropbox app credentials scoped per `company_id` where required
Idempotent design keyed on `dropbox_file_id` to prevent duplicate uploads on re-runs and re-syncs

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

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.

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 one working week 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.

What you get

  • Installable module source code targeted to your Odoo version (17.0, 18.0 or 19.0), Community or Enterprise
  • Installation and configuration on your environment, including Dropbox app registration, OAuth connection and folder-template setup
  • Technical documentation — models, fields, `ir.cron` schedule, security rules and configuration reference
  • End-user guide plus a live training session for your team
  • UAT on a staging/clone database with a documented rollback plan before production go-live
  • A defined post-go-live support window for defect fixes and configuration adjustments
  • Git repository handover so the source is yours to keep, fork and extend
  • Selective-sync and folder-template configuration matched to the models and naming convention agreed at scoping

Who this is for

Dropbox-first SMB operations lead

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.

Finance / compliance manager

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.

IT / systems administrator

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.

Project or delivery manager

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.

How Dropbox Integration for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
Two-way Dropbox syncBuilt-in, `ir.cron` delta-cursor reconciliation both directionsPossible but you design cursors, conflicts and idempotency yourselfOften one-way push only, or fixed to specific modelsNo Dropbox concept at all
Per-record folder structureConfigurable template resolved from record fieldsHand-coded per modelUsually a single flat or fixed folderFiles live in the PostgreSQL filestore, no folders
Attachment offloadingOptional per-model offload, filestore copy dropped, backups shrinkBuildable but you handle serving/proxying yourselfRarely offered — most only mirrorAll attachments stay in the filestore
Odoo version & edition fitBuilt for your exact 17/18/19, Community or EnterpriseWhatever you build forMay lag new Odoo releases or need paid upgradesShips with core, no Dropbox
Security & access control`ir.model.access.csv` + record rules, encrypted OAuth tokensYour responsibility to implement correctlyVaries; token handling not always transparentStandard attachment ACLs only
Shared-link generationOne-click on record, stored in compute field, re-mintableExtra work to wire into the UISometimes available, often manualNot available
Support & ownershipPost-go-live support window + git repo handover, code is yoursYou own it but also own all maintenanceVendor-dependent; source often obfuscatedCommunity/Enterprise support, no Dropbox feature
Delivery modelBuild-to-order, scoped to you, one working week from confirmed scopeFull project timeline, you manage itInstant download but generic fitAlready installed, missing the capability

Frequently Asked Questions about Dropbox Integration

Is this an app I can download and install right now?

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.

How long does delivery take?

Typical delivery is one working week 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.

Does it work with my version of Odoo and with Community or Enterprise?

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.

Is the sync really two-way?

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.

How do you get support and updates after go-live?

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.

Is it secure, and who can trigger a sync or create a shared link?

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.

Will offloading attachments to Dropbox break existing downloads in Odoo?

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.

Request a quote

Dropbox Integration

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.

  • 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

Request a Quotation

Tell us about your Dropbox Integration requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.