Dynamiek

Dynamics 365 Klantenserviceportaal: Uitdagingen en oplossingen - Deel 1

Diogo GouveiaProducts and Solutions, Technical Leave a Comment

Microsoft Dynamics 365 Klantenservice biedt een reeks tools waarmee organisaties hun klantenservice kunnen optimaliseren. Naast het verbeteren van de klantervaring kan dit platform ook helpen bij het bijhouden van communicatie en interne ondersteuningsprocessen, wat zowel bedrijven als hun klanten ten goede komt.

Hoewel een Microsoft Dynamics 365 Customer Service Portal nuttig kan zijn, kan het configureren ervan om te voldoen aan een unieke reeks vereisten een uitdagende taak zijn.

Bij Connecting Software gebruikten we Microsoft Dynamics 365 Klantenservice om onze Ondersteuningsportaal. Aangezien we een specifieke visie hadden van wat we wilden bereiken met onze Support Portal, zullen we in dit artikel het proces van het bouwen ervan door middel van de Dynamics 365 Customer Service implementatie gedetailleerd beschrijven, terwijl we ook de obstakels laten zien die we onderweg tegenkwamen en de oplossingen die we vonden om deze het beste aan te pakken.

Dynamics 365 Klantenserviceportaal Kenmerken

Met het Dynamics 365 klantenserviceportaal kan een centraal KennisbankDit is een van de belangrijkste functies van onze Support Portal. Het bevat betrouwbare informatie over veelvoorkomende use cases rond onze producten, die eenvoudig toegankelijk is voor klanten.
Kennisbank

In de gevallen waar onze klanten niet in staat zijn om een antwoord te vinden op wat ze zoeken in de Kennisbank, stelt de Dynamics 365 Customer Service Portal klanten in staat om support cases aan te maken. Vanuit het oogpunt van de klant zijn dit de twee belangrijkste functies van onze Support Portal.

Voor ons is het belangrijkste voordeel echter dat we informatie kunnen genereren over het gebruik van de Support Portal en onze softwareoplossingen. Als we bijvoorbeeld merken dat er meerdere cases over een specifiek probleem met een specifiek product worden ingediend, kunnen we onze middelen inzetten om het probleem snel op te lossen. Als het gewoon een FAQ is, kunnen we deze toevoegen aan de kennisbank van ons ondersteuningsportaal om de informatie beschikbaar te maken voor elke klant met hetzelfde probleem.

Als zodanig fungeert de Dynamics 365 Customer Service Portal als een gecentraliseerd hulpmiddel voor het evalueren van de kwaliteit van onze producten, het verbeteren van de klanttevredenheid, het bijhouden van interacties met klanten, het garanderen dat we toegang hebben tot informatie die ons in staat stelt om te blijven verbeteren, het aanpassen van onze resource planning, en zelfs voor het genereren van waardevolle interne rapportage, bijvoorbeeld de kosten van ondersteuning per product.

Laten we nu eens kijken naar de obstakels die we tegenkwamen bij het implementeren van onze Support Portal.

Voorval #1 - Bestaand klantenbestand

Het bleek lastig om een bestaand klantenbestand te hebben toen we aan de Support Portal begonnen te werken.

Wanneer een klant zich voor het eerst registreert voor onze Portal, wordt een dubbel contact aangemaakt in Microsoft Dynamics 365 (CRM), dat wil zeggen, onze klantendatabase. Microsoft Dynamics 365 voor Customer Service koppelt niet van nature het dubbele contact met de echte klant contact in onze klantendatabase, dus de informatie is niet gecentraliseerd in slechts een record. Dit betekende dat onze ondersteuning gevallen ook niet gekoppeld aan de contactpersoon die is gekoppeld aan het account hebben we een gevestigde relatie met. In plaats daarvan werden ze gekoppeld aan de lege dubbele contactpersonen die waren aangemaakt als gevolg van de Support Portal registratie.

Dit probleem had opgelost kunnen worden door automatisch een uitnodiging te sturen die de dubbele contacten succesvol zou koppelen aan de echte klantcontacten in ons CRM, maar dit is iets wat vanaf het begin van het opstarten van het klantenbestand had moeten gebeuren. Bovendien is dit, ondanks dat het in theorie werkt, geen realistische oplossing vanwege de lage openingspercentages van e-mails. Om de zaken in perspectief te plaatsen: volgens Mailchimp was de gemiddelde e-mailopeningsratio in alle sectoren slechts 21.33% in 2021.

Je zou ook kunnen denken dat een standaard samenvoeging van de records voldoende zou zijn geweest, maar dit is niet het geval, omdat het samenvoegen van de informatie van de records in één contact zou resulteren in het verlies van de toegang tot onze Support Portal.

Oplossing - Een Dynamics 365-plugin

De andere manier om dit op te lossen zou zijn om een aangepaste Microsoft Dynamics 365 plugin te maken (in de Power Apps wereld Solution genoemd), en dit is wat we hebben gedaan. De plugin die we hebben gemaakt scant of de gebruiker al bestaat in ons CRM tijdens de Support Portal registratie.

Er zijn twee mogelijke uitkomsten: als de gebruiker bestaat in onze database, de plugin herkent deze match en voegt de informatie op beide records in een enkel contact zonder dat de gebruiker de toegang verliest tot de Dynamics 365 Customer Service Portal, dat wil zeggen, onze Support Portal. Het tweede contact, dat op dit moment geen informatie bevat, wordt automatisch verwijderd door de plugin die we hebben gebouwd, die wekelijks een aparte Bulk Delete taak uitvoert om de records te wissen.

In het geval dat de gebruiker die zich aanmeldt voor het portaal niet bestaat in ons CRM, doet de plugin iets anders. Omdat we een B2B bedrijf zijn, hebben de e-mails van klanten in onze database een domein dat specifiek is voor de organisaties waar ze voor werken. Dus, als een gebruiker die niet in ons CRM staat zich wil registreren voor ons portaal, zoekt de plugin in ons CRM naar het e-maildomein van deze nieuwe gebruiker. Als er een overeenkomst is, wordt er automatisch een nieuw contact aangemaakt in het CRM omdat deze gebruiker bij een bedrijf hoort dat we al kennen. Als er daarentegen geen overeenkomst is in onze database met het e-maildomein van de klant die zich aanmeldt voor het Support Portaal, worden we intern op de hoogte gesteld van de poging tot registratie en kunnen we contact opnemen om meer informatie te krijgen, mocht dat nodig zijn.

Je kunt een deel van de code voor onze Microsoft Dynamics 365 plugin vinden via deze link. Voel je vrij om zich uitstrekken naar ons als je de volledige versie wilt!

      openbare opdracht Uitvoeren(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);
        Als (!context.InputParameters.Contains("Doel") || !(context.InputParameters["Doel"] is Entiteit))
        {
            return;
        }

        var entiteit = (Entiteit) context.InputParameters["Doel"];
        var isLoginEnabled = HasLoginEnabled(entity);
        
        als (isLoginEnabled == false)
        {
            return;
        }

        probeer  {
        {
            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)
                {
                    gooi dan de nieuwe InvalidPluginExecutionException(OperationStatus.Failed,
                        "Gebruiker bestaat al. Probeer een ander e-mailadres om te registreren of log in op uw bestaande account.");
                }

                var mergeRequest = nieuwe MergeRequest
                {
                    SubordinateId = entity.Id,
                    Doel = nieuwe EntityReference("contact", contactsWithSameEmailAddress.Entities[0].Id),
                    UpdateContent = GetUpdateContent(entity)
                };
                var _ = (MergeResponse) service.Execute(mergeRequest);
                entiteit[CustomAttributeName] = true;
                service.Update(entiteit);
            }
            anders  {
            {
                var domein = emailAdres.Split('@')[1];
                if (_publicDomains.Contains(domein))
                {
                    SendEmailAndDeactivateContact(service, tracingService, entiteit);
                }
                anders
                {
                    var contactsWithSameDomain = GetContactsByDomain(service, entity.Id, domein);
                    Als (contactsWithSameDomain.Entities.Count > 0)
                    {
                        entity["parentcustomerid"] = contactsWithSameDomain.Entities[0]["parentcustomerid"];
                        service.Update(entity);
                    }
                    anders
                    {
                        SendEmailAndDeactivateContact(service, tracingService, entiteit);
                    }
                }
            }
        }
        catch (FoutExceptie ex)
        {
            throw new InvalidPluginExecutionException("Er is een fout opgetreden in ContactPostOperationPlugin.", ex);
        }
    }
Code sluiten

Onze webwinkel

We moesten ook een andere integratie maken voor onze Webwinkelomdat we een gebruiker alleen toegang geven tot onze Microsoft Dynamics 365 Customer Service Portal als we ze op de een of andere manier kunnen matchen met een record in ons CRM, of als we hebben opgehelderd wie ze zijn.
Image
Niet iedereen die een bestelling plaatst op de webshop is een contactpersoon in ons CRM, maar als ze een oplossing van ons kopen, kunnen ze hoe dan ook ondersteuning nodig hebben. De integratie die we hebben ontwikkeld neemt de gegevens van de gebruiker die via de webshop koopt en creëert een lead in onze klantendatabase. Deze lead wordt vervolgens gemarkeerd als "Gekwalificeerd", waardoor automatisch een contact en account worden aangemaakt in het CRM en ze toegang krijgen tot ons portaal.

Voorval #2 - Foutbericht op D365 Klantenservice

Gebruikers die nog niet geregistreerd waren bij onze Dynamics 365 Customer Service Portal kregen een misleidende foutmelding wanneer ze probeerden in te loggen. Deze melding gaf aan dat hun wachtwoord onjuist was, in plaats van te melden dat hun e-mail niet geregistreerd was op de Support Portal.
Terugkerend naar ons vorige voorval: wanneer een gebruiker zich registreert voor de Support Portal, wordt er een gedupliceerd record aangemaakt in ons CRM. Klanten die zich niet hebben geregistreerd voor het portaal hebben dit dubbele record niet, dus het systeem kan geen record lezen met informatie over hun aanmelding. Wat het systeem doet, is het veld "gebruikersnaaminvoer" in het CRM bijwerken, dat geen informatie bevat. Hierdoor gaat de Microsoft Dynamics 365 Customer Service ervan uit dat de gebruiker al een login heeft en wordt het bericht weergegeven dat het wachtwoord onjuist is.

Oplossing - De Dynamics 365-plugin

Net als de oplossing voor het probleem dat we hadden met een bestaande klantendatabase, was de beste aanpak om deze foutmelding te bestrijden het gebruik van een Microsoft Dynamics 365 Plugin/Oplossing.

In feite gebruikten we dezelfde Dynamics 365 plugin die we al hadden, alleen met een kleine aanpassing. Ons ontwikkelingsteam registreerde nog een plugin stap, wat in wezen een commando is dat de fout identificeert en stopt die het systeem maakt door het veld "gebruikersnaam invoer" bij te werken wanneer er geen informatie in staat. De plugin-stap corrigeert dan de foutmelding die wordt getoond aan de gebruiker die probeert toegang te krijgen tot het portaal, door te zeggen dat ze geen login hebben voor het ondersteuningsportaal in plaats van dat hun wachtwoord onjuist is.

We hopen dat je dit artikel tot nu toe met plezier hebt gelezen. Deel 2 wordt binnenkort gepubliceerd, dus houd onze Blog Pagina om als eerste te weten wanneer het uitkomt!


Over de auteur

Diogo Gouveia

Door Diogo Gouveia

"Na het afronden van mijn studie in het Verenigd Koninkrijk ben ik bij het Marketing team van Connecting Software gaan werken om content te creëren over software integratie en diverse andere IT onderwerpen. Als je opmerkingen of suggesties hebt, neem dan contact op."

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

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