HubSpotのレコードを更新する

この記事では、AUTORO で HubSpot のレコードを更新する方法を紹介します。

  1. HubSpotUpdateRecord アクションでレコードを1件更新する
  2. HubSpotSearchRecords アクションで取得した情報を利用してレコードを1件更新する
  3. 繰り返しで1件ずつレコードを更新する

※本記事の紹介内容を実装するためには、事前に HubSpot との連携設定を済ませておく必要があります。連携設定の方法はこちらをご参照ください。
HubSpot と連携

 1. HubSpotUpdateRecord アクション

HubSpotUpdateRecord アクション(HubSpotのレコードを更新する)で更新可能なレコードは、1件のレコードのみとなります。
この章では1件のレコードを更新する方法を紹介します。

なお、この章では、アクション設定に必要な情報を手動で確認する方法を紹介しています。
実際の運用では、次の章で紹介する手順をおすすめいたします。

ここでは、「会社」オブジェクトの「会社名」「都道府県/地域」を更新してみます。

  • 「会社名(name)」を『株式会社九州ソリューションズ』へ更新
  • 「都道府県/地域(state)」を『沖縄県』へ更新

HubSpotUpdateRecordでのレコード更新の際、以下情報が必要になります。

  • id :更新対象のオブジェクトのID。対象レコードのURLから確認できます。
  • providerId :HubSpot接続に使用するAUTOROコネクションのID。
  • objectType :更新対象となるオブジェクトの内部名。
    HubSpotオブジェクト内部名
    会社companies
    コンタクトcontacts
    取引deals
    商品項目line-items
    製品products
    チケットtickets
    見積もりquotes
  • プロパティ内部名 :更新対象となるプロパティの内部名。

更新に使用する基本的な情報を設定します。

  • HubSpotUpdateRecord を設置します。
  • 「レコード」に、以下オブジェクト形式で更新対象レコードを設定します。
    {"id":"(更新対象レコードのID)","providerId":"(AUTOROコネクションのID)","objectType":"(更新対象オブジェクトの内部名)"}
  • 「更新するプロパティ」に、値を更新するプロパティの内部名とその値をオブジェクト形式で設定します。
    {"内部名1":"値1","内部名2":"値2",,,}

# HubSpotのレコードを更新する
+hub_spot_update_record_1:
  action>: HubSpotUpdateRecord
  display_name>: 'HubSpotのレコードを更新する'
  record:
    id: 54XXXXXX45
    providerId: hs_59XXXXXXXXXXXXXX95
    objectType: companies
  properties:
    name: '株式会社九州ソリューションズ'
    state: '沖縄県'
  private: false
  meta:
    action:
      disabled: false

 2.HubSpotSearchRecordsアクションと組み合わせてレコードを更新する

HubSpotUpdateRecord アクションを使用するために、あらかじめ各種IDを調査しワークフローに固定値として設定しておくことは、手間がかかり、柔軟な運用ができません。

HubSpotSearchRecords アクション(HubSpotのレコードを検索する)と組み合わせると、アクションで取得したIDを利用してHubSpotUpdateRecord アクションを設定できます。

ここでは、以下手順でレコードを更新してみます。

  1. 「会社」オブジェクトで、「会社名」が『東北ソリューションズ株式会社』を検索
  2. 対象レコードの「会社名」「都道府県/地域」を更新
    ・ 「会社名(name)」を『株式会社九州ソリューションズ』へ更新
    ・ 「都道府県/地域(state)」を『沖縄県』へ更新

なお、複数のレコードを更新する場合は、繰り返し処理でHubSpotUpdateRecord アクションを使用する必要があります。
この方法は次の章で紹介します。

「会社」オブジェクトで、「会社名」が『東北ソリューションズ株式会社』を検索します。

  • HubSpotSearchRecords を設置します。
  • 「プロバイダーID」に、コネクションを設定します。
  • 「オブジェクトタイプ」に、companies を設定します。
  • 「フィルター」に、検索条件をオブジェクト形式で設定します。
    [{"value":"東北ソリューションズ株式会社","propertyName":"name","operator":"EQ"}]

HubSpotSearchRecords の検索結果はリスト形式になりますので、まずリストから1行目(1番目の要素)を取得します。

  • GetItemFromList アクション(リストから要素を取得)を設置します。
  • 「リスト」に、HubSpotSearchRecords のアウトプットを設定します。
  • 「インデックス」に、0 (リストの1番目の要素)を設定します。

取得した要素を、変数に保存します。ここでは、変数名を output とします。

  • StoreValue アクション(変数に保存)を設置します。
  • 「変数名」に、output を設定します。
  • 「値」に、GetItemFromList のアウトプットを設定します。

取得した情報を利用して、HubSpot のレコードを更新します。

  • HubSpotUpdateRecord を設置します。
  • 「レコード」に、オブジェクト形式で更新対象レコードを設定します。
    {"id":"${output['id']}","providerId":"${output['providerId']}","objectType":"companies"}
    • 変数「output」内には以下アウトプット情報が含まれます。

      以下記述でキーを指定して、変数「output」から特定情報を取得できます。
      ・更新対象レコードのID ${output[“id”]}
      ・AUTOROコネクションのID ${output[“providerId”]}
      ※注意:変数内「"」とレコード内「"」が混在するとエラーになるため、レコード内では「'」でキーを指定しています
  • 「更新するプロパティ」に、プロパティ内部名「name」「state」と、更新する値をオブジェクト形式で設定します。
    {"name":"株式会社九州ソリューションズ","state":"沖縄県"}

# HubSpotのレコードを検索する
+hub_spot_search_records_1:
  action>: HubSpotSearchRecords
  display_name>: 'HubSpotのレコードを検索する'
  providerId: ''
  objectType: companies
  filters: [{"value":"東北ソリューションズ株式会社","propertyName":"name","operator":"EQ"}]
  properties: []
  order: ASCENDING
  limit: 10
  private: false
  meta:
    display:
    action:
      disabled: false

# リストから要素を取得
+get_item_from_list_1:
  action>: GetItemFromList
  display_name>: 'リストから要素を取得'
  list: +hub_spot_search_records_1
  index: '0'
  private: false
  meta:
    action:
      disabled: false

# 変数に保存
+store_value_1:
  action>: StoreValue
  display_name>: '変数に保存'
  key: output
  value: +get_item_from_list_1
  setIfNotDefined: false
  private: false
  meta:
    action:
      disabled: false

# HubSpotのレコードを更新する
+hub_spot_update_record_1:
  action>: HubSpotUpdateRecord
  display_name>: 'HubSpotのレコードを更新する'
  record:
    id: ${output['id']}
    providerId: ${output['providerId']}
    objectType: companies
  properties:
    name: '株式会社九州ソリューションズ'
    state: '沖縄県'
  private: false
  meta:
    action:
      disabled: false

 3.繰り返しでレコードを更新する

スプレッドシートなどであらかじめ用意された情報を元に、複数のレコードを更新することも可能です。

ここでは、スプレッドシートにまとめられた更新情報を元に、HubSpot の「会社」オブジェクトの複数レコードを更新する例を紹介します。

今回は、以下の3つの会社レコードを繰り返しで更新してみます。
「会社名」でHubSpotを検索し、該当レコードの「郵便番号」「説明」を更新します。

なお、この章では以下の列順を想定してワークフローを組み上げていきます。

  • A列:会社名(name)
  • B列:郵便番号(zip)
  • C列:説明(description)

更新情報が登録されたスプレッドシートを設定します。

  • GetSpreadsheet アクション(既存のスプレッドシートを取得)を設置します。
  • 「プロバイダID」に、コネクションを設定します。
  • 「スプレッドシートID」に、値が存在するスプレッドシートを指定します。

スプレッドシートから値を取得します。

  • GetCells アクション(セルの値を取得)を設置します。
  • 「範囲」に以下を設定します。
    ご自身で設定されたシート名!A2:C
    ※「A2:C」と記述すると、データの最下行を自動判定して全データを取得できます

  • forEach アクション(各要素について繰り返す)を設置します。
  • 「繰り返すリスト」に、GetCells のアウトプットを設定します。
  • 「要素を格納する変数名」に、今回は以下を設定します。
    recordRow

forEach の中に HubSpotSearchRecords と HubSpotUpdateRecord を設置し、繰り返し処理で1件ずつレコードを更新します。

まず、「会社」オブジェクトで、シートから取得した「会社名」を検索します。

  • HubSpotSearchRecords を設置します。
  • 「プロバイダーID」に、コネクションを設定します。
  • 「オブジェクトタイプ」に、companies を設定します。
  • 「フィルター」に、検索条件をオブジェクト形式で設定します。
    [{"value":"${recordRow[0]}","propertyName":"name","operator":"EQ"}]
    ※スプレッドシートの1列目の値 ${recordRow[0]}

検索結果のリストから、1番目の要素のみを取得します。

  • GetItemFromList アクション(リストから要素を取得)を設置します。
  • 「リスト」に、HubSpotSearchRecords のアウトプットを設定します。
  • 「インデックス」に、0 (リストの1番目の要素)を設定します。

取得した要素を、変数に保存します。ここでは、変数名を output とします。

  • StoreValue アクション(変数に保存)を設置します。
  • 「変数名」に、output を設定します。
  • 「値」に、GetItemFromList のアウトプットを設定します。

取得した情報を利用して、HubSpot のレコードを更新します。

  • HubSpotUpdateRecord を設置します。
  • 「レコード」に、オブジェクト形式で更新対象レコードを設定します。
    {"id":"${output['id']}","providerId":"${output['providerId']}","objectType":"companies"}
  • 「更新するプロパティ」に、プロパティ内部名「zip」「description」と更新する値をオブジェクト形式で設定します。
    {"zip":"${recordRow[1]}","description":"${recordRow[2]}"}
    ※スプレッドシートの2列目の値 ${recordRow[1]}
    ※スプレッドシートの3列目の値 ${recordRow[2]}

# 既存のスプレッドシートを取得
+get_spreadsheet_1:
  action>: GetSpreadsheet
  display_name>: '既存のスプレッドシートを取得'
  provider: ''
  spreadsheet_id: ''
  private: false
  meta:
    display:
    action:
      disabled: false

# セルの値を取得
+get_cells_1:
  action>: GetCells
  display_name>: 'セルの値を取得'
  spreadsheet: +get_spreadsheet_1
  range: 'シート1!A2:C'
  findAll: false
  private: false
  meta:
    action:
      disabled: false

# 各要素について繰り返す
+for_each_1:
  for_each>:
    recordRow: +get_cells_1
    private: false
    display_name>: '各要素について繰り返す'
  meta:
    action:
      disabled: false
  _do:

    # HubSpotのレコードを検索する
    +hub_spot_search_records_1:
      action>: HubSpotSearchRecords
      display_name>: 'HubSpotのレコードを検索する'
      providerId: ''
      objectType: companies
      filters: [{"value":"${recordRow[0]}","propertyName":"name","operator":"EQ"}]
      properties: []
      order: ASCENDING
      limit: 10
      private: false
      meta:
        display:
        action:
          disabled: false

    # リストから要素を取得
    +get_item_from_list_1:
      action>: GetItemFromList
      display_name>: 'リストから要素を取得'
      list: +hub_spot_search_records_1
      index: '0'
      private: false
      meta:
        action:
          disabled: false

    # 変数に保存
    +store_value_1:
      action>: StoreValue
      display_name>: '変数に保存'
      key: output
      value: +get_item_from_list_1
      setIfNotDefined: false
      private: false
      meta:
        action:
          disabled: false

    # HubSpotのレコードを更新する
    +hub_spot_update_record_1:
      action>: HubSpotUpdateRecord
      display_name>: 'HubSpotのレコードを更新する'
      record:
        id: ${output['id']}
        providerId: ${output['providerId']}
        objectType: companies
      properties:
        zip: ${recordRow[1]}
        description: ${recordRow[2]}
      private: false
      meta:
        action:
          disabled: false

<HubSpot>ハブスポット

このページは役に立ちましたか?

CONTENTS