Dinamica

Portale di assistenza clienti Dynamics 365: Sfide e soluzioni - Parte 1

Diogo GouveiaProducts and Solutions, Technical Leave a Comment

Servizio clienti Microsoft Dynamics 365 fornisce una suite di strumenti che consentono alle organizzazioni di ottimizzare la gestione del servizio clienti. Oltre a migliorare l'esperienza del cliente, questa piattaforma può anche aiutare a tracciare i processi di comunicazione e di assistenza interna, a vantaggio sia delle aziende che dei loro clienti.

Tuttavia, anche se un portale di assistenza clienti Microsoft Dynamics 365 può essere utile, la sua configurazione per soddisfare un insieme unico di requisiti può essere un compito impegnativo.

Per Connecting Software, abbiamo utilizzato Servizio clienti Microsoft Dynamics 365 per costruire il nostro Portale di supporto. Poiché avevamo una visione specifica di ciò che volevamo ottenere con il nostro portale di assistenza, in questo articolo descriveremo nel dettaglio il processo di costruzione attraverso l'implementazione del servizio clienti Dynamics 365, mostrando gli ostacoli che abbiamo incontrato lungo il percorso e le soluzioni che abbiamo trovato per affrontarli al meglio.

Portale del servizio clienti Dynamics 365 Caratteristiche

Il portale di assistenza clienti Dynamics 365 consente di creare un servizio di assistenza centralizzato. Base di conoscenzache è una delle caratteristiche principali del nostro portale di assistenza. Contiene informazioni affidabili sui casi d'uso comuni dei nostri prodotti, facilmente accessibili ai clienti.
Base di conoscenze

Nei casi in cui i nostri clienti non riescano a trovare una risposta a ciò che stanno cercando nella Knowledge Base, il portale del servizio clienti Dynamics 365 consente ai clienti di creare casi di assistenza. Dal punto di vista del cliente, queste sono le due caratteristiche principali del nostro portale di assistenza.

Per noi, tuttavia, il vantaggio principale è quello di poter generare informazioni sull'utilizzo del portale di assistenza e delle nostre soluzioni software. Ad esempio, se notiamo che vengono inviati diversi casi relativi a un problema specifico su un determinato prodotto, possiamo reindirizzare le nostre risorse per risolvere rapidamente il problema. Se si tratta di una semplice FAQ, possiamo aggiungerla alla Knowledge Base del nostro Portale di assistenza per rendere le informazioni disponibili a tutti i clienti che condividono lo stesso problema.

Per questo motivo, il portale del servizio clienti Dynamics 365 funge da strumento centralizzato per valutare la qualità dei nostri prodotti, migliorare la soddisfazione dei clienti, tracciare le interazioni con i clienti, garantire l'accesso alle informazioni che ci consentono di migliorare continuamente, adattare la nostra pianificazione delle risorse e persino generare preziosi rapporti interni, ad esempio il costo dell'assistenza per prodotto.

Vediamo ora gli ostacoli che abbiamo incontrato durante l'implementazione del nostro portale di assistenza.

Evento #1 - Base di clienti esistente

Avere una base di clienti già esistente quando abbiamo iniziato a lavorare sul portale di assistenza si è rivelato un problema.

Ogni volta che un cliente si registra per la prima volta sul nostro portale, viene creato un contatto duplicato in Microsoft Dynamics 365 (CRM), ovvero nel nostro database clienti. Microsoft Dynamics 365 per il servizio clienti non collega in modo nativo il contatto duplicato al contatto reale del cliente nel nostro database clienti, quindi le informazioni non sono centralizzate in un unico record. Ciò significa che anche i nostri casi di assistenza non erano collegati al contatto associato all'account con cui abbiamo una relazione consolidata. Invece, sono stati collegati ai contatti duplicati vuoti creati come risultato della registrazione al portale di assistenza.

Questo problema avrebbe potuto essere risolto con l'invio automatico di un invito che avrebbe collegato con successo i contatti duplicati ai contatti dei clienti reali nel nostro CRM, ma questo è qualcosa che avrebbe dovuto essere fatto fin dall'inizio della creazione della base clienti. Inoltre, nonostante questo funzioni in teoria, non è una soluzione realistica a causa degli scarsi tassi di apertura delle e-mail. Tanto per mettere le cose in prospettiva, secondo Mailchimp, il tasso medio di apertura delle email in tutti i settori è stato di appena 21.33% nel 2021.

Si potrebbe anche pensare che una fusione predefinita dei record sarebbe stata sufficiente, ma non è così, poiché l'unione delle informazioni dei record in un unico contatto comporterebbe la perdita dell'accesso al nostro portale di assistenza.

Soluzione: un plugin Dynamics 365

L'altro modo per risolvere questo problema sarebbe quello di creare un plugin Microsoft Dynamics 365 personalizzato (chiamato Soluzione nel mondo delle Power Apps), ed è quello che abbiamo fatto. Il plugin che abbiamo creato analizza se l'utente esiste già nel nostro CRM durante la registrazione al portale di assistenza.

I risultati possibili sono due: se l'utente esiste nel nostro database, il plugin riconosce questa corrispondenza e unisce le informazioni di entrambi i record in un unico contatto senza che l'utente perda l'accesso al portale del servizio clienti Dynamics 365, ovvero al nostro portale di assistenza. Il secondo contatto, che a questo punto non contiene informazioni, viene eliminato automaticamente dal plugin che abbiamo creato, che esegue settimanalmente un lavoro separato di Bulk Delete per eliminare i record.

Nel caso in cui l'utente che si iscrive al portale non esista nel nostro CRM, il plugin fa qualcosa di diverso. Essendo un'azienda B2B, le e-mail dei clienti presenti nel nostro database hanno un dominio specifico per le organizzazioni per cui lavorano. Quindi, se un utente non presente nel nostro CRM desidera registrarsi al nostro portale, il plugin cerca nel nostro CRM il dominio e-mail di questo nuovo utente. Se c'è una corrispondenza, viene automaticamente creato un nuovo contatto nel CRM, perché l'utente appartiene a un'azienda che conosciamo già. Al contrario, se nel nostro database non c'è corrispondenza con il dominio e-mail del cliente che si iscrive al portale di assistenza, veniamo informati internamente del tentativo di registrazione e contattati per ottenere ulteriori informazioni, se necessario.

È possibile trovare parte del codice del nostro plugin Microsoft Dynamics 365 attraverso questo link. Sentitevi liberi di raggiungere a noi se volete la versione completa!

      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))
        {
            return;
        }

        var entity = (Entity) context.InputParameters["Target"];
        var isLoginEnabled = HasLoginEnabled(entity);
        
        se (isLoginEnabled == false)
        {
            return;
        }

        try
        {
            var emailAddress = (string) entity["emailaddress1"];
            var contactsWithSameEmailAddress = GetContactsByEmailAddress(service, entity.Id, emailAddress);
            if (contactsWithSameEmailAddress.Entities.Count > 0)
            {
                var hasLoginEnabled = HasLoginEnabled(contactsWithSameEmailAddress.Entities[0]);
                se (hasLoginEnabled)
                {
                    throw new InvalidPluginExecutionException(OperationStatus.Failed,
                        "L'utente esiste già. Provare a registrarsi con un altro indirizzo e-mail o accedere all'account esistente.");
                }

                var mergeRequest = new MergeRequest
                {
                    SubordinateId = entity.Id,
                    Target = new EntityReference("contact", contactsWithSameEmailAddress.Entities[0].Id),
                    UpdateContent = GetUpdateContent(entità)
                };
                var _ = (MergeResponse) service.Execute(mergeRequest);
                entity[CustomAttributeName] = true;
                service.Update(entity);
            }
            else
            {
                var domain = emailAddress.Split('@')[1];
                if (_publicDomains.Contains(domain))
                {
                    SendEmailAndDeactivateContact(service, tracingService, entity);
                }
                altrimenti
                {
                    var contactsWithSameDomain = GetContactsByDomain(service, entity.Id, domain);
                    if (contactsWithSameDomain.Entities.Count > 0)
                    {
                        entity["parentcustomerid"] = contactsWithSameDomain.Entities[0]["parentcustomerid"];
                        service.Update(entity);
                    }
                    altrimenti
                    {
                        SendEmailAndDeactivateContact(service, tracingService, entity);
                    }
                }
            }
        }
        catch (FaultException ex)
        {
            throw new InvalidPluginExecutionException("An error occurred in ContactPostOperationPlugin.", ex);
        }
    }
Chiudere il codice

Il nostro negozio web

Abbiamo anche dovuto creare un'altra integrazione per il nostro Negozio webPoiché consentiamo l'accesso di un utente al nostro portale di assistenza clienti Microsoft Dynamics 365 solo quando possiamo in qualche modo abbinarlo a un record nel nostro CRM o quando abbiamo chiarito la sua identità.
Image
Non tutti gli utenti che effettuano un ordine sul Web Shop sono contatti del nostro CRM, ma se acquistano una soluzione da noi, possono avere bisogno di assistenza a prescindere. L'integrazione che abbiamo sviluppato prende i dati dell'utente che acquista attraverso il Web Shop e crea un lead nel nostro database clienti. Questo lead viene quindi contrassegnato come "qualificato", il che crea automaticamente un contatto e un account nel CRM e dà loro accesso al nostro portale.

Evento #2 - Messaggio di errore sul servizio clienti D365

Gli utenti che non erano ancora registrati al nostro portale di assistenza clienti Dynamics 365 ricevevano un messaggio di errore fuorviante ogni volta che tentavano di accedere. Il messaggio indicava che la password non era corretta, invece di informare che il loro indirizzo e-mail non era registrato nel portale di assistenza.
Tornando al caso precedente, ogni volta che un utente si registra al portale di assistenza, viene creato un record duplicato nel nostro CRM. I clienti che non sono registrati al portale non hanno questo record duplicato, quindi il sistema non legge alcun record contenente informazioni sul loro accesso. Il sistema aggiorna il campo "inserimento nome utente" nel CRM, che non contiene alcuna informazione. Questo fa sì che il servizio clienti di Microsoft Dynamics 365 pensi che l'utente abbia già un login, mostrando il messaggio che informa che la password non è corretta.

Soluzione: il plugin Dynamics 365

Proprio come la soluzione al problema di avere un database clienti esistente, l'approccio migliore per combattere questo messaggio di errore è stato quello di utilizzare un plugin/soluzione Microsoft Dynamics 365.

In realtà, abbiamo utilizzato lo stesso plugin Dynamics 365 che già avevamo, solo con una leggera modifica. Il nostro team di sviluppo ha registrato un ulteriore passo del plugin, che è essenzialmente un comando che identifica e interrompe l'errore che il sistema commette aggiornando il campo "inserimento nome utente" quando non contiene alcuna informazione. Il passo del plugin corregge quindi il messaggio di errore che viene mostrato all'utente che tenta di accedere al portale, indicando che non dispone di un login per il portale di assistenza invece di dire che la password è errata.

Ci auguriamo che la lettura di questo articolo vi sia piaciuta finora. Parte 2 sarà pubblicato a breve, quindi tenete d'occhio il nostro sito Pagina del blog per essere i primi a sapere quando uscirà!


Sull'autore

Diogo Gouveia

Da Diogo Gouveia

"Dopo aver completato i miei studi nel Regno Unito, mi sono unita al team di marketing di Connecting Software per creare contenuti sull'integrazione del software e su una serie di altri argomenti informatici. Se avete osservazioni o suggerimenti, contattatemi".

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

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