Agent soumettant un ticket

  • Rversion finale: Xanadu
  • Mis à jour 1 août 2024
  • 3 minutes de lecture
  • Ce cas d’utilisation illustre comment permettre à un agent de soumettre un ticket pour un client connu.

    Dans ce scénario, à partir d’un formulaire de plainte FSO, un agent recherche les informations sur le compte d’un client, qui se trouvent sur une application bancaire distante. Une fois localisé, il apparaît dans le formulaire de plainte et l’agent remplit ensuite manuellement les détails du dossier lié au compte hypothécaire du client et enregistre le dossier de plainte. En arrière-plan, le script de formulaire enregistre localement les détails du client et les informations sur le compte financier sur l’instance ServiceNow .

    Remarque :
    Ce scénario suppose que l’application bancaire expose deux points de terminaison REST, GET /api/getConsumerDetails et GET /api/getFinancialAccounts , qui renvoient les détails du consommateur demandés et leurs informations de compte financier associées.

    Le diagramme de flux montre un cas où un agent fait référence à l’enregistrement du client, qui a des comptes de consommateur et financiers intégrés.

    Les ServiceNow tables accessibles dans ce scénario sont les suivantes :
    • Consommateur [csm_consumer] : contient l’enregistrement client.
    • Compte de prêt [sn_bom_loan_account] : contient des informations sur le compte de prêt pour chaque client.
      Remarque :
      Le compte de prêt est un type de compte financier.

    Voici un exemple de formulaire de réclamation (formulaire de ServiceNow ticket) qui guide un agent dans le dépôt d’une réclamation au nom d’un client. Dans ce formulaire, l’agent clique sur le bouton Recherche de compte du formulaire pour localiser les informations du compte du client.

    Le formulaire de recherche de compte montre la première étape qui consiste à remplir les champs du formulaire de réclamation, tels que le produit, le type de client et d’insatisfaction.

    Lorsque l’agent clique sur la recherche de compte , une fenêtre contextuelle semblable à la suivante apparaît. La fenêtre contextuelle permet à l’agent de rechercher le compte du client à l’aide de l’un des paramètres de recherche affichés. Vous pouvez créer vos propres critères de recherche en fonction de votre service Web spécifique. Ces services Web proviennent généralement de systèmes Customer Master et Account Master, de CRM, d’ordinateurs centraux bancaires centraux et d’API de fournisseurs de logiciels bancaires centraux tels que Fiserv, FIS, Jack Henry, Finastra et autres.

    Le formulaire de recherche de compte affiche le nom des champs, le numéro de client et les champs de compte à remplir pour la recherche.

    La recherche renvoie les comptes suivants pour ce client.

    Les résultats de la recherche de compte affichent les comptes actifs renvoyés dans une recherche pour le client spécifié.

    L’agent sélectionne le compte approprié et les informations de compte nécessaires sont automatiquement renseignées dans le formulaire de ticket. L’agent ajoute ensuite toutes les informations supplémentaires nécessaires pour soumettre le ticket client et clique sur le bouton Envoyer pour enregistrer la réclamation dans l’instance ServiceNow .

    Le diagramme suivant montre le flux des appels d’API REST pour ce cas d’utilisation et fournit de brèves remarques sur tout traitement requis.

    Diagramme linéaire illustrant six étapes du processus de soumission de l’agent d’application bancaire, de l’obtention des enregistrements clients à partir des tables Compte de consommation et de prêt, des réponses aux données ultérieures et du stockage des informations mises à jour dans des tables.
    1. L’agent saisit les informations de recherche du client sur le formulaire de réclamation. À l’aide de ces informations, formulez l’appel REST /api/getConsumerDetails à l’aide de l’API RESTMessageV2 et envoyez-le à l’application de la banque distante pour obtenir les détails du compte du client.
    2. Le point de terminaison /getConsumerDetails renvoie les détails du consommateur ou une erreur si le client n’est pas localisé.
    3. À l’aide de l’API GlideRecord , créez/mettez à jour l’enregistrement client associé dans la ServiceNow table Consommateurs [csm_consumer] avec les informations sur le consommateur.
    4. À l’aide des informations de compte retournées par l’appel REST /api/getConsumerDetails , recherchez l’enregistrement du prêt hypothécaire du client sur l’application de la banque distante. Encore une fois, utilisez l’API RESTMessageV2 pour formuler et envoyer l’appel au point de terminaison /getFinancialAccounts sur l’application bancaire afin d’obtenir le dossier hypothécaire du client.
    5. Le point de terminaison /getFinancialAccounts renvoie les comptes financiers associés au client spécifié.
    6. À l’aide de l’API GlideRecord , créez/mettez à jour les informations sur le compte financier du consommateur associé dans la ServiceNow table financial_account .

    Exemple de code

    Ce qui suit est un exemple JavaScript qui effectue les étapes décrites ci-dessus :
    // 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);
    });