Flow for kintone のアクション ― 保存中断でバリデーションを設定する
この記事で解説すること
kintone では、レコードを保存するときに「このフィールドが空欄なら保存させたくない」という場面がよくあります。たとえば、商談フェーズを「受注」に変更するとき、売上金額が空欄のまま保存されてしまうと、後から集計したときにデータが欠けてしまいます。
kintone の標準機能でフィールドを必須にすることはできますが、「特定の条件のときだけ必須にする」という動的なバリデーションは設定できません。
Flow for kintone の 保存中断アクション を使うと、「商談フェーズが受注のときだけ、売上が空欄なら保存を止める」という条件付きバリデーションを実現できます。
この記事では以下の内容を解説します。
- 保存中断アクションの役割と使いどころ
- 「保存前」トリガーとの組み合わせ方
- IF条件で「商談フェーズ = 受注 AND 売上 = 空欄」を設定する手順
- エラーメッセージの書き方のポイント
- 複数フィールドをまとめてチェックする応用例
なお、レコードが保存された後に担当者へ通知を送る方法は、次の記事「Flow for kintone のアクション ― 通知送信で担当者に自動連絡する」で解説します。保存前(バリデーション)と保存後(通知)をセットで理解すると、フローの設計がしやすくなります。
保存中断アクションとは
保存中断アクションは、レコードの保存を強制的に止めて、ユーザーにエラーメッセージを表示するアクションです。
保存中断が発動すると:
- レコードは保存されない(データベースに書き込まれない)
- 設定したエラーメッセージがダイアログで表示される
- ユーザーは入力内容を修正してから再度保存を試みることができる
使いどころ: 入力チェック(バリデーション)専用のアクションです。「〇〇の条件のときは保存させない」という制御をしたいときに使います。
「保存前」トリガーとの組み合わせ
保存中断アクションは、必ず「保存前」トリガーと組み合わせて使います。
| トリガー | タイミング | 主な用途 |
|---|---|---|
| 保存前 | 保存ボタン押下直後、レコード確定前 | バリデーション、保存中断 |
| 保存後 | レコードが確定した直後 | 通知送信、他アプリへの書き込み |
「保存前」トリガーのフローは、ユーザーが保存ボタンを押してからレコードが確定するまでの間に実行されます。このタイミングで保存中断アクションを発動させることで、不正なデータがデータベースに入るのを防ぎます。

完成したフローの全体像です。「保存するとき」トリガー → IF条件(受注かつ売上が空欄)→ 保存中断アクション の順に接続されています。
実践:受注時の売上金額チェックを設定する
案件管理アプリで「商談フェーズを受注にしたとき、売上が空欄なら保存を止める」フローを設定します。
使用するアプリとフィールド
- アプリ: 案件管理(アプリID: 20)
- 商談フェーズ(DROP_DOWN): 商談予定 / 提案中 / 内示 / 受注 / 失注 / 保留 / 中止
- 売上(NUMBER): 単位 ¥
Step 1: トリガーを「保存するとき」に設定する
フローの新規作成時に「フローを追加するタイミングを選択」ダイアログで「レコード画面表示・編集」グループを選びます。フロー名は「受注時 売上金額バリデーション」などとしておくと管理しやすいです。
フローエディタ左パネルの「レコード画面表示・編集」グループ内にある「保存するとき」チェックボックスにチェックを入れます。「保存するとき」は保存ボタン押下直後・レコード確定前のタイミングです。
Step 2: IF条件ノードで2つの条件を設定する
トリガーの直後にIF条件ノードを追加します。条件名は「受注かつ売上が空欄」としておくと、キャンバス上でノードの役割がひと目で分かります。
条件の設定:
- 条件1:
商談フェーズが次と等しい受注 - 条件2:
売上が空欄 - 条件間の論理演算子: AND
AND条件にすることで、「商談フェーズが受注 かつ 売上が空欄」の場合だけバリデーションが発動します。商談フェーズが受注以外のときは売上が空欄でも通常通り保存できます。

Step 3: 保存中断アクションにエラーメッセージを設定する
IF条件の「はい(両方の条件を満たす)」ルートに保存中断アクションを追加します。
エラーメッセージの入力例:
受注登録には売上金額の入力が必要です。
売上フィールドに金額を入力してから保存してください。
エラーメッセージを書くときのポイントは2つです。
- 何が問題なのかを明示する ― 「売上金額の入力が必要です」のように、どのフィールドに何を入力すればよいかを伝える
- 次のアクションを示す ― 「〇〇フィールドに入力してから保存してください」のように、ユーザーが次に何をすればよいかを示す

Step 4: 「いいえ」ルートは何も接続しない
IF条件の「いいえ」ルート(商談フェーズが受注でない、または売上が入力済みのケース)には何も接続しません。このルートに到達したときは、フローが何もせず通常通り保存が完了します。
Step 5: 動作確認
フローを保存・有効化してアプリを更新したら、動作を確認します。
- 商談フェーズを「受注」に設定し、売上フィールドは空欄のまま保存を試みる → エラーメッセージが表示されて保存が中断される
- 売上フィールドに金額を入力してから保存を試みる → 正常に保存される
- 商談フェーズを「提案中」にして売上が空欄のまま保存する → 正常に保存される(受注以外はチェックしない)

商談フェーズが「受注」で売上が空欄のまま保存しようとすると、このようにエラーダイアログが表示されて保存が中断されます。

売上フィールドに金額を入力してから保存すると、正常に保存が完了します。
複数フィールドをまとめてチェックする応用例
受注時に「売上」と「受注予定日」の両方を必須にしたい場合、2通りのアプローチがあります。
アプローチ1: 2つのフローに分ける
フロー1: 売上チェック(商談フェーズ = 受注 AND 売上 = 空欄)
フロー2: 受注予定日チェック(商談フェーズ = 受注 AND 受注予定日 = 空欄)
それぞれ別々のエラーメッセージを表示できるため、ユーザーが何を修正すればよいか明確になります。
アプローチ2: OR条件で1つのフローにまとめる
1つのIF条件ノードで「売上が空欄 OR 受注予定日が空欄」の条件を設定し、いずれかが欠けていたら保存中断します。
エラーメッセージ例:
受注登録には「売上」と「受注予定日」の両方の入力が必要です。
シンプルにまとめたい場合はアプローチ2、項目ごとに丁寧なエラーを出したい場合はアプローチ1が向いています。
保存前と保存後の使い分けまとめ
保存中断アクションを理解する上で、「保存前」と「保存後」トリガーの違いを押さえておくことが重要です。
| 保存前トリガー | 保存後トリガー | |
|---|---|---|
| 発火タイミング | 保存ボタン押下後・確定前 | レコード確定直後 |
| 主な用途 | バリデーション・保存中断 | 通知送信・連携処理 |
| 保存を止められるか | できる(保存中断アクション) | できない(既に保存済み) |
| データ変更への影響 | 中断すればデータは変わらない | データは確定済み |
「何かあったら止める」のが保存前、「保存が完了したら動かす」のが保存後です。
保存後トリガーを使った通知送信の設定方法は、次の記事で解説します。
ハイライト表示と条件コピペで「見える化」する
バリデーションを設定したら、もうひと工夫。Flow for kintone の ハイライト表示(UI拡張設定)を使うと、保存前のバリデーションに引っかかりそうなレコードを一覧画面で色分けして表示できます。
例えば、今回の「商談フェーズが受注 AND 売上が空欄」という条件でハイライトルールを作成すれば、一覧画面で該当レコードが赤く表示されます。バリデーションでブロックする前に、担当者が自分で気づいて修正できるようになります。
ポイントは、IF条件ノードで設定した条件をそのままハイライトルールに再利用できることです。条件ノード上のコピーアイコンをクリックすると条件がクリップボードにコピーされ、ハイライトルールの条件欄に貼り付けることができます。同じ条件を手入力し直す必要はありません。
まとめ
| 設定項目 | 内容 |
|---|---|
| トリガー | 保存前 |
| 条件 | 商談フェーズ = 受注 AND 売上 = 空欄 |
| アクション | 保存中断 |
| エラーメッセージ | 「受注登録には売上金額の入力が必要です。売上フィールドに金額を入力してから保存してください。」 |
| 「いいえ」ルート | 何も設定しない(通常通り保存) |
Flow for kintone の保存中断アクションを使うと、「特定の条件のときだけ保存を止める」という動的なバリデーションを、プログラミングなしで設定できます。条件設定と分かりやすいエラーメッセージの組み合わせで、データ品質を保ちながらユーザーが正しく修正できる仕組みを作りましょう。
