Salesforceで新しいフローを作成したとき、「このフローを既存の全レコードに一括で適用したい…!」と思ったことはありませんか?

例えば、「取引先が作成・更新されたら、関連する商談の特定の項目を自動で更新する」というフローを作ったとします。このフローは、これから作成・更新されるレコードには有効ですが、すでに存在するレコードには適用されません

一件ずつ手動で更新するのは現実的ではありませんよね。

そんな時に役立つのが、**データローダーを使った「空更新」**です。この記事では、Salesforceの標準ツール「データローダー」を使い、既存のレコード情報は何一つ変更せずに、レコードの更新処理だけを実行してフローを発動させるテクニックを分かりやすく解説します。

「空更新」とは?

空更新とは、レコードの項目値を実際には変更せず、Salesforceに「このレコードが更新された」と認識させる操作のことです。

具体的には、データローダーを使って、更新対象レコードのIDのみを指定して一括更新(Update)をかけます。ID以外の項目を指定しないため、データ内容は変わりません。しかし、Salesforce上では更新イベントが発生するため、それをトリガーとするフローやプロセスビルダーなどを起動させることができるのです。

この方法を使えば、何千、何万件という既存レコードに対しても、一度の操作で新しいフローを一括適用できます。

準備するもの

  • データローダー: まだインストールしていない場合は、Salesforce組織の [設定] > [インテグレーション] > [データローダ] からダウンロードしてください。
  • 更新対象レコードのID

空更新の方法

それでは、具体的な手順を見ていきましょう。今回は例として、「取引先」オブジェクトの既存レコードすべてに新しいフローを適用するケースを想定します。

Step 1: 更新用CSVファイルの準備


まずは、空更新をかけたいレコードのIDリストが記載されたCSVファイルを用意します。

  1. データローダーを起動し、「Export」を選択します。
  2. ログイン後、対象のオブジェクト(例:Account)を選択します。
  3. ファイルの保存先を指定し、「Next」をクリックします。
  4. 抽出する項目を選択する画面で、「Id」のみにチェックを入れます。そして、SOQLクエリの「Finish」ボタンをクリックします。
    • ポイント: ここで「Id」だけを選ぶのが重要です!もし特定の条件で絞り込みたい場合は、WHERE句で条件を指定することも可能です。(例: SELECT Id FROM Account WHERE IsActive__c = true
  5. エクスポートが完了すると、成功・失敗ログの確認画面が表示されます。「OK」をクリックして閉じます。

これで、指定したオブジェクトの全レコードのIDが記載されたCSVファイルが作成されました。

Step 2: データローダーで一括更新(Update)


次に、Step 1で作成したIDリストのCSVファイルを使い、一括更新を実行します。

  1. データローダーのホーム画面に戻り、「Update」を選択します。
  2. 対象オブジェクト(例:Account)を選択し、先ほどエクスポートしたIDのみが記載されたCSVファイルを指定します。
  3. 「Next」をクリックすると、CSVファイルの行数が表示されるので確認して「OK」をクリックします。
  4. 次の画面では、CSVの項目とSalesforceの項目をマッピングします。「Create or Edit a Map」をクリックし、CSVの「ID」列とSalesforceの「ID」項目をドラッグ&ドロップで紐付けます。
  5. マッピングが完了したら「OK」→「Next」と進みます。
  6. 最後に、成功ファイルとエラーファイルの保存先ディレクトリを指定し、「Finish」をクリックして処理を開始します。

これで更新処理が実行されます。レコードの件数によっては少し時間がかかりますが、完了するまで待ちましょう。

Step 3: 結果の確認


処理が完了したら、必ず結果を確認しましょう。

  • Success/Errorファイルの確認: データローダーの完了ダイアログに表示される成功件数とエラー件数を確認します。もしエラーがあれば、Errorファイルを開いて原因を調査し、対象レコードを修正して再度実行してください。
  • Salesforce上の確認: Salesforceの画面で、いくつかのレコードをランダムにピックアップし、フローが意図通りに実行されているか(項目が更新されているか、関連レコードが作成されているかなど)を確認します。

空更新を実行する上での注意点

この方法は非常に便利ですが、いくつか注意点があります。必ず事前に確認してください。

  • 事前にSandboxでテストする: いきなり本番環境で実行するのは非常に危険です。必ず事前にSandbox環境でテストを行い、意図しない動作が起きないか、フローが正しく実行されるかを確認してください。
  • 他の自動化プロセスに注意: レコード更新をトリガーとするのは、今回動かしたいフローだけとは限りません。他のワークフロールール、入力規則、Apexトリガーなどが意図せず動いてしまわないか、事前に影響範囲をしっかり調査しましょう。
  • データのバックアップ: 万が一の事態に備え、空更新を実行する前には、必ず対象オブジェクトのデータをエクスポートしてバックアップを取っておきましょう。

まとめ

データローダーを使った「空更新」は、新規作成したフローを既存レコードへ一括適用するための強力なテクニックです。手順自体はとてもシンプルですが、本番環境のデータに一括で変更を加える操作のため、事前のテストと影響調査が不可欠です。

この記事を参考に、安全かつ効率的にSalesforceの運用を行ってみてください!

投稿者 てきとうSE

普段はシステムエンジニアとして、SalesforceなどのSaaS製品と日々向き合っています。

コメントを残す

名前は任意です。未入力の場合は「匿名」として投稿されます。