Skip to Content
Menu

233.29

v 19.0 Third Party
This module requires Odoo Enterprise Edition.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Documents (documents)
Lines of code 9063
Technical Name sharepoint_sync
LicenseOPL-1
Websitehttps://syntaxandsabotage.io
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Discuss (mail)
Documents (documents)
Lines of code 9063
Technical Name sharepoint_sync
LicenseOPL-1
Websitehttps://syntaxandsabotage.io

SharePoint Sync

Professional Bidirectional Synchronization for Odoo Documents

Seamlessly connect Odoo Documents with Microsoft SharePoint and OneDrive. Maintain perfect synchronization across platforms with OAuth2 security, intelligent conflict resolution, and automated workflows.

SharePoint Sync Banner

Why Choose SharePoint Sync?

Bidirectional Sync

Automatic two-way synchronization keeps your documents consistent across Odoo and SharePoint without manual intervention.

🔒

Enterprise Security

OAuth2 authentication with Microsoft Graph API ensures enterprise-grade security with encrypted token storage.

Real-Time Updates

Configurable sync intervals (5-240 minutes) ensure your documents are always up-to-date across both platforms.

📈

Smart Prioritization

Intelligent priority scoring ensures important documents sync first for optimal performance.

Conflict Resolution

Detects concurrent modifications automatically with multiple resolution strategies.

Deletion Tracking

Complete audit trail for all deletions with one-click restore capability.


Intelligent Workspace Mapping

Effortlessly map Odoo workspaces to SharePoint libraries with automatic discovery and library browsing capabilities.

Automatic SharePoint library discovery
Support for Communication Sites and Team Sites
OneDrive for Business integration
Multi-site configuration
Automatic folder structure replication
Workspace Configuration

Sync Dashboard

Comprehensive Monitoring Dashboard

Track sync operations in real-time with detailed status information, performance metrics, and diagnostic tools.

📈

Performance Metrics

Monitor sync speed, document counts, and API usage.

📄

Activity Logs

Complete history of all sync operations with detailed error logs.

📊

Document Comparison

Real-time comparison of document counts between platforms.


Enterprise-Grade Security

OAuth2 authentication through Microsoft Graph API provides secure, token-based access without exposing credentials.

🔒

OAuth2 Flow

Industry-standard authentication protocol with automatic token refresh.

🔑

Encrypted Storage

Client secrets and tokens are encrypted in the database.

Azure AD Integration

Seamless integration with Microsoft Azure Active Directory.

OAuth2 Authentication

Deletion Log

Deletion Tracking & Recovery

Never lose important documents with comprehensive deletion tracking and instant restore capabilities.

Complete audit trail for all deletions
Deletion type classification (sync vs manual)
One-click restore with full metadata
Advanced filtering by user, date, workspace
User accountability tracking

Advanced Features

📁

Automatic Folder Creation

Creates folders automatically when moving files between platforms.

🔍

Smart File Filtering

Automatically excludes temporary files and system files from synchronization.

👥

Multi-User Support

Track who made changes with comprehensive user activity logging.

Flexible Configuration

Customize sync intervals, conflict resolution strategies, and priority settings.

Metadata Preservation

Maintains file metadata including tags and categories across both platforms.

High Performance

Optimized for large document libraries with intelligent batching.


Real-World Use Cases

💼

Sales Operations

Synchronize proposals, contracts, and presentations between Odoo CRM and SharePoint. Enable seamless collaboration with Microsoft Teams.

📄

Project Management

Keep project documentation synchronized between Odoo Projects and SharePoint team sites. Distributed teams can collaborate in their preferred platform.

🏭

Manufacturing

Sync technical documentation, BOMs, quality records, and engineering specifications between Odoo MRP and SharePoint engineering libraries.

Legal & Compliance

Maintain synchronized copies of contracts, policies, and compliance documentation with complete audit trails.


Requirements

💻

Odoo Platform

  • Odoo 19.0 Enterprise Edition
  • Documents module (included)
  • Valid Enterprise subscription
  • Python 3.8 or higher
📡

Microsoft Infrastructure

  • Microsoft 365 subscription
  • SharePoint Online or OneDrive
  • Azure AD application
  • Microsoft Graph API access
🐍

Python Dependencies

  • requests - HTTP client
  • msal - Microsoft auth
  • cryptography - Encryption

Auto-installed via pip


Quick Start Configuration

1

Azure AD Application Setup

Register a new application in Azure Portal (portal.azure.com). Navigate to Azure Active Directory → App registrations → New registration. Record your Tenant ID and Client ID.

2

Configure API Permissions

In your Azure app, add Microsoft Graph API permissions: Files.ReadWrite.All, Sites.ReadWrite.All, User.Read. Grant admin consent for your organization.

3

Install Module in Odoo

Install SharePoint Sync from Odoo Apps. Navigate to Documents → Configuration → SharePoint Auth. Create a new authentication record and enter your Azure credentials.

4

Map Workspaces to SharePoint Libraries

Go to Documents → Configuration → SharePoint Workspaces. Create workspace mappings using the automatic library discovery feature.

5

Enable Automatic Synchronization

In each workspace configuration, enable automatic sync and select your preferred interval (5-240 minutes). Monitor status via the Sync Dashboard.


Ready to Transform Your Document Workflow?

€199 one-time purchase

Includes lifetime updates for Odoo 19 • No recurring fees • 30-day support

Install in minutes Enterprise-grade security Professional support

Support & Resources

💬

Professional Support

Get help from our team of Odoo and SharePoint experts.

support@syntaxandsabotage.io
🌐

Website

Visit our website for more enterprise Odoo solutions.

syntaxandsabotage.io →

Made with by Syntax & Sabotage

Professional Odoo Development & Integration Services

SharePoint Sync Documentation

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

Overview

SharePoint Sync seamlessly integrates Odoo's Document Management System with Microsoft SharePoint Online and OneDrive, enabling automatic bidirectional synchronization of documents and folders with enterprise-grade security through OAuth2 authentication.

Key Features

Synchronization

  • Bidirectional Sync: Automatic two-way synchronization between Odoo and SharePoint
  • Smart Conflict Resolution: Intelligent handling of concurrent edits with multiple resolution strategies
  • Auto-Sync: Configurable automatic sync intervals (5-240 minutes)
  • Background Processing: Queue-based asynchronous syncing for optimal performance
  • Folder Structure Preservation: Maintains Odoo folder hierarchy in SharePoint

Security & Authentication

  • OAuth2 Authentication: Secure Microsoft Graph API integration via Azure AD
  • Encrypted Storage: Client secrets and tokens encrypted in the database
  • Token Management: Automatic token refresh and expiration handling

Monitoring & Management

  • Sync Dashboard: Real-time monitoring of sync status with performance metrics
  • Activity Logs: Complete history of all sync operations with detailed error logs
  • Deletion Logging: Track and restore deleted documents with full audit trail
  • Performance Metrics: Monitor sync speed, document counts, and API usage

Enterprise Features

  • Workspace Mapping: Map multiple Odoo workspaces to SharePoint libraries
  • Communication Sites Support: Full support for SharePoint Communication Sites and Team Sites
  • OneDrive for Business: Integration with OneDrive for Business
  • File Filtering: Automatic exclusion of temporary and system files
  • Multi-User Support: Track who made changes with comprehensive user activity logging

Prerequisites

System Requirements

  • Odoo 19.0 Enterprise Edition with Documents module
  • Python 3.8 or higher
  • Microsoft 365 subscription with SharePoint Online or OneDrive
  • Azure AD application with appropriate permissions

Azure AD Configuration

Your Azure AD application must have the following Microsoft Graph API permissions:

  • Files.ReadWrite.All - Read and write files in all site collections
  • Sites.ReadWrite.All - Read and write items in all site collections
  • User.Read - Sign in and read user profile

Note

Admin consent is required for your organization to use these permissions.

Installation

Step 1: Install Python Dependencies

The module requires three Python packages:

pip install msal requests cryptography
  • msal: Microsoft Authentication Library for OAuth2
  • requests: HTTP client for Graph API calls
  • cryptography: Encryption for token storage

Step 2: Install Module in Odoo

  1. Download the module from the Odoo App Store
  2. Navigate to Apps in Odoo
  3. Click Update Apps List
  4. Search for "SharePoint Sync"
  5. Click Install

The module will automatically install with the Documents module as a dependency.

Step 3: Azure AD Application Setup

  1. Log in to Azure Portal at https://portal.azure.com
  2. Navigate to Azure Active DirectoryApp registrations
  3. Click New registration
  4. Configure your application:
    • Name: Odoo SharePoint Sync
    • Supported account types: Single tenant
    • Redirect URI: https://your-odoo-domain.com/sharepoint/oauth/callback
  5. Record your Tenant ID and Client ID
  6. Create a Client Secret under Certificates & secrets

Step 4: Configure API Permissions

In your Azure app:

  1. Go to API permissionsAdd a permission
  2. Select Microsoft GraphDelegated permissions
  3. Add the following permissions:
    • Files.ReadWrite.All
    • Sites.ReadWrite.All
    • User.Read
  4. Click Grant admin consent for [Your Organization]

Configuration

Step 1: Create SharePoint Authentication

  1. In Odoo, go to DocumentsConfigurationSharePoint Auth
  2. Click Create and fill in:
    • Name: Descriptive name (e.g., "Main SharePoint")
    • Tenant ID: From Azure AD
    • Client ID: From Azure AD
    • Client Secret: From Azure AD
    • Redirect URI: Your Odoo callback URL
  3. Click Authenticate
  4. Sign in with your Microsoft 365 account
  5. Consent to the requested permissions

Tip

Use a service account for authentication to avoid interruptions if a user leaves the organization.

Step 2: Create Workspace Configuration

  1. Go to DocumentsConfigurationSharePoint Workspaces
  2. Click Create and configure:
    • Name: Descriptive name for this mapping
    • Authentication: Select the auth record created above
    • Odoo Workspace: Select the Documents workspace to sync
    • Site URL: Your SharePoint site URL
    • Library: Click "Load Libraries" to auto-discover
  3. Enable Automatic Sync and set your preferred interval
  4. Click Save

Step 3: Discover SharePoint Libraries

The module can automatically discover available SharePoint libraries:

  1. In the workspace configuration, enter your Site URL
  2. Click Load SharePoint Libraries
  3. Select the desired library from the dropdown

Note

The system supports Communication Sites, Team Sites, and OneDrive for Business.

Step 4: Initial Synchronization

  1. Go to DocumentsSharePointSync Dashboard
  2. Click Sync Now to start the initial sync
  3. Monitor the progress in real-time
  4. Review the Activity Log for any errors or conflicts

Features Guide

Bidirectional Synchronization

Files are synchronized in both directions:

Odoo → SharePoint:

  • New files uploaded to Odoo are automatically sent to SharePoint
  • Modifications in Odoo trigger updates in SharePoint
  • File moves in Odoo update the SharePoint folder structure
  • Deletions in Odoo can propagate to SharePoint (configurable)

SharePoint → Odoo:

  • New files in SharePoint appear in Odoo automatically
  • Modifications in SharePoint update Odoo documents
  • Deletions in SharePoint can remove Odoo documents (configurable)

Conflict Resolution

When the same file is modified in both systems simultaneously:

  1. The system detects the conflict using modification timestamps
  2. Configurable resolution strategies:
    • Odoo Wins: Keep Odoo version
    • SharePoint Wins: Keep SharePoint version
    • Newest Wins: Keep most recently modified (default)
    • Manual: Create conflict log for user review
  3. Conflicts are logged in the Activity Log
  4. Users can manually resolve conflicts from the dashboard

Deletion Tracking

All deletions are logged with complete audit trail:

Deletion Log Fields:

  • Document name and path
  • Deletion type (sync vs manual)
  • User who performed deletion
  • Deletion timestamp
  • SharePoint item ID
  • Workspace information

Restore Capability:

  1. Go to DocumentsSharePointDeletion Log
  2. Find the deleted document
  3. Click Restore
  4. The document is recreated in Odoo from SharePoint

Warning

Restore only works if the file still exists in SharePoint's recycle bin.

Sync Dashboard

The dashboard provides real-time monitoring:

Performance Metrics:

  • Total documents synced
  • Sync success rate
  • Average sync time
  • API call count
  • Last sync timestamp

Activity Logs:

  • Detailed log of all sync operations
  • Error messages with full stack traces
  • Filter by date, workspace, or status
  • Export logs for analysis

Document Comparison:

  • Real-time count of documents in Odoo vs SharePoint
  • Identify missing or extra documents
  • Quick sync to resolve discrepancies

File Filtering

The system automatically excludes:

  • Temporary files (~$*.docx, *.tmp)
  • System files (.DS_Store, Thumbs.db)
  • Lock files (.~lock.*)
  • Backup files (*.bak, *.backup)

Custom filters can be added in the workspace configuration.

Troubleshooting

Authentication Issues

Error: "Invalid client secret"

  • Verify the client secret in Azure AD
  • Ensure you copied the secret value, not the secret ID
  • Check if the secret has expired

Error: "Insufficient privileges"

  • Verify API permissions in Azure AD
  • Ensure admin consent has been granted
  • Check the user has access to the SharePoint site

Sync Issues

Files not syncing

  1. Check the Activity Log for errors
  2. Verify the workspace configuration is enabled
  3. Ensure automatic sync is enabled
  4. Check file type is not filtered
  5. Verify SharePoint library permissions

Slow sync performance

  • Reduce sync interval for more frequent smaller syncs
  • Check network connectivity to Microsoft Graph API
  • Review API throttling in the performance metrics
  • Consider excluding large file types

Conflict resolution not working

  • Verify conflict resolution strategy in workspace config
  • Check if both systems have different modification times
  • Review conflict logs in Activity Log
  • Try manual resolution from dashboard

Connection Issues

Error: "Site not found"

  • Verify the SharePoint site URL is correct
  • Ensure the site URL includes /sites/[sitename]
  • Check the authenticated user has access to the site
  • Try the full URL: https://yourdomain.sharepoint.com/sites/sitename

Error: "Library not found"

  • Use the "Load Libraries" button to discover available libraries
  • Verify library name matches exactly (case-sensitive)
  • Check library permissions for the authenticated user

API Reference

For Developers

Models:

  • sharepoint.auth - Authentication credentials
  • sharepoint.workspace.config - Workspace mappings
  • documents.document - Enhanced with sync fields
  • sharepoint.sync.deletion.log - Deletion tracking

Key Methods:

# Trigger manual sync
workspace.action_sync_now()

# Get SharePoint file metadata
document._get_sharepoint_metadata()

# Upload file to SharePoint
document.sync_to_sharepoint()

# Download file from SharePoint
document.sync_from_sharepoint()

Graph API Integration:

The module uses sharepoint.connector for all Graph API calls:

# Get access token
token = connector._get_access_token()

# List SharePoint files
files = connector._graph_request('GET', '/drives/{drive_id}/root/children')

# Upload file
connector._upload_file(file_path, content)

Best Practices

Security

  • Use a dedicated service account for authentication
  • Rotate client secrets regularly (Azure AD best practice: every 6 months)
  • Enable deletion logging to track all changes
  • Review Activity Logs regularly for suspicious activity
  • Restrict SharePoint library permissions to necessary users only

Performance

  • Set sync interval based on your needs (default: 30 minutes)
  • Use file filtering to exclude unnecessary file types
  • Monitor API usage to avoid throttling
  • Schedule intensive operations during off-hours
  • Consider multiple workspace configs for different priorities

Maintenance

  • Review deletion logs monthly
  • Archive old Activity Logs to maintain performance
  • Test authentication before secret expiration
  • Keep module updated to latest version
  • Monitor disk space in both Odoo and SharePoint

Support

Professional Support

Get help from our team of Odoo and SharePoint experts:

  • Email: support@syntaxandsabotage.io
  • Response time: Within 24 hours
  • Includes: Configuration assistance, troubleshooting, custom development

Documentation & Resources

  • Module Documentation: Included with module
  • GitHub Repository: https://github.com/syntax-sabotage/odoo-enterprise-apps
  • Website: https://syntaxandsabotage.io

Frequently Asked Questions

Q: Can I sync with multiple SharePoint sites?

A: Yes, create multiple workspace configurations, each pointing to a different site and library.

Q: What happens if I delete a file in Odoo?

A: By default, the file is also deleted from SharePoint and logged in the deletion log. You can restore it if needed.

Q: Does this work with OneDrive?

A: Yes, the module supports OneDrive for Business using the same authentication and configuration.

Q: Can I sync only specific file types?

A: Yes, use the file filtering feature in workspace configuration to include or exclude specific file types.

Q: What's the maximum file size?

A: The module supports files up to 250 MB (Microsoft Graph API limit). Larger files require chunked upload (contact support).

License

This module is licensed under the Odoo Proprietary License v1.0 (OPL-1).

  • One-time purchase: €199
  • Includes: Lifetime updates for Odoo 19
  • No recurring fees
  • 30-day support included

For commercial licensing inquiries, contact info@syntaxandsabotage.io.

Version History

Version 19.1.1.2.2 (October 3, 2025)

Critical Bug Fixes:

  • Fixed folder structure sync - files now preserve Odoo hierarchy in SharePoint
  • Fixed sp_drive_id assignment - drive ID always populated after sync
  • Fixed bidirectional deletion - proper logging and SharePoint deletion

Testing:

  • All bug fixes verified with comprehensive functional tests
  • Test success rate: 100% (9/9 tests passed)
  • Graph API verification completed

Version 19.1.1.2.1 (September 2025)

  • Initial release for Odoo 19.0
  • Full bidirectional synchronization
  • OAuth2 authentication
  • Deletion logging
  • Conflict resolution
  • Sync dashboard

About

Developer: Syntax & Sabotage

Professional Odoo Development & Integration Services

We specialize in creating enterprise-grade Odoo modules and integrations with third-party systems like Microsoft 365, Google Workspace, and custom APIs.

Contact: info@syntaxandsabotage.io

Website: https://syntaxandsabotage.io

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.