Dinámica

Dynamics 365 Portal de Atención al Cliente: Retos y soluciones - Parte 1

Diogo GouveiaProducts and Solutions, Technical Leave a Comment

Servicio de atención al cliente de Microsoft Dynamics 365 ofrece un conjunto de herramientas que permiten a las organizaciones optimizar la gestión de su servicio de atención al cliente. Además de mejorar la experiencia del cliente, esta plataforma también puede ayudar en el seguimiento de la comunicación y los procesos de soporte interno, lo que beneficia tanto a las empresas como a sus clientes.

Sin embargo, aunque un portal de atención al cliente Microsoft Dynamics 365 puede ser útil, configurarlo para satisfacer un conjunto único de requisitos puede ser una tarea difícil.

En Connecting Software, utilizamos Servicio de atención al cliente de Microsoft Dynamics 365 para construir nuestro Portal de asistencia. Dado que teníamos una visión específica de lo que queríamos conseguir con nuestro Portal de Soporte, a través de este artículo detallaremos el proceso de construcción del mismo a través de la implementación del Servicio de Atención al Cliente Dynamics 365, a la vez que mostraremos los obstáculos que encontramos en el camino y las soluciones que encontramos para solventarlos de la mejor manera posible.

Dynamics 365 Portal de atención al cliente Características

El Portal de Atención al Cliente Dynamics 365 permite crear un sistema centralizado de Base de conocimientosque es una de las principales características de nuestro portal de asistencia. Contiene información fiable sobre casos de uso comunes en torno a nuestros productos, de fácil acceso para los clientes.
Base de conocimientos

En los casos en que nuestros clientes no puedan encontrar una respuesta a lo que buscan en la Base de conocimientos, el Portal de atención al cliente Dynamics 365 permite a los clientes crear casos de asistencia. Desde el punto de vista del cliente, estas son las dos características principales de nuestro Portal de Soporte.

Para nosotros, sin embargo, la principal ventaja es poder generar información relativa al uso del Portal de Soporte y de nuestras soluciones de software. Por ejemplo, si observamos que se están enviando varios casos sobre un problema concreto en un producto específico, podemos redirigir nuestros recursos para resolver rápidamente el problema. Si sólo se trata de una pregunta frecuente, podemos añadirla a la Base de conocimientos de nuestro Portal de soporte para que la información esté disponible para cualquier cliente que comparta la misma preocupación.

Como tal, el Portal de Atención al Cliente Dynamics 365 actúa como una herramienta centralizada para evaluar la calidad de nuestros productos, mejorar la satisfacción del cliente, realizar un seguimiento de las interacciones con el cliente, garantizar que tenemos acceso a información que nos permite seguir mejorando, adaptar nuestra planificación de recursos e incluso generar valiosos informes internos, por ejemplo, el coste de asistencia por producto.

Veamos ahora los obstáculos a los que nos enfrentamos al implantar nuestro portal de asistencia.

Ocurrencia #1 - Base de clientes existente

Contar con una base de clientes existente cuando empezamos a trabajar en el Portal de Soporte resultó ser problemático.

Cuando un cliente se registra por primera vez en nuestro Portal, se crea un contacto duplicado en Microsoft Dynamics 365 (CRM), es decir, nuestra base de datos de clientes. Microsoft Dynamics 365 para el servicio de atención al cliente no vincula de forma nativa el contacto duplicado con el contacto real del cliente en nuestra base de datos de clientes, por lo que la información no se centraliza en un único registro. Esto significaba que nuestros casos de soporte tampoco estaban vinculados al contacto asociado con la cuenta con la que tenemos una relación establecida. En su lugar, estaban vinculados a los contactos duplicados vacíos creados como resultado del registro en el Portal de Soporte.

Este problema se podría haber resuelto enviando automáticamente una invitación que vinculara correctamente los contactos duplicados con los contactos de clientes reales en nuestro CRM, pero esto es algo que habría que haber hecho desde el principio al iniciar la base de clientes. Además, aunque esto funcione en teoría, no es una solución realista debido a las bajas tasas de apertura de los correos electrónicos. Para poner las cosas en perspectiva, según Mailchimp, la tasa media de apertura de correos electrónicos en todos los sectores fue de tan solo un 21.33% en 2021.

También puede estar pensando que una fusión por defecto de los registros habría sido suficiente, pero no es el caso, ya que la fusión de la información de los registros en un solo contacto daría lugar a la pérdida de acceso a nuestro Portal de Soporte.

Solución: un complemento Dynamics 365

La otra forma de resolver esto sería crear un plugin Microsoft Dynamics 365 personalizado (denominado Solución en el mundo de Power Apps), y esto es lo que hicimos. El plugin que construimos escanea si el usuario ya existe en nuestro CRM durante el registro en el Portal de Soporte.

Hay dos resultados posibles: si el usuario existe en nuestra base de datos, el plugin reconoce esta coincidencia y fusiona la información de ambos registros en un único contacto sin que el usuario pierda el acceso al Portal de Atención al Cliente Dynamics 365, es decir, nuestro Portal de Soporte. El segundo contacto, que no contiene información en este momento, es eliminado automáticamente por el complemento que hemos creado, que ejecuta semanalmente un trabajo de eliminación masiva independiente para purgar los registros.

En caso de que el usuario que se registra en el Portal no exista en nuestro CRM, el plugin hace algo diferente. Al ser una empresa B2B, los correos electrónicos de los clientes de nuestra base de datos tienen un dominio específico de las organizaciones para las que trabajan. Por lo tanto, si un usuario que no está en nuestro CRM desea registrarse en nuestro Portal, el plugin busca en nuestro CRM el dominio de correo electrónico de este nuevo usuario. En caso de que haya una coincidencia, se crea automáticamente un nuevo contacto en el CRM porque este usuario pertenece a una empresa con la que ya estamos familiarizados. Por el contrario, si no hay ninguna coincidencia en nuestra base de datos con el dominio de correo electrónico del cliente que se registra en el Portal de Soporte, se nos informa internamente del intento de registro y nos ponemos en contacto para obtener más información en caso necesario.

Puede encontrar parte del código de nuestro plugin Microsoft Dynamics 365 a través de este link. No dude en tender la mano si desea la versión completa.

      public void Ejecutar(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(entidad);
        
        if (isLoginEnabled == false)
        {
            return;
        }

        try
        {
            var emailAddress = (cadena) entity["emailaddress1"];
            var contactsWithSameEmailAddress = GetContactsByEmailAddress(service, entity.Id, emailAddress);
            if (contactsWithSameEmailAddress.Entities.Count > 0)
            {
                var hasLoginEnabled = HasLoginEnabled(contactsWithSameEmailAddress.Entities[0]);
                si (hasLoginEnabled)
                {
                    lanza una nueva InvalidPluginExecutionException(OperationStatus.Failed,
                        "El usuario ya existe. Prueba con otra dirección de correo electrónico para registrarte o inicia sesión en tu cuenta existente");
                }

                var mergeRequest = new MergeRequest
                {
                    SubordinadoId = entidad.Id,
                    Target = new EntityReference("contacto", contactsWithSameEmailAddress.Entities[0].Id),
                    UpdateContent = GetUpdateContent(entidad)
                };
                var _ = (MergeResponse) service.Execute(mergeRequest);
                entity[CustomAttributeName] = true;
                service.Update(entidad);
            }
            else
            {
                var domain = emailAddress.Split('@')[1];
                if (_publicDomains.Contains(domain))
                {
                    SendEmailAndDeactivateContact(service, tracingService, entity);
                }
                else
                {
                    var contactsWithSameDomain = GetContactsByDomain(service, entity.Id, domain);
                    if (contactsWithSameDomain.Entities.Count > 0)
                    {
                        entity["parentcustomerid"] = contactsWithSameDomain.Entities[0]["parentcustomerid"];
                        service.Update(entidad);
                    }
                    else
                    {
                        SendEmailAndDeactivateContact(service, tracingService, entity);
                    }
                }
            }
        }
        catch (FaultException ex)
        {
            throw new InvalidPluginExecutionException("Se ha producido un error en ContactPostOperationPlugin.", ex);
        }
    }
Cerrar código

Nuestra tienda web

También tuvimos que crear otra integración para nuestro Tienda webYa que sólo permitimos el acceso de un usuario a nuestro Portal de Atención al Cliente Microsoft Dynamics 365 cuando podemos relacionarlo de alguna manera con un registro de nuestro CRM, o cuando hemos aclarado quién es.
Image
No todas las personas que realizan un pedido en la tienda web son contactos en nuestro CRM, pero si nos compran una solución, es posible que necesiten asistencia. La integración que hemos desarrollado toma los datos del usuario que compra a través de la tienda web y crea un contacto en nuestra base de datos de clientes. Este lead se marca como "Cualificado", lo que automáticamente crea un Contacto y una Cuenta en el CRM y les da acceso a nuestro Portal.

Incidencia #2 - Mensaje de error en el Servicio de Atención al Cliente D365

Los usuarios que aún no estaban registrados en nuestro Portal de Atención al Cliente Dynamics 365 recibían un mensaje de error engañoso cada vez que intentaban iniciar sesión. Este mensaje indicaba que su contraseña era incorrecta, en lugar de informarles de que su correo electrónico no estaba registrado en el Portal de Soporte.
Volviendo a nuestro caso anterior, cada vez que un usuario se registra en el Portal de Soporte, se crea un registro duplicado en nuestro CRM. Los clientes que no están registrados en el Portal no tienen este registro duplicado, por lo que el sistema no puede leer ningún registro que contenga información sobre su inicio de sesión. Lo que hace el sistema es actualizar el campo "entrada de nombre de usuario" en el CRM, que no contiene ninguna información. Esto provoca que el Servicio de Atención al Cliente de Microsoft Dynamics 365 asuma que el usuario ya tiene un nombre de usuario, mostrando el mensaje informando de que su contraseña es incorrecta.

Solución: el complemento Dynamics 365

Al igual que la solución al problema que teníamos con una base de datos de clientes existente, la mejor forma de combatir este mensaje de error era utilizar un complemento/solución de Microsoft Dynamics 365.

De hecho, utilizamos el mismo plugin Dynamics 365 que ya teníamos, sólo que con una ligera alteración. Nuestro equipo de desarrollo registró un paso más del plugin, que es esencialmente un comando que identifica y detiene el error que el sistema comete al actualizar el campo de "entrada de nombre de usuario" cuando no tiene ninguna información en él. El paso del plugin corrige entonces el mensaje de error que se muestra al usuario que intenta acceder al Portal, indicando que no tiene un nombre de usuario para el Portal de Soporte en lugar de decir que su contraseña es incorrecta.

Esperamos que haya disfrutado leyendo este artículo hasta ahora. Parte 2 se publicará en breve, así que no pierda de vista nuestro Página del blog para ser el primero en saber cuándo sale a la venta.


Sobre el autor

Diogo Gouveia

Por Diogo Gouveia

"Después de terminar mis estudios en el Reino Unido, me incorporé al equipo de Marketing de Connecting Software para crear contenidos sobre integración de software y otros temas informáticos diversos. Si tienes alguna observación o sugerencia, no dudes en ponerte en contacto conmigo".

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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