Agente que envia um caso

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 3 min. de leitura
  • Este caso de uso ilustra como permitir que um agente envie um caso para um cliente conhecido.

    Neste cenário, em um formulário de reclamação de FSO, um agente pesquisa as informações da conta de um cliente, que estão localizadas em um aplicativo de banco remoto. Uma vez localizado, ele aparece no formulário de reclamação e o agente preenche manualmente os detalhes do caso relacionados à conta hipotecária do cliente e salva o caso de reclamação. Em segundo plano, o script do formulário salva os detalhes do cliente e as informações da conta financeira localmente na instância ServiceNow.

    Nota:
    Este cenário pressupõe que a aplicação do banco exponha dois endpoints REST GET /api/getConsumerDetails e GET /api/getFinancialAccounts que retornam os detalhes do consumidor solicitado e as informações da conta financeira associada.

    O diagrama de fluxo mostra um caso em que um agente faz referência ao registro do cliente, que tem contas do consumidor e financeiras integradas.

    As tabelas ServiceNow que são acessadas neste cenário são as seguintes:
    • Consumidor [csm_consumer]: contém o registro do cliente.
    • Conta de empréstimo [sn_bom_loan_account]: contém informações da conta de empréstimo de cada cliente.
      Nota:
      Conta de empréstimo é um tipo de conta financeira.

    A seguir está um exemplo de um formulário de reclamação ServiceNow (formulário de caso) que orienta um agente no registro de uma reclamação em nome de um cliente. Neste formulário, o agente clica no botão Pesquisa de conta no formulário para localizar as informações da conta do cliente.

    O formulário de pesquisa de conta mostra a etapa um do preenchimento de campos do formulário de reclamação, como produto, cliente e tipo de insatisfação.

    Quando o agente clica em Pesquisa de conta, é exibido um pop-up semelhante ao seguinte. O pop-up permite que o agente pesquise a conta do cliente usando qualquer um dos parâmetros de pesquisa exibidos. Você pode criar seus próprios critérios de pesquisa com base em seu serviço web específico. Esses serviços web geralmente vêm de sistemas Master do cliente e Master da conta, CRMs, mainframes bancários principais e APIs de provedores de software bancário principal, como Fiserv, FIS, Jack Henry, Finastra e outros.

    O formulário de pesquisa de conta mostra os campos nome, número de cliente e campos de conta a serem preenchidos para pesquisa.

    A pesquisa retorna as seguintes contas para este cliente.

    Os resultados da pesquisa de conta mostram as contas ativas retornadas em uma pesquisa do cliente especificado.

    O agente seleciona a conta apropriada e as informações de conta necessárias são preenchidas automaticamente no formulário de caso. O agente adiciona todas as informações adicionais necessárias para enviar o caso do cliente e clica no botão Enviar para salvar a reclamação na instância ServiceNow.

    O diagrama a seguir mostra o fluxo das chamadas de REST API para este caso de uso e fornece breves comentários sobre qualquer processamento necessário.

    Diagrama de Swim mostrando seis etapas no processo de envio do agente de aplicações bancárias, obtendo registros de clientes das tabelas Conta do consumidor e Conta de empréstimo, respostas de dados subsequentes e armazenando informações atualizadas em tabelas.
    1. O agente insere as informações de pesquisa do cliente no formulário de reclamação. Usando essas informações, forme a chamada REST /api/getConsumerDetails usando a API RESTMessageV2 e envie-a para a aplicação do banco remoto para obter os detalhes da conta do cliente.
    2. O endpoint /getConsumerDetails retornará os detalhes do consumidor ou um erro se o cliente não for localizado.
    3. Usando a API GlideRecord, crie/atualize o registro do cliente associado na tabela ServiceNow Consumidores [csm_consumer] com as informações do consumidor.
    4. Usando as informações da conta retornadas pela chamada REST /api/getConsumerDetails, pesquise o registro de hipoteca do cliente na aplicação do banco remoto. Novamente, use a API RESTMessageV2 para formular e enviar a chamada para o endpoint /getFinancialAccounts na aplicação do banco para obter o registro de hipoteca do cliente.
    5. O endpoint /getFinancialAccounts retorna as contas financeiras associadas ao cliente especificado.
    6. Usando a API GlideRecord, crie/atualize as informações da conta financeira do consumidor associado na tabela ServiceNow financial_account.

    Código de exemplo

    A seguir está um exemplo de JavaScript que executa as etapas descritas acima:
    // Fetch consumers for the given first name and last name and associated
    // financial accounts from the remote bank application
    function fetchConsumers(consumer_fname, consumer_lname) {
    
      var request = new sn_ws.RESTMessageV2();
      request.setHttpMethod('get');
      request.setEndpoint('api/getConsumerDetails?fname=consumer_fname&lname=consumer_lname');
    
      var response = request.execute();
      var responseBody = response.getBody();
      var responseObj = JSON.parse(responseBody);
      var consumers = responseObj.consumers;
    
      // Create a record in the ServiceNow Consumer [csm_consumer] table for the specified consumer
      var consumerDetails = [];
      consumers.foreach(function(consumer){
        var consumerGR = new GlideRecord('csm_consumer');
        consumerGR.initialize();
        consumerGR.setValue('uid', consumer.uid);
        consumerGR.setValue('name', consumer.name);
        consumerGR.setValue('email', consumer.email);
        consumerGR.setValue('mobile', consumer.mobile);
        consumerGR.setValue('address', consumer.address);
        if(consumerGR.update()){
          consumer.sysId = consumerGR.getValue('sys_id');
          consumer.financialAccount = fetchFinancialAccountsForConsumer(consumer);
        }
      });
    }
    // Fetch financial accounts for the specified consumer
    function fetchFinancialAccountsForConsumer(consumer) {
    
      var financialAccounts = [];
      var request = new sn_ws.RESTMessageV2();
      request.setHttpMethod('get');
      request.setEndpoint('api/getFinancialAccounts/' + consumer);
      var response = request.execute();
      var responseBody = response.getBody();
      var responseObj = JSON.parse(responseBody);
      var financialAccounts = responseObj.financialAccounts;
    
    // Create a record in the ServiceNow financial_account table for each of the customer's financial accounts
      financialAccounts.foreach(function(finAccount){
        var finAccountGR = new GlideRecord('financial_account');
        finAccountGR.initialize();
        finAccountGR.setValue('uid', finAccount.uid);
        finAccountGR.setValue('type', finAccount.type);
        finAccountGR.setValue('number', finAccount.ac_number);
        finAccountGR.setValue('balance', finAccount.balance);
    
        if(finAccountGR.update()){
          finAccount.sysId = finAccountGR.getValue('balance');
          financialAccounts.push(finAccount);
        }
      });
    
      return financialAccounts;
    }
    
    
    // The following retrieves an object to display in UI page
    
    fnmae = ‘john’;
    lname = ‘brown’;
    
    var consumerObj = fetchConsumers(fname, lname);
    
    consumerObj.foreach(function(consumer){
      // Display the details on the page and populate it in the form as necessary
      console.log(consumer);
    });