Two-way sync
Changes in Amazon S3 or Odoo instantly reflect in both systems. No stale data, no manual imports.
Keep Amazon S3 and Odoo in sync without custom scripts. Cut weeks of integration work, eliminate silent data drift, and give your team a single, reliable source of truth.
Odoo runs the business on structured records: Purchase Orders (purchase.order), Inventory Transfers (stock.picking), Employees (hr.employee), Projects and Tasks (project.project / project.task). Amazon S3 holds files and the metadata that describes them: Object tags, Object versions, Prefixes (folders), Multipart uploads. The two do not share a customer table or an order ledger. What they share is documents. Nearly every record Odoo touches produces a file that belongs in storage, whether an invoice, a purchase order, a statement, or a shipping doc, and many files that land in Amazon S3, from signed contracts to vendor bills to receipts, describe a transaction Odoo needs to record. Left unconnected, that link is maintained by hand: someone exports a PDF and drags it into a folder, or downloads a file and keys its details into a record.
Stacksync keeps Purchase Orders (purchase.order), Inventory Transfers (stock.picking), Employees (hr.employee), Projects and Tasks (project.project / project.task) in Odoo and Object tags, Object versions, Prefixes (folders), Multipart uploads in Amazon S3 in sync, bi-directionally and in real time. A document and its details, the customer, the type, the date, an amount, an order or invoice number, are mapped field by field, so a file arrives in Amazon S3 already labeled and filed, and metadata captured against a stored file can create or update the matching record in Odoo. Changes on either side show up within seconds, with conflict resolution in place of nightly exports and manual filing.
The result is that a transaction and the document that backs it stay together. Finance, operations, and audit teams find the file behind a record without digging through folders, and the record in Odoo and the file in Amazon S3 never describe two different versions of the same document.
Every transaction's supporting file lives in Amazon S3 beside its metadata, giving finance and audit teams a complete, searchable trail tied back to the record in Odoo.
Files that Odoo produces land in Amazon S3 labeled with the customer, document type, and reference number they belong to, so the right copy is one search away instead of buried in a folder.
Record fields from Odoo, like customer, date, amount, type, and reference number, become the metadata and tags on the stored file in Amazon S3, so storage stays organized without anyone tagging by hand.
Representative objects on each side — any object or custom field can map to any target. Schemas are auto-detected; types are converted between the two systems.
| Amazon S3 objects | Odoo objects | How this pairing syncs | |
|---|---|---|---|
| Buckets Top-level, region-scoped containers that hold objects; enumerated to discover the namespaces and prefixes a sync should cover. | CRM Leads (crm.lead) Leads and opportunities synced with marketing and enrichment systems. | Buckets is specific to Amazon S3 and CRM Leads (crm.lead) to Odoo — each maps to any object or custom field on the other side. | |
| Objects Files stored under a key; content is read with GET and written with PUT, and each object's key/size/ETag/LastModified is the unit indexed into a database. | Purchase Orders (purchase.order) Procurement documents shared with supplier-facing systems. | Objects is specific to Amazon S3 and Purchase Orders (purchase.order) to Odoo — each maps to any object or custom field on the other side. | |
| Object metadata System metadata (Content-Type, size, ETag, LastModified) plus user-defined x-amz-meta-* headers; user metadata is fixed at write time and only changeable by rewriting the object. | Inventory Transfers (stock.picking) Delivery and receipt operations synced for fulfillment visibility. | Object metadata is specific to Amazon S3 and Inventory Transfers (stock.picking) to Odoo — each maps to any object or custom field on the other side. | |
| Object tags Up to 10 key-value tags per object, mutable in place via the tagging API independent of content, so classification and retention labels sync two-way without rewriting files. | Employees (hr.employee) HR records read for directory and provisioning syncs. | Object tags is specific to Amazon S3 and Employees (hr.employee) to Odoo — each maps to any object or custom field on the other side. | |
| Object versions When bucket versioning is enabled every write creates a new version ID; prior versions and delete markers are readable for history and audit syncs. | Projects and Tasks (project.project / project.task) Work items synced with external project tools. | Object versions is specific to Amazon S3 and Projects and Tasks (project.project / project.task) to Odoo — each maps to any object or custom field on the other side. | |
| Prefixes (folders) Logical path segments in object keys used to scope a sync and to parallelize throughput, since S3 rate limits partition by prefix. | Contacts (res.partner) The unified person/company record used across sales, invoicing, and purchasing; the anchor for CRM syncs. | Prefixes (folders) is specific to Amazon S3 and Contacts (res.partner) to Odoo — each maps to any object or custom field on the other side. |
Each direction of the sync is driven by what the source system can signal and what the destination accepts — detection, delivery, and expected latency below.
DetectionAmazon S3 notifies Stacksync of record changes through webhook events. S3 Event Notifications push object-created, object-removed, and object-tagging events to SNS, SQS, Lambda, or EventBridge.
DeliveryEach detected change is written to Odoo through its API, with automatic retries and rate-limit backoff.
DetectionOdoo notifies Stacksync of record changes through webhook events. Polling on the write_date timestamp every record carries.
DeliveryEach detected change is written to Amazon S3 through its API, with automatic retries and rate-limit backoff.
Real-time sync, workflow automation, event queues, EDI, and monitoring, for every Amazon S3–Odoo connection.
Changes in Amazon S3 or Odoo instantly reflect in both systems. No stale data, no manual imports.
Trigger automated workflows whenever Amazon S3 or Odoo data changes, update records, fire webhooks, or kick off sequences without brittle API scripts.
Handle millions of events per minute without losing a single Amazon S3 or Odoo record.
Track your Amazon S3 ⇄ Odoo sync health, view errors, and replay failed events in one click.
Transform legacy EDI complexity into simple database interactions between Amazon S3 and Odoo.
Configure and sync within minutes, no code. Whether you sync 50k or 100M+ records, Stacksync handles the queues, infra, and plumbing. Integrations are non-invasive and need zero setup on your systems.
Authenticate Amazon S3 and Odoo with each platform's native method — OAuth, API keys, or service accounts — plus secure options like SSH tunneling, IP whitelisting, and VPC peering.
Pick the Amazon S3 and Odoo objects to sync — Stacksync auto-detects both schemas, including custom fields where the platform exposes them. Sync to existing tables, or let Stacksync create new ones with ideal data types.
Fields map automatically even when names and types differ. Stacksync handles transformation and type casting for you, zero configuration required.
Yes. Stacksync provides a managed, real-time two-way integration between Amazon S3 and Odoo: authenticate both systems, choose the objects to sync (such as Amazon S3's Buckets and Objects), map fields visually, and changes propagate both ways in milliseconds — no code required.
Odoo: Every record carries create_date and write_date fields, which makes timestamp-based incremental polling reliable across all models. Amazon S3: S3 stores opaque objects, not rows — there is no schema or query language, so listing is done with ListObjectsV2 (1,000 keys per page) and metadata must be indexed externally to be queryable. Stacksync's field mapping accounts for these differences between Amazon S3 and Odoo without custom code.
Stacksync is SOC 2 Type II and ISO 27001 certified with HIPAA BAA support. Data is encrypted in transit, and a zero-persistent-storage architecture means Amazon S3 and Odoo records are not retained after a sync operation.
Stacksync pricing is usage-based and starts at $1,000/month, including the managed Amazon S3 and Odoo connectors, real-time two-way sync, monitoring, and support. That replaces building and maintaining a custom Amazon S3–Odoo integration in-house.
Yes — Stacksync ships production-grade connectors for both Amazon S3 and Odoo. The connectors handle authentication, schema detection, rate limits, and retries; you configure the sync, and Stacksync operates it.
Change detection on Amazon S3: S3 Event Notifications push object-created, object-removed, and object-tagging events to SNS, SQS, Lambda, or EventBridge; there is no modified-since query, so polling relies on each object's LastModified from ListObjectsV2. On Odoo: Polling on the write_date timestamp every record carries; recent versions can also send outbound webhooks from automation rules. Each detected change propagates to the other side in milliseconds, with field-level conflict resolution and an inspectable event log.
As a data company, we understand the importance of keeping your data secure. Stacksync is built with security best practices to keep your data safe at every layer, and is DPF-certified for US, EU, UK and CH data transfers.
Let your users access Stacksync from your centralized user management systems. Works with Okta, Azure, Google SSO and more.
Immediately get alerted about record syncing issues over email, Slack, PagerDuty and WhatsApp. Resolve issues from a centralized dashboard with retry and revert options.
Securely connects to your systems with:
Every pair below is a real-time, two-way sync. Search all 511 integrations available for Amazon S3 and Odoo.