Intestazione del portale del servizio clienti Dynamics 365 parte 2

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

Diogo GouveiaProducts and Solutions, Technical Leave a Comment

Benvenuti alla seconda parte dell'articolo! Qui continueremo a spiegare la nostra esperienza nello sviluppo del nostro Portale del servizio clienti Microsoft Dynamics 365. Se non avete letto Parte 1 Ma non dimenticate di dare un'occhiata (abbiamo incluso un plugin personalizzato per il Servizio Clienti D365)!

Evento #3 - Apertura di un nuovo caso

Durante la creazione del nostro portale di assistenza, ci siamo imbattuti in una situazione legata al modulo che i nostri clienti compilano quando creano un nuovo caso. Il design predefinito di questa pagina del Servizio Clienti Microsoft Dynamics 365 include una casella di testo generale, in cui i clienti devono fornire dettagli sulle particolarità dei loro casi.

Sebbene questo formato possa andare bene per alcune aziende, non era adatto al livello di automazione che cercavamo. In sostanza, stavamo cercando un modo per indirizzare prontamente ogni nuovo caso creato sul Portale a una coda appropriata, ognuna contenente un team di persone più adatte a rispondere a ciascun caso. Oltre a essere molto più efficiente, è anche meno dispendioso in termini di tempo rispetto al dover analizzare ogni singolo caso per poterlo poi indirizzare agli esperti più adatti.

Soluzione - Riprogettazione del modulo di assistenza clienti D365

Per ottimizzare la risoluzione dei casi che riceviamo sul portale di assistenza, il nostro team ha dovuto riprogettare la pagina "Apri un nuovo caso". Al posto della casella di interrogazione generale appena menzionata, abbiamo creato un modulo che si espande man mano che i clienti inseriscono le informazioni sui loro casi.

Una volta effettuato l'accesso, questo è ciò che l'utente vede inizialmente:

portale di assistenza clienti dynamics 365 aprire un nuovo caso
Dopo aver compilato i campi "Titolo" e "Oggetto", il modulo continua a espandersi. A scopo dimostrativo, simuleremo lo scenario di un cliente che ha un errore di login quando tenta di accedere al proprio account SaaS per CB Dynamics 365 to SharePoint Permissions Replicator.
Esempio di portale di assistenza clienti Dynamics 365

Una volta completato il modulo, è possibile notare che le informazioni sono suddivise in diversi campi anziché in un'unica grande casella di testo. Il sistema è ora in grado di leggere questi diversi campi e di indirizzare correttamente il caso alla coda appropriata, tramite flussi di lavoro predefiniti.

Ogni volta che un caso viene indirizzato, il team ricevente viene avvisato con un'e-mail automatica che lo informa di aver ricevuto un nuovo caso sul portale di assistenza. A quel punto, il team deve accedere al CRM per controllare il caso e lasciare un commento sul portale, che è un semplice commento sul portale del servizio clienti Dynamics 365 alla domanda che è stata posta, oppure inviare un appuntamento sul calendario, sempre tramite il CRM, per organizzare una chiamata, se necessario. Il cliente viene avvisato via e-mail e lo stesso avviene per i membri del team assegnati alle code ogni volta che si verifica un aggiornamento di un caso di assistenza (ad esempio, una risposta dell'utente a un commento sul portale).

Risolvere i casi utilizzando esclusivamente il CRM Microsoft Dynamics 365 è un aspetto a cui il nostro team si è dovuto abituare (e che verrà affrontato più avanti), ma è estremamente vantaggioso in quanto tutte le comunicazioni e i processi sono ora tracciati. Questo ci dà la possibilità di generare dati di cui possiamo fidarci, di analizzarli e di ricavarne iniziative per aumentare la soddisfazione dei clienti e continuare a migliorare la nostra linea di prodotti.

Connecting Software Portale SaaS

Il nostro Portale SaaS, la risorsa che i nostri clienti utilizzano per gestire le soluzioni distribuite attraverso i nostri server SaaS Microsoft Azure, ha subito anch'essa alcune modifiche. Nel piè di pagina è presente un link "Contattaci", che prima reindirizzava i clienti a un luogo dedicato alla creazione di ticket di assistenza per le loro richieste.
portale di assistenza clienti dynamics 365 contattaci

Con il nostro nuovo portale di assistenza clienti Dynamics 365, questo è diventato una ridondanza. Poiché uno degli obiettivi principali del portale di assistenza è quello di centralizzare le richieste di assistenza, non aveva senso che le richieste provenienti dal nostro portale SaaS passassero attraverso un canale diverso. Per questo motivo, il nostro team di sviluppo ha configurato il campo "Contattaci" in modo che i clienti siano indirizzati direttamente al nostro portale SaaS. Portale di supporto.

Ma c'è un bonus! Una volta che un cliente raggiunge questa pagina, alcuni campi del modulo riprogettato che abbiamo creato vengono compilati automaticamente in base alla pagina da cui proviene il cliente. In questo modo, possiamo aumentare l'efficienza, rimanendo in linea con gli obiettivi che ci hanno portato a sviluppare questo portale di assistenza clienti Dynamics 365.

Evento #4 - Dimensione totale dell'allegato

Come probabilmente saprete, gli allegati sono estremamente utili quando si crea un caso di assistenza, in quanto facilitano lo scambio di informazioni tra l'utente e il professionista che effettua l'assistenza. Tuttavia, a seconda della complessità del caso in questione, la dimensione totale degli allegati può variare e di solito ci sono delle limitazioni.

Il portale del servizio clienti Dynamics 365 prevede un limite di 5 MB per le dimensioni totali degli allegati che i clienti possono inviare insieme ai loro casi. Per i clienti che allegano un semplice screenshot è più che sufficiente, ma per i casi che richiedono, ad esempio, una registrazione dello schermo o un numero maggiore di immagini, questo diventa un problema.

      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

Soluzione: un workaround

Sebbene il nostro team di sviluppo sia brillante, non possiamo fare molto per questa limitazione degli allegati. La soluzione migliore per questo problema è fornire all'utente un repository alternativo per il caricamento dei file, che vengono analizzati dal team che si occupa del caso. A questo scopo, la piattaforma che utilizziamo è ownCloud.

Altre occorrenze

Oltre alle quattro precedenti, ci sono state altre situazioni che hanno dimostrato la nostra disponibilità e capacità di modificare il lancio iniziale del progetto in caso di necessità. Ad esempio, noi:

  • Adattamento delle visualizzazioni Microsoft Dynamics 365 e della ricercabilità delle descrizioni dei commenti del portale.
  • Miglioramento della leggibilità dei commenti del portale per i clienti e il team di assistenza, eliminando il codice HTML e includendo il testo ricco.
  • Aggiunta di una colonna extra per compilare un URL esterno della Knowledge Base
  • Impostare un processo di risoluzione automatica dei casi che rimangono senza risposta.
  • Abbiamo imparato a conoscere i modi in cui Microsoft Dynamics 365 esegue il rendering HTML per garantire che le nostre e-mail informative ai clienti vengano visualizzate come desiderato (Suggerimento: L'HTML deve essere in una singola riga di codice piuttosto che in un formato standard).

Inoltre, nell'ambito del progetto di Microsoft di rendere più sicura la piattaforma Power Pages, è stato introdotto un sistema di protezione per le pagine di Power Pages. Concetto di utente dell'applicazione Dataverse. In breve, tutte le azioni eseguite all'interno delle applicazioni web hanno dietro un tipo di utente e ogni tipo di utente ha privilegi diversi.

L'utente SYSTEM era quello utilizzato dalla soluzione D365 che abbiamo costruito, di cui abbiamo parlato nella Parte 1 di questo articolo. Con la nuova introduzione, l'utente SYSTEM è diventato un utente Application, che non ha gli stessi privilegi dell'utente SYSTEM precedente. Di conseguenza, la soluzione che abbiamo costruito è diventata limitata e non funzionava correttamente.

L'unica cosa da fare era assegnare i permessi di amministratore di sistema (che aveva l'utente SYSTEM precedente) al nuovo utente dell'applicazione implementato da Microsoft. Una volta eseguito questo processo, il nostro plugin ha ripreso l'efficacia di 100%!

Dynamics 365 Formazione CRM

Ora che abbiamo affrontato gli ostacoli tecnici che abbiamo incontrato durante la costruzione del nostro portale di assistenza, vorremmo soffermarci brevemente sugli aspetti gestionali dell'implementazione del portale di assistenza clienti Dynamics 365, ovvero la formazione sul CRM Dynamics 365 che il nostro team ha dovuto seguire. Come vi dirà qualsiasi project manager, l'impegno del team ad adattarsi ai nuovi metodi di lavoro può essere una delle sfide più grandi quando si introduce un miglioramento.

Forse sapete che in passato il nostro team forniva assistenza ai clienti via e-mail. Ora, i membri del team devono lasciare commenti sul portale o inviare inviti a riunioni esclusivamente attraverso il nostro CRM. Per garantire una transizione graduale a un nuovo processo come questo, è stato importante informare il team sulle ragioni di questa scelta, in modo che ne vedessero i vantaggi, sia dal punto di vista del tempo risparmiato, sia per quanto riguarda le esigenze di reporting aziendale, sia per le iniziative di miglioramento continuo, sia per semplificare l'esperienza di assistenza ai clienti. Anche per i nostri clienti, ci aspettiamo che si siano dovuti abituare a utilizzare il portale di assistenza per le loro domande, invece di inviare un'e-mail ai membri del team con cui avevano già familiarità.

Infine, la manutenzione della nostra Knowledge Base è stata un'altra opportunità di cambiamento. Ora che il nostro portale di assistenza clienti Microsoft Dynamics 365 ci fornisce una visione molto più chiara delle richieste dei nostri clienti, oltre a fornire assistenza, il team deve anche continuare ad aggiungere i casi ricorrenti alla Knowledge Base per garantire che queste informazioni siano prontamente disponibili a tutti gli utenti del portale di assistenza.

Il risultato

Guardiamo a questi eventi in modo positivo, perché ci hanno permesso di portare il nostro portale di assistenza nella migliore forma possibile per i nostri clienti. Sebbene si sia trattato di un progetto lungo che ha richiesto l'impegno e la piena dedizione dei membri del nostro team, ha indubbiamente dato i suoi frutti. La possibilità di offrire una maggiore comodità ai nostri clienti e una solida fonte di informazioni per noi significa che abbiamo acquisito una leva per continuare a raggiungere i nostri obiettivi e non vediamo l'ora di vedere come possiamo continuare a ottimizzare i nostri processi utilizzando il portale di assistenza clienti Microsoft Dynamics 365.

Ci auguriamo che vi sia piaciuto saperne di più sulla nostra esperienza di creazione del nostro Portale di supporto. In Parte 1 di questo articolo, abbiamo incluso una parte di un plugin che abbiamo costruito appositamente per Servizio clienti Microsoft Dynamics 365. Per noi è stato estremamente utile, quindi non esitate a dare un'occhiata e a richiedere la versione completa!


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.