こんちにちは、CData Software Japan エンジニアの宮本です。
HubSpot でカスタムオブジェクトが使えるようになったというアナウンスが出てからまだ間もないですが、今回はHubSpot → Salesforce への定期連携を行ってみます。
シナリオ
HubSpot のカスタムオブジェクトで管理している製品情報を、Salesforce のカスタムオブジェクトに定期的に連携していきます。
肝心な連携部分には、ArcESB というMFTツールを使って実現します。
連携するHubSpot のデータはこのようにPCの製品情報を持っています。
連携先のSalesforce には以下のカスタムオブジェクトを事前に作成しておきました。
ちなみに前回、前々回の2回にわけて、「Postman からHubSpot のカスタムオブジェクトを作成する方法」、「CData Excel Add-Ins でExcel からカスタムオブジェクトにデータを登録する方法」を紹介していましたので、まだカスタムオブジェクトを作成していないよという方はこちらもご参照ください。
ArcESB とは?
ArcESB はノーコードでETL/EAI などのデータ連携や EDI などの企業間での各種取引情報連携を実現できるWebアプリケーションです。
このArcESBSaaS to SaaS の連携フローをノーコードで設定できます。
必要なもの
以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されています。インストール自体は後の章で行います。
- ArcESB
- CData HubSpot ADO.NET Provider
- CData Salesforce ADO.NET Provider
手順
それではArcESB のインストールから連携フローの作成・実行までを行ってみます。
ArcESB のインストール
以下のページからArcESB を入手できます。必要に応じて、Windows、Java/Linux、Cloud Hosted のバージョンから選択してください。なお、本記事ではWindows ベースで進めます。
https://www.arcesb.com/jp/download/
インストールはそのままダイアログに従って進めれば大丈夫です。難しいところは特にありませんが、ログインする際のパスワード入力を求められる場所がありますので、忘れてしまわないように注意しましょう。
次にHubSpot とSalesforce のコネクタをインストールします。
ArcESB にはCData の接続用ライブラリがデフォルトでは含まれていませんので、個別に CData のサイトから入手し、インストールします。
https://www.cdata.com/jp/drivers/hubspot/ado/
※HubSpot への対応版はドライバーバージョンが7605 からなので、ダウンロード直前に表示されるバージョンがこれよりも小さい場合は、以下のリンクよりCDataサポートチームに連絡をください。個別に評価版インストーラーをご提供いたします。
CData Software Japan - Technical Support
こちらのインストールもそのまま進んでいくだけで大丈夫です。
同様にSalesforce もインストールします。
https://www.cdata.com/jp/drivers/salesforce/ado/
これでインストールが完了しました。
接続設定
HubSpot 接続設定
それではArcESB を起動し、フロー画面からHubSpot へ接続するコネクタを作成します。サイドメニューのCData をクリックし、任意の名前を設定します。
使用するデータソース(今回はHubSpot)、SchemaはHubSpotV3 をセットしましたら、変更を保存をしてAdvanced タブをクリックします。
次にAdvanced タブにてAPIKey をセットします。現状HubSpot 側の仕様で、OAuth認証でのスコープではカスタムオブジェクトの作成が出来ないようですので、HubSpot でAPIKey を取得してここに設定します。
Auth Scheme には、Token を設定します。
※カスタムオブジェクトの作成や更新などない場合は、OAuth認証でも大丈夫です。今回はカスタムオブジェクトへの更新は特にありませんが、Tokenベースの認証にしています。
Salesforce 接続設定
Salesforce もHubSpot と同じように設定していきます。
設定後、こちらは接続テストボタンにて接続確認を行ってから保存してください。
HubSpotとSalesforce のデータ取得・更新の定義
[HubSpot] データ取得の定義を設定
ここではHubSpot からどのデータを取得するか設定します。
HubSpot のコネクタをクリックし、画面下部にあるマッピングから、アウトプット → +マーク → テーブルまたはビューをクリックします。
HubSpot のカスタムオブジェクトを選択します。
今回は取得条件はとくに設けないので、クエリ部分は変更せずにそのまま使用しますが、2回、3回とジョブを実行する際には更新があったレコードだけをHubSpot から取得するようにしたいので、UpdatedAt を差分判定用の項目として設定します。
[Salesforce ] データ更新の定義を設定
Salesforce のコネクタを開きます。今度は、マッピングの箇所にてインプット → + マーク → テーブルまたはビューをクリックします。
事前に作成済みのHubSpot 用カスタムオブジェクトを指定したら次に進みます。
全てInsert ではなく、Upsert するかどうかを設定できます。どの項目をKey としてみなすかも設定できるので、今回はマシン名をKey にしました。
設定後、保存ボタンをクリックします。
マッピング定義
ArcESBでは、データソース(今回はHubSpot)から受け取ったレコードはXML として保持して、次のコネクタの処理へ引き継がれていきます。
そのため、XMLファイルのマッピング定義を設定する必要がありますので、XML Map をドラッグアンドドロップでフローのところにもってきます。
もってきましたら、HubSpot コネクタとSalesforce コネクタをXML Map の両端につなぎます。
接続後、右端にある保存ボタンをクリックしてこのワークスペース自体を保存します。
保存が完了したら、XML Map を開きます。
ソースファイルにHubSpot の設定情報、デスティネーションにSalesforce の設定情報がセットされていることを確認します。
マッピングについては、利用したい項目を左側からドラッグアンドドロップで紐づけれます。
今回は、マシン名、マシンモデル、ストック数だけをSalesforce に連携させます。
これでフローの設定が完了しました。
ArcESB のフローを実行
アドホックに実行する場合は、以下のどちらかのボタンをクリックしてください。
実行が完了すると、Success と表示されます。
Salesforce に連携しているかは、Salesforce コネクタのインプットタブから確認できます。
では、Salesforce にHubSpot の製品データが連携されたか確認してみましょう。
このようにカスタムオブジェクトにレコードが追加されました。
ちなみにCData のドライバーでみてみると、正しくHubSpot に登録してる名称で登録されているのが確認できました。
フローの定期実行
フローの起点となるHubSpot のコネクタをひらき、オートメーションタブにて実行間隔を指定することができます。
これで、1度作成してしまえば、あとは定期的にHubSpot のカスタムオブジェクトのデータを、Salesforce に連携することができるようになります。
差分更新の確認
HubSpot の設定にて、差分判断対象の項目としてUpdatedAt を指定しました。そのため、HubSpot 側で更新が行われない限り、ArcESB で保持している最終レコードの日時より新しいデータが存在しないことになるので、何度実行しても取得結果は0件となり、Salesforce への連携が行われないようになります。
おわりに
いかがでしたでしょうか。使用するデータソースを変更することで、また違った組み合わせの連携が可能となります。
またArcESB 自体も多様なコネクタが存在しているので、是非色々試していただければと思います。