CData Software Blog

クラウド連携のCData Software の技術ブログです。

HubSpot のカスタムオブジェクトにある製品情報をSalesforce に定期連携:ArcESB

こんちにちは、CData Software Japan エンジニアの宮本です。

HubSpot でカスタムオブジェクトが使えるようになったというアナウンスが出てからまだ間もないですが、今回はHubSpot → Salesforce への定期連携を行ってみます。

シナリオ

f:id:sennanvolar44:20201112091842p:plain HubSpot のカスタムオブジェクトで管理している製品情報を、Salesforce のカスタムオブジェクトに定期的に連携していきます。
肝心な連携部分には、ArcESB というMFTツールを使って実現します。

連携するHubSpot のデータはこのようにPCの製品情報を持っています。
f:id:sennanvolar44:20201111233719p:plain

連携先のSalesforce には以下のカスタムオブジェクトを事前に作成しておきました。
f:id:sennanvolar44:20201111234024p:plain

ちなみに前回、前々回の2回にわけて、「Postman からHubSpot のカスタムオブジェクトを作成する方法」、「CData Excel Add-Ins でExcel からカスタムオブジェクトにデータを登録する方法」を紹介していましたので、まだカスタムオブジェクトを作成していないよという方はこちらもご参照ください。

www.cdatablog.jp

www.cdatablog.jp

ArcESB とは?

ArcESB はノーコードでETL/EAI などのデータ連携や EDI などの企業間での各種取引情報連携を実現できるWebアプリケーションです。

https://www.arcesb.com/jp/ f:id:sennanvolar44:20201111231038p:plain

このArcESBSaaS to SaaS の連携フローをノーコードで設定できます。

必要なもの

以下の製品のインストールが必要になります。すべて30日間のトライアルが提供されています。インストール自体は後の章で行います。

手順

それではArcESB のインストールから連携フローの作成・実行までを行ってみます。

ArcESB のインストール

以下のページからArcESB を入手できます。必要に応じて、WindowsJava/Linux、Cloud Hosted のバージョンから選択してください。なお、本記事ではWindows ベースで進めます。

https://www.arcesb.com/jp/download/
f:id:sennanvolar44:20201027152104p:plain

インストールはそのままダイアログに従って進めれば大丈夫です。難しいところは特にありませんが、ログインする際のパスワード入力を求められる場所がありますので、忘れてしまわないように注意しましょう。

f:id:sugimomoto:20200127165947p:plain

次にHubSpot とSalesforce のコネクタをインストールします。
ArcESB にはCData の接続用ライブラリがデフォルトでは含まれていませんので、個別に CData のサイトから入手し、インストールします。

https://www.cdata.com/jp/drivers/hubspot/ado/
f:id:sennanvolar44:20201027152742p:plain

※HubSpot への対応版はドライバーバージョンが7605 からなので、ダウンロード直前に表示されるバージョンがこれよりも小さい場合は、以下のリンクよりCDataサポートチームに連絡をください。個別に評価版インストーラーをご提供いたします。

CData Software Japan - Technical Support

こちらのインストールもそのまま進んでいくだけで大丈夫です。

同様にSalesforce もインストールします。

https://www.cdata.com/jp/drivers/salesforce/ado/
f:id:sennanvolar44:20201027161633p:plain

これでインストールが完了しました。

接続設定

HubSpot 接続設定

それではArcESB を起動し、フロー画面からHubSpot へ接続するコネクタを作成します。サイドメニューのCData をクリックし、任意の名前を設定します。
f:id:sennanvolar44:20201027171731p:plain

使用するデータソース(今回はHubSpot)、SchemaはHubSpotV3 をセットしましたら、変更を保存をしてAdvanced タブをクリックします。
f:id:sennanvolar44:20201027172336p:plain

次にAdvanced タブにてAPIKey をセットします。現状HubSpot 側の仕様で、OAuth認証でのスコープではカスタムオブジェクトの作成が出来ないようですので、HubSpot でAPIKey を取得してここに設定します。
Auth Scheme には、Token を設定します。
※カスタムオブジェクトの作成や更新などない場合は、OAuth認証でも大丈夫です。今回はカスタムオブジェクトへの更新は特にありませんが、Tokenベースの認証にしています。
f:id:sennanvolar44:20201111231928p:plain

Salesforce 接続設定

Salesforce もHubSpot と同じように設定していきます。
設定後、こちらは接続テストボタンにて接続確認を行ってから保存してください。
f:id:sennanvolar44:20201111232905p:plain

HubSpotとSalesforce のデータ取得・更新の定義

[HubSpot] データ取得の定義を設定

ここではHubSpot からどのデータを取得するか設定します。
HubSpot のコネクタをクリックし、画面下部にあるマッピングから、アウトプット → +マーク → テーブルまたはビューをクリックします。
f:id:sennanvolar44:20201111234222p:plain

HubSpot のカスタムオブジェクトを選択します。
f:id:sennanvolar44:20201111234704p:plain

今回は取得条件はとくに設けないので、クエリ部分は変更せずにそのまま使用しますが、2回、3回とジョブを実行する際には更新があったレコードだけをHubSpot から取得するようにしたいので、UpdatedAt を差分判定用の項目として設定します。
f:id:sennanvolar44:20201111234904p:plain

[Salesforce ] データ更新の定義を設定

Salesforce のコネクタを開きます。今度は、マッピングの箇所にてインプット → + マーク → テーブルまたはビューをクリックします。
f:id:sennanvolar44:20201111235528p:plain

事前に作成済みのHubSpot 用カスタムオブジェクトを指定したら次に進みます。
f:id:sennanvolar44:20201111235731p:plain

全てInsert ではなく、Upsert するかどうかを設定できます。どの項目をKey としてみなすかも設定できるので、今回はマシン名をKey にしました。 設定後、保存ボタンをクリックします。
f:id:sennanvolar44:20201112000748p:plain

マッピング定義

ArcESBでは、データソース(今回はHubSpot)から受け取ったレコードはXML として保持して、次のコネクタの処理へ引き継がれていきます。
そのため、XMLファイルのマッピング定義を設定する必要がありますので、XML Map をドラッグアンドドロップでフローのところにもってきます。
f:id:sennanvolar44:20201112001417p:plain

もってきましたら、HubSpot コネクタとSalesforce コネクタをXML Map の両端につなぎます。
f:id:sennanvolar44:20201112001648p:plain

接続後、右端にある保存ボタンをクリックしてこのワークスペース自体を保存します。
f:id:sennanvolar44:20201112001855p:plain

保存が完了したら、XML Map を開きます。
ソースファイルにHubSpot の設定情報、デスティネーションにSalesforce の設定情報がセットされていることを確認します。
マッピングについては、利用したい項目を左側からドラッグアンドドロップで紐づけれます。

今回は、マシン名、マシンモデル、ストック数だけをSalesforce に連携させます。
f:id:sennanvolar44:20201112002124p:plain

これでフローの設定が完了しました。

ArcESB のフローを実行

アドホックに実行する場合は、以下のどちらかのボタンをクリックしてください。
f:id:sennanvolar44:20201112003120p:plain

実行が完了すると、Success と表示されます。
f:id:sennanvolar44:20201112003243p:plain

Salesforce に連携しているかは、Salesforce コネクタのインプットタブから確認できます。
f:id:sennanvolar44:20201112003438p:plain

では、Salesforce にHubSpot の製品データが連携されたか確認してみましょう。

このようにカスタムオブジェクトにレコードが追加されました。
f:id:sennanvolar44:20201112005847p:plain

ちなみにCData のドライバーでみてみると、正しくHubSpot に登録してる名称で登録されているのが確認できました。
f:id:sennanvolar44:20201112010034p:plain

フローの定期実行

フローの起点となるHubSpot のコネクタをひらき、オートメーションタブにて実行間隔を指定することができます。
f:id:sennanvolar44:20201116160042p:plain

これで、1度作成してしまえば、あとは定期的にHubSpot のカスタムオブジェクトのデータを、Salesforce に連携することができるようになります。

差分更新の確認

HubSpot の設定にて、差分判断対象の項目としてUpdatedAt を指定しました。そのため、HubSpot 側で更新が行われない限り、ArcESB で保持している最終レコードの日時より新しいデータが存在しないことになるので、何度実行しても取得結果は0件となり、Salesforce への連携が行われないようになります。
f:id:sennanvolar44:20201112010752p:plain

おわりに

いかがでしたでしょうか。使用するデータソースを変更することで、また違った組み合わせの連携が可能となります。
またArcESB 自体も多様なコネクタが存在しているので、是非色々試していただければと思います。

www.arcesb.com