Agent soumettant un ticket

  • Rversion finale: Washingtondc
  • Mis à jour 1 févr. 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 réclamation 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, puis l’agent remplit manuellement les détails du ticket 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 du 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és et leurs informations de compte financier associées.

    Le diagramme de flux montre un ticket dans lequel un agent fait référence à l’enregistrement du client, qui dispose 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 du 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 accompagne 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 de compte du client.

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

    Lorsque l’agent clique sur le bouton Rechercher un compte , une fenêtre contextuelle semblable à celle-ci s’affiche. 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 principaux et de comptes clients, 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 les champs Nom, Numéro de client et Compte à renseigner 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 les traitements requis.

    Diagramme circulaire illustrant les six étapes du processus de soumission de l’agent d’application bancaire, l’obtention des enregistrements des clients à partir des tables Compte de consommation et de prêt, les réponses aux données suivantes et le 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 est introuvable.
    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 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 de compte financier du consommateur associé dans la ServiceNow table financial_account .

    Exemple de code

    Voici 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);
    });