사전 예방적 트리거 API - 범위 지정됨

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기10분
  • ProactiveTriggerAPI를 사용하면 특정 사용자에게 컨텍스트별 메시지를 보내는 서버측 트리거를 만들 수 있습니다.

    이 API는 규칙 및 해당 규칙에 따라 관련 작업을 사용하여 사용자에게 메시지를 보냅니다. 이러한 규칙과 작업은 상황에 따라 다르며 사용자가 포털 페이지를 탐색할 때 수집되는 실시간 데이터를 기반으로 합니다. 자세한 내용은 Proactive Triggers 문서를 참조하십시오.

    이 API를 사용하기 전에 인스턴스에서 트리거 유형, 규칙 및 작업을 구성해야 합니다. 구성 사전 예방적 트리거방법에 대한 자세한 내용은 문서를 참조하십시오 Configuring Proactive Triggers.

    이 API를 사용하여 특정 사용자 또는 특정 세션의 사용자에게 메시지를 보낼 수 있습니다.

    예를 들어 고객이 카트에 항목을 추가하는 경우 비즈니스 규칙 내에 지정된 시간이 지나면 체크아웃을 완료하라는 미리 알림을 사용자에게 보내는 이벤트가 있을 사전 예방적 트리거 수 있습니다.

    마찬가지로 사용자가 from a 서비스 포털AI 검색 수행하고 결과가 반환되지 않는 경우 사전 예방적 팝 오버 메시지 웹 클라이언트를 통해 사용자에게 대체 오퍼링을 보내는 비즈니스 사전 예방적 트리거 규칙에 논리를 포함할 수 있습니다.

    ProactiveTriggerAPI를 호출할 때 메서드를 호출해야 하는 특정 시퀀스가 있습니다. 이 API는 sn_pt 네임스페이스에서 실행됩니다.

    먼저 메서드를 호출하여 사전 예방적 트리거 API - createTrigger(문자열 triggerTypeId) 만들려는 트리거의 유형을 지정해야 합니다. 이 호출은 필수입니다. 사용 가능한 트리거 유형 목록은 다음 문서를 참조하십시오 How Proactive Triggers work.

    다음으로 메시지를 보내야 하는 사용자를 식별하는 메서드 중 하나를 호출해야 합니다. 다음 메서드 중 하나를 호출하여 이 작업을 수행할 수 있습니다.

    다음으로, 메서드를 호출하여 사전 예방적 트리거 API - setTriggerRecord(String triggerRecord) 사전 예방적 트리거의 규칙 및 작업을 적용할 트리거 기록을 지정해야 합니다.

    마지막으로 메서드를 호출하여 사전 예방적 트리거 API - process() 호출 체인을 실행합니다. setTriggerRecord()process() 메서드 호출이 모두 필요합니다.

    예:
    var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
      .setUserName(userName).setTriggerRecord(userId).process();
    

    사전 예방적 트리거 API - createTrigger(문자열 triggerTypeId)

    서버 측 사전 예방적 트리거 이벤트를 만듭니다.

    표 1. 매개변수
    이름 유형 설명
    triggerTypeId 문자열 생성할 트리거 유형의 고유 ID입니다.

    예: triggerTypeId = "sn_pt.ai_search_event"

    테이블: 사전 예방적 트리거 유형 [sys_cs_ptrigger_trigger_type] 테이블의 ID 필드입니다.

    표 2. 반환
    매개변수 설명
    안 함

    다음 비즈니스 규칙은 비즈니스 규칙 내에서 createTrigger() 메서드를 호출하는 방법을 보여줍니다.

    try {
      var triggerTypeId = "sn_pt.ai_search_event";
      var userId = current.getValue("user");
    
      var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
           .setUserId(userId).setTriggerRecord(current).process();
    
      // Returns the Proactive Trigger Event record's sys_id
      gs.info("Proactive Trigger Event Sys Id:"+ eventSysId);
    
    } catch (e) {
        gs.info("error:"+e); // Log the error.
    }

    사전 예방적 트리거 API - process()

    지정된 사전 예방적 트리거 API 요청을 실행합니다.

    표 3. 매개변수
    이름 유형 설명
    없음
    표 4. 반환
    유형 설명
    sys_id 생성된 사전 예방적 트리거 이벤트 기록의 Sys_id입니다.

    데이터 유형: 문자열

    테이블: 사전 예방적 이벤트 [sys_cs_ptrigger_event]

    다음 비즈니스 규칙은 process() 메서드를 호출하여 지정된 사전 예방적 트리거 API 요청을 실행하는 방법을 보여줍니다.

    try {
      var triggerTypeId = "sn_pt.ai_search_event";
      var userId = current.getValue("user");
    
      var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
           .setUserId(userId).setTriggerRecord(current).process();
    
      // Returns the Proactive Trigger Event record's sys_id
      gs.info("Proactive Trigger Event Sys Id:"+ eventSysId);
    
    } catch (e) {
        gs.info("error:"+e); // Log the error.
    }

    사전 예방적 트리거 API - setTriggerRecord(String triggerRecord)

    사전 예방적 트리거의 규칙과 작업을 적용할 트리거 기록을 설정합니다.

    이러한 규칙과 작업은 사전 예방적 트리거 유형[sys_cs_ptrigger_trigger_type] 테이블에 있는 연결된 트리거 유형 기록에 정의됩니다.

    표 5. 매개변수
    이름 유형 설명
    트리거 기록 문자열 또는 GlideRecord 연결된 사전 예방적 트리거의 규칙 및 작업을 적용할 트리거 기록의 Sys_id 또는 GlideRecord입니다. 트리거 기록은 createTrigger() 메서드 호출에 지정된 트리거 유형 기록의 trigger_table 필드에 지정된 테이블에 있습니다.

    예를 들어 createTrigger() 호출에서 AI 검색 이벤트 트리거 유형을 지정한 경우 트리거 테이블은 검색 이벤트 [sys_search_event] 테이블입니다.

    주:
    이 테이블은 일반적으로 비즈니스 규칙이 실행되도록 발생한 테이블과 동일합니다. 동일하지 않은 경우 이 sys_id GlideRecord에 추가해야 이 메서드에 전달할 수 있습니다.
    표 6. 반환
    유형 설명
    안 함

    다음 비즈니스 규칙은 setTriggerRecord() 메서드를 호출하는 방법을 보여줍니다.

    try {
      var triggerTypeId = "sn_pt.ai_search_event";
      var userId = current.getValue("user");
    
      var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
           .setUserId(userId).setTriggerRecord(current).process();
    
      // Returns the Proactive Trigger Event record's sys_id
      gs.info("Proactive Trigger Event Sys Id:"+ eventSysId);
    
    } catch (e) {
        gs.info("error:"+e); // Log the error.
    }

    사전 예방적 트리거 API - setUserId(문자열 userId)

    사용자 ID를 사용하여 연결된 사전 예방적 트리거 이벤트에서 작성된 메시지를 보낼 사용자를 설정합니다.

    표 7. 매개변수
    이름 유형 설명
    userID 문자열 연결된 사전 예방적 트리거 메시지를 보낼 사용자의 Sys_id입니다.

    테이블: 사용자 [sys_user] 테이블 또는 연결된 GlideRecord에 있습니다.

    표 8. 반환
    매개변수 설명
    안 함

    다음 코드 예시는 현재 GlideRecord의 user 필드에 있는 값을 사용하여 setUserId() 메서드를 호출하는 방법을 보여줍니다.

    try {
      var triggerTypeId = "sn_pt.ai_search_event";
      var userId = current.getValue("user");
    
      var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
           .setUserId(userId).setTriggerRecord(current).process();
    
      // Returns the Proactive Trigger Event record's sys_id
      gs.info("Proactive Trigger Event Sys Id:"+ eventSysId);
    
    } catch (e) {
        gs.info("error:"+e); // Log the error.
    }

    사전 예방적 트리거 API - setUserName(String userName)

    사용자 이름을 사용하여 연결된 사전 예방적 트리거 이벤트에서 생성된 메시지를 보낼 사용자를 설정합니다.

    표 9. 매개변수
    이름 유형 설명
    userName 문자열 사전 예방적 메시지를 보낼 사용자의 이름입니다. 이 이름은 사용자 [sys_user] 테이블의 사용자 ID 필드(예: "abel.tuter")와 상관되어야 합니다.
    표 10. 반환
    매개변수 설명
    안 함

    다음 비즈니스 규칙은 현재 GlideRecord의 sys_created_by 필드에 있는 값을 사용하여 setUserName() 메서드를 호출하는 방법을 보여줍니다.

    try {
      var triggerTypeId = "sn_pt.ai_search_event";
    
      // User name of the user to whom to send the proactive message.
      var userName = current.getValue("sys_created_by");
    
      var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
           .setUserName(userName).setTriggerRecord(current).process();
    
      // Returns the Proactive Trigger Event record's sys_id
      gs.info("Proactive Trigger Event Sys Id:"+ eventSysId);
    
    } catch (e) {
        gs.info("error:"+e); // Log the error.
    }

    사전 예방적 트리거 API - setUserSessionId(String userId)

    관련 사전 예방적 트리거 이벤트에 사용자 세션 ID를 설정합니다. 이 방법을 사용하면 특정 세션과 연결된 특정 사용자에게만 사전 예방적 메시지가 전송됩니다.

    표 11. 매개변수
    이름 유형 설명
    userSessionId 문자열 메시지를 보내야 하는 사용자의 사전 예방적 트리거 현재 세션에 대한 Sys_id입니다.
    주:
    모든 테이블에 세션 ID가 있는 것은 아닙니다. 이 엔드포인트를 사용하기 전에 참조하는 테이블에 유효한 세션 ID가 포함되어 있는지 확인합니다. 그렇지 않은 경우 사용 가능한 최신 세션 ID가 사용되므로 잘못된 결과가 발생할 수 있습니다.
    표 12. 반환
    매개변수 설명
    안 함

    다음 비즈니스 규칙은 현재 GlideRecord의 세션 필드에 있는 값을 사용하여 setUserSessionId() 메서드를 호출하는 방법을 보여줍니다.

    try {
      var triggerTypeId = "sn_pt.ai_search_event";
      var sessionId = current.getValue("session");
    
      var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
           .setUserSessionId(sessionId).setTriggerRecord(current).process();
    
      // Returns the Proactive Trigger Event record's sys_id
      gs.info("Proactive Trigger Event Sys Id:"+ eventSysId);
    
    } catch (e) {
        gs.info("error:"+e); // Log the error.
    }