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 den Fällen, in denen unsere Kunden in der Wissensdatenbank keine Antwort auf ihre Fragen finden, können sie im Dynamics 365-Kundendienstportal Supportanfragen stellen. Aus Sicht des Kunden 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, mit denen wir bei der Implementierung unseres Support-Portals konfrontiert waren.

Vorkommnis #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 WebshopDa wir den Zugang eines Benutzers zu unserem Microsoft Dynamics 365-Kundendienstportal nur dann erlauben, wenn wir ihn irgendwie mit einem Datensatz in unserem CRM abgleichen können oder wenn wir geklärt haben, wer er ist.
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 Benutzers, der über den Webshop bestellt, 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 er Zugang zu unserem Portal erhält.

Vorkommnis #2 - Fehlermeldung beim D365-Kundendienst

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.
Wenn sich ein Benutzer für das Support-Portal registriert, wird ein doppelter Datensatz in unserem CRM erstellt. Kunden, die nicht für das Portal registriert sind, haben diesen doppelten Datensatz nicht, so dass das System keinen Datensatz mit Informationen über ihre Anmeldung lesen kann. Das System aktualisiert das Feld "Eingabe des Benutzernamens" im CRM, das keine Informationen enthält. Dies führt dazu, dass der Microsoft Dynamics 365-Kundendienst davon ausgeht, dass der Benutzer bereits eine Anmeldung hat, und die Meldung anzeigt, dass das Kennwort 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 das gleiche Dynamics 365-Plugin verwendet, das wir bereits hatten, nur mit einer kleinen Änderung. Unser Entwicklungsteam registrierte einen weiteren Plugin-Schritt, bei dem es sich im Wesentlichen um einen Befehl handelt, der den Fehler identifiziert und abstellt, den das System macht, indem es das Eingabefeld für den "Benutzernamen" aktualisiert, wenn es keine Informationen darin enthält. Der Plugin-Schritt korrigiert dann die Fehlermeldung, die dem Benutzer beim Versuch, auf das Portal zuzugreifen, angezeigt wird, indem er angibt, dass er kein Login für das Support-Portal hat, anstatt zu sagen, 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!


Ü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.