Cabeçalho do Portal de Serviço ao Cliente Dynamics 365 parte 2

Portal de Serviço ao Cliente Dynamics 365: Desafios e soluções - Parte 2

Diogo GouveiaProducts and Solutions, Technical Leave a Comment

Bem-vindo à Parte 2 do artigo! Aqui, continuaremos a explicar a nossa experiência no desenvolvimento do nosso Portal de Atendimento ao Cliente do Microsoft Dynamics 365. Se não leu Parte 1 No entanto, não deixe de dar uma vista de olhos (incluímos um plugin personalizado para o Serviço de Apoio ao Cliente D365)!

Ocorrência #3 - Abertura de um novo processo

Durante a criação do nosso Portal de Suporte, deparámo-nos com uma situação relacionada com o formulário que os nossos clientes preenchem quando criam um novo caso. O design predefinido desta página no Serviço de Apoio ao Cliente Microsoft Dynamics 365 inclui uma caixa de texto geral, onde os clientes devem fornecer detalhes sobre as particularidades dos seus casos.

Embora este formato possa ser útil para algumas empresas, não era adequado para o nível de automatização que procurávamos. Essencialmente, estávamos à procura de uma forma de encaminhar prontamente cada novo caso criado no Portal para uma fila de espera adequada, cada uma contendo uma equipa de indivíduos mais adequados para responder a cada caso. Para além de ser muito mais eficiente, também consome menos tempo do que ter de analisar cada caso individualmente para só depois o encaminhar para os especialistas adequados.

Solução - Reformulação do Formulário de Serviço ao Cliente D365

Para otimizar a resolução dos casos que recebemos no Portal de suporte, a nossa equipa teve de redesenhar a página "Abrir um novo caso". Em vez da caixa de consulta geral que acabámos de mencionar, criámos um formulário que se expande à medida que os clientes preenchem as informações sobre os seus casos.

Quando se inicia sessão, é isto que o utilizador vê inicialmente:

portal de atendimento ao cliente do dynamics 365 abrir um novo caso
Depois de preencher os campos "Título" e "Assunto", o formulário continua a expandir-se. Para fins de demonstração, vamos simular o cenário de um cliente com um erro de início de sessão ao tentar aceder à sua conta SaaS para CB Dynamics 365 to SharePoint Permissions Replicator.
Exemplo de caso do portal de atendimento ao cliente Dynamics 365

Uma vez preenchido o formulário, pode ver que a informação está dividida em diferentes campos, em vez de numa grande caixa de texto. O sistema pode agora ler estes diferentes campos e encaminhar corretamente o caso para a fila adequada, através de fluxos de trabalho de processos pré-definidos.

Cada vez que um caso é encaminhado, a equipa recetora é alertada por um e-mail automático informando-a de que recebeu um novo caso no Portal de Suporte. Em seguida, essa equipa tem de ir ao CRM para verificar o caso e deixar um comentário no Portal, que é um simples comentário no Portal de Serviço ao Cliente Dynamics 365 à questão que foi colocada, ou enviar uma marcação no calendário, também através do CRM, para marcar uma chamada, se necessário. O cliente é então notificado destas ocorrências por e-mail, e o mesmo acontece com os membros da equipa que estão atribuídos às filas de espera sempre que há uma atualização de um caso de apoio (por exemplo, uma resposta do utilizador a um comentário no portal).

A resolução de casos exclusivamente com recurso ao CRM Microsoft Dynamics 365 é algo a que a nossa equipa teve de se habituar (e que será abordado mais à frente), mas é extremamente benéfico, uma vez que toda a comunicação e processos são agora rastreados. Isto dá-nos a capacidade de gerar dados em que podemos confiar, de os analisar e de derivar iniciativas para aumentar a satisfação do cliente e continuar a melhorar a nossa linha de produtos.

Connecting Software Portal SaaS

Nosso Portal SaaSA página de suporte do Microsoft Azure SaaS, o recurso que os nossos clientes utilizam para gerir as soluções implementadas através dos nossos servidores SaaS Microsoft Azure, também sofreu alguns ajustamentos. No rodapé da página existe uma ligação "Contacte-nos", que costumava redirecionar os clientes para um local dedicado à criação de bilhetes de apoio para as suas questões.
portal de serviço ao cliente do dynamics 365 contacte-nos

Com o nosso novo Portal de Atendimento ao Cliente Dynamics 365, isso se tornou uma redundância. Como um dos principais objectivos do Portal de Apoio é centralizar os pedidos de apoio, não fazia sentido que os pedidos provenientes do nosso Portal SaaS passassem por um canal diferente. Como tal, a nossa equipa de desenvolvimento configurou este campo "Contacte-nos" para conduzir os clientes diretamente para o nosso Portal de apoio.

Mas há um bónus! Quando um cliente chega a esta página, alguns campos do formulário redesenhado que criámos são automaticamente preenchidos de acordo com a página de onde o cliente veio. Desta forma, conseguimos aumentar a eficiência, mantendo-nos em linha com os objectivos que nos levaram a desenvolver este Portal de Serviço ao Cliente Dynamics 365.

Ocorrência #4 - Tamanho total do anexo

Como deve saber, os anexos são extremamente úteis na criação de um caso de suporte, pois facilitam a troca de informações entre o utilizador e o profissional que realiza o atendimento. No entanto, dependendo da complexidade do caso em questão, o tamanho total dos anexos pode variar, e normalmente há limitações para isso.

O Portal de Serviço ao Cliente do Dynamics 365 tem um limite de 5MB para o tamanho total dos anexos que os clientes podem enviar juntamente com os seus casos. Para os clientes que anexam uma simples captura de ecrã, isto é mais do que suficiente, mas para os casos que necessitam de uma gravação de ecrã ou de um maior número de imagens, por exemplo, isto torna-se um 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 = (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 (FaultException ex)
        {
            lançar uma nova InvalidPluginExecutionException("Ocorreu um erro em ContactPostOperationPlugin.", ex);
        }
    }
Fechar código

Solução - Uma solução alternativa

Embora a nossa equipa de desenvolvimento seja brilhante, não há muito que possamos fazer em relação a esta limitação de anexos. A melhor solução para este problema é fornecer ao utilizador um repositório alternativo para o carregamento de ficheiros, que são analisados pela equipa que trata do caso. Para este efeito, a plataforma que utilizamos é a ownCloud.

Outras ocorrências

Para além das quatro anteriores, houve outras situações que provaram que estávamos dispostos e capazes de modificar a implementação inicial do projeto, caso fosse necessário. A título de exemplo, nós:

  • Adaptou as visualizações do Microsoft Dynamics 365 e a capacidade de pesquisa das descrições dos comentários do Portal
  • Melhorou a legibilidade dos comentários do Portal para o Cliente e a Equipa de Apoio, removendo o código HTML e incluindo Rich Text
  • Adicionada uma coluna extra para compilar um URL externo da Base de Dados de Conhecimento
  • Estabelecer um processo de resolução automática dos casos que ficam sem resposta
  • Aprendi as formas como o Microsoft Dynamics 365 processa o HTML para garantir que as nossas mensagens electrónicas de informação para os clientes são apresentadas como desejado (Dica: O HTML deve estar numa única linha de código e não num formato padrão).

Além disso, como parte da jornada da Microsoft para tornar a plataforma Power Pages mais segura, eles introduziram um Conceito de utilizador da aplicação Dataverse. Em suma, todas as acções executadas nas aplicações Web têm um tipo de utilizador por detrás, e cada tipo de utilizador tem privilégios diferentes.

O utilizador SYSTEM era o que estava a ser utilizado pela solução D365 que criámos, mencionada na Parte 1 deste artigo. A nova introdução fez com que este utilizador SYSTEM passasse a ser um utilizador Application, que não tem os mesmos privilégios que o anterior utilizador SYSTEM. Como tal, a solução que criámos tornou-se restrita e não estava a funcionar corretamente.

A única coisa que teve de ser feita foi atribuir as permissões de Administrador do Sistema (transportadas pelo anterior utilizador SYSTEM) ao novo Utilizador da Aplicação que a Microsoft implementou. Uma vez efectuado este processo, o nosso plugin retomou a eficácia do 100%!

Dynamics 365 Formação CRM

Agora que já abordámos os obstáculos técnicos que enfrentámos durante a construção do nosso Portal de Apoio, gostaríamos de abordar brevemente os aspectos de gestão da implementação do Portal de Apoio ao Cliente Dynamics 365, nomeadamente a formação em CRM Dynamics 365 que a nossa equipa teve de realizar. Como qualquer gestor de projeto lhe dirá, o empenho da equipa em adaptar-se às novas formas de trabalho pode ser um dos maiores desafios na implementação de uma melhoria.

Talvez saiba que, anteriormente, a nossa equipa prestava apoio ao cliente por correio eletrónico. Agora, os membros da equipa são obrigados a deixar comentários no Portal ou a enviar convites para reuniões exclusivamente através do nosso CRM. Para garantir uma transição suave para um novo processo como este, foi importante informar a equipa sobre as razões por detrás deste processo, para que pudessem ver os benefícios, quer do ponto de vista do tempo que podem poupar, quer das necessidades de relatórios da empresa para derivar iniciativas de melhoria contínua, quer da simplificação da experiência de apoio ao cliente. Mesmo para os nossos clientes, esperamos que também tenham tido de se adaptar à utilização do Portal de Apoio para as suas questões, em vez de enviarem um e-mail aos membros da equipa com quem já estavam familiarizados.

Por último, a manutenção da nossa Base de Conhecimentos foi outra oportunidade de mudança. Agora que o nosso Portal de Serviço ao Cliente Microsoft Dynamics 365 nos dá uma visão muito mais clara das questões que os nossos clientes têm colocado, para além de prestar apoio, a equipa tem também de continuar a adicionar os casos recorrentes à Base de Conhecimento para garantir que esta informação está prontamente disponível para todos os utilizadores do Portal de Apoio.

O que levar

Olhamos para estas ocorrências de forma positiva porque nos permitiram colocar o nosso Portal de Suporte na melhor forma possível para os nossos clientes. Apesar de ter sido um projeto longo, que exigiu o esforço e a dedicação total dos membros da nossa equipa, foi, sem dúvida, compensador. O facto de podermos oferecer mais comodidade aos nossos clientes e uma forte fonte de informação para nós, significa que ganhámos vantagem para continuar a atingir os nossos objectivos, e estamos ansiosos por ver como podemos continuar a otimizar os nossos processos utilizando o Portal de Serviço ao Cliente Microsoft Dynamics 365.

Esperamos que tenha gostado de saber mais sobre a nossa experiência de criação do nosso Portal de apoio. Em Parte 1 deste artigo, incluímos parte de um plugin que construímos especificamente para Serviço de Apoio ao Cliente Microsoft Dynamics 365. Isto foi extremamente útil para nós, por isso não hesite em dar uma vista de olhos e em contactar-nos para obter a versão completa!


Sobre o Autor

Diogo Gouveia

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".

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

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