ProactiveTriggerAPI - スコープ対象

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:11分
  • ProactiveTriggerAPI を使用すると、指定されたユーザーにコンテキスト固有のメッセージを送信するサーバー側トリガーを作成できます。

    この API は、ルールと、それらのルールに基づく関連アクションを使用して、ユーザーにメッセージを送信します。これらのルールとアクションはコンテキスト固有であり、ユーザーがポータルページ間を移動するときに収集されるリアルタイムデータに基づいています。詳細については、「Proactive Triggers」を参照してください。

    この API を使用する前に、トリガータイプ、ルール、およびアクションをインスタンスで構成する必要があります。プロアクティブトリガーの構成方法については、「Configuring Proactive Triggers」を参照してください。

    この API を使用すると、特定のユーザーまたは特定のセッションのユーザーにメッセージを送信できます。

    たとえば、顧客が買い物かごにアイテムを追加する場合に、指定された時間が経過した後にチェックアウトを完了するようユーザーにリマインダーを送信する プロアクティブトリガー イベントをビジネスルール内に設定できます。

    同様に、ユーザーがサービスポータルからAI 検索を実行しても結果が返されない場合は、プロアクティブポップオーバーメッセージ Web クライアントを介して代替オファリングをユーザーに送信するプロアクティブトリガーを作成するロジックをビジネスルールに含めることができます。

    ProactiveTriggerAPI を呼び出す場合、メソッドを呼び出す必要がある特定のシーケンスがあります。この API は sn_pt 名前空間で実行されます。

    まず、 ProactiveTriggerAPI:createTrigger(文字列 triggerTypeId) メソッドを呼び出して、作成するトリガーの種類を指定する必要があります。この呼び出しは必須です。使用可能なトリガータイプのリストについては、「 How Proactive Triggers work」を参照してください。

    次に、メッセージの送信先ユーザーを識別するメソッドの 1 つを呼び出す必要があります。これを行うには、次のいずれかのメソッドを呼び出します。

    次に、 ProactiveTriggerAPI:setTriggerRecord(文字列 triggerRecord) メソッドを呼び出して、プロアクティブトリガーのルールとアクションを適用するトリガーレコードを指定する必要があります。

    最後に、 ProactiveTriggerAPI:process() メソッドを呼び出してコールチェーンを実行します。setTriggerRecord() メソッド呼び出しと process() メソッド呼び出しの両方が必要です。

    たとえば、次のようになります。
    var eventSysId = sn_pt.ProactiveTriggerAPI.createTrigger(triggerTypeId)
      .setUserName(userName).setTriggerRecord(userId).process();
    

    ProactiveTriggerAPI: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.
    }

    ProactiveTriggerAPI: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.
    }

    ProactiveTriggerAPI:setTriggerRecord(文字列 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.
    }

    ProactiveTriggerAPI - setUserId(文字列 userId)

    ユーザー ID を使用して、関連付けられた プロアクティブトリガー イベントによって生成されたメッセージの送信先ユーザーを設定します。

    表 : 7. パラメーター
    名前 タイプ 説明
    userId 文字列 関連する プロアクティブトリガー メッセージを送信するユーザーのSys_id。

    テーブル:ユーザー [sys_user] テーブルまたは関連する GlideRecord 内。

    表 : 8. 戻り値
    パラメーター 説明
    なし

    次のコード例は、現在の 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)

    ユーザー名を使用して、関連する プロアクティブトリガー イベントによって生成されたメッセージを送信するユーザーを設定します。

    表 : 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.
    }

    ProactiveTriggerAPI - setUserSessionId(文字列 userId)

    関連する プロアクティブトリガー イベントにユーザーセッション ID を設定します。このメソッドを使用すると、プロアクティブメッセージは特定のセッションに関連付けられた特定のユーザーにのみ送信されます。

    表 : 11. パラメーター
    名前 タイプ 説明
    userSessionId 文字列 プロアクティブトリガーメッセージの送信先となるユーザーの現在のセッションのSys_id。
    注:
    すべてのテーブルにセッション ID が含まれているわけではありません。このエンドポイントを使用する前に、参照しているテーブルに有効なセッション ID が含まれていることを確認してください。そうでない場合は、利用可能な最新のセッション ID が使用され、誤った結果が生じる可能性があります。
    表 : 12. 戻り値
    パラメーター 説明
    なし

    次のビジネスルールは、現在の GlideRecord の session フィールドの値を使用して 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.
    }