Serviço de Apoio ao Cliente Microsoft Dynamics 365 disponibiliza um conjunto de ferramentas que permitem às organizações otimizar a gestão do seu serviço de apoio ao cliente. Para além de melhorar a experiência do cliente, esta plataforma pode também ajudar a acompanhar a comunicação e os processos de suporte interno, beneficiando tanto as empresas como os seus clientes.
No entanto, embora um Portal de Atendimento ao Cliente Microsoft Dynamics 365 possa ser útil, configurá-lo para atender a um conjunto exclusivo de requisitos pode ser uma tarefa desafiadora.
No Connecting Software, utilizámos Serviço de Apoio ao Cliente Microsoft Dynamics 365 para construir a nossa Portal de apoio. Uma vez que tínhamos uma visão específica do que queríamos alcançar com o nosso Portal de Suporte, através deste artigo vamos detalhar o processo de construção do mesmo através da implementação do Serviço de Apoio ao Cliente Dynamics 365, enquanto mostramos os obstáculos que encontrámos pelo caminho e as soluções que encontrámos para os ultrapassar da melhor forma.
Características do Portal de Serviço ao Cliente Dynamics 365
Nos casos em que nossos clientes não conseguem encontrar uma resposta para o que estão procurando na Base de Conhecimento, o Portal de Atendimento ao Cliente Dynamics 365 permite que os clientes criem casos de suporte. Do ponto de vista do cliente, estas são as duas principais características do nosso Portal de Suporte.
Para nós, no entanto, a principal vantagem é poder gerar informações sobre a utilização do Portal de Apoio e das nossas soluções de software. Por exemplo, se verificarmos que estão a ser apresentados vários casos sobre um problema específico de um produto específico, podemos redirecionar os nossos recursos para resolver rapidamente a questão. Se for apenas uma FAQ, podemos adicioná-la à Base de Conhecimentos do nosso Portal de Suporte para disponibilizar a informação a qualquer cliente que partilhe a mesma preocupação.
Assim, o Portal de Serviço ao Cliente Dynamics 365 funciona como uma ferramenta centralizada para avaliar a qualidade dos nossos produtos, melhorar a satisfação do cliente, acompanhar as interacções com o cliente, garantir que temos acesso a informação que nos permite continuar a melhorar, adaptar o nosso planeamento de recursos e até gerar relatórios internos valiosos, por exemplo, o custo de apoio por produto.
Vejamos agora os obstáculos que enfrentámos durante a implementação do nosso Portal de Apoio.
Ocorrência #1 - Base de clientes existente
Ter uma base de clientes existente quando começámos a trabalhar no Portal de Apoio acabou por ser problemático.
Sempre que um cliente se regista pela primeira vez no nosso Portal, é criado um contacto duplicado no Microsoft Dynamics 365 (CRM), ou seja, na nossa base de dados de clientes. O Microsoft Dynamics 365 for Customer Service não liga nativamente o contacto duplicado ao contacto real do cliente na nossa base de dados de clientes, pelo que a informação não é centralizada num único registo. Isto significa que os nossos casos de suporte também não estavam ligados ao contacto associado à conta com a qual temos uma relação estabelecida. Em vez disso, estavam ligados aos contactos duplicados vazios criados como resultado do registo no Portal de suporte.
Este problema poderia ter sido resolvido através do envio automático de um convite que ligasse com êxito os contactos duplicados aos contactos reais do cliente no nosso CRM, mas isto é algo que teria de ser feito desde o início da criação da base de clientes. Além disso, apesar de isto funcionar em teoria, não é uma solução realista devido às baixas taxas de abertura de correio eletrónico. Só para colocar as coisas em perspetiva, de acordo com a Mailchimp, a taxa média de abertura de correio eletrónico em todos os sectores foi de apenas 21.33% em 2021.
Pode também pensar que uma fusão por defeito dos registos teria sido suficiente, mas não é o caso, uma vez que a fusão das informações dos registos num único contacto resultaria na perda de acesso ao nosso Portal de Apoio.
Solução - Um plugin Dynamics 365
A outra forma de resolver este problema seria criar um plugin Microsoft Dynamics 365 personalizado (designado por Solution no mundo das Power Apps), e foi isso que fizemos. O plug-in que criámos verifica se o utilizador já existe no nosso CRM durante o registo no Portal de Suporte.
Existem dois resultados possíveis: se o utilizador existir na nossa base de dados, o plugin reconhece esta correspondência e junta a informação de ambos os registos num único contacto sem que o utilizador perca o acesso ao Portal de Serviço ao Cliente Dynamics 365, ou seja, ao nosso Portal de Suporte. O segundo contacto, que não contém qualquer informação neste momento, é automaticamente eliminado pelo plugin que criámos, que executa uma tarefa de eliminação em massa separada semanalmente para limpar os registos.
No caso de o utilizador que se inscreve no Portal não existir no nosso CRM, o plugin faz algo diferente. Sendo uma empresa B2B, os e-mails dos clientes na nossa base de dados têm um domínio específico das organizações para as quais trabalham. Assim, se um utilizador que não está no nosso CRM quiser registar-se no nosso Portal, o plugin procura no nosso CRM o domínio de e-mail desse novo utilizador. Caso exista uma correspondência, é automaticamente criado um novo contacto no CRM porque este utilizador pertence a uma empresa que já conhecemos. Pelo contrário, se não houver correspondência na nossa base de dados com o domínio de correio eletrónico do cliente que se inscreve no Portal de Apoio, somos informados internamente da tentativa de registo e contactamos para obter mais informações, caso seja necessário.
Pode encontrar parte do código do nosso plug-in Microsoft Dynamics 365 em esta ligação. Não hesite em alcançar para nós se quiser a versão 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 = (Entidade) context.InputParameters["Target"]; var isLoginEnabled = HasLoginEnabled(entity); se (isLoginEnabled == false) { return; } try { var emailAddress = (string) entity["emailaddress1"]; var contactsWithSameEmailAddress = GetContactsByEmailAddress(service, entity.Id, emailAddress); se (contactsWithSameEmailAddress.Entities.Count > 0) { var hasLoginEnabled = HasLoginEnabled(contactsWithSameEmailAddress.Entities[0]); Se (hasLoginEnabled) { lança uma nova InvalidPluginExecutionException(OperationStatus.Failed, "O utilizador já existe. Tente um endereço de correio electrónico diferente para se registar ou inicie sessão na sua conta existente."); } var mergeRequest = new MergeRequest { SubordinateId = entity.Id, Target = new EntityReference("contact", contactsWithSameEmailAddress.Entities[0].Id), UpdateContent = GetUpdateContent(entity) }; var _ = (MergeResponse) service.Execute(mergeRequest); entity[CustomAttributeName] = true; service.Update(entity); } else { var domain = emailAddress.Split('@')[1]; se (_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(entity); } else { SendEmailAndDeactivateContact(service, tracingService, entity); } } } } catch (FaultExceptionFechar códigoex) { lançar uma nova InvalidPluginExecutionException("Ocorreu um erro em ContactPostOperationPlugin.", ex); } }
A nossa loja virtual
Ocorrência #2 - Mensagem de erro no Serviço de Apoio ao Cliente D365
Os utilizadores que ainda não estavam registados no nosso Portal de Apoio ao Cliente Dynamics 365 recebiam uma mensagem de erro enganadora sempre que tentavam iniciar sessão. Esta mensagem indicava que a sua palavra-passe estava incorrecta, em vez de informar que o seu e-mail não estava registado no Portal de Apoio.
Voltando à ocorrência anterior, sempre que um utilizador se regista no Portal de suporte, é criado um registo duplicado no nosso CRM. Os clientes que não estão registados no Portal não têm este registo duplicado, pelo que não existe nenhum registo para o sistema ler que contenha informações sobre o seu início de sessão. O que o sistema faz é atualizar o campo "username input" no CRM, que não contém qualquer informação. Isso faz com que o Serviço de Atendimento ao Cliente Microsoft Dynamics 365 assuma que o usuário já possui um login, exibindo a mensagem informando que a senha está incorreta.
Solução - O plugin Dynamics 365
Tal como a solução para o problema que tivemos com a existência de uma base de dados de clientes, a melhor abordagem para combater esta mensagem de erro foi utilizar um Plugin/Solução Dynamics 365 da Microsoft.
Na verdade, utilizámos o mesmo plugin Dynamics 365 que já tínhamos, apenas com uma ligeira alteração. A nossa equipa de desenvolvimento registou mais um passo do plugin, que é essencialmente um comando que identifica e pára o erro que o sistema comete ao atualizar o campo "username input" quando este não tem qualquer informação. O passo do plugin corrige então a mensagem de erro que é mostrada ao utilizador que tenta aceder ao Portal, dizendo que não tem um login para o Portal de Suporte em vez de dizer que a sua password está incorrecta.
Esperamos que tenha gostado de ler este artigo até agora. Parte 2 será publicado brevemente, por isso, fique atento à nossa Página do blogue para ser o primeiro a saber quando for lançado!
Atualização! Parte 2 é agora publicado
Sobre o Autor
Por Diogo Gouveia
"Depois de completar os meus estudos no Reino Unido, juntei-me à equipa de Marketing no Connecting Software para criar conteúdos sobre integração de software e uma variedade de outros tópicos de TI. Se tiver quaisquer observações ou sugestões, por favor contacte".