データローダは、Salesforceのレコードを CSV ファイルで一括に書き出し、まとめて作成・更新・削除するためのアプリです。社員30名ほどの法人向けサービス会社の営業チームで実際に回っている、商談の書き出し・取引先の業種の一括更新・外部IDでの取引先の取り込み・不要なリードの一括削除の4つを通して書きます。読み終わると、インストールからログイン、成功ファイルとエラーファイルを見たやり直しまで、自分で回せるようになります。ユーザーには「API の有効化」権限と、作業するオブジェクトへの「参照」「作成」「編集」「削除」のうち必要なものが要ります。公式の使用可能エディションは Enterprise・Performance・Unlimited・Developer で、Professional は API を追加したときだけ使えます。
公式のガイドでは「データローダー」と表記されていますが同じものです。アプリの画面は英語なので、ボタン名は英語のまま書きます。
この記事の内容
データローダでできること
メイン画面に操作ごとのボタンが並んでいて、どれを押すかで CSV の扱いが変わります。
| ボタン | 何をするか | 照合に使うもの | 必要な権限 |
|---|---|---|---|
| Insert | CSV の行をすべて新しいレコードとして作る | 照合しない | 「作成」 |
| Update | 既存のレコードを CSV の値で書き換える | レコードID | 「編集」 |
| Upsert | 一致すれば更新、なければ作成 | レコードID か外部ID | 「作成」または「編集」 |
| Delete | IDのレコードを削除し、ごみ箱に入れる | レコードID | 「削除」 |
| Hard Delete | ごみ箱に入れずに完全に削除する | レコードID | 「削除」と「Bulk API の物理削除」 |
| Export | 条件に合うレコードを CSV に書き出す | 照合しない | 「参照」 |
| Export All | 削除済みとアーカイブ済みの活動も含めて書き出す | 照合しない | 「参照」 |
一括削除には「すべてのデータの編集」も要ります。Delete と Hard Delete は、画面で選んだオブジェクトではなく CSV に書いたIDでレコードを消します。リードを消すつもりで取引先のIDが混ざっていると、取引先が消えます。削除用の CSV は、必ずデータローダの Export で作ったものを使います。
データインポートウィザードとの使い分け
| 観点 | データインポートウィザード | データローダ |
|---|---|---|
| 動く場所 | ブラウザ(「設定」から開く) | パソコンのアプリ(macOS・Windows) |
| 件数 | 5万件まで | Bulk API 2.0 使用時は最大1億5,000万件 |
| 対象 | 取引先・取引先責任者・リード・キャンペーンメンバー・カスタムオブジェクトなど | すべて(商談・活動も可) |
| 書き出し・削除 | できない | できる |
| 重複の防止 | 取引先名と部門、メールで照合できる | IDか外部IDだけ |
| 定期実行 | できない | コマンドラインで可能(Windows のみ) |
例の会社では、最初の顧客リストはウィザード、商談や活動を入れるとき・書き出すとき・消すとき・毎月同じ形で更新するときはデータローダです。移行の段取りは「ExcelからSalesforceへ移す手順。データインポートウィザードとデータローダの使い分け」で書いているので、ここでは操作そのものを深く書きます。
使えるエディション
| エディション | 使えるか |
|---|---|
| Starter | 公式の対象に無い(データローダの対象にも、API が使えるエディションの一覧にも名前が無い) |
| Pro Suite | 同上 |
| Professional | API は標準で使えず、追加は有償。移行のためなら営業担当に依頼し、期間を決めて有効にしてもらう |
| Enterprise | 使える |
| Unlimited | 使える |
先に決めること
どのユーザーで流すか
データローダで作ったレコードの作成者・最終更新者はログインしたユーザーになり、所有者の列を対応付けなければ所有者もそのユーザーになります。営業の誰かのユーザーで流すと、その人の名前で大量のレコードができ、「自分の商談」が崩れます。例の会社では、データ作業は管理者1人のユーザーで行い、所有者は CSV の列で指定しています。
Hard Delete に要る「Bulk API の物理削除」は、標準のシステム管理者プロファイルに付けられません。権限セットを作って作業者にだけ割り当てます。
本番の前に sandbox で試すか
1,000件を超える更新や削除、フローや入力規則が絡むオブジェクトへの書き込みは、先に sandbox で同じ CSV を流します。作り方は「Salesforceのsandboxの作り方と使い分け。本番を壊さずに試す」で書いています。
照合キーを何にするか
外部IDは、作成画面で「外部 ID」にチェックを入れたカスタム項目で、販売管理システムの顧客番号のように Salesforce の外の番号を入れます。テキスト・数値・メール・自動採番で作れ、1オブジェクト25項目までです。毎月ほかのシステムから更新するなら外部IDで Upsert、画面のデータを直して戻すだけならレコードIDで Update にします。
レコードIDは15桁が大文字と小文字を区別し、18桁は区別しません。Excel の VLOOKUP は大文字と小文字を区別しないので、15桁で引くと別のレコードを拾うことがあります。Export で出るのは18桁なので、それをそのまま使います。
文字コードと日付の形
日本語の Excel で「CSV(コンマ区切り)」で保存すると Shift-JIS になります。データローダで UTF-8 の読み込みをオンにするなら、「CSV UTF-8(コンマ区切り)」で保存します。そろっていないと日本語が化けます。
日付は 2026-10-23 の形で書きます。データローダが受け付ける日付の形に、日本の Excel が出す 2026/10/23 はありません。日付の列はセルの書式を yyyy-mm-dd にしてから保存します。
設計表
「Settings」で変える項目と、例の会社の値です。
| 設定項目 | 値 | 理由 |
|---|---|---|
| Import batch size | 200 | フローが重い商談だけ 50 に下げる |
| Insert null values | 普段はオフ | オンだと CSV の空欄で既存の値が消える |
| Read / Write all CSVs with UTF-8 encoding | 両方オン | Excel の「CSV UTF-8」とそろえる |
| Allow field truncation | オフ | 長すぎる値を黙って切らずにエラーで拾う |
| Time Zone | GMT | 日付項目が1日ずれるのを防ぐ |
| Use Bulk API / Use Bulk API 2.0 | 普段はオフ | 大量件数と Hard Delete のときだけオン |
4つの作業で使う CSV と、例3で作る外部IDです。
| 作業 | ボタン | 列 | 照合 |
|---|---|---|---|
| 例1 商談の書き出し | Export | 書き出すだけ | なし |
| 例2 業種の一括更新 | Update | Id、業種 | 取引先のID |
| 例3 取引先の取り込み | Upsert | 顧客番号、取引先名、電話、業種、所有者ID | 顧客番号(Customer_No__c) |
| 例3 導入プロジェクト | Upsert | 導入プロジェクト番号、顧客番号、名前、状況、開始日 | 導入プロジェクト番号(Project_No__c)、親は顧客番号 |
| 例4 リードの削除 | Delete | Id だけ | リードのID |
顧客番号と導入プロジェクト番号は、どちらもテキスト(20)で「外部 ID」と「ユニーク」を付けます。
インストールとログイン
ダウンロードする
- 画面右上の歯車アイコンから「設定」を開きます。
- 「クイック検索」に「データローダー」と入力します。
- 検索結果の「データローダー」をクリックします。
- 「ダウンロード」のリンクをクリックします。
- 開いた Salesforce Developers のページで、最新版の zip をダウンロードします。

「設定」から落とせるのは最新版だけで、サポートも最新版にしか提供されません。
Java を入れる
先に Java の実行環境(JRE)のバージョン17以降を入れます。公式には入手先の例として Azul Zulu と Adoptium Eclipse Temurin が挙がっていて、OS と CPU に合うものを選びます。Windows 版にも Java は同梱されていません。入れたら環境変数 JAVA_HOME をそのフォルダに設定します。
Windows で Shift-JIS の CSV を扱うなら、Java は17にします。公式のナレッジ記事で、Zulu の18以降では Windows 版で文字化けが起きることがあると案内されています。
macOS に入れる
- zip を展開します。
- 展開したフォルダにある
install.commandをダブルクリックします。 - 開けないと表示されたら、「システム設定」の「プライバシーとセキュリティ」を開きます。
- ブロックされたファイルの横の「このまま開く」をクリックします。
- ターミナルが開き、英語で質問が出ます。今のフォルダに入れるか、デスクトップと「アプリケーション」フォルダにショートカットを作るかを、
YesかNoで答えます。
答え終わると、同じフォルダに dataloader.app と dataloader_console ができます。次からは dataloader.app で起動します。
macOS 15 より前は、手順3と4の代わりに Control キーを押しながらクリックし、「開く」を選びます。
Windows に入れる
- zip を右クリックし、「すべて展開」を選びます。
- フォルダ内の
install.batをダブルクリックします。 - インストール先とショートカットの質問に
YesかNoで答えます。
インストール先のパスに日本語が入るとエラーになることがあります。ユーザー名が日本語のパソコンでは C:\dataloader のような英字のフォルダを指定します。新しい版に替えるときは、古い版の configs フォルダの config.properties を新しい版へ移すと設定を引き継げます。
先に設定を変える
- データローダを起動します。
- メニューの「Settings」から「Settings」を開きます。
- 設計表の値に合わせて変えます。
- 「OK」をクリックします。

ログインする
- メイン画面で操作のボタン(例1なら「Export」)をクリックします。
- 「Step 1: Log In」の画面で「OAuth」を選びます。
- 「Environment」で、本番なら「Production」、sandbox なら「Sandbox」を選びます。
- 「Log in」をクリックします。
- 「Login from Browser」の案内に従ってブラウザで Salesforce にログインし、アクセスを許可します。
- データローダに戻り「Next」をクリックします。

ログインはデータローダを閉じるまで続きます。本番と sandbox を行き来する作業では切り替えのたびにログアウトし、どちらに入っているかを見てから流します。本番のつもりで sandbox に流す、またはその逆が一番多い事故です。
OAuth で入れないときは、ユーザー名とパスワードでも入れます。IP 制限のある組織で信頼されていない場所から入るなら、パスワードの後ろにセキュリティトークンを続けます(mypassword と XXXXXXXXXX なら mypasswordXXXXXXXXXX)。パスワードで sandbox に入るときは、「Settings」の「Server host」を https://MyDomainName--SandboxName.sandbox.my.salesforce.com の形に変えます。
例1: 商談をエクスポートする
営業マネージャーから「今期の未完了の商談を、取引先名と値引き率付きでほしい」と頼まれた場面です。毎月同じ形で出すなら、レポートより Export のほうが早いです。
- 「Export」をクリックし、ログインして「Next」をクリックします。
- 「商談(Opportunity)」を選びます。一覧に無いオブジェクトは「Show all objects」にチェックを入れると出ます。
- 「Browse」で書き出し先のファイル名を決め、「Next」をクリックします。
- 項目の一覧で
Id、Name、StageName、Amount、CloseDate、Discount_Rate__cにチェックを入れます。 - 画面下に組み立てられた SOQL を、次のように書き換えます。
- 「Finish」をクリックし、確認で「Yes」をクリックします。
- 「View Extraction」で中身を確かめます。
SELECT Id, Name, Account.Name, Owner.Name, StageName, Amount,
CloseDate, Discount_Rate__c, Lost_Reason__c
FROM Opportunity
WHERE IsClosed = false AND CloseDate = THIS_FISCAL_YEAR
Account.Name のようにピリオドでつなぐと、親の項目も一緒に書き出せます。チェックボックスには出てこないので手で書き足し、大文字と小文字は正確に書きます(ACCOUNT.NAME は動きません)。THIS_FISCAL_YEAR は「今会計年度」の日付リテラルで、ほかに THIS_QUARTER や LAST_N_DAYS:30 があります。
項目は使い道で選びます。Update で戻すなら Id と直す項目だけ、削除前のバックアップなら全項目、レポートと突き合わせるなら金額・フェーズ・完了予定日・所有者名です。
住所などの複合項目を選ぶとエラーになるので、BillingPostalCode・BillingState・BillingCity・BillingStreet のように個別に選びます。商談商品をぶら下げた入れ子の SOQL と、ToDo の「名前」のように複数のオブジェクトを指す項目をたどる SOQL も使えません。商談商品は別に書き出し、OpportunityId で Excel 上で結合します。
例2: 取引先の業種を一括更新する
取引先の「業種」が空欄だったり表記がばらばらだったりするのを、一度にそろえる場面です。
- 「Export」で取引先の
Id、Name、Industryを書き出します。 - 書き出した CSV をコピーし、「_バックアップ」と付けて別のフォルダに保存します。
- 作業用の CSV を Excel で開き、業種を書き換えます。
- 変えない行を削除し、「CSV UTF-8(コンマ区切り)」で保存します。
- メイン画面で「Update」をクリックし、「取引先(Account)」と作業用の CSV を選びます。
- 「Create or Edit a Map」をクリックします。
- 「Auto-Match Fields to Columns」をクリックします。
IDとINDUSTRYだけが対応付くよう、NAMEを外します。- 「Save Mapping」で
account_industry.sdlとして保存し、「OK」をクリックします。 - 成功ファイルとエラーファイルの保存先を選び、「Finish」をクリックします。
業種は選択リストなので、選択肢と1文字でも違うと入りません。画面の表示と保存されている値が違うことがあるため、手順1の CSV に実際に入っている表記に合わせます。
手順4で変えない行を消すのは、値が同じでも最終更新日と最終更新者が全件で書き換わり、「最近触った取引先」のリストビューが崩れるからです。手順8で取引先名を外すのは、Excel で開いたときに空白や全角・半角が変わっていると、そのまま上書きされるからです。直す項目と Id 以外は対応付けません。間違えたときは、バックアップの CSV で同じ手順の Update をすれば元に戻ります。
手順9の .sdl ファイルは、次回「Choose an Existing Map」で選べば同じ対応付けがすぐ読み込まれます。CSV の列名が同じであることが条件なので、毎月の作業では列名を変えません。
業種を空にしたい取引先は、セルを空欄にしても消えません。空欄は「変えない」と解釈されます。消すときは「Insert null values」をオンにして流し、終わったらすぐオフに戻します。オンのままだと、対応付けたすべての列の空欄が削除として扱われます。Bulk API を使う設定ではこの項目が使えないので、消したいセルに #N/A と書きます。
例3: 外部IDでアップサートする
例の会社では、請求は別の販売管理システムで行っていて、顧客マスタの正は販売管理側にあります。毎月、販売管理の顧客一覧で取引先を更新し、新しい顧客は作ります。既存か新規かを人が仕分けずに済むのが Upsert です。
外部IDを作る
- 「オブジェクトマネージャー」で「取引先」を開き、「項目とリレーション」の「新規」をクリックします。
- 「テキスト」を選び、「次へ」をクリックします。
- 表示ラベルに「顧客番号」、文字数に「20」、項目名に「Customer_No」と入力します。項目名は英数字だけなので、自動で入る値のままにせず書き直します。保存すると API 参照名は末尾に
__cが付いたCustomer_No__cになります。 - 「ユニーク」の「値の重複を許可しない」と、「外部 ID」の「外部システムの一意のレコード識別子として設定する」にチェックを入れます。
- 項目レベルセキュリティとページレイアウトを選んで「保存」をクリックします。

「ユニーク」が無いと、同じ顧客番号の取引先が2件あるとき Upsert がどちらを更新するか決められず、エラーになります。既存の取引先への顧客番号の記入は、例2と同じ手順で Id と顧客番号を Update します。
取引先を Upsert する
- 「Upsert」をクリックし、「取引先(Account)」と CSV を選びます。
- 照合に使う項目で
Customer_No__cを選び、「Next」をクリックします。 - 関連するオブジェクトの外部IDを選ぶ画面は、選ばずに「Next」をクリックします。
- 対応付けを作り、保存先を選んで「Finish」をクリックします。
成功ファイルの新規作成の件数が、販売管理側の新規顧客数と合えば照合は効いています。多すぎるときは、顧客番号の前ゼロが Excel で消えていないかを疑います。000123 が 123 になると別の番号として扱われ、既存があるのに新しく作られます。顧客番号の列は文字列の書式にしてから貼ります。
親を外部IDで指定する
導入プロジェクトは取引先と主従関係なので、親が無いと保存できません。親のIDを Excel で引く代わりに、顧客番号で指定できます。
- 「Upsert」で「導入プロジェクト」を選び、照合に
Project_No__cを選びます。 - 関連するオブジェクトの外部IDを選ぶ画面で、取引先に
Customer_No__cを選びます。 - CSV の顧客番号の列を取引先の項目に対応付け、残りの列も対応付けて流します。
取引先を先に、導入プロジェクトを後に流す順番は崩せません。親の無い顧客番号の行はエラーファイルに回ります。
例4: 不要なリードを一括削除する
展示会や資料請求で入ったまま何年も動きが無いリードを片付ける場面です。
- 「Export」でリードの全項目を書き出し、バックアップとして保存します。
- もう一度「Export」でリードを選び、次の SOQL で消す候補を書き出します。
- その CSV を営業マネージャーに見せ、消してよいと確認を取ります。
- 「Delete」をクリックし、「リード(Lead)」と手順2の CSV を選びます。
- 「Create or Edit a Map」で「Auto-Match Fields to Columns」をクリックします。削除では
IDだけが対応付きます。 - 保存先を選び、「Finish」をクリックします。
SELECT Id, LastName, Company, Email, Status, CreatedDate
FROM Lead
WHERE IsConverted = false AND Status = '対象外'
AND CreatedDate < 2024-04-01T00:00:00Z
Status に書く文字は、先に全件を書き出して実際に入っている表記を確かめてから書きます。IsConverted = false で、取引先や商談に変換済みのリードを外しています。
ごみ箱と完全削除の違い
| 観点 | Delete | Hard Delete |
|---|---|---|
| 行き先 | ごみ箱 | ごみ箱に入らずすぐ消える |
| 戻せる期間 | 15日間 | 戻せない |
| 必要な設定 | なし | 「Use Bulk API」か「Use Bulk API 2.0」をオン |
| 必要な権限 | 「削除」 | 「削除」と「Bulk API の物理削除」 |
Delete で消したリードは、アプリケーションランチャーから「ごみ箱」を開き、選んで「復元」をクリックすると戻ります。ほかのユーザーが消したものを戻すには「すべてのデータの編集」が要ります。15日を過ぎると完全削除の予定に入り、いつ消えるかは保証されません。保存期間を30日に延ばす機能もあり、Salesforce サポートにケースを出して有効にしてもらいます。
本番で Hard Delete を使う場面はほとんどありません。消した後で必要と分かったとき手元に残るのはバックアップだけで、Insert し直すとIDも作成日も変わります。削除済みのものは「Export All」に条件 IsDeleted = true を付けて書き出せるので、何を消したかの記録に残せます。
成功ファイルとエラーファイルの読み方
処理のあとには CSV が2つできます。success で始まるファイルが成功した行で、新しく作られたレコードのIDの列が付きます。error で始まるファイルが失敗した行で、理由の列が付きます。
- エラーファイルを Excel で開きます。
- 理由の列を見て、その行を直します。
- 理由の列を消して、別名で保存します。
- その CSV で同じ操作をもう一度流します。
元の CSV を流し直すと、Insert なら成功した行が二重にできます。流し直すのはエラーファイルから作った CSV だけです。成功ファイルは取っておき、Insert を取り消すときはここのIDで Delete します。元の CSV の行数が、成功と失敗の件数の合計と合っているかも見ます。
| エラーコード | 意味 | 直し方 |
|---|---|---|
| REQUIRED_FIELD_MISSING | 必須項目が空 | 商談なら商談名・フェーズ・完了予定日を埋める |
| FIELD_CUSTOM_VALIDATION_EXCEPTION | 入力規則に引っかかった | 続くメッセージで規則を特定して値を直す |
| INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST | 制限付きの選択リストに無い値か空 | 書き出した CSV と同じ表記にする |
| MALFORMED_ID | IDの形が正しくない | 18桁のIDを貼り直す |
| INVALID_CROSS_REFERENCE_KEY | 参照先のIDが無効 | sandbox と本番のIDを取り違えていないか見る |
| DUPLICATE_VALUE | ユニークの項目に既にある値を入れた | 外部IDの重複を CSV と Salesforce の両方で探す |
| DUPLICATE_EXTERNAL_ID | 外部IDが複数のレコードに一致した | 重複を片付けてから流す |
| DUPLICATES_DETECTED | 重複ルールで止められた | 既存のレコードを更新に回す |
| UNABLE_TO_LOCK_ROW | 同じ親を同時に書き換えてロックが取れない | 親ごとに並べて流す。Bulk API なら順次モードにする |
| INVALID_TYPE_ON_FIELD_IN_RECORD | 型に合わない値 | 円記号・カンマ・% を外す |
| CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY | 作成・更新できない | 続く文にフローやトリガーの名前があれば、その条件を見る |
重複ルールで止まったら、そのルールの条件と、ブロックか警告かの処理を見ます。重複ルールの扱いは「Salesforceの重複ルールと一致ルール。取引先とリードの二重登録を防ぐ」で書いています。データローダ自体が止まる、ログインできないといった問題は sdl.log に記録されていて、Windows はエクスプローラーのアドレスバーに %TEMP%\sdl.log、macOS はターミナルで open $TMPDIR/sdl.log と入力すると開けます。
設定の決め方
バッチサイズ
データローダは CSV を決まった件数ずつ送ります。「Import batch size」の上限は SOAP API(初期設定)で200件、Bulk API で10,000件で、Bulk API 2.0 は自動で決めます。商談にフローや入力規則が多い組織では、200件ずつだと処理の上限にかかることがあり、50まで下げて流し直すと通ります。
Bulk API
「Use Bulk API」か「Use Bulk API 2.0」をオンにすると、並列で処理するので大量の件数で速くなります。代わりに「Insert null values」と「Allow field truncation」が使えず、並列のせいでロックのエラーが出やすくなります。Bulk API は「Enable serial mode for Bulk API」で1バッチずつにできます。タイムアウトで失敗しても途中まで成功している行があるので、成功ファイルを見てからファイルを分けて流し直します。
日付とタイムゾーン
「Time Zone」には、最初からパソコンのタイムゾーン(日本のパソコンなら Asia/Tokyo)が入っていて、その時間帯で日付を解釈します。公式は、GMT より東のタイムゾーンのパソコンでは、日付がずれないようパソコン側の設定を GMT に変えるよう案内しています。パソコンの設定を変えずに同じ効果を出すため、例の会社では、日付だけの項目はデータローダの「Time Zone」を GMT にして 2026-10-23 で書き、行動の開始日時のような日付/時間の項目は 2026-10-23T10:00:00.000+0900 とタイムゾーンを付けて書いています。入れたあとは数件を画面で開き、日付と時刻を確かめます。
応用
コマンドラインで定期実行する(Windows のみ)
毎晩の取引先の Upsert や毎週の商談のバックアップは、コマンドラインで自動にできます。使えるのは Windows だけです。公式のクイックスタートは、暗号化の鍵ファイルを作る、パスワードを暗号化する、対応付けファイル(.sdl)を作る、process-conf.xml に処理を書く、process.bat で実行する、の5段階です。
process.bat "C:\dataloaderconfig" accountUpsert
処理の種類は extract・extract_all・insert・update・upsert・delete・hard_delete で、小文字で書きます。バージョン62以降は終了コードで結果を返し、0が成功、1がパソコン側、2がサーバー側、3が実行のエラーです。初期設定では一部の行が失敗しても0なので、行の失敗を4として拾うなら config.properties の process.batchMode.exitWithErrorOnFailedRows を true にします。例の会社ではこれを Windows のタスクスケジューラで夜間に動かしています。
できないことと、その代わり
| できないこと | 代わりの手 |
|---|---|
| Starter・Pro Suite で使う | 少量ならデータインポートウィザード。公式の比較表で全エディション対象の dataloader.io を検討する |
| macOS でのコマンドライン実行 | Windows 機で組むか、AppExchange の連携ツールを使う |
| 添付ファイルの書き出し | 「設定」の週次のデータエクスポートを使う |
| 親と子を入れ子の SOQL で書き出す | 子を別に書き出し、親のIDで結合する |
| 名前で照合して Update する | 書き出した CSV で名前からIDを引く |
| Hard Delete したレコードを戻す | 戻せない。バックアップから Insert し直す(IDは変わる) |
よく詰まるところ
| 症状 | 原因 | 直し方 |
|---|---|---|
install.command が開けない | macOS のセキュリティ | 「プライバシーとセキュリティ」で「このまま開く」 |
install.bat がすぐ閉じる | Java が無いか、パスに日本語 | JRE 17以降を入れ、英字のフォルダを指定する |
| ログインできない | トークンが要る、プロキシの内側 | パスワードにトークンを付ける。「Proxy host」を設定する |
| 日本語が化ける | 文字コードと設定が不一致 | 「CSV UTF-8」で保存し、UTF-8 の読み込みをオン |
| 日付が1日前になる | 日本時間のまま GMT に変換した | 「Time Zone」を GMT にして流し直す |
2026/10/23 がエラー | 受け付けない日付の形 | 2026-10-23 にする |
| 空欄にしても値が消えない | 空欄は「変えない」 | 「Insert null values」をオン。Bulk API なら #N/A |
| 触っていない項目の値が消えた | 「Insert null values」がオンのまま | バックアップで Update し直し、オフにする |
| 既存があるのに新規が作られる | 外部IDの前ゼロや空白が変わった | 列を文字列にし、空白を取る |
| sandbox のつもりが本番に入った | 環境を確かめなかった | 成功ファイルのIDで Delete し、環境を見て流し直す |
次にやること
Upsert の順番や親の指定で迷わないよう、オブジェクトの親子関係を押さえておきます。全体像は「Salesforceのオブジェクトとは。標準オブジェクトの一覧とつながり」で書いています。
最初の移行の段取りは「ExcelからSalesforceへ移す手順。データインポートウィザードとデータローダの使い分け」、取り込みで止まる重複の扱いは「Salesforceの重複ルールと一致ルール。取引先とリードの二重登録を防ぐ」、本番の前に試す環境は「Salesforceのsandboxの作り方と使い分け。本番を壊さずに試す」で書いています。