Kopfzeile des Dynamics 365-Kundendienstportals Teil 2

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

Diogo GouveiaProducts and Solutions, Technical Leave a Comment

Willkommen zu Teil 2 des Artikels! Hier werden wir weiterhin unsere Erfahrungen bei der Entwicklung unseres Microsoft Dynamics 365-Kundendienstportal. Wenn Sie nicht gelesen haben Teil 1 noch nicht, schauen Sie doch mal rein (wir haben ein maßgeschneidertes Plugin für den D365-Kundendienst entwickelt)!

Vorfall #3 - Eröffnung eines neuen Falls

Beim Aufbau unseres Support-Portals sind wir auf ein Problem mit dem Formular gestoßen, das unsere Kunden ausfüllen, wenn sie einen neuen Fall anlegen. Das Standarddesign dieser Seite im Microsoft Dynamics 365-Kundendienst enthält ein allgemeines Textfeld, in dem die Kunden Details zu den Besonderheiten ihrer Fälle angeben sollen.

Obwohl dieses Format für einige Unternehmen gut genug sein mag, war es für den von uns angestrebten Automatisierungsgrad nicht geeignet. Im Wesentlichen suchten wir nach einer Möglichkeit, jeden neuen Fall, der im Portal erstellt wird, sofort an eine entsprechende Warteschlange weiterzuleiten, die jeweils ein Team von Personen enthält, die am besten für die Beantwortung des jeweiligen Falls geeignet sind. Das ist nicht nur viel effizienter, sondern auch weniger zeitaufwändig, als jeden Fall einzeln zu analysieren, um ihn dann an die entsprechenden Experten weiterleiten zu können.

Lösung - Neugestaltung des D365-Kundendienstformulars

Um die Lösung der im Support-Portal eingehenden Fälle zu optimieren, musste unser Team die Seite "Einen neuen Fall eröffnen" neu gestalten. Anstelle des eben erwähnten allgemeinen Abfragefelds haben wir ein Formular erstellt, das sich erweitert, wenn Kunden die Informationen zu ihren Fällen ausfüllen.

Wenn ein Benutzer angemeldet ist, sieht er zunächst dies:

dynamics 365-Kundendienstportal einen neuen Fall eröffnen
Nachdem Sie die Felder "Titel" und "Betreff" ausgefüllt haben, wird das Formular weiter ausgefüllt. Zu Demonstrationszwecken simulieren wir das Szenario eines Kunden, bei dem ein Anmeldefehler auftritt, wenn er versucht, auf sein SaaS-Konto für CB Dynamics 365 to SharePoint Permissions Replicator.
Dynamics 365 Kundendienstportal Fallbeispiel

Sobald das Formular ausgefüllt ist, können Sie sehen, dass die Informationen auf verschiedene Felder verteilt sind und nicht in einem einzigen großen Textfeld. Das System kann nun diese verschiedenen Felder lesen und den Fall über vordefinierte Prozessabläufe korrekt an die entsprechende Warteschlange weiterleiten.

Jedes Mal, wenn ein Fall weitergeleitet wird, wird das empfangende Team mit einer automatischen E-Mail benachrichtigt, dass ein neuer Fall im Support-Portal eingegangen ist. Dann muss dieses Team zum CRM gehen, um den Fall zu überprüfen und entweder einen Portalkommentar zu hinterlassen, der ein einfacher Kommentar auf dem Dynamics 365-Kundenserviceportal zu der gestellten Anfrage ist, oder um einen Kalendertermin, ebenfalls über das CRM, zu senden, um gegebenenfalls einen Anruf zu vereinbaren. Der Kunde wird dann per E-Mail über diese Vorgänge benachrichtigt, und dasselbe geschieht für die Teammitglieder, die den Warteschlangen zugewiesen sind, jedes Mal, wenn es eine Aktualisierung eines Supportfalls gibt (z. B. eine Antwort des Benutzers auf einen Portalkommentar).

Das Lösen von Fällen ausschließlich mit dem Microsoft Dynamics 365 CRM ist etwas, an das sich unser Team erst gewöhnen musste (worauf wir weiter unten eingehen werden), das aber äußerst vorteilhaft ist, da nun die gesamte Kommunikation und alle Prozesse nachverfolgt werden. Das gibt uns die Möglichkeit, Daten zu generieren, denen wir vertrauen können, sie zu analysieren und daraus Initiativen abzuleiten, um die Kundenzufriedenheit zu erhöhen und unsere Produktlinie weiter zu verbessern.

Verbindendes Software-SaaS-Portal

Unsere SaaS-Portaldie Ressource, die unsere Kunden zur Verwaltung der über unsere Microsoft Azure SaaS-Server bereitgestellten Lösungen nutzen, wurde ebenfalls überarbeitet. In der Fußzeile der Seite befindet sich ein Link "Contact Us", der die Kunden zu einem speziellen Ort weiterleitet, an dem sie Support-Tickets für ihre Fragen erstellen können.
Dynamics 365-Kundendienstportal Kontakt

Mit unserem neuen Dynamics 365-Kundendienstportal wurde dies zu einer Redundanz. Da eines der Hauptziele des Supportportals darin besteht, Supportanfragen zu zentralisieren, machte es keinen Sinn, dass Anfragen, die von unserem SaaS-Portal stammen, über einen anderen Kanal laufen. Daher hat unser Entwicklungsteam dieses "Kontakt"-Feld so konfiguriert, dass die Kunden direkt zu unserem Unterstützungsportal.

Aber es gibt noch einen Bonus! Sobald ein Kunde diese Seite erreicht, werden einige Felder des neu gestalteten Formulars, das wir erstellt haben, automatisch ausgefüllt, je nachdem, von welcher Seite der Kunde gekommen ist. Auf diese Weise können wir die Effizienz steigern und bleiben im Einklang mit den Zielen, die uns veranlasst haben, dieses Dynamics 365-Kundendienstportal zu entwickeln.

Vorkommnis #4 - Gesamtgröße der Anhänge

Wie Sie wahrscheinlich wissen, sind Anhänge bei der Erstellung eines Support-Falls äußerst nützlich, da sie den Informationsaustausch zwischen dem Benutzer und dem Fachmann, der den Support durchführt, erleichtern. Je nach Komplexität des Falles kann jedoch die Gesamtgröße der Anhänge variieren, und in der Regel gibt es dafür Beschränkungen.

Das Dynamics 365-Kundendienstportal hat eine Obergrenze von 5 MB für die Gesamtgröße der Anhänge, die Kunden zusammen mit ihren Fällen senden können. Für Kunden, die einen einfachen Screenshot anhängen, ist dies mehr als ausreichend, aber für Fälle, die beispielsweise eine Bildschirmaufzeichnung oder eine größere Anzahl von Bildern benötigen, wird dies zu einem Problem.

      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

Lösung - Ein Workaround

Obwohl unser Entwicklungsteam hervorragend ist, können wir nicht viel gegen diese Beschränkung der Anhänge tun. Die beste Lösung für dieses Problem besteht darin, dem Nutzer ein alternatives Repository zum Hochladen von Dateien zur Verfügung zu stellen, die von dem Team, das den Fall bearbeitet, analysiert werden. Zu diesem Zweck verwenden wir die folgende Plattform ownCloud.

Andere Vorkommnisse

Neben den vier vorgenannten Situationen gab es noch weitere, die bewiesen, dass wir bereit und in der Lage waren, die ursprüngliche Einführung des Projekts zu ändern, falls dies erforderlich sein sollte. Ein Beispiel: Wir:

  • Anpassung der Microsoft Dynamics 365 Ansichten und der Durchsuchbarkeit der Portal-Kommentarbeschreibungen
  • Die Lesbarkeit der Portal-Kommentare für Kunden und Support-Team wurde verbessert, indem der HTML-Code entfernt und Rich Text eingefügt wurde.
  • Eine zusätzliche Spalte wurde hinzugefügt, um eine externe Knowledge Base URL zu kompilieren
  • Einrichtung eines Verfahrens zur automatischen Lösung von Fällen, die unbeantwortet bleiben
  • Ich habe gelernt, wie Microsoft Dynamics 365 HTML rendert, um sicherzustellen, dass unsere Informations-E-Mails an die Kunden wie gewünscht angezeigt werden (Hinweis: Der HTML-Code muss in einer einzigen Zeile und nicht in einem Standardformat vorliegen).

Als Teil von Microsofts Bestreben, die Power Pages-Plattform sicherer zu machen, wurde außerdem ein Dataverse-Anwendung Benutzerkonzept. Kurz gesagt, hinter allen Aktionen, die innerhalb von Webanwendungen durchgeführt werden, steht ein Benutzertyp, und jeder Benutzertyp hat unterschiedliche Berechtigungen.

Der SYSTEM-Benutzer war derjenige, der von der D365-Lösung verwendet wurde, die wir in Teil 1 dieses Artikels beschrieben haben. Durch die neue Einführung wurde dieser SYSTEM-Benutzer in einen Anwendungsbenutzer umgewandelt, der nicht die gleichen Berechtigungen wie der vorherige SYSTEM-Benutzer hat. Dadurch wurde die von uns erstellte Lösung eingeschränkt und funktionierte nicht mehr richtig.

Das Einzige, was getan werden musste, war die Zuweisung der Systemadministrator-Berechtigungen (die der vorherige SYSTEM-Benutzer hatte) an den neuen Anwendungsbenutzer, den Microsoft implementierte. Sobald dieser Vorgang abgeschlossen war, nahm unser Plugin die Wirksamkeit von 100% wieder auf!

Dynamics 365 CRM-Schulung

Nachdem wir uns nun mit den technischen Hürden befasst haben, mit denen wir beim Aufbau unseres Support-Portals konfrontiert waren, möchten wir kurz auf die verwaltungstechnischen Aspekte der Implementierung des Dynamics 365-Kundendienstportals eingehen, nämlich die Dynamics 365-CRM-Schulung, die unser Team absolvieren musste. Jeder Projektleiter wird Ihnen bestätigen, dass die Bereitschaft des Teams, sich an die neuen Arbeitsweisen anzupassen, eine der größten Herausforderungen bei der Einführung von Verbesserungen sein kann.

Sie wissen vielleicht, dass unser Team früher den Kundensupport per E-Mail abgewickelt hat. Jetzt müssen die Teammitglieder ausschließlich über unser CRM Portal-Kommentare hinterlassen oder Sitzungseinladungen verschicken. Um einen reibungslosen Übergang zu einem neuen Prozess wie diesem zu gewährleisten, war es wichtig, das Team über die Gründe dafür zu informieren, damit sie die Vorteile erkennen konnten, sei es aus der Perspektive der Zeitersparnis, der Anforderungen an die Unternehmensberichterstattung, um Initiativen zur kontinuierlichen Verbesserung abzuleiten, oder der Straffung des Kundensupporterlebnisses. Wir gehen davon aus, dass sich auch unsere Kunden daran gewöhnen mussten, ihre Anfragen über das Support-Portal zu stellen, anstatt sich per E-Mail an die ihnen bereits bekannten Teammitglieder zu wenden.

Schließlich war die Pflege unserer Wissensdatenbank eine weitere Gelegenheit für Veränderungen. Jetzt, da unser Microsoft Dynamics 365-Kundenserviceportal uns einen viel klareren Überblick über die Anfragen unserer Kunden bietet, muss das Team neben der Unterstützung auch die wiederkehrenden Fälle zur Wissensdatenbank hinzufügen, um sicherzustellen, dass diese Informationen für alle Benutzer des Supportportals leicht zugänglich sind.

Das Mitnehmen

Wir blicken positiv auf diese Ereignisse zurück, denn sie haben es uns ermöglicht, unser Support-Portal in die bestmögliche Form für unsere Kunden zu bringen. Obwohl es ein langwieriges Projekt war, das die Anstrengungen und den vollen Einsatz unserer Teammitglieder erforderte, hat es sich zweifellos gelohnt. Da wir in der Lage sind, unseren Kunden mehr Bequemlichkeit zu bieten und uns eine starke Informationsquelle zur Verfügung zu stellen, haben wir an Einfluss gewonnen, um unsere Ziele weiter zu erreichen, und wir freuen uns darauf, zu sehen, wie wir unsere Prozesse mithilfe des Microsoft Dynamics 365-Kundendienstportals weiter optimieren können.

Wir hoffen, dass es Ihnen gefallen hat, mehr über unsere Erfahrungen bei der Erstellung unserer Unterstützungsportal. Unter Teil 1 dieses Artikels haben wir einen Teil eines Plugins aufgenommen, das wir speziell für Microsoft Dynamics 365 Kundendienst. Das war für uns sehr hilfreich. Schauen Sie es sich ruhig an und fordern Sie die vollständige Version an!


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