ワークフロースタジオ フロートリガータイプ

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:16分
  • 各トリガータイプで、フローを開始するタイミングと利用可能な初期データを定義します。トリガーには、レコード操作、日付、およびアプリケーション操作に対するものがあります。​

    レコード トリガー

    レコードトリガーを使用して、レコードが作成または更新されたときにフローを開始します。

    トリガー 説明
    作成日時 特定のテーブルにレコードが作成されたときにフローを開始します。
    更新日時 特定のテーブルでレコードが更新されたときにフローを開始します。フローを実行する時期を選択する必要があります。
    • それぞれ一意の変更の場合:フローが現在実行中でも、非システムフィールドに対するすべての一意な更新に関するフローをトリガーします。
      注:
      レコードに対するすべての変更の履歴が保存され、変更が一意であるかどうかが判断されます。たとえば、インシデントレコードの [状態] フィールドが [処理中] から [保留中] に変更されると、フローが実行可能になります。ただし [状態] フィールドが [処理中] に戻ると、フローは実行できません。
      注:
      [それぞれ一意の変更の場合] を実行するレコードトリガーを持つフローは、非インタラクティブセッションで実行するときに再帰を生じる可能性があります。このタイプのフローがトリガーレコードに変更を加えると、変更がフロートリガー条件を満たし、再帰が生じます。
    • [1 回 (Once)]:レコードの有効期間中に 1 回、フローをトリガーします。
    • 現在実行されていない場合のみ:このレコードでフローが現在実行されていない場合に、一意のレコードの変更が発生するたびにフローをトリガーします。この動作は、以前のリリースにおける [常時 (Always)] と同じオプションです。
    • [更新ごと (For every update)]:フローのコンテキストが既に実行されているか現在実行されているかに関係なく、レコードが更新されるたびにフローをトリガーします。
    作成済みまたは更新済み 特定のテーブルでレコードが作成または更新されたときにフローを開始します。フローを実行する時期を選択する必要があります。
    • それぞれ一意の変更の場合:フローが現在実行中でも、非システムフィールドに対するすべての一意な更新に関するフローをトリガーします。
      注:
      レコードに対するすべての変更の履歴が保存され、変更が一意であるかどうかが判断されます。たとえば、インシデントレコードの [状態] フィールドが [処理中] から [保留中] に変更されると、フローが実行可能になります。ただし [状態] フィールドが [処理中] に戻ると、フローは実行できません。
      注:
      [それぞれ一意の変更の場合] を実行するレコードトリガーを持つフローは、非インタラクティブセッションで実行するときに再帰を生じる可能性があります。このタイプのフローがトリガーレコードに変更を加えると、変更がフロートリガー条件を満たし、再帰が生じます。
    • [1 回 (Once)]:レコードの有効期間中に 1 回、フローをトリガーします。
    • 現在実行されていない場合のみ:このレコードでフローが現在実行されていない場合に、一意のレコードの変更が発生するたびにフローをトリガーします。この動作は、以前のリリースにおける [常時 (Always)] と同じオプションです。
    • [更新ごと (For every update)]:フローのコンテキストが既に実行されているか現在実行されているかに関係なく、レコードが更新されるたびにフローをトリガーします。
    注:
    承認アクションが含まれているフローでは、トリガーを一度だけ実行する必要があります。承認を更新して再送信する必要がある場合は、Go back to フローロジック を使用して再度承認を求めることを検討してください。

    REST トリガー

    REST トリガーを使用して、特定の REST API 要求の後にフローを開始します。

    注:
    この機能には、統合ハブ Enterprise サブスクリプションが必要です。詳細については、「Request Integration Hub」を参照してください。
    トリガー 説明
    REST API - 非同期 受信 API 呼び出しからフローを開始するか、外部システムから Webhook を開始します。カスタムコードを記述または管理する必要なく、トリガー開始条件を構成します。 詳細については、「REST API トリガー」を参照してください。

    スケジュールされたトリガー

    スケジュールされたトリガーを使用して、特定の日時の後またはスケジュールされた期間で定期的にフローを開始します。スケジュールされたトリガーは、インスタンスのタイムゾーンを使用して、フローを開始するタイミングを決定します。
    注:
    フローは非同期的に処理されるため、スケジュールされたトリガーを持つフローは、トリガー条件が満たされたときの正確な予定時刻に実行されないことがあります。たとえば、スケジュールされたフローが通常の営業時間内にトリガーされても、キュー内の他のイベントを処理しないとスケジュールされたフローを実行できないことがあります。
    トリガー 説明
    日次 毎日特定の時間にフローを開始します。
    週次 毎週特定の時間にフローを開始します。
    月次 毎月特定の時間にフローを開始します。
    1 回実行 特定の時刻に 1 回フローを開始しますが、繰り返しません。過去の日付または時刻を選択した場合は、できるだけ早く実行されるようにフローがスケジュールされます。
    繰り返し ユーザーが定義した定期的な間隔でフローを開始します。

    アプリケーション トリガー

    アプリケーショントリガーを使用して、アプリケーション固有の条件が満たされたときにフローを開始します。

    トリガー 説明
    Kafka メッセージ Kafka 環境のトピックにメッセージがあるときにフローを開始します。詳細については、「Kafka メッセージトリガーを使用したフローの作成」を参照してください。
    メトリックベース メトリックベース のトリガーが満たされたときにフローを開始します。メトリックベース アプリケーションが必要です。詳細については、「メトリックベース トリガーを使用してフローを作成する」を参照してください。
    プロアクティブアナリティクス プロアクティブアナリティクスの KPI スコアまたは KPI しきい値が満たされたときにフローを開始します。プロアクティブアナリティクスのパフォーマンスアナリティクスサブスクリプションが必要です。詳細については、「プロアクティブアナリティクストリガーを使用してフローを作成する」を参照してください。
    サービスカタログ サービスカタログ アイテム要求からフローを開始します。詳細については、「サービスカタログ トリガーを使用してフローを作成する」を参照してください。
    注:
    サービスカタログ トリガーは、トリガー条件の一部としてカタログ変数をサポートしていません。代わりに、フローの本体でカタログ変数を取得または作成します。
    SLA タスク SLA 定義レコードからフローを開始します。詳細については、「SLA タスクトリガーでフローを作成できます。」を参照してください。

    受信メールトリガー

    インスタンスがメールを受信したら、フローを開始します。

    受信メールフローは、受信メールアクションよりも優先されます。受信メールトリガーを含むフローを作成する場合、メールは受信メールアクションによって処理される前に、最初に受信メールトリガーによって処理されます。

    受信メールアクションでは、メールの添付ファイルの処理やメールのターゲットレコードの割り当てを完全に制御することはできません。受信メールトリガーを使用してフローを作成する場合は、[メール添付ファイルをレコードに移動] アクション および [レコードをメールに関連付け] アクション を使用してこれらのアクションを実行できます。メールの添付ファイルをより詳細に制御するために、[メールの添付ファイルを検索] アクション を使用してデータピルとして特定の添付ファイルにアクセスすることもできます。

    複数の受信メールアクションで受信メールを処理することはできますが、デフォルトでは複数のフローで受信メールを処理することはできません。追加の構成が必要です。受信メールアクションの処理を停止する方法については、「受信メールアクション順序の指定」を参照してください。

    受信メールで複数のフローを実行する方法の詳細については、「複数のトリガーによる受信メールの処理の許可」を参照してください。

    次の図は、受信メールのトリガーによって受信メールがどのように処理されるかを示しています。メールが返信、転送、または新規メールとして分類されると、システムはメールをアクティブな受信メールトリガーと照合しようとします。メールが受信メールトリガーの条件を満たす場合、フローが実行されます。フローの問題が処理を停止した場合、メールの処理は終了します。フローが処理の停止を発行しない場合、システムはさらに受信メールトリガーの条件を評価します。評価できる受信メールトリガーがない場合、システムは代わりにメールをアクティブな受信メールアクションと照合しようとします。

    図 : 1. 受信メールトリガーを使用したメールの処理
    受信メールトリガーのメールの処理
    重要:
    受信メールフローでは、メールの送信者をセッションを開始するユーザーとして使用します。システムが送信者を認識しない場合、受信メールフローはゲストユーザーとして実行されます。セッションを開始するユーザーが受信メールフローを実行するように設定すると、フローのアクションがユーザーアクセス制御によって制限されます。何らかの理由でセッションを開始するユーザーに権限昇格が必要な場合は、受信メールフローから必要なロールで実行されるサブフローを呼び出します。 受信メールフローのアクセス制御をテストするには、典型的な受信メールユーザーを代理操作してフローを手動でトリガーします。

    スポークのトリガー

    スポークには、サードパーティのアプリケーションから開始する条件付きおよびイベント駆動型の外部トリガーまたは Webhook を含めることができます。Webhook は、フローにデータを提供するトリガーとして機能します。たとえば、サードパーティの問題追跡アプリケーションで P1 レベルの問題を作成すると、ServiceNow インスタンス内のインシデントデータベースレコードが更新されます。このフローを実装するには、次の手順に従い ます。

    詳細オプション

    [ 詳細オプション ] セクションで、フローを開始するために必要なユーザーセッション要件を指定します。
    フローを実行する時期

    フローをトリガーできるセッションのタイプ、特定のユーザーによってトリガーされたときにフローを実行するかどうか、およびフローをトリガーできるテーブルを決定します。

    表 : 1. インタラクティブセッションのドロップダウンメニューオプション
    オプション 説明
    非インタラクティブ セッションに対してのみ実行 非インタラクティブセッションでのみトリガーされるフローです。「非インタラクティブセッション」を参照してください。
    ユーザー インタラクティブ セッションに対してのみ実行 インタラクティブセッションでのみトリガーされるフロー。
    インタラクティブ セッションおよび非インタラクティブ セッション両方に対して実行 すべてのセッションでトリガーされるフローです。
    表 : 2. ユーザードロップダウンメニューオプション
    オプション 説明
    次のユーザーによってトリガされた場合は実行されない 選択したユーザーのリストに対してトリガーされないフロー。[ユーザーを追加] アイコン ([ ユーザーを追加] アイコン) を選択して、ユーザーをリストに追加します。
    次のユーザーによってトリガーされた場合のみ実行 選択したユーザーのリストでのみトリガーされるフローです。[ユーザーを追加] アイコン ([ ユーザーを追加] アイコン) を選択して、ユーザーをリストに追加します。
    任意のユーザーに対して実行 任意のユーザーで実行されるフローです。
    表 : 3. テーブルのドロップダウンメニューオプション
    オプション 説明
    現在のテーブルでのみ実行 選択したテーブルに対してのみトリガーされるフロー。
    現在のテーブルおよび拡張テーブルで実行 選択したテーブルおよび任意の拡張テーブルに対してトリガーされるフローです。
    フローを実行する場所

    フローをバックグラウンドで実行するか、現在のセッションで実行するかを決定します。

    オプション 説明
    バックグラウンドでフローを実行 (デフォルト) バックグラウンドで非同期的に実行されるフローです。このオプションは、即時更新を必要としないフローに使用し、他のシステムプロセスを同時に実行できるようにします。
    フォアグラウンドでフローを実行 現在のセッションで同期的に実行されるフローです。エンドユーザーに即時更新を提供するには、このオプションを使用します。たとえば、前のタスクがクローズされた後にフローがタスクを開く場合、ユーザーがタスクをクローズした直後に次のタスクを開くには、このオプションを使用します。
    注:
    フォアグラウンドでフローを実行すると、現在のセッションスレッドがブロックされ、フローが終了するまでユーザー入力ができなくなる場合があります。スクリプトを実行するアクションなど、中断できないアクションが含まれている場合は、フローをフォアグラウンドで実行しないでください。フローを一時停止するアクションまたはフローロジックにより、セッションがブロックされることはありません。

    トリガータイプごとに利用可能なデータピル

    フローデザイナーは、トリガーからデータピルにアクセスできます。

    トリガータイプ 利用可能なデータピル
    レコード
    [テーブルラベル] レコード
    トリガーレコードを含むオブジェクトです。
    変更されたフィールド
    変更されたフィールド値を含むオブジェクトのアレイです。このデータピルは、[更新済み] または [作成済みまたは更新済み]トリガータイプでのみ使用できます。
    注:
    [変更されたフィールド] アレイデータピルを処理するには、[For Each フローロジック] を使用する必要があります。アレイデータピルの操作の詳細については、「複合データ」を参照してください。
    [テーブルラベル] テーブル
    トリガーレコードを含むテーブルのシステム ID です。
    実行開始日時
    フローがシステムのローカルタイムゾーンで開始された日時を格納する日付/時刻オブジェクト。このデータピルを使用して、レコードの作成アクションやレコードの更新アクションなどの他のアクションやステップに日付/時刻値を渡します。
    実行開始時間 UTC
    フローが世界協定時刻 (UTC) で開始された日時を格納する日付/時刻文字列。このデータピルを使用して、UTC 日付/時刻の文字列を想定する従来のフローにデータを渡します。
    REST API - 非同期
    パスパラメーター
    受信要求内のパスパラメーターを含むオブジェクト。
    クエリパラメーター
    受信要求内のクエリパラメーターを含むオブジェクト。
    要求ヘッダー
    受信要求内のヘッダーを含むオブジェクト。
    要求本文
    受信要求の本文構造を定義する複合データオブジェクト。複合オブジェクトの詳細については、「複合データ」を参照してください。
    日付
    実行開始日時
    フローがシステムのローカルタイムゾーンで開始された日時を格納する日付/時刻オブジェクト。このデータピルを使用して、レコードの作成アクションやレコードの更新アクションなどの他のアクションやステップに日付/時刻値を渡します。
    実行開始時間 UTC
    フローが世界協定時刻 (UTC) で開始された日時を格納する日付/時刻文字列。このデータピルを使用して、UTC 日付/時刻の文字列を想定する従来のフローにデータを渡します。
    SLA タスク
    タスク SLA レコード
    トリガータスク SLA レコードを含むオブジェクトです。
    sla_flow_inputs
    タスク SLA 定義値を含むオブジェクトです。
    受信メール
    メールレコード
    メールをトリガーするレコードを含むオブジェクトです。
    [テーブルラベル] テーブル
    ターゲットメールに関連付けられているテーブルのシステム ID です。
    本文
    メールメッセージの本文を含む文字列です。
    件名
    メールメッセージの件名を含む文字列です。
    ユーザーレコード
    トリガーメールを送信するユーザーを含むオブジェクトです。送信者にユーザーレコードが関連付けられていない場合、データピルにはゲストユーザーのオブジェクトがリストされます。
    送信元アドレス
    送信者のメールアドレスを含む文字列です。
    メトリクスベース
    メトリックベーストリガー定義レコード
    メトリックベーストリガー定義をトリガーするレコードを含むオブジェクトです。
    レベル
    メトリックベーストリガーレベルの整数値です。
    メトリクスイベントの時刻
    メトリクスイベントが発生した日付/時刻値です。
    レコード
    メトリクスイベントが収集されたレコードを含むオブジェクトです。
    サービスカタログ
    要求アイテムレコード
    要求アイテムをトリガーするレコードを含むオブジェクトです。
    実行開始日時
    フローがシステムのローカルタイムゾーンで開始された日時を格納する日付/時刻オブジェクト。このデータピルを使用して、レコードの作成アクションやレコードの更新アクションなどの他のアクションやステップに日付/時刻値を渡します。
    実行開始時間 UTC
    フローが世界協定時刻 (UTC) で開始された日時を格納する日付/時刻文字列。このデータピルを使用して、UTC 日付/時刻の文字列を想定する従来のフローにデータを渡します。
    テーブル名
    要求されたカタログアイテムを含むテーブル名です。
    Kafka メッセージ
    メッセージ
    Kafka トピックから受信したメッセージを含むオブジェクトのアレイ。各メッセージには次のデータピルがあります。
    • ヘッダー:ヘッダーのアレイ。各ヘッダーにキーと値が含まれています。キーと値のペアからメッセージに関する追加情報が提供されます。キーと値はどちらも文字列です。
    • ペイロード:メッセージのテキストを含む文字列。
    • キー:メッセージの挿入順序を識別する文字列。同じキーを持つメッセージは順番に処理されます。

    一般的なガイドライン

    レコードトリガーを作成するときは、次の一般的なガイドラインに従います。

    フローにトリガーまたは変数の入力が必要かどうかを判断する
    フローは、トリガー条件が満たされたときに常に実行されます。トリガーは常にフローの入力として同じデータを提供します。フローを開始するために代わりに変数の入力が必要な場合は、サブフローを作成します。
    条件を追加して、フローを開始するレコード値を指定します。
    必要なときにのみフローを開始することで、フローを開始して一時停止し、特定のレコード条件が適用されるまでフローの再開を待機するよりもシステムリソースの消費が少なくなります。[条件待ち] アクションで始まるフローを作成する代わりに、レコードトリガーの一部として待機条件を含めるようにフローを再設計します。
    同じテーブルのレコードトリガーに一意の条件を作成する
    フローが互いに上書きされないようにするには、同じテーブルで実行されているフローごとに一意の条件を作成します。同じテーブルの複数のフローに同じフィルター条件がある場合、フローが実行される順序を知る方法はありません。条件を使用すると、より正確で少ない数のレコードセットが返されるため、フローのパフォーマンスの最適化にも役立ちます。
    インポートおよび更新セットによって追加または更新されたレコードを無視する
    レコードトリガーは、更新セットの適用または XML ファイルのインポートによって追加または更新されたレコードを無視します。これらの操作は、個々のレコードではなく、アプリケーションまたはテーブル全体に適用されます。
    サービスカタログテーブルのレコードトリガーをサービスカタログアプリケーショントリガーに置き換える
    フローデザイナーは、レコードトリガーのオプションとしてサービスカタログテーブルを表示しなくなりました。代わりに、サービスカタログアプリケーショントリガータイプを使用するフローを作成します。
    フローをトリガーするユーザーがトリガー条件データにアクセスできることを確認する
    通常、フローはトリガーしたユーザーとして実行されるため、ユーザーがトリガー条件で指定されたすべてのデータにアクセスできることを確認してください。一般のユーザーがアクセスできない関連テーブルにトリガー条件を作成することは避けてください。フロートリガー条件でロール制限されたデータへのアクセスが必要な場合は、そのデータへのアクセスに必要なロールを使用してフローを実行します。