Dynamik

Dynamics 365-Kundendienstportal: Herausforderungen und Lösungen - Teil 1

Diogo GouveiaProducts and Solutions, Technical Leave a Comment

Microsoft Dynamics 365 Kundendienst bietet eine Reihe von Tools, mit denen Unternehmen ihr Kundenservice-Management optimieren können. Neben der Verbesserung der Kundenerfahrung kann diese Plattform auch bei der Nachverfolgung der Kommunikation und der internen Supportprozesse helfen, wovon sowohl Unternehmen als auch ihre Kunden profitieren.

Ein Microsoft Dynamics 365-Kundendienstportal kann zwar nützlich sein, aber es so zu konfigurieren, dass es den individuellen Anforderungen gerecht wird, kann eine schwierige Aufgabe sein.

Bei Connecting Software haben wir Microsoft Dynamics 365 Kundendienst um unser Unterstützungsportal. Da wir eine bestimmte Vorstellung davon hatten, was wir mit unserem Support-Portal erreichen wollten, werden wir in diesem Artikel den Prozess der Erstellung des Portals durch die Implementierung des Dynamics 365-Kundendienstes detailliert beschreiben und gleichzeitig die Hindernisse aufzeigen, auf die wir auf dem Weg dorthin gestoßen sind, sowie die Lösungen, die wir gefunden haben, um sie am besten zu überwinden.

Dynamics 365-Kundendienstportal Merkmale

Das Dynamics 365-Kundenservice-Portal ermöglicht die Erstellung eines zentralisierten Wissensdatenbankdie eine der Hauptfunktionen unseres Support-Portals ist. Es enthält zuverlässige Informationen über häufige Anwendungsfälle unserer Produkte, die für Kunden leicht zugänglich sind.
Wissensbasis

In Fällen, in denen unsere Kunden in der Wissensdatenbank keine Antwort auf ihre Frage finden, können sie über das Dynamics 365-Kundendienstportal Support-Anfragen erstellen. Aus Kundensicht sind dies die beiden wichtigsten Funktionen unseres Support-Portals.

Für uns liegt der Hauptvorteil jedoch darin, dass wir Informationen über die Nutzung des Supportportals und unserer Softwarelösungen generieren können. Wenn wir z. B. feststellen, dass mehrere Fälle zu einem bestimmten Problem mit einem bestimmten Produkt eingereicht werden, können wir unsere Ressourcen umleiten, um das Problem schnell zu lösen. Handelt es sich nur um eine häufig gestellte Frage (FAQ), können wir sie in die Wissensdatenbank unseres Support-Portals aufnehmen, um die Informationen allen Kunden zur Verfügung zu stellen, die das gleiche Anliegen haben.

So dient das Dynamics 365-Kundenserviceportal als zentrales Instrument zur Bewertung der Qualität unserer Produkte, zur Verbesserung der Kundenzufriedenheit, zur Nachverfolgung von Kundeninteraktionen, zur Gewährleistung des Zugangs zu Informationen, die uns eine kontinuierliche Verbesserung ermöglichen, zur Anpassung unserer Ressourcenplanung und sogar zur Erstellung wertvoller interner Berichte, z. B. zu den Supportkosten pro Produkt.

Werfen wir nun einen Blick auf die Hindernisse, denen wir bei der Implementierung unseres Support-Portals begegnet sind.

Vorkommen #1 – Bestehender Kundenstamm

Die Tatsache, dass wir bereits einen Kundenstamm hatten, als wir mit der Arbeit an dem Support-Portal begannen, erwies sich als problematisch.

Wenn sich ein Kunde zum ersten Mal für unser Portal registriert, wird ein doppelter Kontakt in Microsoft Dynamics 365 (CRM), d. h. in unserer Kundendatenbank, angelegt. Microsoft Dynamics 365 für den Kundendienst verknüpft den doppelten Kontakt nicht von Haus aus mit dem echten Kundenkontakt in unserer Kundendatenbank, so dass die Informationen nicht in einem einzigen Datensatz zentralisiert sind. Dies bedeutete, dass unsere Supportfälle auch nicht mit dem Kontakt verknüpft waren, der mit dem Konto verbunden ist, zu dem wir eine Beziehung haben. Stattdessen wurden sie mit den leeren doppelten Kontakten verknüpft, die als Ergebnis der Registrierung im Support-Portal erstellt wurden.

Dieses Problem hätte durch den automatischen Versand einer Einladung gelöst werden können, die die duplizierten Kontakte erfolgreich mit den echten Kundenkontakten in unserem CRM verknüpft hätte, aber das ist etwas, das von Anfang an beim Aufbau des Kundenstamms hätte gemacht werden müssen. Außerdem ist dies, auch wenn es theoretisch funktioniert, aufgrund der geringen Öffnungsraten von E-Mails keine realistische Lösung. Um die Dinge ins rechte Licht zu rücken: Laut Mailchimp lag die durchschnittliche Öffnungsrate von E-Mails über alle Branchen hinweg bei nur 21.33% im Jahr 2021.

Vielleicht denken Sie auch, dass eine standardmäßige Zusammenführung der Datensätze ausgereicht hätte, aber das ist nicht der Fall, da die Zusammenführung der Informationen der Datensätze in einen Kontakt den Verlust des Zugangs zu unserem Support-Portal zur Folge hätte.

Lösung – Ein Dynamics 365-Plugin

Die andere Möglichkeit, dieses Problem zu lösen, wäre die Erstellung eines benutzerdefinierten Microsoft Dynamics 365-Plugins (in der Power-Apps-Welt als Lösung bezeichnet), und genau das haben wir getan. Das von uns erstellte Plugin prüft bei der Registrierung im Support-Portal, ob der Benutzer bereits in unserem CRM vorhanden ist.

Es gibt zwei mögliche Ergebnisse: Wenn der Benutzer in unserer Datenbank existiert, erkennt das Plugin diese Übereinstimmung und führt die Informationen beider Datensätze zu einem einzigen Kontakt zusammen, ohne dass der Benutzer den Zugang zum Dynamics 365-Kundendienstportal, d. h. zu unserem Supportportal, verliert. Der zweite Kontakt, der zu diesem Zeitpunkt keine Informationen enthält, wird automatisch von dem von uns erstellten Plugin gelöscht, das wöchentlich einen separaten Massenlöschjob ausführt, um die Datensätze zu bereinigen.

Für den Fall, dass der Benutzer, der sich für das Portal anmeldet, nicht in unserem CRM existiert, macht das Plugin etwas anderes. Da wir ein B2B-Unternehmen sind, haben die E-Mails der Kunden in unserer Datenbank eine Domäne, die spezifisch für die Organisationen ist, für die sie arbeiten. Wenn sich also ein Benutzer, der nicht in unserem CRM ist, für unser Portal registrieren möchte, sucht das Plugin in unserem CRM nach der E-Mail-Domäne dieses neuen Benutzers. Wenn es eine Übereinstimmung gibt, wird automatisch ein neuer Kontakt im CRM erstellt, da dieser Benutzer zu einem Unternehmen gehört, das uns bereits bekannt ist. Gibt es dagegen in unserer Datenbank keine Übereinstimmung mit der E-Mail-Domäne des Kunden, der sich für das Support-Portal anmeldet, werden wir intern über den Registrierungsversuch informiert und nehmen bei Bedarf Kontakt auf, um weitere Informationen zu erhalten.

Sie finden einen Teil des Codes für unser Microsoft Dynamics 365 Plugin unter diesem Link. Fühlen Sie sich frei zu sich melden zu uns, wenn Sie die vollständige Version wünschen!

      public void Execute(IServiceProvider serviceProvider)
    {
        var tracingService = (ITracingService) serviceProvider.GetService(typeof(ITracingService));
        var context = (IPluginExecutionContext) serviceProvider.GetService(typeof(IPluginExecutionContext));
        var serviceFactory = (IOrganizationServiceFactory) serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        var service = serviceFactory.CreateOrganizationService(context.UserId);
        if (!context.InputParameters.Contains("Target")) || !(context.InputParameters["Target"] is Entity))
        {
            zurückgeben;
        }

        var entity = (Entity) context.InputParameters["Target"];
        var isLoginEnabled = HasLoginEnabled(Entity);
        
        if (isLoginEnabled == false)
        {
            zurückkehren;
        }

        try
        {
            var emailAddress = (string) entity["emailaddress1"];
            var contactsWithSameEmailAddress = GetContactsByEmailAddress(service, entity.Id, emailAddress);
            if (contactsWithSameEmailAddress.Entities.Count > 0)
            {
                var hasLoginEnabled = HasLoginEnabled(contactsWithSameEmailAddress.Entities[0]);
                if (hasLoginEnabled)
                {
                    throw new InvalidPluginExecutionException(OperationStatus.Failed,
                        "Benutzer existiert bereits. Versuchen Sie, sich mit einer anderen E-Mail-Adresse zu registrieren, oder melden Sie sich bei Ihrem bestehenden Konto an.");
                }

                var mergeRequest = new MergeRequest
                {
                    SubordinateId = entity.Id,
                    Target = new EntityReference("contact", contactsWithSameEmailAddress.Entities[0].Id),
                    UpdateContent = GetUpdateContent(Entität)
                };
                var _ = (MergeResponse) service.Execute(mergeRequest);
                entity[CustomAttributeName] = true;
                service.Update(entity);
            }
            sonst
            {
                var domain = emailAddress.Split('@')[1];
                if (_publicDomains.Contains(domain))
                {
                    SendEmailAndDeactivateContact(service, tracingService, entity);
                }
                sonst
                {
                    var contactsWithSameDomain = GetContactsByDomain(service, entity.Id, domain);
                    if (contactsWithSameDomain.Entities.Count > 0)
                    {
                        entity["parentcustomerid"] = contactsWithSameDomain.Entities[0]["parentcustomerid"];
                        service.Update(entity);
                    }
                    sonst
                    {
                        SendEmailAndDeactivateContact(service, tracingService, entity);
                    }
                }
            }
        }
        catch (FaultException ex)
        {
            throw new InvalidPluginExecutionException("In ContactPostOperationPlugin ist ein Fehler aufgetreten.", ex);
        }
    }
Code schließen

Unser Webshop

Wir mussten auch eine weitere Integration für unsere Webshop, da wir einem Benutzer nur dann Zugriff auf unser Microsoft Dynamics 365-Kundendienstportal gewähren, wenn wir ihn irgendwie mit einem Datensatz in unserem CRM abgleichen können oder wenn wir geklärt haben, um wen es sich handelt.
Image
Nicht jeder, der eine Bestellung im Webshop aufgibt, ist ein Kontakt in unserem CRM, aber wenn er eine Lösung von uns kauft, benötigt er möglicherweise trotzdem Unterstützung. Die von uns entwickelte Integration übernimmt die Daten des Nutzers, der über den Webshop einkauft, und erstellt einen Lead in unserer Kundendatenbank. Dieser Lead wird dann als “qualifiziert” markiert, wodurch automatisch ein Kontakt und ein Konto im CRM erstellt werden und der Nutzer Zugriff auf unser Portal erhält.

Vorkommen #2 – Fehlermeldung im D365-Kundenservice

Benutzer, die noch nicht in unserem Dynamics 365-Kundendienstportal registriert waren, erhielten eine irreführende Fehlermeldung, wenn sie versuchten, sich anzumelden. Diese Meldung besagte, dass ihr Passwort falsch war, anstatt sie darüber zu informieren, dass ihre E-Mail nicht im Support-Portal registriert war.
Um auf unseren vorherigen Fall zurückzukommen: Immer wenn sich ein Benutzer für das Support-Portal registriert, wird in unserem CRM ein doppelter Datensatz angelegt. Kunden, die nicht für das Portal registriert sind, haben diesen doppelten Datensatz nicht, sodass das System keinen Datensatz mit Informationen zu ihrer Anmeldung lesen kann. Das System aktualisiert das Feld “Benutzernameingabe” im CRM, das keine Informationen enthält. Dies veranlasst den Microsoft Dynamics 365-Kundendienst dazu, anzunehmen, dass der Benutzer bereits über ein Login verfügt, und zeigt die Meldung an, dass sein Passwort falsch ist.

Lösung – Das Dynamics 365-Plugin

Genau wie bei der Lösung des Problems mit der bestehenden Kundendatenbank war der beste Ansatz zur Bekämpfung dieser Fehlermeldung die Verwendung eines Microsoft Dynamics 365 Plugins/Lösung.

Tatsächlich haben wir dasselbe Dynamics 365-Plugin verwendet, das wir bereits hatten, nur mit einer geringfügigen Änderung. Unser Entwicklungsteam hat einen weiteren Plugin-Schritt registriert, bei dem es sich im Wesentlichen um einen Befehl handelt, der den Fehler identifiziert und stoppt, den das System macht, indem es das Feld “Benutzername eingeben” aktualisiert, wenn es keine Informationen enthält. Der Plugin-Schritt korrigiert dann die Fehlermeldung, die dem Benutzer angezeigt wird, der versucht, auf das Portal zuzugreifen, und teilt ihm mit, dass er keine Anmeldedaten für das Support-Portal hat, anstatt ihm mitzuteilen, dass sein Passwort falsch ist.

Wir hoffen, dass Ihnen die Lektüre dieses Artikels bis jetzt gefallen hat. Teil 2 wird demnächst veröffentlicht, halten Sie also ein Auge auf unsere Blog Seite um als Erster zu erfahren, wann es veröffentlicht wird!

Aktualisieren! Teil 2 ist jetzt veröffentlicht


Über den Autor

Diogo Gouveia

Durch Diogo Gouveia

"Nach Abschluss meines Studiums im Vereinigten Königreich habe ich mich dem Marketing-Team von Connecting Software angeschlossen, um Inhalte über Software-Integration und eine Vielzahl anderer IT-Themen zu erstellen. Wenn Sie irgendwelche Beobachtungen oder Vorschläge haben, melden Sie sich bitte."

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.