Agent soumettant un ticket

  • Rversion finale: Yokohama
  • Mis à jour 30 janv. 2025
  • 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 du 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és au compte hypothécaire du client et enregistre le cas 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 ses 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, lequel les comptes de consommateur et les comptes financiers sont 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 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 réclamation (formulaire de ticket) qui guide un agent tout au long du ServiceNow 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 du formulaire pour localiser les informations du compte du client.

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

    Lorsque l’agent clique sur la recherche de compte , une fenêtre contextuelle semblable à 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 ordinateurs centraux bancaires et des 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, le numéro de client et les champs de 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 Soumettre 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.

    Diagramme illustrant les six étapes du processus de soumission de l’agent d’application bancaire, l’obtention des enregistrements clients à partir des tables de comptes de consommation et de prêt, les réponses de données ultérieures 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 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 d’hypothèque 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 sur le 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);
    });