Salesforceのフロー(Flow Builder)を使いこなす上で、「特殊変数(recordId
や $User
など)」の理解は欠かせません。この記事では、画面フローやレコードトリガーフローなど、各種フローで使用できる特殊な変数の一覧を分かりやすく整理します。
はじめに:特殊変数とは?
Salesforceのフローで**「特殊変数」**と呼ばれるものには以下の2種類があります:
- 自動的に値がセットされる入力変数(
recordId
やids
など) - 常に参照可能なグローバル変数(
$User
や$Record
など)
これらを正しく理解・活用することで、より動的で柔軟なフローを作成できます。
自動提供される入力変数
以下の変数は特定の名称で定義しておくと、Salesforceが自動的に値を渡してくれる便利なものです。特に画面フローやリストビューから起動するフローで活躍します。
変数名 | データ型 | 使用シーン | 内容 |
---|---|---|---|
recordId |
テキスト(単一) | Lightningページやクイックアクションから起動時 | 表示中レコードのID |
ids |
テキストコレクション | リストビューから起動時 | 選択された複数レコードのID |
id |
テキスト(単一) | 詳細ページのカスタムボタン(URL指定)経由 | 表示中レコードのID |
⚠️ 注意:名前は大文字・小文字を含めて正確に一致している必要があります。
グローバル変数($付き変数)
グローバル変数は、フローでいつでも参照可能な「システム変数」です。ユーザ情報や実行中のフロー、現在のレコードなどに関する情報を取得できます。
主要なグローバル変数一覧
変数名 | 内容 | 使用シーン例 |
---|---|---|
$Record |
トリガ対象レコードの現在の値 | レコードトリガーフロー |
$Record__Prior |
トリガ対象レコードの更新前の値 | 更新時の差分チェック |
$User |
実行ユーザの情報(例:Id、Name、Emailなど) | ユーザ別の処理分岐 |
$Profile |
実行ユーザのプロファイル情報 | プロファイル制御 |
$UserRole |
実行ユーザのロール情報 | ロールに基づいた分岐 |
$Permission |
カスタム権限の有無を判定(Boolean) | 特定権限を持つユーザの条件分岐 |
$Organization |
組織情報(会社名、国、電話番号など) | 組織別の処理や出力 |
$Flow |
実行中のフローに関する情報(日時、ステージなど) | 実行タイミングやエラー出力 |
$Label |
カスタムラベルの値 | 多言語対応や共通メッセージ表示 |
$Client |
実行端末の種別(Desktop, Mobile など) | Lightning Scheduler フロー専用 |
$Api |
APIセッションやURL情報 | 高度な連携・デバッグ |
$Setup |
階層型カスタム設定の値 | ユーザ/プロファイルごとの設定取得 |
$System |
システム定数(例:OriginDateTime) | 日時計算など |
よく使う具体例
1. 現在のレコードIDを取得(画面フロー)
recordId というテキスト型の入力変数を作成しておくと、自動で現在表示中のレコードIDが入る
2. 実行ユーザの名前を取得
{!$User.Name}
3. レコード更新の差分をチェック
{!$Record.Status} と {!$Record__Prior.Status} を比較
4. カスタム権限を使った処理分岐
{!$Permission.Can_Approve_Requests__c} が true かどうか
まとめ
Salesforceフローで提供される特殊変数を活用すれば、よりダイナミックで賢い自動化処理を実現できます。特に $Record
や $User
、recordId
などは非常に使用頻度が高いので、ぜひ覚えておきましょう。