Skip to content
ERP ⇄ Storage

Odoo to Sharepoint integration — real-time, two-way sync

Keep Odoo and Sharepoint in sync without custom scripts. Cut weeks of integration work, eliminate silent data drift, and give your team a single, reliable source of truth.

  • SOC 2 and 6 other compliance frameworks
  • POC with real engineers in minutes

Adopted by fast-scaling companies moving mission-critical data in real time

Case study
Migrated from MuleSoft
Case study
Migrated from Celigo
Migrated from Heroku Connect
Migrated from Matillion
Case study
Migrated from Fivetran
Case study
Migrated from Celigo
Why teams connect Odoo and Sharepoint

Move the documents and data that Odoo produces into Sharepoint as files, and let files stored in Sharepoint update the records they belong to in Odoo, continuously and without exports or manual filing.

Odoo runs the business on structured records: Projects and Tasks (project.project / project.task), Contacts (res.partner), Sales Orders (sale.order), Invoices (account.move). Sharepoint holds files and the metadata that describes them: List items, Drive items (document libraries), Columns and content types, Permissions and sharing. 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 Sharepoint, 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 Projects and Tasks (project.project / project.task), Contacts (res.partner), Sales Orders (sale.order), Invoices (account.move) in Odoo and List items, Drive items (document libraries), Columns and content types, Permissions and sharing in Sharepoint 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 Sharepoint 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 Sharepoint never describe two different versions of the same document.

Common use cases

  • 01 Keep product and price list data aligned between Odoo and storefronts or marketplaces.
  • 02 Sync employee records from an HR system of record into Odoo for expense and timesheet workflows.
  • 03 Stream list and library changes through delta query and change-notification webhooks into a warehouse for audit, access-review, and reporting.
  • 04 Two-way sync SharePoint List items with a database table so internal apps read and write structured records in SQL without calling the SharePoint API directly.

Common sync patterns

Metadata that files itself

Record fields from Odoo, like customer, date, amount, type, and reference number, become the metadata and tags on the stored file in Sharepoint, so storage stays organized without anyone tagging by hand.

Where Sharepoint captures inbound files: details reach the record

A contract, vendor bill, or receipt added to Sharepoint with its details can create or update the matching record in Odoo, so a document captured outside the finance system still reaches the books.

An archive that stays current

As records change in Odoo, the corresponding files and metadata in Sharepoint are kept in step, so a stored document reflects the latest version rather than a stale one-time export.

What you can sync between Odoo and Sharepoint

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.

Odoo objects Sharepoint objects How this pairing syncs
Employees (hr.employee) HR records read for directory and provisioning syncs. Permissions and sharing Role assignments and sharing links on sites, list items, and drive items; read and written to manage access, requiring Sites.Manage.All or Sites.FullControl.All scopes. Employees (hr.employee) is specific to Odoo and Permissions and sharing to Sharepoint — each maps to any object or custom field on the other side.
Projects and Tasks (project.project / project.task) Work items synced with external project tools. Site pages Modern site pages via /sites/{id}/pages; read page content, layout, and metadata for indexing and content governance. Projects and Tasks (project.project / project.task) is specific to Odoo and Site pages to Sharepoint — each maps to any object or custom field on the other side.
Contacts (res.partner) The unified person/company record used across sales, invoicing, and purchasing; the anchor for CRM syncs. Sites SharePoint site collections and subsites via /sites; read site properties and discover the document libraries (drives) and lists each site contains, addressed by hostname and site path or site ID. Contacts (res.partner) is specific to Odoo and Sites to Sharepoint — each maps to any object or custom field on the other side.
Sales Orders (sale.order) Quotations and confirmed orders synced with e-commerce and external CRMs. Lists Custom lists and libraries via /sites/{id}/lists; create and read lists along with their columns and content types so a target system can mirror or provision list definitions. Sales Orders (sale.order) is specific to Odoo and Lists to Sharepoint — each maps to any object or custom field on the other side.
Invoices (account.move) Customer invoices and journal entries synced with accounting and reporting tools. List items Rows in a SharePoint list via /lists/{id}/items with a fields facet of column values; full create, read, update, and delete, synced two-way with database rows. Invoices (account.move) is specific to Odoo and List items to Sharepoint — each maps to any object or custom field on the other side.
Products (product.template / product.product) Catalog and variant data distributed to storefronts and quoting tools. Drive items (document libraries) Files and folders in a library's drive via /drives and /drive/root; upload, download, move, delete, and read per-item metadata, synced two-way with a store. Products (product.template / product.product) is specific to Odoo and Drive items (document libraries) to Sharepoint — each maps to any object or custom field on the other side.

How changes propagate between Odoo and Sharepoint

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.

Odoo Sharepoint Sub-second propagation

DetectionOdoo notifies Stacksync of record changes through webhook events. Polling on the write_date timestamp every record carries.

DeliveryEach detected change is written to Sharepoint through its API, with automatic retries and rate-limit backoff.

Sharepoint Odoo Sub-second propagation

DetectionSharepoint notifies Stacksync of record changes through webhook events. Delta query (pull) tracks created, updated, and deleted list items (/lists/{id}/items/delta) and drive items (/drives/{id}/root/delta) since the last.

DeliveryEach detected change is written to Odoo through its API, with automatic retries and rate-limit backoff.

Rate-limit considerations

  • Odoo: Self-hosted instances have no fixed rate limits; Odoo Online is subject to the platform's fair-use limits.
  • Sharepoint: SharePoint Online throttles per app, returning HTTP 429 (or 503) with a Retry-After header in seconds and IETF RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers; throttled requests still count toward limits, so clients honor the greater of Retry-After and RateLimit-Reset with exponential backoff.
What ships with Odoo ⇄ Sharepoint

Connect Odoo and Sharepoint for flexible, real-time data sync.

Real-time sync, workflow automation, event queues, EDI, and monitoring, for every Odoo–Sharepoint connection.

Real-time

Two-way sync

Changes in Odoo or Sharepoint instantly reflect in both systems. No stale data, no manual imports.

No-code + pro-code

Workflow automation

Trigger automated workflows whenever Odoo or Sharepoint data changes, update records, fire webhooks, or kick off sequences without brittle API scripts.

At scale

Event queues

Handle millions of events per minute without losing a single Odoo or Sharepoint record.

Observability

Monitoring

Track your Odoo ⇄ Sharepoint sync health, view errors, and replay failed events in one click.

Trading partners

EDI

Transform legacy EDI complexity into simple database interactions between Odoo and Sharepoint.

How the Odoo and Sharepoint connectors work

Odoo

Integration surface
XML-RPC and JSON-RPC external API exposing the full ORM (search_read, create, write, unlink)
Authentication
Database user credentials or per-user API keys
Change detection
Polling on the write_date timestamp every record carries; recent versions can also send outbound webhooks from automation rules
Capabilities
read · write · webhooks
Rate limits
Self-hosted instances have no fixed rate limits; Odoo Online is subject to the platform's fair-use limits

Sharepoint

Integration surface
Microsoft Graph REST API (graph.microsoft.com/v1.0 and beta) covering SharePoint sites, lists, list items, columns, content types, and document-library drives and drive items; plus the classic SharePoint REST API (_api/web) and CSOM. Supports Graph JSON $batch (up to 20 requests per call).
Authentication
OAuth 2.0 via the Microsoft identity platform (Microsoft Entra ID). An app registration holds delegated or application (app-only) scopes such as Sites.Read.All, Sites.ReadWrite.All, Sites.Selected, Sites.Manage.All, or Sites.FullControl.All, plus Files.ReadWrite.All for drive content; application permissions require tenant admin consent.
Change detection
Delta query (pull) tracks created, updated, and deleted list items (/lists/{id}/items/delta) and drive items (/drives/{id}/root/delta) since the last deltaLink; change-notification subscriptions (push webhooks) POST near-real-time notifications for list and drive/root changes to a notification URL and must be renewed before they expire. Classic SharePoint list webhooks are also available.
Capabilities
read · write · webhooks
Rate limits
SharePoint Online throttles per app, returning HTTP 429 (or 503) with a Retry-After header in seconds and IETF RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers; throttled requests still count toward limits, so clients honor the greater of Retry-After and RateLimit-Reset with exponential backoff.
How it works

How to connect Odoo to Sharepoint — three steps, no code

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.

  1. 01

    Connect your apps

    Authenticate Odoo and Sharepoint with each platform's native method — OAuth, API keys, or service accounts — plus secure options like SSH tunneling, IP whitelisting, and VPC peering.

    • OAuth 2.0
    • SSH tunnel
    • VPC peering
    Odoo connected
    Sharepoint connected
    OAuth 2.0
    SSH tunnel
    SSL certificate
    VPC peering
  2. 02

    Choose tables

    Pick the Odoo and Sharepoint 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.

    • Standard objects
    • Custom objects
    • Auto-schema
    objects · Odoo ⇄ Sharepoint
    Customers 12,480
    Sales Orders 8,213
    Invoices 5,902
    Items 1,344
  3. 03

    Map fields

    Fields map automatically even when names and types differ. Stacksync handles transformation and type casting for you, zero configuration required.

    • Auto-map
    • Type casting
    • Transforms
    Odoo Sharepoint
    Company company_name text
    Email email text
    Amount amount numeric
    Created created_at timestamp
FAQ

Odoo and Sharepoint integration FAQ

SECURITY

Security teams trust Stacksync

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.

SOC 2 Type II
ISO 27001
HIPAA BAA
GDPR
CCPA
DPF US-EU-UK-CH
→ SECURITY WITH BENEFITS

SSO & SCIM

Let your users access Stacksync from your centralized user management systems. Works with Okta, Azure, Google SSO and more.

Alerts

Immediately get alerted about record syncing issues over email, Slack, PagerDuty and WhatsApp. Resolve issues from a centralized dashboard with retry and revert options.

Secure connection options

Securely connects to your systems with:

Related integrations

Every pair below is a real-time, two-way sync. Search all 511 integrations available for Odoo and Sharepoint.

Popular · 7 of 511
Coworkers laughing in front of a laptop in a casual office setting

Your last integration took months.
Your next one takes a prompt.