子レコード作成時に参照項目へ親の値を自動設定するフロー
子オブジェクトを作るたびに参照項目を手入力していませんか。親の値をレコードトリガーフローで自動設定する方法と、URLハックが使えない理由を説明します。
なぜフローで設定するのか
取引先責任者のような子レコードを作るたびに、親の参照項目値をコピーする作業を手入力していませんか。件数が増えるほど入れ忘れが起きます。Salesforce Classicの時代は、URLパラメータで新規作成画面に値を渡す「URLハック」でこれを避けられましたが、公式ドキュメントは「内部的な動作を流用したものでドキュメント化されておらず、正式にサポートされるものではない」と明記しています。Lightning Experienceには、URLのdefaultFieldValuesパラメータで初期値を渡す公式の方法がありますが、効くのはそのURLを使うカスタムのボタンやリンクから開いたときだけです。
3つの代替手段を比べる
Lightningで参照項目に初期値を入れる方法は3つあります。
| 方法 | 向き不向き |
|---|---|
| カスタム項目のデフォルト項目値 | 項目の初期値を式で設定できますが、対応する項目型にチェックボックス・通貨・日付・数値・選択リストなどは含まれても参照関係は含まれません |
| クイックアクションの事前定義フィールド値 | 参照項目にも設定できますが、値は「レコードID項目か、別の参照項目への参照」に限られます。アクションの関連付け先そのものの参照項目には効きません |
| レコードトリガーフロー | 新規ボタン・クイックアクション・データローダーなど、作成経路を問わず動きます。この記事で扱う方法です |
用意するもの
子オブジェクトに、親をさす参照項目がすでにある前提です。
| オブジェクト | 項目 | 役割 |
|---|---|---|
| 子オブジェクト | 親レコードへの参照項目 | フローの開始トリガーになる項目 |
| 子オブジェクト | コピー先の参照項目 | 親の参照項目値を受け取る項目 |
| 親オブジェクト | 参照項目 | コピー元になる値 |
フローを作成する
レコードトリガーフローを選ぶ
設定のFlowsから新規フローを作成し「レコードトリガーフロー」を選びます。開始対象のオブジェクトは子オブジェクト、開始条件は「レコードが作成された場合」にします。
保存前に実行するフローを選ぶ
更新するのは、トリガーになった子レコード自身の項目だけです。関連レコードへは書き込まないため、保存前(Before)で実行するフローを選べます。保存後より高速に処理されます。
親レコードを取得する
レコードを取得要素で、親オブジェクトのIDが子レコードの参照項目と一致するレコードを検索し「最初のレコードのみを自動的に保存」を選びます。
コピー先の参照項目へ値を設定する
割り当て要素で、子レコードのコピー先参照項目に、取得した親レコードの参照項目値を代入します。
⚠️ 保存前フローで使える要素は、割り当て要素・決定要素・レコードを取得要素・ループ要素だけです。レコード更新要素は使いません。この用途は子レコード自身の項目更新だけなので、保存前フローの制約の中に収まります。
親が見つからない場合に備える
参照項目が空、または対象の親レコードが削除済みで取得できないことがあります。決定要素を1つ挟み、取得したレコードが存在する場合だけ割り当てを実行するようにします。存在しない場合は何もしないままフローを終えます。
動作確認
親レコードの参照項目値を確認する
コピー元になる値を先に控えておきます。
子レコードを作成する
親レコードを指定して、子レコードを新規作成します。
子レコードの参照項目を確認する
作成直後の子レコードで、コピー先の参照項目に親の値が入っていることを確認します。フローのデバッグ画面で、各要素の値もあわせて確認できます。
ここで間違えやすい
| 間違い | 何が起きるか |
|---|---|
| デフォルト項目値で参照項目に初期値を設定しようとする | 参照関係は対象の項目型に含まれず、設定できません |
| クイックアクションの事前定義フィールド値を、アクションの関連付け先の参照項目に設定する | 値は無視され、親レコードのIDがそのまま使われます |
| 保存前フローでレコード更新要素を使おうとする | 保存前フローでサポートされる要素に含まれません |
| 親レコードの取得で絞り込み条件を外す | 無関係な親レコードを拾ってしまいます |
確認した環境
- 2026年9月 / Salesforce Summer '26(APIバージョン67.0)時点の公式ヘルプで、URLハックの位置づけ、デフォルト項目値の対応項目型、クイックアクションの事前定義フィールド値の制約、保存前フローで使える要素を確認しています
- オブジェクト名・項目名は、ご自身の組織のものに置き換えてください
まとめ
- URLパラメータで参照項目に初期値を渡す「URLハック」は、公式に非サポートの内部動作です。Lightning Experienceでは前提にしません
- カスタム項目のデフォルト項目値は、参照関係には使えません
- クイックアクションの事前定義フィールド値は参照項目にも使えますが、アクションの関連付け先そのものの参照項目には効きません
- 作成経路を問わず動かしたいなら、レコードトリガーフローで親の値を子へコピーします
- 子レコード自身の項目を更新するだけなら、保存前フローで完結します。使える要素は割り当て・決定・レコードを取得・ループの4つです
参考:当時の画面
記事を最初に書いた当時の画面です。いまの手順と違うところは、各画像の説明に書いています。
Salesforceの導入・運用についてご相談ください
導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。