케이스를 제출하는 에이전트
이 사용 사례에서는 에이전트가 알려진 고객에 대한 케이스를 제출하는 방법을 보여줍니다.
이 시나리오에서는 에이전트가 FSO 불만 양식 내에서 원격 은행 애플리케이션에 있는 고객의 계좌 정보를 조회합니다. 찾으면 불만 사항 양식에 표시되며 에이전트는 고객의 모기지 계좌와 관련된 케이스 세부 정보를 수동으로 입력하고 불만 케이스를 저장합니다. 백그라운드에서 양식 스크립트는 고객 상세 정보와 금융 계좌 정보를 인스턴스에 로컬로 ServiceNow 저장합니다.
- 소비자 [csm_consumer]: 고객 기록을 포함합니다.
- 대출 계좌 [sn_bom_loan_account]: 각 고객의 대출 계좌 정보를 포함합니다. 주:대출 계좌는 금융 계좌의 한 유형입니다.
다음은 에이전트가 고객을 대신하여 불만 사항을 제출하도록 안내하는 불만 양식(케이스 양식)의 예입니다 ServiceNow . 이 양식에서 에이전트는 양식의 계정 검색 버튼을 클릭하여 고객의 계정 정보를 찾습니다.
에이전트가 계정 검색을 클릭하면 다음과 유사한 팝업이 나타납니다. 팝업을 통해 에이전트는 표시된 검색 매개변수 중 하나를 사용하여 고객의 계정을 조회할 수 있습니다. 특정 웹 서비스를 기반으로 고유한 검색 기준을 만들 수 있습니다. 이러한 웹 서비스는 일반적으로 고객 마스터 및 계정 마스터 시스템, CRM, 코어 뱅킹 메인프레임 및 Fiserv, FIS, Jack Henry, Finastra 등과 같은 코어 뱅킹 소프트웨어 제공업체의 API에서 제공됩니다.
검색은 이 고객에 대해 다음 계정을 반환합니다.
에이전트가 적절한 계정을 선택하면 필요한 계정 정보가 케이스 양식에 자동으로 채워집니다. 그런 다음 에이전트는 고객 케이스를 제출하는 데 필요한 정보를 추가하고 제출 버튼을 클릭하여 인스턴스에 불만 사항을 ServiceNow 저장합니다.
다음 다이어그램은 이 사용 사례에 대한 REST API 호출의 플로우를 보여주며 필요한 처리에 대한 간략한 설명을 제공합니다.
|
코드 예시
// 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);
});