設定・自動化

子レコード作成時に参照項目へ親の値を自動設定するフロー

子オブジェクトを作るたびに参照項目を手入力していませんか。親の値をレコードトリガーフローで自動設定する方法と、URLハックが使えない理由を説明します。

2025.07.17

なぜフローで設定するのか

取引先責任者のような子レコードを作るたびに、親の参照項目値をコピーする作業を手入力していませんか。件数が増えるほど入れ忘れが起きます。Salesforce Classicの時代は、URLパラメータで新規作成画面に値を渡す「URLハック」でこれを避けられましたが、公式ドキュメントは「内部的な動作を流用したものでドキュメント化されておらず、正式にサポートされるものではない」と明記しています。Lightning Experienceには、URLのdefaultFieldValuesパラメータで初期値を渡す公式の方法がありますが、効くのはそのURLを使うカスタムのボタンやリンクから開いたときだけです。

3つの代替手段を比べる

Lightningで参照項目に初期値を入れる方法は3つあります。

方法向き不向き
カスタム項目のデフォルト項目値項目の初期値を式で設定できますが、対応する項目型にチェックボックス・通貨・日付・数値・選択リストなどは含まれても参照関係は含まれません
クイックアクションの事前定義フィールド値参照項目にも設定できますが、値は「レコードID項目か、別の参照項目への参照」に限られます。アクションの関連付け先そのものの参照項目には効きません
レコードトリガーフロー新規ボタン・クイックアクション・データローダーなど、作成経路を問わず動きます。この記事で扱う方法です
クイックアクションの事前定義フィールド値には注意点があります。公式ノートは「アクションの関連付け先として使われている参照項目に事前定義値を設定しても、その値は無視され、親レコードのIDがそのまま使われる」と説明しています。関連付け先以外の参照項目になら使えますが、今回のように「作成のきっかけになった親」をそのままコピーしたい場合には向きません。

用意するもの

子オブジェクトに、親をさす参照項目がすでにある前提です。

オブジェクト項目役割
子オブジェクト親レコードへの参照項目フローの開始トリガーになる項目
子オブジェクトコピー先の参照項目親の参照項目値を受け取る項目
親オブジェクト参照項目コピー元になる値
親オブジェクト・子オブジェクト・参照オブジェクトの関係を示した構成図
オブジェクトの関係図です。子から親をさす参照項目と、親がさす参照オブジェクトの2本の線を見てください。

フローを作成する

  1. レコードトリガーフローを選ぶ

    設定のFlowsから新規フローを作成し「レコードトリガーフロー」を選びます。開始対象のオブジェクトは子オブジェクト、開始条件は「レコードが作成された場合」にします。

  2. 保存前に実行するフローを選ぶ

    更新するのは、トリガーになった子レコード自身の項目だけです。関連レコードへは書き込まないため、保存前(Before)で実行するフローを選べます。保存後より高速に処理されます。

  3. 親レコードを取得する

    レコードを取得要素で、親オブジェクトのIDが子レコードの参照項目と一致するレコードを検索し「最初のレコードのみを自動的に保存」を選びます。

  4. コピー先の参照項目へ値を設定する

    割り当て要素で、子レコードのコピー先参照項目に、取得した親レコードの参照項目値を代入します。

新規フロー画面。「最初から開始」が赤枠で選択されている
新規フローの最初の画面です。赤枠の「最初から開始」を選んで次へ進みます。
フローの種別選択画面。「レコードトリガーフロー」が赤枠で選ばれている
種別の選択画面です。赤枠の「レコードトリガーフロー」を選びます。画面フローや自動起動フローではありません。
開始を設定画面。対象オブジェクトに子オブジェクトを指定し、トリガー条件はレコードが作成された場合
開始の設定画面です。赤枠の対象オブジェクトに子オブジェクトを指定し、トリガー条件は「レコードが作成された」を選びます。
レコードを取得要素の設定画面。親オブジェクトのIdを子の参照項目値で絞り込んでいる
レコードを取得要素の設定です。親オブジェクトのIdを子レコードの参照項目値で絞り込み、保存するレコード数は「最初のレコードのみ」にします。

⚠️ 保存前フローで使える要素は、割り当て要素・決定要素・レコードを取得要素・ループ要素だけです。レコード更新要素は使いません。この用途は子レコード自身の項目更新だけなので、保存前フローの制約の中に収まります。

親が見つからない場合に備える

参照項目が空、または対象の親レコードが削除済みで取得できないことがあります。決定要素を1つ挟み、取得したレコードが存在する場合だけ割り当てを実行するようにします。存在しない場合は何もしないままフローを終えます。

動作確認

  1. 親レコードの参照項目値を確認する

    コピー元になる値を先に控えておきます。

  2. 子レコードを作成する

    親レコードを指定して、子レコードを新規作成します。

  3. 子レコードの参照項目を確認する

    作成直後の子レコードで、コピー先の参照項目に親の値が入っていることを確認します。フローのデバッグ画面で、各要素の値もあわせて確認できます。

親レコードの詳細画面。取引先項目にtest1が入っているところが赤枠で示されている
まず親レコードの詳細画面です。赤枠の参照項目の値を、コピー元として控えておきます。
子レコードの詳細画面。取引先項目に親と同じtest1が自動で入っている
作成した子レコードの詳細画面です。赤枠の参照項目に、親と同じ値が自動で入っていることを確認します。

ここで間違えやすい

間違い何が起きるか
デフォルト項目値で参照項目に初期値を設定しようとする参照関係は対象の項目型に含まれず、設定できません
クイックアクションの事前定義フィールド値を、アクションの関連付け先の参照項目に設定する値は無視され、親レコードのIDがそのまま使われます
保存前フローでレコード更新要素を使おうとする保存前フローでサポートされる要素に含まれません
親レコードの取得で絞り込み条件を外す無関係な親レコードを拾ってしまいます

確認した環境

  • 2026年9月 / Salesforce Summer '26(APIバージョン67.0)時点の公式ヘルプで、URLハックの位置づけ、デフォルト項目値の対応項目型、クイックアクションの事前定義フィールド値の制約、保存前フローで使える要素を確認しています
  • オブジェクト名・項目名は、ご自身の組織のものに置き換えてください

まとめ

  • URLパラメータで参照項目に初期値を渡す「URLハック」は、公式に非サポートの内部動作です。Lightning Experienceでは前提にしません
  • カスタム項目のデフォルト項目値は、参照関係には使えません
  • クイックアクションの事前定義フィールド値は参照項目にも使えますが、アクションの関連付け先そのものの参照項目には効きません
  • 作成経路を問わず動かしたいなら、レコードトリガーフローで親の値を子へコピーします
  • 子レコード自身の項目を更新するだけなら、保存前フローで完結します。使える要素は割り当て・決定・レコードを取得・ループの4つです

参考:当時の画面

記事を最初に書いた当時の画面です。いまの手順と違うところは、各画像の説明に書いています。

レコードを更新要素の設定画面。子オブジェクトの参照項目に取得した親の参照項目値を代入している
赤枠の項目と値の対応を見てください。コピー先の参照項目に、取得した親レコードの参照項目値を入れています。
フローの全体図。開始、親レコード取得、プリセット、終了の順に要素が並ぶ
フローの全体図です。開始から親レコードの取得、値の設定へと一直線に並ぶ形になります。

Salesforceの導入・運用についてご相談ください

導入前の検討から、お使いの環境の改修・運用、AIとの連携まで承ります。状況を伺ったうえで、進め方をご提案します。