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

by 宮本航太 | December 10, 2020

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

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

  • HubSpotとSalesforce のデータ取得・更新の定義
  • マッピング定義
  • CData Arc のフローを実行
  • フローの定期実行
  • 差分更新の確認
  • おわりに
  • シナリオ

    f:id:sennanvolar44:20201112091842p:plain
    HubSpot のカスタムオブジェクトで管理している製品情報を、Salesforce のカスタムオブジェクトに定期的に連携していきます。
    肝心な連携部分には、CData Arc という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

    CData Arc とは?

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

    https://arc.cdata.com/jp/

    f:id:sennanvolar44:20201111231038p:plain

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

    必要なもの

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

    • CData Arc
    • CData HubSpot ADO.NET Provider
    • CData Salesforce ADO.NET Provider

    手順

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

    CData Arc のインストール

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

    https://arc.cdata.com/jp/download/

    f:id:sennanvolar44:20201027152104p:plain

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

    f:id:sugimomoto:20200127165947p:plain

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

    https://jp.cdata.com/drivers/hubspot/ado/

    f:id:sennanvolar44:20201027152742p:plain

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

    CData Software Japan - Technical Support

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

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

    https://jp.cdata.com/drivers/salesforce/ado/

    f:id:sennanvolar44:20201027161633p:plain

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

    接続設定

    HubSpot 接続設定

    それではCData Arc を起動し、フロー画面から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

    マッピング定義

    CData Arcでは、データソース(今回は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

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

    CData Arc のフローを実行

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

    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 側で更新が行われない限り、CData Arc で保持している最終レコードの日時より新しいデータが存在しないことになるので、何度実行しても取得結果は0件となり、Salesforce への連携が行われないようになります。

    f:id:sennanvolar44:20201112010752p:plain

    おわりに

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

    arc.cdata.com