こんにちは!エンジニアの岩間です。
Salesforce × AWS Partner CRM Connector の連載、最終回です。
| 回 | テーマ |
|---|---|
| 第1回 | 導入編 — なぜ AWS Partner CRM Connector を入れたのか |
| 第2回 | セットアップ編 — Guided Setup と指定ログイン情報のハマりどころ |
| 第3回 | フィールド設計編 — フィールド追加から日本語化・仕様突き合わせまで |
| 第4回 | ハマりどころ編 — パッケージのバグから仕様の罠まで |
| 第5回 | 運用編 — 同期機能の使い分けと提出フロー |
| 第6回(本記事) | Backfill / Refresh 編 — 受信エラーとの戦い |
前回は同期機能の使い分けと提出フローを紹介しました。今回は、Backfill / Refresh で踏んだ問題をまとめます。
Backfill で踏んだ問題
apnCrmUniqueIdentifier not found
Backfill を実行すると、こんなエラーが出ました。
|
1 2 |
Failed to start batch job because: Required field mapping "apnCrmUniqueIdentifier" not found in custom metadata |
apnCrmUniqueIdentifier は AWS 側がオポチュニティに付与する一意識別子で、V14.3 で Conditionally Mandatory なフィールドです。このフィールドの Field Mapping レコードが存在しなかったのが原因でした。
マッピングを追加して解消しましたが、ここで1つ重要な発見がありました。Share With AWS は Field Mapping がなくても動きます。おそらくパッケージ内部のコードが awsapn__APN_CRM_Id__c を直接参照(ハードコード)していて、Field Mapping を経由していない(?)と思われます。一方、Backfill と Refresh は Field Mapping を参照するので、マッピングがないと失敗します。
つまり、Share With AWS が動くからといって Field Mapping が正しいとは限りません。
必須フィールドのバリデーションエラー
Backfill で取り込もうとすると、Salesforce 側の必須フィールドに引っかかるケースもありました。
値を入力してください: [isAWSUse__c, Contact__c]
これは Salesforce のフィールド定義で必須に設定していたカスタムフィールドが原因です。Backfill は AWS 側のデータをそのまま Salesforce に取り込むので、AWS 側に存在しないフィールドが Salesforce 側で必須になっていると失敗します。
対策として、フィールド定義の必須設定を外し、代わりにページレイアウト側で必須にしました。ページレイアウトの必須はユーザーが画面から入力するときだけチェックされるので、Backfill のような API 経由の書き込みではスキップされます。
Refresh で踏んだ問題
Backfill の問題を解消した後、Refresh From AWS を試すとまたエラーが出ました。
ここからは全100件の Field Mapping を一旦全部無効化して、グループごとに有効化しながら Refresh を繰り返す、という地道な切り分け作業をやりました。
最終的に特定できた問題マッピングは9件です。すべて Account や Contact へのリレーション参照フィールドでした。
| マッピング先 | API Field | 原因 |
|---|---|---|
| Account.BillingPostalCode | postalCode | Opportunity の DML で Account フィールドに書き込めない |
| Account.Website | customerWebsite | 同上 |
| Account.Industry | industry | 同上 |
| Account.BillingCity | city | 同上 |
| Contact__r.LastName | customerLastName | Opportunity の DML で Contact フィールドに書き込めない |
| Contact__r.FirstName | customerFirstName | 同上 |
| Contact__r.Email | customerEmail | 同上 |
| Contact__r.Phone | customerPhone | 同上 |
| Contact__r.Title | customerTitle | 同上 |
CRM Connector の Refresh 処理は Opportunity オブジェクトに対して DML 更新を行うのですが、マッピング先が Account. や Contact__r. のリレーションフィールドだと、Opportunity に直接書き込めず SObjectException が発生します。
これら9件の Enable Updates From APN を false にして無効化しました。Share With AWS での送信時は Account 経由で値が送られるので、実運用上は問題ありません。
この切り分け作業で丸1日かかりました。
まとめ
全6回にわたって、Excel 管理から Salesforce + AWS Partner CRM Connector による APN オポチュニティ登録の自動化までを書いてきました。
振り返ると、実稼働5人日で88件のフィールド追加、819件のピックリスト値マッピング、V14.3 仕様との突き合わせ、数々のバグの解消まで完了しています。SF CLI と Claude Code の組み合わせがなかったら、この期間では到底終わらなかったと思います。
AWS Partner CRM Connector 自体は便利なパッケージですが、標準 Opportunity に移行するカスタマイズや、日本語環境特有のハマりどころなど、ドキュメントだけではたどり着けない部分も多かったです。この連載が同じ道を歩むパートナー企業の方の参考になれば幸いです。
Salesforce と AWS Partner Central の連携でお困りの方がいらっしゃいましたら、お気軽にお問い合わせください。
https://www.geekfeed.co.jp/contact
岩間(@iwm_gnbr)でした。
- Salesforce × AWS Partner Central を AWS Partner CRM Connector でつないでオポチュニティ登録を自動化した話【Backfill / Refresh 編 — 受信エラーとの戦い】 - 2026-03-20
- Salesforce × AWS Partner Central を AWS Partner CRM Connector でつないでオポチュニティ登録を自動化した話【運用編】 - 2026-03-20
- Salesforce × AWS Partner Central を AWS Partner CRM Connector でつないでオポチュニティ登録を自動化した話【ハマりどころ編】 - 2026-03-20
- Salesforce × AWS Partner Central を AWS Partner CRM Connector でつないでオポチュニティ登録を自動化した話【フィールド設計編】 - 2026-03-20
- Salesforce × AWS Partner Central を AWS Partner CRM Connector でつないでオポチュニティ登録を自動化した話【セットアップ編】 - 2026-03-20
【採用情報】一緒に働く仲間を募集しています

