Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. Documents
  3. SharePoint Sync v 19.0
  4. Sales Conditions FAQ

SharePoint Sync

by Syntax & Sabotage https://praetorx.net , Lars Weiler https://praetorx.net
Odoo

$ 114.39

v 19.0 Third Party 5
This module requires Odoo Enterprise Edition.
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Documents (documents)
Community Apps Dependencies Show
• Foundation
• Praetorx Base
Lines of code 19314
Technical Name sharepoint_sync
LicenseOPL-1
Websitehttps://praetorx.net
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Discuss (mail)
• Documents (documents)
Community Apps Dependencies Show
• Foundation
• Praetorx Base
Lines of code 19314
Technical Name sharepoint_sync
LicenseOPL-1
Websitehttps://praetorx.net
  • Description
  • Documentation
  • License

PraetorX — Document Integration

SharePoint Sync

Bidirectional cloud sync between Odoo Documents and Microsoft SharePoint, OneDrive & Office 365 document libraries — with enterprise-grade conflict resolution and a full audit trail.

SharePoint Sync

New in v19.0.1.3.0 — March 2026

Conflict Resolution Overhaul

✓ 5 configurable conflict policies — Manual Resolution, Newest Wins, Odoo Always Wins, SharePoint Always Wins, Keep Both Copies
✓ Sync Audit Log — Full event history with metadata snapshots and daily retention cleanup
✓ Conflict Resolution Wizard — Bulk-resolve conflicts from document list with strategy selection and preview
✓ Workspace Dashboard — Stat buttons for synced / pending / conflict / failed / quarantined counts with filtered views
✓ State Machine — Validated sync status transitions prevent invalid state changes
✓ Un-quarantine flow — Restore quarantined documents back to pending with a single action
✓ Quiet period — Skip files modified within a configurable window (default 30 s) to avoid partial write conflicts
✓ Deletion policies — Separate configurable policies for remote deletion and local deletion handling

Why SharePoint Sync?

↻

True Bidirectional Sync

Changes made in Odoo propagate to SharePoint, and changes made in SharePoint propagate back — automatically, on a configurable schedule.

🔒

Enterprise Security

OAuth2 via Microsoft Graph API. Client secrets and tokens are encrypted at rest with enterprise-grade encryption. Webhook signatures verified with HMAC-SHA256.

⏰

Real-Time Webhooks

Microsoft Graph webhook subscriptions push change notifications instantly. No polling required. Falls back to scheduled sync when webhooks are unavailable.

⚡

Conflict Resolution

Five configurable conflict policies — from automatic resolution to manual review. Bulk-resolve from the document list with the new conflict wizard.

📄

Full Audit Log

Every upload, download, conflict, resolution, and error is recorded with metadata snapshots. Automatic daily cleanup keeps storage under control.

↺

Deletion Recovery

Configurable deletion policies per workspace. Documents deleted on one side can be quarantined, archived, deleted, or ignored on the other — your choice.

Setup

Intelligent Workspace Mapping

Map Odoo document workspaces to SharePoint libraries using automatic discovery. The module browses your Microsoft 365 tenant and presents available libraries — no manual URL entry required.

✓ Automatic SharePoint library discovery
✓ Communication Sites, Team Sites, OneDrive for Business — any document library
✓ Multi-site configuration across your tenant
✓ Automatic folder structure replication in both directions
✓ Smart file filtering — temporary and system files excluded automatically
Workspace Configuration
Sync Dashboard

Monitoring

Workspace Dashboard

Each workspace shows live stat buttons for every sync state. Click a count to open a pre-filtered document list — no manual searching required.

Synced / Pending / Conflict / Failed / Quarantined

Five stat buttons per workspace, each linking directly to the matching filtered view.

Performance Metrics

Track sync speed, document counts, and API usage at a glance.

Sync Audit Log

Complete event history: uploads, downloads, conflicts, resolutions, and errors — with metadata snapshots for every event.

Security

Enterprise-Grade Authentication

OAuth2 authentication through Microsoft Graph API provides secure, token-based access. No passwords stored — tokens are encrypted in the database and refreshed automatically.

Encrypted Token Storage

Client secrets and access tokens are encrypted at rest. Automatic token refresh — no manual re-authentication needed.

Webhook Security

HMAC-SHA256 signature validation (optional), IP whitelisting with CIDR support, and rate limiting (100 req/min).

Azure AD / Entra ID Integration

Register one Azure app, grant the required Graph API permissions, and connect. Works with any Microsoft 365 tenant.

OAuth2 Authentication
Deletion Log

Recovery

Deletion Tracking & Recovery

Every deletion — whether triggered by sync or by a user — is logged with full context. Configure independently what happens when a file is deleted on each side.

✓ Complete audit trail for all deletions with type classification
✓ Remote deletion policy: quarantine / archive / delete / ignore
✓ Local deletion policy: ignore / delete from SharePoint
✓ Un-quarantine flow: restore quarantined documents back to pending
✓ Filter by user, date range, workspace, or deletion type

Complete Feature Set

Everything you need for production-grade document synchronization.

Sync Engine

✓Bidirectional file sync (upload + download)
✓Background queue processing via praetorx_base
✓Configurable sync interval (5–240 minutes)
✓Quiet period to skip recently modified files
✓Smart file filtering (temp / system files excluded)
✓Exponential backoff with jitter on retries
✓N+1 query optimization with prefetch
✓Batch cron processing (100 documents per batch)

Conflict Resolution

✓5 conflict policies (Manual, Newest Wins, Odoo Wins, SP Wins, Keep Both)
✓Conflict Resolution Wizard for bulk handling
✓State machine with validated transitions
✓Automatic detection of concurrent modifications
✓Resolution strategy selectable per workspace

Security & Webhooks

✓OAuth2 via Microsoft Graph API
✓Encrypted token storage
✓Webhook HMAC-SHA256 signature validation
✓IP whitelist with CIDR support
✓Rate limiting (100 req/min webhook, 20 req/min validation)
✓Health check endpoint (/sharepoint/health)

Audit & Observability

✓Sync audit log with metadata snapshots
✓Deletion log with user accountability
✓Workspace stat buttons with filtered document views
✓Structured error codes (SP_AUTH_*, SP_TOKEN_*, SP_SYNC_*)
✓Daily retention cleanup for audit records

Quick Start

Up and running in under 15 minutes.

1

Register an Azure App

In the Azure Portal (portal.azure.com), go to Azure Active Directory → App registrations → New registration. Note your Tenant ID and Client ID.

2

Grant Graph API Permissions

Add Microsoft Graph application permissions: Files.ReadWrite.All, Sites.ReadWrite.All, User.Read. Grant admin consent for your organization.

3

Install & Connect in Odoo

Install SharePoint Sync from Odoo Apps. Go to Documents → Configuration → SharePoint Auth. Create a new authentication record and enter your Tenant ID, Client ID, and Client Secret.

4

Map Workspaces to Libraries

Go to Documents → Configuration → SharePoint Workspaces. Use automatic library discovery to browse your tenant and map Odoo workspaces to SharePoint libraries with a few clicks.

5

Enable Sync & Set Your Conflict Policy

Enable automatic sync on each workspace, choose your preferred sync interval and conflict resolution policy. Monitor live status from the workspace dashboard.

Requirements

Odoo Platform

  • Odoo 19.0 Enterprise Edition
  • Documents module (included)
  • praetorx_base (included)
  • Python 3.11 or higher

Microsoft 365

  • Microsoft 365 subscription
  • SharePoint Online or OneDrive
  • Azure AD / Entra ID app registration
  • Microsoft Graph API access

Python Dependencies

  • requests — HTTP client
  • msal — Microsoft authentication
  • cryptography — Enterprise-grade encryption

Auto-installed via pip on first run.

Pricing

€99

one-time purchase

✓ Lifetime Odoo 19 updates ✓ No recurring fees ✓ Professional support

Support & Resources

Professional Support

Get help from Odoo and SharePoint integration experts.

support@syntaxandsabotage.io

More Odoo Solutions

Browse our full suite of enterprise Odoo integrations and tools.

syntaxandsabotage.io →

Made with ♥ by Syntax & Sabotage

Anbieter: Lars Weiler · Impressum · support@syntaxandsabotage.io

SharePoint Sync Documentation

Professional bidirectional synchronization between Odoo Documents and Microsoft SharePoint/OneDrive.

Table of Contents

  • Overview
  • Key Features
    • Synchronization Engine
    • Conflict Resolution
    • Sync Audit Log
    • Deletion Handling
    • Workspace Dashboard
    • Security & Authentication
  • Prerequisites
    • Python Dependencies
    • Azure AD Permissions
  • Installation
  • Configuration
    • Step 1: Azure AD Application
    • Step 2: SharePoint Authentication in Odoo
    • Step 3: Workspace Configuration
    • Step 4: Monitor
  • Troubleshooting
    • Authentication
    • Sync Issues
    • Connection
  • API Reference
    • Models
    • Key Methods
  • Support
  • License

Overview

SharePoint Sync connects Odoo's Document Management System with Microsoft SharePoint Online and OneDrive for Business. Documents stay in sync across both platforms with configurable conflict resolution, a full audit trail, and enterprise-grade OAuth2 security.

Key Features

Synchronization Engine

  • Bidirectional sync between Odoo Documents and SharePoint libraries
  • 5 conflict policies: Manual Resolution, Newest Wins, Odoo Always Wins, SharePoint Always Wins, Keep Both Copies
  • Quiet period: Skip files modified within a configurable window (default 30 seconds) to avoid syncing in-progress edits
  • Auto-sync: Configurable intervals (5-240 minutes) via scheduled action
  • Real-time sync: Microsoft Graph webhook notifications for instant updates
  • Background processing: Queue-based async syncing via praetorx_base
  • Folder structure preservation: Maintains Odoo folder hierarchy in SharePoint
  • Excluded extensions filter: Comma-separated list (e.g. .tmp,.ds_store,.bak)

Conflict Resolution

  • Workspace-level policies — configure per workspace how conflicts are handled:

    Policy Behavior
    Manual Resolution Surface in conflict queue for user decision
    Newest Wins Compare timestamps, keep the newer version
    Odoo Always Wins Always push the Odoo version to SharePoint
    SP Always Wins Always pull the SharePoint version to Odoo
    Keep Both Copies Fork both versions (Dropbox-style)
  • Conflict Resolution Wizard — bulk-resolve conflicts from the document list with strategy selection and preview of both versions

  • Form-level buttons — resolve individual conflicts with "Keep Local", "Keep Remote", or "Keep Both" directly on the document form

  • State machine — validated sync status transitions prevent invalid state changes

Sync Audit Log

Every sync event is recorded in sharepoint.sync.log:

  • Uploads, downloads, conflict detections, resolutions, deletions, errors
  • Metadata snapshot at event time (checksums, ETags, file sizes)
  • Trigger source (cron, webhook, manual)
  • User who triggered the action
  • Daily retention cleanup (90 days standard, 180 days for conflict entries)

Deletion Handling

  • Remote deletion policy — when a file is deleted in SharePoint:

    Policy Behavior
    Quarantine Move to quarantine folder (default)
    Archive Archive the Odoo document
    Delete Delete from Odoo
    Ignore Keep in Odoo unchanged
  • Local deletion policy — when a file is deleted in Odoo:

    Policy Behavior
    Ignore Keep in SharePoint (default)
    Delete Remote Delete from SharePoint
  • Un-quarantine flow — restore quarantined documents back to pending sync

  • Recycle bin restore — restore from SharePoint's recycle bin if still available

  • Deletion log — complete audit trail with user, timestamp, and type

Workspace Dashboard

  • Stat buttons on workspace config: synced, pending, conflict, failed, quarantined counts
  • Click any stat button to open a filtered document list with the SharePoint sync form
  • Reset stale conflicts button — bulk-reset all conflicts in the workspace
  • All actions use dedicated SharePoint views (not the default Documents/Vault views)

Security & Authentication

  • OAuth2 via Microsoft Graph API with Azure AD application
  • Encrypted storage for client secrets and access tokens (Fernet/AES-128-CBC)
  • Automatic token refresh before expiration
  • Webhook HMAC-SHA256 signature validation (optional — requires webhook_secret)
  • Rate limiting: 100 requests/minute per auth record (in-process; does not persist across restarts or workers)
  • IP whitelist: CIDR support for webhook sources
  • File size validation: Configurable upload limit (default 250 MB)

Prerequisites

  • Odoo 19.0 Enterprise Edition with Documents module
  • Python 3.11+
  • Microsoft 365 subscription with SharePoint Online or OneDrive
  • Azure AD application with Graph API permissions

Python Dependencies

pip install msal requests cryptography

Azure AD Permissions

Your Azure AD application needs these Microsoft Graph Application permissions:

  • Files.ReadWrite.All
  • Sites.ReadWrite.All
  • User.Read

Note

Admin consent is required for your organization.

Installation

  1. Install Python dependencies (see above)
  2. Install "SharePoint Sync" from the Odoo Apps menu
  3. The module installs with documents, mail, and praetorx_base as dependencies

Configuration

Step 1: Azure AD Application

  1. Go to Azure Portal > Azure Active Directory > App registrations
  2. Click New registration
  3. Set name "Odoo SharePoint Sync", single tenant, no redirect URI needed for client credentials
  4. Record your Tenant ID and Client ID
  5. Under Certificates & secrets, create a new client secret
  6. Under API permissions, add Microsoft Graph Application permissions and grant admin consent

Step 2: SharePoint Authentication in Odoo

  1. Navigate to SharePoint Sync > Configuration > OAuth2 Authentication
  2. Create a record with your Tenant ID, Client ID, Client Secret, and SharePoint Site URL
  3. Click Test Connection to verify

Tip

Use a dedicated service account. Avoid personal accounts that may leave the organization.

Step 3: Workspace Configuration

  1. Navigate to SharePoint Sync > Configuration > Workspace Configuration
  2. Create a workspace mapping:
    • Enter your SharePoint Site URL
    • Click Discover Libraries to auto-detect available document libraries
    • Select a library and optionally a subfolder
    • Select the Odoo Documents workspace to map
    • Choose sync direction (Bidirectional recommended)
    • Set the conflict policy (default: Manual Resolution)
    • Configure deletion policies as needed
    • Enable sync and set the interval
  3. Click Test Connection, then Sync Now for the initial sync

Step 4: Monitor

  • Check the Sync Dashboard for document status overview
  • Use the stat buttons on the workspace form for quick filtered views
  • Review the Sync-Protokoll (Sync Log) menu for detailed event history

Troubleshooting

Authentication

  • "Invalid client secret" — verify secret value (not ID), check expiration
  • "Insufficient privileges" — verify API permissions and admin consent
  • Token refresh failing — recreate client secret in Azure AD

Sync Issues

  • Files not syncing — check workspace is enabled, document has sp_enabled = True, file type not filtered
  • Wrong library — verify workspace drive ID matches the intended library
  • Conflicts on every sync — reset stale conflicts via workspace button, check sp_last_sync timestamps

Connection

  • "Site not found" — URL must include /sites/[name], verify user access
  • "Library not found" — use Discover Libraries, check library name matches

API Reference

Models

  • sharepoint.auth — OAuth2 credentials and token management
  • sharepoint.workspace.config — Workspace mappings, policies, sync orchestration
  • sharepoint.sync.log — Sync audit log (uploads, downloads, conflicts, errors)
  • sharepoint.conflict.resolver — Per-conflict resolution records
  • sharepoint.resolve.conflict.wizard — Transient model for bulk conflict resolution
  • sharepoint.connector — Microsoft Graph API client
  • sharepoint.library — Discovered SharePoint document libraries
  • sharepoint.folder — SharePoint folder hierarchy
  • sharepoint.sync.deletion.log — Deletion tracking (legacy, superseded by sync log)
  • documents.document (extended) — SP sync fields, state machine, audit logging

Key Methods

# Sync a document to SharePoint
document.sync_to_sharepoint()

# Check which version is newer (ETag + timestamp comparison)
result = document._check_newer_version()  # 'odoo', 'sharepoint', 'conflict', 'deleted'

# Validated state transition
document._set_sync_status('pending')

# Log a sync event
document._log_sync_event('sync_up', trigger='manual')

# Resolve conflicts via form buttons
document.action_resolve_keep_local()
document.action_resolve_keep_remote()
document.action_resolve_keep_both()

# Workspace-level sync
workspace.action_sync_now()
workspace._perform_bidirectional_sync()

# Reset stale conflicts
workspace.action_reset_stale_conflicts()

Support

  • Email: support@syntaxandsabotage.io
  • Website: syntaxandsabotage.io

License

OPL-1 (Odoo Proprietary License v1.0). One-time purchase, lifetime Odoo 19 updates, no recurring fees.

Odoo Proprietary License v1.0

This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).

You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).

It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.

The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
  • Ratings
  • Discuss
There are no ratings yet!
If you’re using SharePoint anyway, this is a no-brainer.
by
COO
on 3/22/26, 1:21 PM

We’ve been running the SharePoint Sync module for a bit now and honestly it just works.

Setup was easier than expected and once it’s running you kind of forget about it — which is exactly what you want from something like this. Files sync reliably, structure stays intact, and we haven’t run into any weird edge cases so far.

What I like most is that it doesn’t try to be overly complex. It plugs into Odoo cleanly and does its job without getting in the way.

Had one or two questions during setup, support came back quickly and to the point.

If you’re using SharePoint anyway, this is a no-brainer.


Update major odoo versions
by
Daniël Roos
on 3/16/26, 11:29 AM Confirmed Purchase

Good afternoon, I'm considering buying this module twice for my 2 odoo databases. I do have a question. Once a year, Odoo has a major version upgrade. How long would it generally take you to update this module to support the new version? Let's say Odoo 20 comes out in October, will this module be updated before the end of year?

Update major odoo versions
by
Lars Weiler
on 3/16/26, 12:17 PM Author
Hello Daniël,

Yes — we normally update the module shortly after a new major Odoo version is released. If Odoo 20 comes out in October, you can expect the compatible version well before the end of the year.

Best Regards

Lars


Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with