Agent soumettant un ticket
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 .
- 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.
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.
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 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.
|
Exemple de code
// 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);
});