Router(フロー制御)

このピースでできること

  • 条件に基づいて処理を複数の分岐に振り分けます。
  • 最初に一致した分岐のみ実行、または一致したすべてを実行の2モードに対応します。

ピースの設定項目

1. Execution Type(必須)

  • 実行タイプを選びます。
  • EXECUTE_FIRST_MATCH: 最初に一致した分岐のみ実行。
  • EXECUTE_ALL_MATCH: 一致したすべての分岐を実行。

2. Branches(必須)

  • 分岐定義の配列です。分岐タイプは CONDITION または FALLBACK。
  • CONDITION は conditions を持ち、AND/OR の組み合わせで評価します。

3. Children(必須)

  • 各分岐で実行するアクション配列です。

4. Next Action(任意)

  • ルーター完了後に実行する後続アクションです。

設定項目スキーマ

設定項目設定例

参考:条件の書き方

  • AND 条件は1つの配列内に複数条件を並べます。
  • OR 条件は配列を分けて複数並べます。

使用例

  • ステータス別の処理分岐
  • 金額帯別の承認フロー
  • 優先度/ユーザー設定に応じた通知分岐

ベストプラクティス

  • フォールバック分岐を用意し、未一致時の処理を定義します。
  • EXECUTE_FIRST_MATCHでは具体的な条件を上に配置します。
  • 条件はできるだけシンプルにし、ログで分岐開始を記録するとデバッグが容易です。
 

各項目の意味

Text(文字列)の条件

(Text) Contains

  • 〜を含む
    • 例: contains → true

(Text) Does not contain

  • 〜を含まない
    • 例: does not contain → true

(Text) Exactly matches

  • 完全一致する(文字列がまったく同じ)
    • 例: exactly matches → true
      ※大文字小文字や空白も含めて一致が必要

(Text) Does not exactly match

  • 完全一致しない

(Text) Starts with

  • 〜で始まる
    • 例: starts with → true

(Text) Does not start with

  • 〜で始まらない

(Text) Ends with

  • 〜で終わる
    • 例: ends with → true

(Text) Does not end with

  • 〜で終わらない

List(配列/リスト)の条件

(List) Contains

  • リストの中に指定した要素が含まれる
    • 例: contains → true

(List) Does not contain

  • リストの中に指定した要素が含まれない

(List) Is empty

  • リストが空(要素数0 /

(List) Is not empty

  • リストが空ではない(要素が1つ以上)
注意:(List) Is empty は 空文字 "" の判定ではなく、あくまで 配列が空かです。

Number(数値)の条件

(Number) Is greater than

  • より大きい(>)

(Number) Is less than

  • より小さい(<)

(Number) Is equal to

  • 等しい(=)
    • ※数値として同じかを判定(文字列の と数値 の扱いは左側の型次第)

Date/time(日付・時刻)の条件

(Date/time) After

  • 指定日時より後(左側が後なら true)

(Date/time) Before

  • 指定日時より前

(Date/time) Equals

  • 指定日時と同一
    • ※同一の判定はタイムゾーンや秒/ミリ秒まで含むことがあり、完全一致は実務では起きにくいことがあります(環境次第)

Boolean(真偽値)の条件

(Boolean) Is true

  • true(真)である

(Boolean) Is false

  • false(偽)である

Exists / Does not exist(存在判定)

Exists

  • その項目にデータが存在する
    • 例:Webhook の body に の中に値が「ある」

Does not exist

  • その項目にデータが存在しない
    • 例:Webhook の body に の中に値が「ない」