사전 예방적 트리거 API - 범위 지정됨
ProactiveTriggerAPI를 사용하면 특정 사용자에게 컨텍스트별 메시지를 보내는 서버측 트리거를 만들 수 있습니다.
이 API는 규칙 및 해당 규칙에 따라 관련 작업을 사용하여 사용자에게 메시지를 보냅니다. 이러한 규칙과 작업은 상황에 따라 다르며 사용자가 포털 페이지를 탐색할 때 수집되는 실시간 데이터를 기반으로 합니다. 자세한 내용은 Proactive Triggers 문서를 참조하십시오.
이 API를 사용하기 전에 인스턴스에서 트리거 유형, 규칙 및 작업을 구성해야 합니다. 구성 사전 예방적 트리거방법에 대한 자세한 내용은 문서를 참조하십시오 Configuring Proactive Triggers.
이 API를 사용하여 특정 사용자 또는 특정 세션의 사용자에게 메시지를 보낼 수 있습니다.
예를 들어 고객이 카트에 항목을 추가하는 경우 비즈니스 규칙 내에 지정된 시간이 지나면 체크아웃을 완료하라는 미리 알림을 사용자에게 보내는 이벤트가 있을 사전 예방적 트리거 수 있습니다.
마찬가지로 사용자가 from a 서비스 포털 를 AI 검색 수행하고 결과가 반환되지 않는 경우 사전 예방적 팝 오버 메시지 웹 클라이언트를 통해 사용자에게 대체 오퍼링을 보내는 비즈니스 사전 예방적 트리거 규칙에 논리를 포함할 수 있습니다.
ProactiveTriggerAPI를 호출할 때 메서드를 호출해야 하는 특정 시퀀스가 있습니다. 이 API는 sn_pt 네임스페이스에서 실행됩니다.
먼저 메서드를 호출하여 사전 예방적 트리거 API - createTrigger(문자열 triggerTypeId) 만들려는 트리거의 유형을 지정해야 합니다. 이 호출은 필수입니다. 사용 가능한 트리거 유형 목록은 다음 문서를 참조하십시오 How Proactive Triggers work.
- 사전 예방적 트리거 API - setUserId(문자열 userId): 연결된 사용자 [sys_users] 기록의 sys_id로 사용자를 식별합니다.
- 사전 예방적 트리거 API - setUserName(String userName): "abel.tuter"와 같은 사용자 이름으로 사용자를 식별합니다.
- 사전 예방적 트리거 API - setUserSessionId(String userId): 현재 세션 sys_id로 사용자를 식별합니다.
다음으로, 메서드를 호출하여 사전 예방적 트리거 API - setTriggerRecord(String triggerRecord) 사전 예방적 트리거의 규칙 및 작업을 적용할 트리거 기록을 지정해야 합니다.
마지막으로 메서드를 호출하여 사전 예방적 트리거 API - process() 호출 체인을 실행합니다. setTriggerRecord() 및 process() 메서드 호출이 모두 필요합니다.
var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
.setUserName(userName).setTriggerRecord(userId).process();
사전 예방적 트리거 API - createTrigger(문자열 triggerTypeId)
서버 측 사전 예방적 트리거 이벤트를 만듭니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| triggerTypeId | 문자열 | 생성할 트리거 유형의 고유 ID입니다. 예: 테이블: 사전 예방적 트리거 유형 [sys_cs_ptrigger_trigger_type] 테이블의 ID 필드입니다. |
| 매개변수 | 설명 |
|---|---|
| 안 함 |
다음 비즈니스 규칙은 비즈니스 규칙 내에서 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 요청을 실행합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 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] 테이블에 있는 연결된 트리거 유형 기록에 정의됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 트리거 기록 | 문자열 또는 GlideRecord | 연결된 사전 예방적 트리거의 규칙 및 작업을 적용할 트리거 기록의 Sys_id 또는 GlideRecord입니다. 트리거 기록은 createTrigger() 메서드 호출에 지정된 트리거 유형 기록의 trigger_table 필드에 지정된 테이블에 있습니다. 예를 들어 createTrigger() 호출에서 AI 검색 이벤트 트리거 유형을 지정한 경우 트리거 테이블은 검색 이벤트 [sys_search_event] 테이블입니다. 주: 이 테이블은 일반적으로 비즈니스 규칙이 실행되도록 발생한 테이블과 동일합니다. 동일하지 않은 경우 이 sys_id GlideRecord에 추가해야 이 메서드에 전달할 수 있습니다. |
| 유형 | 설명 |
|---|---|
| 안 함 |
다음 비즈니스 규칙은 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를 사용하여 연결된 사전 예방적 트리거 이벤트에서 작성된 메시지를 보낼 사용자를 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| userID | 문자열 | 연결된 사전 예방적 트리거 메시지를 보낼 사용자의 Sys_id입니다. 테이블: 사용자 [sys_user] 테이블 또는 연결된 GlideRecord에 있습니다. |
| 매개변수 | 설명 |
|---|---|
| 안 함 |
다음 코드 예시는 현재 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)
사용자 이름을 사용하여 연결된 사전 예방적 트리거 이벤트에서 생성된 메시지를 보낼 사용자를 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| userName | 문자열 | 사전 예방적 메시지를 보낼 사용자의 이름입니다. 이 이름은 사용자 [sys_user] 테이블의 사용자 ID 필드(예: "abel.tuter")와 상관되어야 합니다. |
| 매개변수 | 설명 |
|---|---|
| 안 함 |
다음 비즈니스 규칙은 현재 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를 설정합니다. 이 방법을 사용하면 특정 세션과 연결된 특정 사용자에게만 사전 예방적 메시지가 전송됩니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| userSessionId | 문자열 | 메시지를 보내야 하는 사용자의 사전 예방적 트리거 현재 세션에 대한 Sys_id입니다. 주: 모든 테이블에 세션 ID가 있는 것은 아닙니다. 이 엔드포인트를 사용하기 전에 참조하는 테이블에 유효한 세션 ID가 포함되어 있는지 확인합니다. 그렇지 않은 경우 사용 가능한 최신 세션 ID가 사용되므로 잘못된 결과가 발생할 수 있습니다. |
| 매개변수 | 설명 |
|---|---|
| 안 함 |
다음 비즈니스 규칙은 현재 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.
}