ユースケース1: 条件に合致するレコードを一括削除する
「退職済みのリード」や「失注から1年以上経過した商談」など、不要になったレコードがSalesforceに蓄積されることがあります。こうしたレコードを条件で絞り込み、まとめて削除したいケースに対応できます。
課題
Salesforce標準画面では大量レコードの条件付き一括削除が難しく、Data LoaderやAPI操作が必要になります。
TROCCOでの実現方法
TROCCOでは転送元と転送先の両方にSalesforceを設定することで、SOQLで条件を指定した一括削除を実現できます。
- 転送元: Salesforce(削除対象のレコードIDを抽出)
- 転送先: Salesforce(削除(Soft DELETE)モードで削除を実行)
設定手順
STEP 1: 転送元 Salesforceの設定
削除したいレコードを絞り込むためのSOQLクエリを記述します。SELECT には削除キーとして使用するカラム(Id または外部IDフィールド)を必ず含めてください。
例: 失注リードの Id を取得する場合
SELECT Id
FROM Lead
WHERE Status = 'Closed - Not Converted'
AND LastModifiedDate < 2025-06-01T00:00:00Z
STEP 2: 転送先 Salesforceの設定
| 設定項目 | 設定値 | 説明 |
|---|---|---|
| オブジェクト | Lead, Account 等 | 削除対象のオブジェクトを選択 |
| 転送モード | 削除(Soft DELETE) | プルダウンから選択 |
| 削除キー | Id(デフォルト)または外部IDフィールド名 | 下記参照 |
削除キーの選択
- Id(デフォルト): 転送元データのカラム値をSalesforceレコードID(SFID)として直接削除します。転送元のSOQLで
SELECT Id FROM ...としている場合はこちらを使用します。 - 外部IDフィールド名(例: External_Id__c): 転送元データのカラム値をキーにSOQLでSalesforceレコードIDを解決してから削除します。SFIDを持っていないが外部IDで対象を特定できる場合に使用します。
ヒント: 「削除キーを取得」ボタンをクリックすると、対象オブジェクトのユニークキーフィールド一覧を取得できます。
STEP 3: カラム定義の確認
プレビュー画面で、転送元から取得されるカラムを確認します。削除キーに指定したカラムが含まれていることを確認してください。
STEP 4: 実行
転送設定を保存し、ジョブを実行します。転送元で抽出されたレコードIDに一致するSalesforceレコードが論理削除(ごみ箱へ移動)されます。
ユースケース2: データの洗い替え(全削除→再投入)をワークフローで自動化する
社内の採用管理システムなどに保管している求人情報(Recruit__c)を定期的にSalesforceへ同期しているケースがあります。こうしたマスタデータは追加・削除が頻繁に発生するため、毎回「既存データをすべて削除してから最新データを投入する」洗い替えが必要になることがあります。ワークフローを使って、この削除→再投入を自動化したいケースに対応できます。
課題
UPSERTでは不要になったレコード(ソース側で削除済み)がSalesforce側に残り続けます。手動での削除→投入は運用コストが高くなります。
TROCCOでの実現方法
TROCCOのワークフロー機能で「削除転送」→「投入転送」を順番に実行することで、洗い替えを自動化します。
- 転送設定A(削除):
Recruit__cの全レコードを Soft DELETE で一括削除 - 転送設定B(投入): 最新マスタデータを Salesforce へ一括投入
- ワークフロー: 上記2つを順番に自動実行
設定手順
STEP 1: 転送設定A(削除用)の作成
- 転送元: Salesforce →
SELECT Id FROM Recruit__cで全レコードの Id を取得 - 転送先: Salesforce → 転送モード「削除(Soft DELETE)」/ 削除キー「Id」
STEP 2: 転送設定B(投入用)の作成
- 転送元: データソース(BigQuery, Snowflake, S3 等)→ 投入する最新データ
- 転送先: Salesforce → 転送モード「追記(INSERT)」
STEP 3: ワークフローの作成
- ワークフローを新規作成する
- 転送設定A(削除)→ 転送設定B(投入)の順にタスクを追加する
- スケジュールを設定して定期実行する
注意: 削除と投入の間にデータの不整合が一時的に発生します。業務影響を考慮し、利用者の少ない時間帯に実行することを推奨します。
ユースケース3: 外部システムの削除フラグに基づいてSalesforceレコードを削除する
基幹システムで管理しているレコードに削除フラグが立った場合、同じレコードをSalesforce側でも定期的に削除したいケースがあります。基幹システムにSalesforce IDがなくても、共通の業務キー(顧客コードなど)を外部IDフィールドとして登録しておけば、TROCCOで対象レコードを特定して削除できます。
課題
基幹システムの削除フラグをSalesforceに反映するには、削除対象レコードをSalesforce内部IDで特定する必要がありますが、基幹システムにはSalesforce IDがありません。手動でのマッチングや削除は工数がかかります。
TROCCOでの実現方法
転送元から削除フラグが立ったレコードの業務キーを抽出し、Salesforce側の外部IDフィールドと照合して削除します。
- 転送元: BigQuery / MySQL 等(削除フラグが立ったレコードの業務キーを抽出)
- 転送先: Salesforce 転送モード「削除(Soft DELETE)」 / 削除キー: Customer_Code__c(外部ID)
設定手順
STEP 1: 転送元の設定
基幹システムのDB等から、削除対象レコードの業務キー値を取得するクエリを設定します。
SELECT customer_code FROM customers WHERE deleted_at IS NOT NULL AND synced = false
STEP 2: 転送先Salesforceの設定
| 設定項目 | 設定値 |
|---|---|
| オブジェクト | Account |
| 転送モード | 削除(Soft DELETE) |
| 削除キー | Customer_Code__c(Salesforce側の外部IDフィールド名) |
この設定では、転送元の customer_code カラムの値を使って、Salesforce側で Customer_Code__c が一致するレコードをSOQLで特定し、削除します。
前提条件: 削除キーに指定するSalesforce側のフィールドは、外部ID属性が有効化されたカスタムフィールドである必要があります。
STEP 3: カラム定義の確認
カラム定義でカラム名を Customer_Code__c に設定し、「変更をプレビュー」をクリックします。プレビューでカラム名が Customer_Code__c になっていることを確認してください。
コメント
0件のコメント
記事コメントは受け付けていません。