Agent soumettant un ticket

  • Rversion finale: Australia
  • Mis à jour 31 juil. 2025
  • 4 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 réclamation FSO, un agent recherche les informations de compte d’un client, qui se trouvent sur une application bancaire distante. Une fois localisé, il apparaît dans le formulaire de réclamation et l’agent remplit ensuite manuellement les détails du cas liés au compte hypothécaire du client et enregistre le ticket de réclamation. En arrière-plan, le script de formulaire enregistre les détails du client et les informations sur le compte financier localement 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é et les informations relatives à son compte financier associé.

    Les ServiceNow tables accessibles dans ce scénario sont les suivantes :
    • Consommateur [csm_consumer] : contient l’enregistrement du client.
    • Compte de prêt [sn_bom_loan_account] : contient les 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 ServiceNow réclamation (case form) 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 de recherche de compte sur le formulaire pour localiser les informations du compte du client.

    Lorsque l’agent clique sur la recherche de compte , une fenêtre contextuelle similaire à la suivante s’affiche. La fenêtre contextuelle permet à l’agent de rechercher le compte du client à l’aide de n’importe quel 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 des systèmes Customer Master et Account Master, des CRM, des mainframes bancaires centraux et des API de fournisseurs de logiciels bancaires centraux tels que Fiserv, FIS, Jack Henry, Finastra et autres.

    La recherche renvoie les comptes suivants pour ce client.

    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 de client et clique sur le bouton Envoyer pour enregistrer la réclamation dans l’instance ServiceNow .

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

    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 bancaire 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 renvoyées par l’appel REST /api/getConsumerDetails , recherchez l’enregistrement de prêt hypothécaire du client sur l’application bancaire 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 l’enregistrement du prêt 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

    L’exemple JavaScript suivant 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);
    });