Salesforce × AWS Partner Central を AWS Partner CRM Connector でつないでオポチュニティ登録を自動化した話【Backfill / Refresh 編 — 受信エラーとの戦い】

こんにちは!エンジニアの岩間です。

 

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 を実行すると、こんなエラーが出ました。

 

 

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)でした。

この記事が気に入ったら
いいね ! しよう

Twitter で

【採用情報】一緒に働く仲間を募集しています

採用情報
ページトップへ