MyOdoo G Suite Connector

Technischer Name: eq_gsuite

Lizenz: AGPL-3 

Links:
Equitania Fork:  https://gitlab.ownerp.io/v10-myodoo/v10-office365/tree/develop/modules/eq_gsuite 

Funktionsumfang

Der MyOdoo G Suite Connector ist im Funktionsumfang, bis auf ein paar kleine Ausnahmen, welche hier in der Dokumentation beschrieben sind, identisch mit dem MyOdoo Office365 / Exchange Connector. 

Schnittstelle

Als Schnittstelle haben wir uns für eine Kommunikation basierend auf REST entschieden. 

Der "MyOdoo G Suite Connector" ist ein Odoo-Modul. Es bietet jedem Benutzer die Möglichkeit mittels REST-API die Daten manuell oder als zeitgesteuerten Hintergrund-Job mit Gsuite / Gmail auszutauschen.

Was wird synchronisiert?

Wir gehen dabei vom häufigsten Einsatzszenario aus. G Suite 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 (also für Kontakte) das "führende System".  

E-Mails

Synchronisationsweg: Gsuite → Odoo

Termine

Synchronisationsweg:  Gsuite → Odoo

Kontakte

Synchronisationsweg: Odoo → Gsuite

(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 jedoch optional in der Konfiguration einstellen.

Installation

Die App eq_gsuite im Backend unter Apps installieren:


Konfiguration


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

Zugang:

  • Client ID
  • Client Secret
  • Benutzername
  • Passwort
    Kontaktesync
  • Option "Adressen löschen nach Ende des Abonnements löschen (G Suite)
  • Option "Neue Kontakte automatisch in G Suite importieren"
  • Option "Anreden synchronisieren"

Terminsync

  • Datum ab dem die Terminsynchronisierung starten soll (Pflichtfeld!)

Email Sync

  • löscht Emails im Transferordner nach dem Versand 
  • Anzahl eingehende und Anzahl ausgehender Mails 
  • je ein Transferordner für Eingang und Ausgang 


Die Einrichtung seiner Zugangsdaten muss jeder Benutzer selbst vornehmen. 

Administratoren können die Intervall Häufigkeit für die Automatisierungen (Cronjobs → nicht zu häufig, um hohe Serverlast zu vermeiden)) und die Einstellungen für die Protokollierung vornehmen. 
Er kann auch - soweit bekannt - die anderen Zugangsdaten einfügen. Den "Zugriff gewähren" Vorgang über den Button muss allerdings jeder User selbst durchführen.

Erzeugen der Client ID & Secret

Gehen Sie auf die Seite https://console.developers.google.com/  und melden Sie sich dort mit Ihrem G Suite Account an: 

Legen Sie zuerst ein neues Projekt an: 


Aktivieren Sie für dieses Projekt die 3 APIs: Calendar API, Gmail API & Contact API indem Sie auf den Button "+ Enable APIS AND SERVICES" klicken


Sie sehen diese dann in Ihrem Dashboard als Enabled:


Wir können nun die Schlüssel erzeugen: Gehen Sie dazu in der Linken Navigation auf den Punkt Credentials 

und wählen Sie das OAuth Client ID Verfahren

Wählen Sie "Web Application aus" und klicken Sie den Button Create

Geben Sie im nächsten Fenster als autorisierte URL Ihre Odoo URL www.example.io/google_account/authentication ein (im Idealfall die gleiche wie in der Web Base Url in den Systemparametern) und klicken Sie auf Create. 

Geben Sie Ihre Daten (Client ID, Client Secret, Benutzer & Passwort) in Odoo ein und einmal speichern klicken. Menü erneut öffnen und nun auf den Zugriff gewähren Button klicken.


Eine neue Seite öffnet sich. Hier müssen Sie sich nochmals mit den G Suite Anmeldedaten anmelden und die Abfragen bestätigen (zulassen). 

Im Anschluss erhalten Sie eine Rückleitung zu Odoo mit einer Meldung, dass der Vorgang erfolgreich abgeschlossen wurde.
Sollten Sie prüfen Sie nochmals die eingegeben Daten und klicken Sie erneut auf den Zugriff gewähren Button. 


Sie können sich die Client-ID und Client Secret in Ihrem Google Developer Account unter Credentials auf dem Bearbeiten-Stift jederzeit nochmals anzeigen lassen:


Administratoreinstellungen 

Einstellungen im Benutzer

Protokollierung

Alle Einstellungen, die der Benutzer setzen kann, kann auch der Administrator im Backend über Einstellungen > Benutzer über das Tab G Suite Account durchführen.  Er hat außerdem die Möglichkeit die Protokollierung für einzelne Nutzer zu setzen.

 

In G Suite gibt es im Gegensatz zu Office keinen Eventlog, da uns Google diese Info nicht übergibt. 

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

Protokollierung nur gezielt einsetzen - da die Protokollierung sonst schnell rasant auf Unmengen an Einträgen anwächst.


Die Cronjobs / Geplante Aktionen 

In G Suite gibt es 5 Cronjobs unter Einstellungen > Geplante Aktionen. Diese sind identisch mit den Cronjobs im Office365/Exchange connector. 


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

Zuständigkeiten der einzelnen Jobs: 


G Suite Import New Contacts Automatically - führt die Funktion für neue Kontakte aus (wenn Option "Neue Kontakte automatisch in G Suite importieren" = aktiv) 

G Suite Sync Appointments - synchronisiert die Termine / Events

G Suite Sync Contacts - synchronisiert die Kontakte

G Suite Sync E-Mail-In  - synchronisiert die eingehenden E-Mails  

G Suite Sync E-Mail-Out  - synchronisiert die ausgehenden E-Mails

Mailversand mit G Suite 

Ihr Administrator kann für jeden Benutzer den Mailversand auf die G Suite REST API umstellen.

G Suite Account als Standard Mailserver hinterlegen 

Administratoren können einen G Suite Mailaccount als Standardmailserver für den Versand von Systemmails einstellen. 

Die Gesendeten Mails sehen Sie dann im Ordner Einstellungen > Technisch > Emails mit dem Status gesendet. 

 


Die Emails landen ebenfalls im Sent / Gesendet Ordner Ihres Gmail Accounts. 

Einstellungen, die jeder Benutzer selbst vornehmen kann 

Einstellungen für Kontakte 

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


Adressen nach Ende des Abonnements löschen:  wird der Haken "Import in O365" entfernt, wird der Kontakt auch im G Suite Account des Nutzers entfernt
Neue Kontakte automatisch in importieren: 
wird ein Kontakt neu angelegt wird er in G Suite exportiert (sobald der Cronjob G Suite Import New Contacts Automatically läuft)
Anrede nicht synchronisieren - Nutzer kann entscheiden, ob er Anreden im Anzeigenamen von Kontakten mit synchronisieren will 


! Anders als im Office / Exchange  Connector - Felder Rückadresse zu Odoo und Website werden immer beide synchronisiert sofern gesetzt. 


Es werden nur Kontakte exportiert die den Flag "Import in G Suite" auf true gesetzt haben. Es werden alle Kontakte synchronisiert die mindestens einen Namen haben. 


Mehrere Kontakte anwählen: 

Wählen Sie mehrere Kontakte aus, die Sie in G Suite importieren wollen und wählen Sie die Aktion "Import in O365". 


Mehrere Kontakte abwählen / aus Import entfernen: 

Wählen Sie mehrere Kontakte aus, die Sie nicht mehr in G Suite haben wollen und wählen Sie "Entferne Import in G Suite". 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 einen Filter erweitert, der einem die Kontakte mit dem Flag "Import in G Suite" aktiv anzeigt. 


Filter für nicht-importierte Kontakte: 

Filter für Kontakte die nicht synchronisiert wurden. 

Einstellungen 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 zwingend in der Vergangenheit liegen. 

Anschließend können die Termine manuell über den Button "Synchronisiere Termine" in den Benutzereinstellungen


oder direkt über den Button im Kalender in Odoo importiert werden. (Reine G Suite Funktionalität!) 

Die Funktionalität dieser Buttons ist gleich. 

Alternativ erfolgt die automatische Synchronisierung über den Cronjob G Suite Sync Appointments. 

Einstellungen für Mails

Die Transferordner im G Suite Account hinterlegen

Synchronisieren Sie zuerst 1x die Ordnerstrukur aus Ihrem G Suite Account auf dem Button Synchronisiere Ordner. (Labels sind gleichbedeutend mit Ordner in Gmail. Sublabels werden auch synchronisiert.) 


Wählen Sie dann im Dropdownfeld einen der Ordner für ausgehende und eingehende E-Mails aus. Sie können die Anzahl ändern. (initial setzen wir den Wert auf 50)


Starten Sie den Sync manuell über die Buttons "Synchronisiere Email Ausgang" und / oder  "Synchronisiere Email Eingang".

Eingehende Nachrichten landen dann  unter Diskussion unter  Eingehende Nachrichten - ausgehende entsprechend unter Ausgehende Nachrichten


Sie können die Mails nun über die Mehrfachauswahl importieren. 


Option Importiere Mails - nur importieren und den Kontakten zuordnen; bleiben in Odoo Ordnern eingehende / ausgehende Nachrichten drin
Option Importiere Mails & lösche Sie aus G Suite Modell - diese werden dann zugeordnet & aus der Zwischentabelle gelöscht

Die importierten Mails erreichen Sie auch über die Smartbuttons in den Kontakten. 


Oder falls Sie Zugriff haben unter Einstellungen > Technisch > Nachrichten (Modell mail.message) 


Modulvideo

Die ausführliche Vorstellung des Moduls finden Sie auch noch einmal in unserem Youtubevideo: