分岐・ループ・待機
通常のフローはステップを 1 つずつ順に実行します。いくつかの組み込みノードはこの流れを変え、ルートを選ぶ、ステップを繰り返す、一時停止する、実行を途中で終えるといったことができます。どれも ステップを追加 の 組み込み にあります。
| ノード | 用途 |
|---|---|
| パス | データに応じて異なるルートに進む。 |
| ループ | リストの項目ごとに同じステップを実行する。 |
| 停止 | ループ、または実行全体を途中で終える。 |
| 待機 | 一定時間、指定日時まで、またはコールバックがあるまで待つ。 |
| サブフロー | ほかのフローを 1 つのステップとして実行し、結果を使う。 |
| フィルター | リストのうち条件に合う項目だけを残す。 |
パスで分岐する
パスのステップはフローを複数の 分岐 に分けます。各分岐は自分のステップと パスモード を持ちます。
| パスモード | 分岐が実行されるとき |
|---|---|
| 条件に基づく | 条件が真のとき。 |
| 常に実行(条件をバイパス) | 毎回。 |
| フォールバック(条件が一致しない場合) | ほかのどの分岐も一致しなかったときだけ。 |
条件が真の分岐はすべて実行されます。最初の 1 つだけではありません。「どちらか一方」にしたい場合は、条件が重ならないようにするか、条件の分岐を 1 つと フォールバック を組み合わせてください。フォールバックの分岐は 1 つのパスに 1 つだけで、常に実行 と フォールバック は同じパスに置けません。
条件の書き方
条件は フィールド(通常は 前のステップのデータへの参照)と 値 を 演算子 で比べます。例:
フィールド
フォーム送信.plan· 演算子 文字列: 等しい · 値enterprise
条件の組み合わせ方は 2 つあります。
- 追加 (AND) は同じグループに条件を追加します。グループ内の条件がすべて真のとき一致します。
- 追加 (OR) は新しいグループを作ります。いずれかのグループが真なら分岐が一致します。
演算子は比べる値の種類ごとに分かれています。
| 種類 | 演算子 |
|---|---|
| すべての値 | 存在する、存在しない、空である、空でない |
| 文字列 | 等しい、等しくない、含む、含まない、に含まれる、に含まれない、始まる、始まらない、終わる、終わらない、正規表現に一致 |
| 数値 | 等しい、等しくない、より大きい、より小さい |
| 日付 | 等しい、等しくない、より前、より後、今日、過去、未来 |
| 真偽値 | 真、偽 |
実行されなかった分岐のステップには、その実行での出力がありません。後のステップがそれを参照した場合については 参照が見つからないとき を参照してください。
手順は 条件で分岐する を参照してください。
ループで繰り返す
ループのステップは、中のステップを項目ごとに 1 回ずつ実行します。3 つのアクションから選びます。
| アクション | 繰り返す対象 | 現在の値 |
|---|---|---|
| アイテムループ | 前のステップで取得したレコードなどのリスト。 | currentItem |
| 数値ループ | 1 から 10 などの数値の範囲。 | currentValue |
| テキストループ | テキストを区切った各部分。 | currentPart |
アイテムループ では、値 にリストへの参照だけを書きます(前後に何も付けない)。こうするとリストがリストのまま渡ります。最大反復回数 で繰り返しの上限を決められます。
ループ内のステップは、ループステップの出力から現在の項目を読みます。たとえば ループ.currentItem.email は処理中のレコードのメールアドレスです。ループステップは currentIndex(0 から)、currentIteration(1 から)、totalCount、allItems も出力します。
ループの中に直接ループを置くことはできません。必要な場合は内側のループをサブフローに移し、外側のループから呼び出してください。
手順は リストの各項目を処理する を参照してください。
停止で途中終了する
停止のステップは処理を途中で終えます。何を終えるかは置き場所で決まります。
- ループの中 ではループを抜けます。フローはループの次のステップから続きます。
- ループの外 では実行全体を終了します。
レコードがすでに存在する場合など、特定のときだけ止めたいなら、パスの分岐の中に置きます。
待機で一時停止する
待機のステップは実行を止めてから再開します。
| アクション | 待つ内容 |
|---|---|
| 指定時間待機 | 30 分など、一定の時間。 |
| 日時まで待機 | 指定した日時まで。 |
| Webhook待機 | この実行専用の URL が呼び出されるまで。 |
Webhook待機 は承認や外部システムからの返答を待つのに向いています。実行が待機のステップに着く前に、そのコールバック URL を再開させる相手に送っておきます。URL は $ の一覧の 実行 に、待機ステップの コールバックURL用 として表示されます。この URL は項目全体が参照のときだけ置き換わるため、メッセージに含めるにはコードのステップで文章を組み立ててください。手順は 応答があるまでフローを止める を参照してください。
手順は ステップを遅らせる と 応答があるまでフローを止める を参照してください。
サブフローでステップを再利用する
複数のフローで同じステップが必要なら、別のフローとして一度作り、呼び出して使います。
- 再利用するフローでは サブフロー開始 トリガーを使い、最後に サブフローから返却 を置いて結果を返します。
- 呼び出す側のフローでは サブフロー のステップで サブフロー呼び出し を選び、再利用するフローを指定して 入力パラメータ を設定します。
既定の 実行モード(完了を待つ)では、サブフローが返るまで呼び出し側は一時停止し、返された値がサブフローステップの出力になります。結果が不要なら 実行して忘れる を選ぶと、サブフローを開始してすぐに次へ進みます。サブフローを呼び出す を参照してください。
フィルターで項目を絞り込む
フィルターのステップはリストを受け取り、条件に合う項目だけを残します。後続のステップは絞り込まれたリストを受け取ります。ループの中でパスを使うより簡単な場合が多く、先に絞り込んでから残りをループで処理するのがおすすめです。