| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Discuss (mail) |
| Lines of code | 738 |
| Technical Name |
atliis_odoo_microsoft_sync |
| License | OPL-1 |
| Website | https://atliis.com/ |
| Versions | 17.0 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Contacts (contacts)
• Discuss (mail) |
| Lines of code | 738 |
| Technical Name |
atliis_odoo_microsoft_sync |
| License | OPL-1 |
| Website | https://atliis.com/ |
| Versions | 17.0 18.0 19.0 |
Microsoft 365 Contacts Sync
Two-way sync: Odoo ↔ Microsoft 365 (Outlook Contacts)
Keep Odoo and Microsoft 365 Outlook Contacts in sync using Microsoft Graph API, with delta sync, conflict resolution, OAuth connection per user, and full sync status tracking on each contact.
Enterprise-grade contact sync between Odoo and Microsoft 365
Bidirectional synchronization with delta processing, per-user OAuth accounts, and full visibility into sync status and errors on every contact record.
Two-Way Contact Sync
Changes in Odoo push to Microsoft 365. Changes in Microsoft 365 pull into Odoo. Uses delta sync so only changed contacts are processed on each run.
Per-User Microsoft Connection
Each Odoo user connects their own Microsoft 365 account using OAuth 2.0 for secure, isolated contact synchronization.
Manual, Bulk & Scheduled Sync
Sync a single contact from its form, sync selected contacts via the Actions menu, or enable the scheduled action for automatic sync.
Sync Status & Error Tracking
Review Microsoft sync status, sync timestamps, and error details directly from the contact record for easier troubleshooting.
One contact record, always in sync across both platforms
No manual exports, no duplicate maintenance. Your team works in Odoo, their contacts stay current in Outlook — automatically.
Delta Sync
Only changed contacts are fetched on each run — no full contact list download on every sync, keeping performance fast even with large contact sets.
Secure OAuth Per User
Each user authenticates with their own Microsoft account. No shared credentials, no admin tokens — each connection is individually authorized.
Conflict Resolution
If both Odoo and Microsoft 365 update the same contact simultaneously, Odoo wins — giving your CRM data the final say.
Setup and sync workflow
Follow these steps to connect Microsoft 365, configure the sync, and start syncing contacts between Odoo and Outlook.
Before You Start — Get Microsoft Graph API Credentials
To connect Odoo with Microsoft Graph API, create an app registration in Microsoft Azure and copy the Client ID and Client Secret into Odoo. Follow these four phases before configuring Odoo.
1. Create an Azure App Registration
Open the Microsoft Azure Portal, go to Microsoft Entra ID > App registrations, and create a new registration named Odoo or another recognizable name.
2. Add the Redirect URI
Choose Web as the platform type and add this redirect URI: https://your-odoo-domain.com/atliis_microsoft_contact_sync/authentication. Replace the domain with your Odoo database URL.
3. Add Microsoft Graph Permissions
Go to API permissions, add Microsoft Graph delegated permissions for Contacts.ReadWrite, offline_access, and openid, then grant admin consent if your tenant requires it.
4. Copy the Client ID and Client Secret
Copy the Application (client) ID from the app overview. Go to Certificates & secrets, create a new client secret, and copy the Value immediately — it is shown only once.
For additional Azure OAuth guidance, see the official Odoo documentation: Connect Microsoft Outlook 365 to Odoo using Azure OAuth.
Configure Contacts Sync
Go to Settings, open the Microsoft 365 Contacts Sync configuration, paste the Client ID and Client Secret, and save your changes.
These credentials link Odoo to your Azure app registration and are shared across all users who connect their Microsoft accounts.
Connect Microsoft 365
Open the user preferences or user form and connect the Odoo user with their Microsoft 365 account through OAuth 2.0.
Each user authenticates independently. Once connected, their Odoo contact changes will sync to their personal Outlook Contacts folder.
Sync an Individual Contact
Open any contact and use the Microsoft 365 sync button to push that contact to the connected Outlook Contacts account.
The contact's sync status, last sync timestamp, and any error message are updated on the contact record after each sync attempt.
Sync Contacts in Bulk
Select multiple contacts from the list view and use the Actions menu to push them to Microsoft 365 in one operation.
Useful for initial setup or re-syncing a group of contacts after making bulk changes in Odoo.
Pull Contacts from Microsoft 365 to Odoo
Open the user form, go to the Microsoft 365 tab, and click Pull from Microsoft 365 to import contacts from Outlook into Odoo.
Delta sync ensures only new or updated contacts are pulled — not the entire contact list on every run.
Install and configure
Install the module, configure Microsoft access credentials, connect each user account, and start syncing contacts.
1. Add the module
Copy atliis_odoo_microsoft_sync into your Odoo addons path.
2. Update Apps
Install the requests Python dependency if needed, restart Odoo, and update the app list.
3. Install
Search for Microsoft 365 Contacts Sync and install the module.
4. Configure
Paste Azure credentials in Settings, connect each user's Microsoft account, and start syncing.
Common questions
Does this module sync contacts both ways?
Yes. Changes made in Odoo are pushed to Microsoft 365, and changes made in Microsoft 365 are pulled back into Odoo. If both sides change at the same time, Odoo wins.
Can each user connect a different Microsoft 365 account?
Yes. The Microsoft account connection is handled per user through OAuth 2.0 — each user authenticates with their own account independently.
Is scheduled automatic sync available?
Yes. A scheduled action is included and can be enabled from Settings > Technical > Scheduled Actions > Sync Contacts with Microsoft 365.
What happens if a synced contact is deleted in Microsoft 365?
The module can re-create the contact in Microsoft 365 on the next sync from Odoo.
I need customisation in this module. How can I request it?
Please contact us at helpdesk@atliis.com to request customisation.
Do I get free support?
Yes, we provide 90 days free support from the date of purchase.
Get in touch with us
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