케이스를 제출하는 에이전트

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기7분
  • 이 사용 사례에서는 에이전트가 알려진 고객에 대한 케이스를 제출하는 방법을 보여줍니다.

    이 시나리오에서는 에이전트가 FSO 불만 양식 내에서 원격 은행 애플리케이션에 있는 고객의 계좌 정보를 조회합니다. 찾으면 불만 사항 양식에 표시되며 에이전트는 고객의 모기지 계좌와 관련된 케이스 세부 정보를 수동으로 입력하고 불만 케이스를 저장합니다. 백그라운드에서 양식 스크립트는 고객 상세 정보와 금융 계좌 정보를 인스턴스에 로컬로 ServiceNow 저장합니다.

    주:
    이 시나리오에서는 은행 애플리케이션이 요청된 소비자 상세 정보 및 연결된 금융 계좌 정보를 반환하는 두 개의 REST 엔드포인트 GET /api/getConsumerDetailsGET /api/getFinancialAccounts 를 노출한다고 가정합니다.

    플로우 다이어그램은 에이전트가 소비자 계정과 금융 계정이 통합된 고객 기록을 참조하는 케이스를 보여줍니다.

    ServiceNow 이 시나리오에서 액세스하는 테이블은 다음과 같습니다.
    • 소비자 [csm_consumer]: 고객 기록을 포함합니다.
    • 대출 계좌 [sn_bom_loan_account]: 각 고객의 대출 계좌 정보를 포함합니다.
      주:
      대출 계좌는 금융 계좌의 한 유형입니다.

    다음은 에이전트가 고객을 대신하여 불만 사항을 제출하도록 안내하는 불만 양식(케이스 양식)의 예입니다 ServiceNow . 이 양식에서 에이전트는 양식의 계정 검색 버튼을 클릭하여 고객의 계정 정보를 찾습니다.

    계정 조회 양식은 제품, 고객 및 불만족 유형과 같은 불만 양식 필드를 완성하는 1단계를 보여줍니다.

    에이전트가 계정 검색을 클릭하면 다음과 유사한 팝업이 나타납니다. 팝업을 통해 에이전트는 표시된 검색 매개변수 중 하나를 사용하여 고객의 계정을 조회할 수 있습니다. 특정 웹 서비스를 기반으로 고유한 검색 기준을 만들 수 있습니다. 이러한 웹 서비스는 일반적으로 고객 마스터 및 계정 마스터 시스템, CRM, 코어 뱅킹 메인프레임 및 Fiserv, FIS, Jack Henry, Finastra 등과 같은 코어 뱅킹 소프트웨어 제공업체의 API에서 제공됩니다.

    계정 검색 양식에는 검색을 위해 입력할 필드 이름, 고객 번호 및 계정 필드가 표시됩니다.

    검색은 이 고객에 대해 다음 계정을 반환합니다.

    계정 검색 결과에는 지정된 고객에 대한 검색에서 반환된 활성 계정이 표시됩니다.

    에이전트가 적절한 계정을 선택하면 필요한 계정 정보가 케이스 양식에 자동으로 채워집니다. 그런 다음 에이전트는 고객 케이스를 제출하는 데 필요한 정보를 추가하고 제출 버튼을 클릭하여 인스턴스에 불만 사항을 ServiceNow 저장합니다.

    다음 다이어그램은 이 사용 사례에 대한 REST API 호출의 플로우를 보여주며 필요한 처리에 대한 간략한 설명을 제공합니다.

    은행 신청 에이전트 제출 프로세스의 6단계를 보여주는 수영 다이어그램, 소비자 및 대출 계좌 테이블에서 고객 기록을 가져오고, 후속 데이터 응답을 받고, 테이블에 업데이트된 정보를 저장합니다.
    1. 에이전트가 불만 제기 양식에 고객 조회 정보를 입력합니다. 이 정보를 사용하여 RESTMessageV2 API를 사용하여 REST 호출 /api/getConsumerDetails를 공식화하고 이를 원격 은행 애플리케이션으로 전송하여 고객의 계좌 상세 정보를 가져옵니다.
    2. /getConsumerDetails 엔드포인트는 소비자 세부 정보를 반환하거나 고객을 찾을 수 없는 경우 오류를 반환합니다.
    3. GlideRecord API를 사용하여 소비자 [csm_consumer] 테이블에서 소비자 정보로 연결된 고객 기록을 ServiceNow 생성/업데이트합니다.
    4. /api/getConsumerDetails REST 호출에서 리턴된 계좌 정보를 사용하여 원격 은행 애플리케이션에서 고객 모기지 기록을 조회하십시오. 다시 RESTMessageV2 API를 사용하여 호출을 공식화하고 은행 애플리케이션의 /getFinancialAccounts 엔드포인트로 전송하여 고객의 모기지 기록을 가져옵니다.
    5. /getFinancialAccounts 엔드포인트는 지정된 고객과 연결된 금융 계좌를 반환합니다.
    6. GlideRecord API를 사용하여 financial_account 테이블에서 연결된 소비자의 금융 계좌 정보를 ServiceNow 생성/업데이트합니다.

    코드 예시

    다음은 위에서 설명한 단계를 수행하는 JavaScript 예제입니다.
    // 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);
    });