ProactiveTriggerAPI - スコープ指定
ProactiveTriggerAPI を使用すると、指定されたユーザーにコンテキスト固有のメッセージを送信するサーバー側トリガーを作成できます。
この API は、ルールとそれらのルールに基づく関連アクションを使用して、ユーザーにメッセージを送信します。これらのルールとアクションはコンテキスト固有であり、ユーザーがポータルページ間を移動するときに収集されるリアルタイムデータに基づいています。詳細については、「Proactive Triggers」を参照してください。
この API を使用する前に、トリガータイプ、ルール、およびアクションをインスタンスで設定する必要があります。の構成 プロアクティブトリガー方法については、「 Configuring Proactive Triggers」を参照してください。
この API を使用すると、特定のユーザーまたは特定のセッションのユーザーにメッセージを送信できます。
たとえば、顧客が買い物かごにアイテムを追加したケースでは、指定された時間が経過した後にチェックアウトを完了するようにユーザーにリマインダーを送信するイベントをビジネスルール内に設定できます プロアクティブトリガー 。
同様に、ユーザーが AI 検索 from サービスポータル を実行して結果が返されない場合は、プロアクティブポップオーバーメッセージ Web クライアントを介して代替オファリングをユーザーに送信するロジックを作成する プロアクティブトリガー ロジックをビジネスルールに含めることができます。
を呼び出すときは、メソッド を呼び出す必要がある特定のシーケンスがあります。この API は sn_pt 名前空間で実行されます。
まず、メソッドを呼び出して ProactiveTriggerAPI - createTrigger(文字列 triggerTypeId) 、作成するトリガーの種類を指定する必要があります。この呼び出しは必須です。使用可能なトリガー タイプのリストについては、「」を参照してください How Proactive Triggers work。
- ProactiveTriggerAPI - setUserId(文字列 userId):関連付けられたユーザー [sys_users] レコードのsys_idによってユーザーを識別します。
- ProactiveTriggerAPI - setUserName(文字列 userName):「abel.tuter」などのユーザー名でユーザーを識別します。
- ProactiveTriggerAPI - setUserSessionId(文字列 userId):現在のセッションsys_idでユーザーを識別します。
次に、メソッドを呼び出して ProactiveTriggerAPI - setTriggerRecord(文字列 triggerRecord) 、プロアクティブトリガーのルールとアクションを適用するトリガーレコードを指定する必要があります。
最後に、メソッドを呼び出して ProactiveTriggerAPI - process() コールチェーンを実行します。setTriggerRecord() と process() の両方のメソッド呼び出しが必要です。
var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
.setUserName(userName).setTriggerRecord(userId).process();
ProactiveTriggerAPI - 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.
}
ProactiveTriggerAPI - 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.
}
ProactiveTriggerAPI - setTriggerRecord(文字列 triggerRecord)
プロアクティブトリガーのルールとアクションを適用するトリガーレコードを設定します。
これらのルールとアクションは、プロアクティブトリガータイプ [sys_cs_ptrigger_trigger_type] テーブルにある関連するトリガータイプレコードで定義されます。
| 名前 | タイプ | 説明 |
|---|---|---|
| トリガーレコード | 文字列または GlideRecord | 関連するプロアクティブトリガーのルールとアクションを適用するトリガーレコードのSys_idまたは GlideRecord。トリガーレコードは、 createTrigger() メソッド呼び出しで指定されたトリガータイプレコードの trigger_table フィールドに指定されたテーブルにあります。 たとえば、 createTrigger() 呼び出しで AI Search イベントトリガータイプが指定されている場合、トリガーテーブルは検索イベント [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.
}
ProactiveTriggerAPI - setUserId(文字列 userId)
ユーザー ID を使用して、関連する プロアクティブトリガー イベントによって生成されたメッセージの送信先ユーザーを設定します。
| 名前 | タイプ | 説明 |
|---|---|---|
| userId | 文字列 | 関連 プロアクティブトリガー メッセージの送信先ユーザーのSys_id。ユーザー [sys_user] テーブルまたは関連する GlideRecord にあります。 |
| パラメーター | 説明 |
|---|---|
| なし |
次のコード例は、現在の GlideRecord のユーザーフィールドの値を使用して 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.
}
ProactiveTriggerAPI - setUserName(文字列 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.
}
ProactiveTriggerAPI - setUserSessionId(文字列 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.
}