本橋孝昭です
今回はSalesforceのUpsertの方法について解説をします
Upsert(アップサート)とは?
Upsetとは、「一致するレコードがあれば更新、なければ新規作成」するデータ操作のことです。
外部IDを使うことで、SalesforceのIDを知らなくても、外部システムのIDをキーとしてアップサートが可能になります。
例:
外部システム側に「l顧客番号」という項目があり、それをSalesforceの「外部ID」として登録している場合。
アップサート時に「顧客番号」が既に存在すれば更新、存在しなければ新規登録されます。
添付画像の設定の場合顧客番号「X001」と「X002」は外部データ、Salesforceデータともに存在するため、データの更新がかかります
Upsertの動作イメージ
Upsertでは、次のような順序で処理が行われます。
- 指定した外部ID項目の値と一致するレコードを検索
- 一致するレコードがあれば → 更新(Update)
- 一致しない場合 → 新規作成(Insert)
このため、同じCSVファイルで「更新と新規作成」を同時に行うことが可能です。
外部IDとは
Salesforce外のシステム(例:基幹システム、ERP、CSVファイルなど)で管理しているデータのキー項目を、Salesforce上でも一意に識別するための項目です。
「外部ID」として設定すると、その項目をキーにしてレコードを特定できるようになるのでUpsertが可能になります。
Upsertの特徴
UpsertはUpdateと大きく異なる部分は「SalesforceIDが無くても更新」が可能なことです。UpdateはSalesforce IDによる更新をしないといけません。
しかし、事前にSalesforceに外部ID項目が設定されている場合、その外部IDの項目値の一致により更新が可能になります。
よくあるエラーと対策
外部ID項目に重複重複がある場合エラーが発生します
そのため事前に外部ID項目をユニークにしておくと重複が防げるので安全です

