はじめに
部材商社業界では、営業活動と在庫管理が密接に関わりながらも、それぞれ異なるシステムで管理されることが多く、情報の分断が業務効率化の課題となることがよくあります。
特に化粧品原料や工業材料などの専門商社では、微細な仕様差を持つ数百から数千の商品を扱いながら、リアルタイムな在庫状況の把握と迅速な顧客対応が求められます。しかし現実には、営業担当者が顧客からの問い合わせに対して「在庫を確認してから回答します」と答え、内勤担当者への確認を経て数時間後に回答するといった状況が日常的に発生しています。

弊社はSalesforceの導入支援において、このような課題を抱えるお客様を数多くご支援してまいりました。Salesforceの標準オブジェクトでは管理が困難な「微細な仕様差を持つ数百から数千の商品」や、Salesforceと基幹システムとの双方向連携など、本格的な導入実績を積み重ねています。
そのノウハウを活かし、今回は営業部門が使用するSalesforceと、在庫・受注管理を担う基幹システム(AWS上のPostgreSQL)との双方向連携を、弊社のETLサービス「Passwork」で実現する構成をご紹介します。

「部材商社」業界特有の複雑性と課題
商品管理の複雑さが生む業務負荷
部材商社、特に化粧品原料を扱う専門商社の商品管理などは、一般的なBtoB商材とは大きく異なる複雑性を持っています。
例えば、同じ「ファンデーション用顔料」という商品カテゴリーでも、色調には微細な違いがあり、化粧品メーカーごとに求められる品質基準も異なります。また、調達先サプライヤーによって品質特性や価格が変わり、納期も変動するため、きめ細かな管理が必要となります。

このような状況において、営業担当者は顧客との商談において以下のような情報を瞬時に把握する必要があります。
- 要求仕様に合致する商品の在庫状況
- サプライヤー別の調達可能性と納期
- 顧客別の価格体系
- 過去の取引実績と品質情報
しかし従来のシステム構成では、営業部門がSalesforceで商談管理を行う一方で、商品情報や在庫情報は別の基幹システムで管理されており、この情報分断が大きな業務負荷となっていました。

営業部門から見た理想的なシステム構成
営業部門から見た理想的な形は、Salesforce上で全ての情報確認が完結することです。微細な差異を持つ全商品情報がSalesforceに保存され、リアルタイムの在庫情報も同期されていれば、営業担当者は他部門への問い合わせを行うことなく、迅速な顧客対応が可能になります。
このような状態を実現するには、数千種類の商品とその在庫情報を継続的にメンテナンスする必要があるため、手作業でのSalesforce入力は現実的ではありません。
そこでシステム連携によりSalesforceと基幹システムを統合する方法を検討しますが、既存のETL・EAIサービスでは、部材商社特有の複雑な商品管理要件を満たすソリューションを見つけることが困難な場合が多く見受けられます。

システム連携実現における技術的課題
なぜ市場になかなかこの要件を満たすETL・EAIサービスは無いのでしょうか。主に次の2つの課題をクリアするものがどうやら少ないようです。
①Salesforceというクラウド環境と、AWS内のPostgreSQLとの双方向連携
今回の要件では、Salesforceというクラウド環境とAWS内のPostgreSQLとの双方向連携が必要となります。多くのサービスがクラウド環境同士の連携には対応していますが、AWS内のデータベースとの接続、特に双方向でのリアルタイム連携に対応できるサービスは限定的なようです。

②Salesforceにおける高度なデータ管理要件
Salesforceへの数千種類の商品情報および在庫情報の連携においては、単純なデータ投入では要件を満たすことができません。商品は顧客ごとに異なる仕様や価格体系を持つため、Salesforceの取引先レコードとの適切な関連付けが必要です。また、既存レコードの更新時には重複を避けるため、追加処理ではなく上書き処理を行う必要があります。このような細かなデータ処理ロジックに対応できるサービスは市場において限定的なようです。

Passworkによる双方向データ連携ソリューション
Passworkでは、前述した技術的課題に対して包括的な解決策を提供し、Salesforceと基幹システム間の双方向連携を実現します。
①VPCピアリング接続によるセキュアなデータベース接続
Passworkは設計段階から、インターネットに直接接続されていない顧客システムとの連携を想定した構成となっています。AWS環境の顧客に対しては、データ連携バッチ専用の専有環境を提供し、VPCピアリング接続を通じてセキュアな接続を確立します。この構成により、AWS内のPostgreSQLとの双方向連携も安全に実現できます。

②Salesforce連携における高度なデータ処理機能
Salesforceの導入支援事業で培った豊富な連携実績とノウハウを基に、PassworkではSalesforceのUpsert機能や連携プロセス内でのデータ変換(在庫状況の判定など)をノーコードで設定可能です。以下のような連携パターンにより、要件に応じた柔軟なデータ処理を実現しています。

Salesforce環境から基幹システムへは顧客情報と商談情報を連携し、基幹システムからSalesforceへは商品情報を連携する双方向の構成となっています。商品情報の連携では、基幹システムの顧客番号をキーとしてSalesforceの取引先レコードに関連付けて登録を行います。
また、連携処理内では在庫件数の集計による在庫有無の判定、仕入情報の取得・集計による次回仕入予定日の算出といった高度なデータ変換処理も実行しています。これらの複雑な処理は、すべてPassworkのノーコード環境で実現されています。
直感的な画面操作による複雑な連携設定
ここまでご紹介した高度な連携設定が、Passworkではどのように実現できるかをご説明します。
Salesforce連携の設定画面

前述した親レコードとの関連付けや上書き設定といった複雑な要件も、画面操作で簡単に設定できます。
実際の設定画面では、主従関係や参照関係の設定を画面右側の項目リストから選択するだけで完了します。また、上書き処理の設定も同一画面で行え、「外部ID」項目でどのキーを基準に上書き判定を行うかを指定できます。このように、今回の連携で必要な設定がすべて画面操作で実現可能です。
PostgreSQL連携の設定画面

RDBMSからのデータ取得においても、SQLを記述する必要はありません。Salesforceと同様に、テーブル一覧やフィールド一覧が自動表示されるため、一覧から選択するだけで取得・更新処理を設定できます。
ノーコードでの高度なデータ変換処理

今回のようなデータ連携では、単純なデータ転送では要件を満たすことができません。在庫件数の集計、在庫状況に応じた「在庫なし」ステータスの設定、在庫切れ時の最短仕入予定日の算出など、現場のニーズに対応した変換処理が必要です。
Passworkでは、これらの結合・集計・分岐処理をノーコードで実現できる設計となっています。さらに、システム固有のデータ構成にも対応するため、プログラムノード(Node.js)での変換処理も可能です。例えば、Salesforceの複数選択リストがAPI取得時にセミコロン区切りの文字列となる場合など、各システム特有のデータ形式にも柔軟に対応できます。
まとめ
部材商社における営業活動と在庫管理の情報分断という課題に対し、PassworkによるSalesforceと基幹システム間の双方向連携ソリューションをご紹介しました。VPCピアリング接続によるセキュアな接続、Salesforceの高度なデータ処理機能、そして直感的なノーコード設定により、従来のETL・EAIサービスでは困難とされていた複雑な要件を満たします。これにより営業担当者はリアルタイムな情報把握が可能となり、迅速な顧客対応を実現できます。
弊社は2019年の創業以来、SIを中心に事業を拡大してきました。データ連携の進め方が不明な場合や、システムが乱立して整理が困難な状況からでも、お気軽にご相談ください。弊社のコンサルタントが要件を整理し、最適な連携方法をご提案いたします。そしてPassworkを活用した連携構築まで、一気通貫でご支援いたします。
データ連携でお悩みの方は、ぜひお問い合わせください。