CData Software Blog

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

Postman でHubSpot のカスタムオブジェクトを作成してみた!

f:id:sennanvolar44:20201028133945p:plain こんにちは、CData エンジニアの宮本です。
今回はHubSpot のカスタムオブジェクトを作成する方法をご紹介したいと思います。
え?、カスタムオブジェクト?と思う方もいるかもしれませんが、少し前にHubSpot でカスタムオブジェクトを作成できるようになったとアナウンスがありました。

www.hubspot.jp

ただ、現時点ではGUI 上でカスタムオブジェクトを作成することができず、API を利用した場合にのみ作成できるようです。

https://developers.hubspot.com/changelog/announcing-custom-objects-api

f:id:sennanvolar44:20201028113712p:plain

ということから、今回はすぐにWEB API を試すことができるPostman を利用して、実際にカスタムオブジェクトを作成していきたいと思います。

カスタムオブジェクトのAPI リファレンス

以下のリンクにて、カスタムオブジェクトにかかわるリファレンスを確認することができます。
Swagger ライクなAPI ドキュメントとなっていますので、Postman を使わずにもAPI を叩くことはできますが、パラメータが多いのでPostaman でやった方が楽かもしれません。
developers.hubspot.com

カスタムオブジェクトの作成

Postman を起動して、Collection を作成します。Collection はPostman 上のフォルダのようなもので、実行するリクエストをCollection ごとにグルーピングします。
まずは、New Collection ボタンをクリックし、名前を設定します。
Collection の名前は何でも良いですが、今回はHubSpot という名前で作成してみます。
f:id:sennanvolar44:20201028124700p:plain

次にリクエストを作成していきますので、Collection HubSpot の上の赤枠をクリックし、Add Request をクリックします。
f:id:sennanvolar44:20201028124819p:plain

リクエスト名は「Create a new schema」と設定しましたが、ここも任意の名前で大丈夫です。
f:id:sennanvolar44:20201028125017p:plain

あとはAPI ドキュメントにある通りに設定していきます。
f:id:sennanvolar44:20201028125532p:plain

POST に変更して、URL「https://api.hubapi.com/crm-object-schemas/v3/schemas」をセットします。
f:id:sennanvolar44:20201028125414p:plain

次に認証部分の設定を行います。
一応HubSpot のコミュニティサイトにもあるように、現状ではOAuth 認証だとカスタムオブジェクトを作成することができないようなので、APIKey を使った認証で行う必要があります。

community.hubspot.com

それでは、Authorization タブをクリックし、APIKey の設定を行います。なお、私も間違ったのですが、下段赤枠のKey に入れる名称は、「apikey」ではなく「hapikey」になりますので、設定時にご注意ください。
あとは、Value にHubspot APIKey を設定します。
f:id:sennanvolar44:20201028125712p:plain

APIKey の確認方法は、歯車アイコンの設定ボタン→サイドメニューのAPIkey で確認することができます。
f:id:sennanvolar44:20201028130423p:plain

最後の設定内容になりますが、カスタムオブジェクトの名称や、カスタムオブジェクトの中で使用する項目名などをここで設定します。
設定する項目が多いので、VSCODE などのテキストエディタで1回作成してみます。

それぞれの項目の意味については、API ドキュメントをご参照ください。
ちなみに、上の赤枠がカスタムオブジェクト名、下の赤枠が項目の設定内容などのようです。
f:id:sennanvolar44:20201028130744p:plain

以下に設定した全項目分のJSON を貼り付けていますので、そのままコピーしてPostman に貼り付けていただいても大丈夫です。

設定した全項目分はコチラ

{
  "name": "CostomObjectTest1",
  "labels": {
    "singular": "CostomObjectTest1",
    "plural": "CostomObjectTest1"
  },
  "primaryDisplayProperty": "nameinternal",
  "properties": [
    {
      "name": "nameinternal",
      "label": "Name",
      "groupName": "group1",
      "description": "The Name of the Machine.",
      "displayOrder": "1",
      "hidden": "false",
      "type": "string",
      "fieldType": "textarea"
    },
    {
      "name": "modelinternal",
      "label": "Model",
      "groupName": "group1",
      "description": "The model of the Machine.",
      "options": [
        {
          "label": "Model-GT",
          "value": "GT",
          "displayOrder": "1",
          "hidden": "true"
        },
        {
          "label": " Model-AF",
          "value": "AF",
          "displayOrder": "2",
          "hidden": "true"
        },
        {
          "label": " Model-Z",
          "value": "Z",
          "displayOrder": "3",
          "hidden": "true"
        },
        {
          "label": " Model-0",
          "value": "0",
          "displayOrder": "4",
          "hidden": "false"
        }
      ],
      "displayOrder": "2",
      "hasUniqueValue": "true",
      "type": "enumeration",
      "fieldType": "radio"
    },
    {
      "name": "orderdateinternal",
      "label": "OrderDate",
      "groupName": "group1",
      "description": "The order date of the Machine.",
      "displayOrder": "3",
      "hasUniqueValue": "false",
      "type": "date",
      "fieldType": "date"
    },
    {
      "name": "stockinternal",
      "label": "Stock",
      "groupName": "group1",
      "description": "The number of machines in stock.",
      "displayOrder": "-1",
      "hasUniqueValue": "false",
      "type": "number",
      "fieldType": "number"
    }
  ],
  "requiredProperties": [
    "nameinternal"
  ],
  "searchableProperties": [
    "nameinternal"
  ],
  "secondaryDisplayProperties": [
    "modelinternal",
    "orderdateinternal"
  ],
  "associatedObjects": [
    "Contacts"
  ]
}

Postman に戻って、Body →raw →json と選択したあと、先ほどの内容を貼り付けます。
f:id:sennanvolar44:20201028131614p:plain

上記で設定は完了なので、右上のSend ボタンをクリックしてカスタムオブジェクト作成のリクエストを実行してみましょう!
実行後、右側のエリアにレスポンス内容が表示されます。
f:id:sennanvolar44:20201028131936p:plain

作成したカスタムオブジェクトの確認

では、カスタムオブジェクトを確認するためにHubSpot にログインしてみます。 Contacts タブをクリック後、リストを表示してみると確かに先ほどPostman から実行したカスタムオブジェクトの名前がありました。
f:id:sennanvolar44:20201028132250p:plain

先ほどのカスタムオブジェクト名をクリックすると、このようにカスタムオブジェクトが表示され、GUI 上で自由に利用することができます。
レコードを追加する場合は、右上の「Create Record」から追加できます。
f:id:sennanvolar44:20201028132741p:plain

おわりに

いかがでしたでしょうか。現在はAPI からでしかカスタムオブジェクトを作成できないようですが、作成さえしてしまえば、いつもお使いの画面上からレコードを追加できるようになり、ユーザー独自のデータ管理構造を設計することができると思います。

最後に、CData の各種ドライバー(JDBCODBCExcel Add-Ins)でももちろん対応していますので、次回はCData ドライバーでカスタムオブジェクトを操作する内容をご紹介する予定です。
なお、現在のCData Webサイトに上がっているドライバーでは未対応なので、試してみたい方は是非CDataサポートチームにご連絡ください。 すぐに最新バージョンの評価版ビルドをご提供いたします。

CData Software Japan - Technical Support