Die Verknüpfung von E-Mails aus Outlook mit Datensätzen aus Dynamics 365 und die dafür technische Voraussetzung der serverseitigen Synchronisierung von E-Mails ist im Netz ausreichend dokumentiert und gut erklärt. Anders sieht das mit der Synchronisierung von Kontakten aus. Deshalb geht es in diesem Artikel genau darum. Wie synchronisiert man Kontakte aus Dynamics 365 mit einer Outlook Kontaktliste. In diesem speziellen Fall sogar mit einer Kontaktliste einer Shared-Mailbox.

Dabei ist der Use-Case gar nicht so exotisch. In diesem speziellen Fall wollte der Kunde die geschäftlichen Kontakte aus Dynamics 365 zum einen mit dem Adressbuch seiner Telefonanlage synchronisieren und zum anderen auch auf seinem Mobiltelefon haben. Da die Telefonanlage eine Funktion hat, Kontakte aus einer Microsoft 365 Shared-Mailbox zu importieren, hieß es für uns die Kontakte aus Dynamics 365 genau dort hin zu bekommen.

Voraussetzungen

Um diese Anleitung komplett durchlaufen zu können, wird folgendes benötigt:

D365 Lizenz für User der Shared-Mailbox

Der User, der oben eingerichtet wurde, benötigt eine Dynamics 365 Lizenz. Hier ist eine Team-Member Lizenz völlig ausreichend. Die Lizenz wird im Microsoft 365 Admin-Center zugeteilt.

Shared-Mailbox D365 Team-Meber Lizenz zuweisen

Dem User der Shared-Mailbox in D365 die benötigten Berechtigungen erteilen

> In der gewünschten Dynamics 365 Umgebung als Administrator anmelden und dann:

> Erweiterte Einstellungen > Einstellungen > Sicherheit > Benutzer > [Benutzer der Shared-Mailbox wählen] > Button "Rollen Verwalten" klicken

Es öffnet sich der Dialog Benutzerrollen verwalten

>> Eintrag "Mitarbeiter" wählen
>> Eintrag "System Customizer" wählen (wird später wieder eintfernt)
>> Ok

Serverseitige Synchronisierung für Kontakte aktivieren

> Erweiterte Einstellungen > Einstellungen > E-Mail-Konfiguration > Postfächer > [Filter Aktive Postfächer] > [Benutzer der Shared-Mailbox] > Klick auf Name des Postfachs

Es öffnet sich der Dialog des Benutzerpostfaches. In diesem Dialog kann nun die Synchronisierung für

  • Eingehende E-Mails
  • Ausgehende E-Mails
  • Termine, Kontakte und Aufgaben

eingestellt werden.

Ich konzentriere mich in dieser Anleitung alleine auf die Synchronisierung der Kontakte und gehe davon aus, dass diese bisher noch nicht eingerichtet wurde.

Sicherstellen, dass das Postfach grundsätzlich synchronisiert werden darf

> Button "E-Mail genehmigen" klicken
> Im Folgedialog "OK"

Postfachkonfiguration, um Termine, Kontakte und Aufgaben serverseitig zu synchronisieren

> Allgemein > Synchronisierungsmethode
> Termin , Kontakte und Aufgaben > "Serverseitige Synchronisierung" wählen
> Button "Speichern" klicken

Postfach zur Synchronisierung aktivieren

> Button "Postfach testen und aktivieren" klicken
>> Im Folgedialog "Wenn dieses Postfach ..." aktivieren
>> Button "OK" klicken

Nach kurzer Zeit - Dialog einfach refreshen - sollte neben

> Konfigurationstestergebnisse > Status von Terminen, Kontakten und Aufgaben > "Erfolg"

zu lesen sein. Damit kann dieser Dialog geschlossen werden.

Ab diesem Zeitpunkt werden alle Kontakte des Benutzers aus Dynamics 365 mit den Kontakten seines Exchange-Online Postfachs synchronisiert. Allerdings eben nur seine Kontakte. Also Kontakte, die in seinem Besitzt sind. Da es sich bei uns um ein Shared-Postfach handelt, wird der entsprechende Dynamics 365 Benutzer keine eigenen Kontakte haben. Wir passen dies nun so an, dass alle aktiven Kontakte der Organisation synchronisiert werden.

Einrichten des Synchronisierungs-Filters

Jeder Dynamics 365 Benutzer hat die Möglichkeit auf die Synchronisierung seines Postfaches Einfluss zu nehmen. Die Standardeinstellung beinhaltet einen Filter, der nur die eigenen Datensätze - Termine, Kontakte, Aufgaben - synchronisiert. Wir möchten nun den Filter für die Kontakte so abändern, dass alle aktiven Kontakte synchronisiert werden.

Dazu wechseln wir zunächst in die Power Apps Entwicklungsumgebung, wählen die entsprechende Umgebung und erstellen eine neue - temporäre - Ansicht.

> Daten > Tabellen > "Kontakt" anklicken
> in den Reiter "Ansichten" wechseln > Button "Ansicht hinzufügen" klicken
>> Name: Alle Outlook Kontakte
>> Beschreibung: Mit Outlook synchronisierte Kontakte
>> Button "Erstellen" klicken
>> Button "Speichern" klicken

> XrmToolBox öffnen, mit mit der entsprechenden Dynamics 365 Umgebung verbinden und das Tool "View Designer" öffnen

> Button "Open" klicken
> Entity "contact" wählen
> View "Alle Outlook Kontakte" wählen
> Button "OK" klicken
> Button "Edit Query" klicken

Damit wechselt man in das Tool "FetchXML Builder"

Query bearbeiten, um alle aktiven Kontakte abzufragen

Dazu wird eine einzige Spalte "contactid" und ein Filter benötigt, der nur die aktiven Kontakte filtert.

> fetch > entitiy contact > [alle Attribute außer "contactid"] löschen
> fetch > entity contact > [rechte Maustaste klicken] > Add > filter klicken
> fetch > entity contact > filter > condition > Node Properties:
>> Attribute > "statecode" wählen
>> Operator > "Equal" wählen
>> Value > "Aktive (0)" wählen
>> Button "Return FetchXML" klicken

Damit wechselt man wieder in das Tool "View Designer"
> Button "Save" klicken
> Button "Publish" klicken

Einrichten der Query als Synchronisierungsfilter für Kontakte für den entsprechenden Benutzer

Wir bleiben in der XrmToolBox

> Tool "Sync Filter Manager" öffnen
> Reiter "System Views" wählen
> Button "Load System Views" klicken
> Name > contact > "Alle Outlook Kontakte" selektieren
> Button "Show FetchXml" klicken

sollte das Ergebnis nicht wie folgt aussehen, wurden die Änderungen von oben nicht übernommen. Dann nochmal die Prozesse ab dem "Fetch XmlBuilder" durchgehen.

> Button "Create" > "Synchronization Filter Template ..." klicken
>> im Dialog "Outlook Template" wählen
>> Button "OK" klicken
>> im Dialog "Do you want..." > Button "Nein" klicken

In das Tool "Sync Filter Manager" in den Reiter "Synchronization Filters Templates" wechseln

> Button "Load Synchronization Filter Templates" klicken
> Outlook template > "Alle Outlook Kontakte" wählen
> Button "Apply to users" klicken
>> Im Folgedialog entsprechenden User suchen und wählen
>> Button "OK" klicken

In das Tool "Sync Filter Manager" in den Reiter "Users Synchronization Filters" wechseln

> Checkbox "Display Outlook Filters" anhaken
> Checkbox "Display Offline Filters" nicht anhaken

> Button "Load Users Synchronization Filters" > "For specific User" klicken
>> im Dialog das entsprechende Postfach suchen und wählen
>> Button "OK" klicken

> Eintrag "Meine Outlook-Kontakte" wählen
> Button "Disable" klicken

Nach spätestens 12 Minuten sollten alle aktiven Dynamics-Kontakte in der Kontaktliste des Benutzers der Shared-Mailbox angezeigt werden.

Aufräumarbeiten

Ansicht "Alle Outlook Kontakte löschen"

> Wechseln in die Power Apps Entwicklungsumgebung
> wählen der entsprechenden Umgebung
> Daten > Tabellen > "Kontakt" anklicken
> in den Reiter "Ansichten" wechseln
> Ansicht "Alle Outlook Kontakte" wählen
> Button "Ansicht löschen" klicken
> im Folgedialog Button "Löschen" klicken

Berechtigung "System Customizer" entziehen

> In der gewünschten Dynamics 365 Umgebung als Administrator anmelden

> Erweiterte Einstellungen > Einstellungen > Sicherheit > Benutzer > [Benutzer der Shared-Mailbox wählen] > Button Rollen Verwalten klicken

>> Es öffnet sich der Dialog Benutzerrollen verwalten
>> Eintrag "System Customizer" abwählen
>> Ok