Odoo Office Connector für Microsoft 365

Themenbereiche


Funktionsumfang

Das Open Source ERP System Odoo bildet zwar die meisten Unternehmensprozesse ab, aber als Groupware wird in den meisten Unternehmen Microsoft Exchange mit Outlook als Standard unter Microsoft 365 eingesetzt.

Einschränkung

Diese Lösung läuft ausschließlich mit Microsoft 365 und dem dort integrierten Exchange/Outlook. 

Schnittstelle

In der aktuellen Version V1.0 der Schnittstelle kann auf Benutzer, Outlook-Mail, Outlook-Kalender, Private Kontakte, Gruppen & Directory zugegriffen werden.
Wir beschränken uns in der ersten Version der Schnittstelle aber nur auf Outlook-Mail, Outlook-Kalender, Privater Kontakte.

Der "Odoo Office Connector für Microsoft 365" ist ein Odoo-Modul.
Es bietet jedem Benutzer die Möglichkeit mittels Schnittstellen die Daten manuell oder als zeitgesteuerten Hintergrund-Job mit Office unter Microsoft 365 auszutauschen.
Für den manuellen Abgleich findet sich in Odoo unter Nachrichten entsprechende Aufruf-Buttons. 

Was wird synchronisiert?

Wir gehen dabei vom häufigsten Einsatzszenario aus. Der Exchange Server ist das "führende System" für E-Mails & Termine.
Odoo hingegen hat erfahrungsgemäß als ERP mit CRM-, Einkaufs- und Vertriebsmodulen die bessere Qualität im Bereich der Adressen, da dort alle Interessenten, Kunden und Lieferanten gepflegt sind. 
Folglich ist Odoo im Adressbereich das "führende System". 

Alte nicht versendete E-Mails in der Warteschleife?

Bitte überprüfen Sie, ob nicht versendete Mails in der Warteschleife hängen, sonst kann es passieren, dass nach der Einrichtung diese alle auf einmal versendet werden!

../web#action=110&model=mail.mail&view_type=list&cids=1&menu_id=4

Änderungen in Odoo behalten

Zu Beginn kann es auch sinnvoll sein, Benachrichtigungen erst einmal nur innerhalb von Odoo zu behalten.

Update aller Benutzer
update res_users set notification_type = 'inbox';


E-Mails

Synchronisationsweg: Exchange/Outlook → Odoo

Da mit Outlook eines der besten E-Mailprogramme für Windows, macOS, Browser und auch für iOS und Android verfügbar ist, werden die E-Mail natürlich damit gelesen, geschrieben und verwaltet.
Natürlich können E-Mails auch aus Odoo verschickt werden. Mittels der Schnittstelle im Office 365-Server kann man sich diese E-Mails auch in seinem Outlook-Account wieder zu ordnen. 

Sicher gehören aber nicht alle E-Mails aus Outlook ins Odoo ERP System, sondern nur die Verkaufs-, Einkaufs- oder Projektrelevanten E-Mails.  

Deshalb kann der Anwender in der Schnittstelle je einen Ordner für eingehende und ausgehende E-Mail definieren.
Über eine Regel in Exchange/Outlook kann er bestimmen, welche E-Mails in diesen Ordnern landen.
Natürlich kann der Anwender die E-Mails auch von Hand in diese Ordner kopieren.

Von hier holt der Connector die E-Mails auf Knopfdruck oder in regelmäßigen Abständen ab und ordnet sie Aufgrund der E-Mail-Adresse dem Odoo-Kontakt zu.
Gibt es eine E-Mail-Adresse mehrfach im Odoo, muss der Anwender mittels Auswahl entscheiden, welchem Kontakt diese E-Mail zu zuordnen ist.

Oftmals bekommen mehrere Anwender die gleiche E-Mail. Hier versucht der Connector mittels Abgleich Dubletten zu vermeiden.

Optional können die E-Mails in den Transfer-Ordnern auch automatisch gelöscht werden. 


Die Ordner werden direkt unter Ihrem Benutzerordner angelegt. 

(Screenshot 1: Transferordner) 

Termine

Synchronisationsweg: Exchange/Office 365 → Odoo

Bei Terminen verhält es sich ähnlich wie bei den E-Mails. Outlook ist ein Standard. Deshalb gleicht der Connector die Termine nur vom Outlook zu Odoo ab.
Der Anwender kann den Zeitraum eingrenzen, in dem die Termin abglichen werden. So vermeidet man historischen "Daten-Müll".

Nach erfolgreichem Transfer wird die "Unique-ID" aus Exchange/Office 365 für jeden Termin und Mitarbeiter im Odoo System hinterlegt.
Liegt ein Termin vor, in den mehrere Anwender involviert sind, fasst der Connector diesen Termin auch zum Gruppentermin innerhalb von Odoo zusammen.

 

Kontakte

Synchronisationsweg: Odoo → Exchange/Outlook 365

Ziel ist es, dass jeder Anwender in seinem Outlook Adressbuch eine gute Datenqualität hat und nur die Adressen synchronisiert bekommt, die er für seine tägliche Arbeit tatsächlich benötigt!

Der Anwender kann bei jedem Adressdatensatz (Interessent, Kunden, Lieferant, Ansprechpartner oder Mitarbeiter), auf den er Zugriffsrechte hat, ein Kennzeichen für den Office 365 Transfer setzen.
Dies geschieht über die Standard "Follow-Funktion" von Odoo kann der Anwender Adressen "abonnieren". Vertriebsmitarbeiter können ferner automatisiert alle ihre Kunden abonnieren lassen.
Nach erfolgreichem Transfer wird "Unique-ID" aus Office 365 für jeden Adressdatensatz und Mitarbeiter im Odoo System hinterlegt.
Darüber wird bei Änderungen auf Odoo Seite der Adressdatensatz identifiziert.

Löscht ein Anwender die Adresse auf Office 365 Seite, wird sie erneut synchronisiert bis das Abonnement beendet wird.
Dazu gibt es unter "Ausblick" eine Weiterentwicklungsmöglichkeit.

(Warnung) Bestehende Kontakte im Adressbuch des Anwender werden von der Schnittstelle ignoriert. Doppler muss der Anwender selbst beseitigen.

(Minus) Beendet der Anwender das Abonnement der Adresse wird sie nicht automatisch gelöscht. 
Dies kann der Anwender optional in der Konfiguration einstellen.

Konfiguration

App eq_office365 unter Apps installieren:



Jeder Anwender hat unter seinen persönlichen Einstellungen die Möglichkeit folgende Daten für den Connector zu hinterlegen:

  • Microsoft 365 Benutzername
  • Microsoft 365 Benutzer-Passwort
  • Intervall Häufigkeit (Diese kann aber vom Administrator vordefiniert werden, um Serverlast zu vermeiden)
  • Eingrenzung der Terminübertragung bei vergangenen Terminen
  • Option "E-Mails im Transferordner löschen nach Übertragung "
  • Option "Adressen löschen in Exchange/Office 365 nach Abonnentende"
  • Option "Anreden synchronisieren"

Die weitere Einrichtung muss jeder Benutzer selbst vornehmen. 

Erzeugen der Client ID & Secret

Gehen Sie auf die Seite https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade und melden Sie sich mit Ihrem Office Account an: 

Fügen Sie eine neue App-Registrierung hinzu.

Vergeben Sie einen Namen für Ihre Applikation. (z.B. Office365 Odoo) und wählen Sie den unterstützten Kontentyp


Wählen Sie Web und geben Sie als Umleitungs URL die Url zu Odooo (ihre Domain) plus /office365/authorization ein. (z.B. https://ownerp.io/office365/authorization)


Applikation registrieren.


Die Anwendungs-ID in der Übersicht kopieren und ggf. irgendwo zwischenspeichern, da Sie sie später wieder benötigen.


Generieren Sie auf  Zertifikate & Geheimnisse und erzeugen Sie einen neuen Clientschlüssel (Passwort) und speichern Sie sich dies ebenfalls irgendwo zwischen. (Das PW können Sie allerdings auch beliebig oft neu generieren.) 


Geben Sie dem Clientschlüssel einen beliebigen Namen und wählen Sie das längste Intervall.


Secret kopieren und in Odoo einfügen. (ACHTUNG der Key wird nur einmal angezeigt.)

API Berechtigungen hinzufügen:

 
Gehen Sie auf Microsoft Graph und delegierte Berechtigungen. 
Folgende wählen Sie in der Liste aus. / Choose the following in the list. 

Geben Sie unter Microsoft Graph-Berechtigungen die Delegierten Berechtigungen ein:

  • Calendars.ReadWrite
  • Contacts.ReadWrite
  • Mail.ReadWrite
  • Mail.Send
  • offline_acces

Dieser Vorgang muss pro Office Konto einmal gemacht werden.

Konfiguration in Odoo Benutzermenü in Einstellungen

Gehen Sie in Ihren Benutzer und setzen Sie dort im Tab Office 365 Konto die Anwendungs-ID (Client ID) / Application (client) ID und das Passwort  (Client Secret) ein. 


Ab Odoo Version 13 benötigen Sie ebenfalls die Verzeichnis ID (Mandant) / Directory (tenant) ID

Bestätigen des Zugriffs 

Der Benutzer muss seinen Account nun noch bestätigen. Dies muss immer über den Benutzer selbst (nicht über den Admin!) geschehen. Gehen Sie dazu oben rechts auf Ihren Benutzer und dort auf Einstellungen:





Sie müssen eine positive Bestätigung erhalten. Prüfen Sie ansonsten Ihre Einstellungen. 



Die web.base.url darf nicht mit einem Slash enden!


Sobald der Zugriff gewährt wurde, ist die Checkbox Zugriff gewährt im Benutzer aktiviert. 
Sobald der Zugriff erfolgreich gewährt wurde, erscheint auch der Verbindungstest Button. 


Ist der Zugriff nicht gewährt, erscheint weiter der Zugriff gewähren Button. 

Zugriff gewähren wieder entfernen 

Nutzer mit Administratorrechten können den "Zugriff gewähren" Flag für andere Benutzer über "Bearbeiten" wieder entfernen. 

Zugriff per SQL aufheben
update res_users set eq_access_allowed=false, eq_refresh_token=NULL,
eq_client_id=NULL, eq_client_secret=NULL, eq_tenant_id=NULL where id=XXX;

# XXX = id des Benutzers in Odoo.


Einrichtung durch den Benutzer:

Gehen Sie unter Ihrem Nutzer auf Einstellungen:

Hinterlegen Sie dort Ihre erzeugte Client und Secret ID: 


Gehen Sie anschließend auf Zugriff gewähren, wie oben bereits beschrieben.
Nach der Konfiguration sollten Sie immer 1x den Verbindungstest durchführen. Erst dann werden auch die Verzeichnisse / Transferordner geladen. 


Office Pfade:
Werden automatisch auf der Benutzermaske unter API URLs eingetragen: 


Die Transferordner im Office 365 / Exchange Konto anlegen

Um das Modul korrekt zu nutzen, müssen Sie zuerst zwei Unterordner für den Posteingangs- / Ausgangsordner anlegen.
Eingehender Mailordner und ausgehender Mailordner (diese Ordner haben Sie zuvor angelegt; siehe oben → Screenshot 1: Transferordner) 

Diese Ordner können auch vom Admin in jeden Benutzer hinterlegt werden (siehe unter Administratoreinstellungen).

Starten Sie dann die Synchronisation. 


Im Office Modus werden die Ordnerstrukturen hierarchisch mit Untergliederungen nach Unterordnern angezeigt. 

Mailversand mit Office / Exchange 

Gehen Sie in den Einstellungen unter Allgemeine Einstellungen > Office 365 Einstellungen. Wählen Sie dort anstatt Standard Odoo die Rest API O365 / Exchange aus.



Aktivieren Sie ein Benutzerkonto für die System Standardmails aus allen hinterlegten Office- / Exchange-Accounts aus. Die Mails werden im Ordner
"Gesendet" Ihres Office 365 Accounts hinterlegt (diese Funktionalität gilt nicht für Exchange!) Es kann generell pro System nur Odoo Standard oder Office / Exchange verwendet werden, nicht beides.

Einstellungen für Kontakte

Weitere Einstellungsmöglichkeiten für Kontakte in Ihrem Benutzer: 


Neue Kontakte automatisch in O365 importieren: wird ein Kontakt neu angelegt wird er sofort in den Office / Exchange exportiert 
Adressen nach Ende des Abonnements löschen:  wird der Haken "Import in O365" entfernt, wird der Kontakt auch in dem Office / Exchange Account des Nutzers entfernt
Synchronisieren Rückadresse zu Odoo - im Feld Website wird anstatt dem Feld Website (aus dem Kontakt in Odoo) die direkte URL zu dem Kontakt in Odoo abgebildet (um diese Einstellung nach dem ersten Export nochmals zu ändern, ist ebenfalls eine andere Änderung im Kontakt nötig!)
Anrede nicht synchronisieren - der Nutzer kann selbst entscheiden, ob er Anreden im Anzeigenamen von Kontakten mit synchronisieren will 
Kontaktbilder auch synchronisieren - wenn aktiviert, werden Kontaktbilder auch synchronisiert

Für die korrekte Funktion der Option Synchronisieren Rückadresse zu Odoo muss die web.base.url zwingend ohne / am Ende eingetragen werden. Ansonsten wird die URL falsch gebildet!

Es werden nur Kontakte exportiert die dasFlag "Import in O365" auf true gesetzt haben. In Exchange gilt zusätzlich die Regel, dass nur Kontakte mit einer E-Mail-Adresse synchronisiert werden. 



Mehrere Kontakte anwählen: 

Wählen Sie mehrere Kontakte aus, die Sie in Office / Exchange importieren wollen und wählen Sie die Aktion "Import in O365". 


Mehrere Kontakte abwählen: 

Wählen Sie mehrere Kontakte aus, die Sie nicht mehr in Office / Exchange haben wollen und wählen Sie "Entferne Import in O365". Die Änderung wirkt, sobald der Cronjob das nächste Mal durchläuft oder der Nutzer die Synchronisation manuell startet. 


Filter für importierte Kontakte: 
Die Funktionalität wurde um zwei Filter erweitert, die einem die Kontakte mit dem Flag "Import in O365" oder "Nicht in O365 importiert" anzeigt.

Einstellung für Events / Termine

Wichtig ist es für die Synchronisation der Termine ein Startdatum in den Einstellungen der Benutzer anzugeben, ab welchem Datum importiert werden soll (damit nur benötigte Daten in den Kalender von Odoo importiert werden & Datenmüll zu vermeiden). Sonst wird nichts synchronisiert. Dieses Datum muss jedoch in der Vergangenheit liegen. 



Events aus Daten: Das Startdatum muss immer um einen Tag nach hinten versetzt werden (Grund = Serverzeit). 
Beispiel: Sie wollen Daten ab dem 02.07.2021 synchronisieren. Dann setzen Sie das Datum auf den 01.07.2021. 

Ansicht in Odoo: 


Folgende Felder werden aktuell beim Import der Termine berücksichtigt:

Name - Beschreibung - Ort 
Startdatum & Enddatum bzw. Startzeit & Endzeit
Ganztägig 
Teilnehmer 

Termin in Office / Exchange:

Darstellung in Odoo: 


Wird ein Termin / Besprechung in Office oder Exchange gelöscht, so bleibt der Termin  in Odoo trotzdem enthalten. Wir führen derzeit keine Delete-Funktion aus. Das Löschen müsste durch den Benutzer manuell erfolgen.  

Die Serverzeit ist immer UTC. Dadurch kann es zu zeitlichen Differenzen zwischen Odoo und Office / Exchange kommen. 


Die Cronjobs / geplante Aktionen  

Das Modul bringt einige geplante Aktionen, sogenannte Cronjobs mit sich. Diese finden Sie in den Einstellungen unter Technisch > Geplante Aktionen. 

Diese sind standardmäßig deaktiviert, sobald das Modul installiert wird. Sobald das Modul eingerichtet ist, müssen Sie vom Administrator noch aktiviert werden. 

Zuständigkeiten der einzelnen Jobs: 

Office 365 neue Kontakte imortieren - synchronisiert neue Kontakte

Office 365 Sync Ausgeh. Mailordner  - synchronisiert die ausgehenden E-Mails  

Office 365 Sync  Eingeh. Mailordner  - synchronisiert die eingehenden E-Mails

Das Logging / Protokollierung

Gehen Sie dazu in den Einstellungen unter Benutzer in den jeweiligen Nutzer und aktivieren Sie unter Protokollierung den Log. Es gibt sowohl  ein Logging für die manuellen als auch die autmatischen Prozesse (Cronjobs). 


Einsehen können Sie das Logging dann im Entwicklermodus unter Einstellungen > Technisch > Datenbankstruktur > Protokollierung.



Ähnliche Inhalte

Nach Stichwort filtern

Derzeit gibt es keine Elemente mit den ausgewählten Stichwörtern.