CMS HubでのCRMオブジェクトデータの使用

Last updated:

CRMオブジェクトのクエリーを実行して、HubSpotでホスティングしているコンテンツ上にレコードのデータを表示させることができます。さらに、ウェブサイト運営、Eメール配信、その他業務プロセスに同じデータを共有できます。HubL関数のcrm_objectcrm_objectscrm_associationsを使用すれば、CRMオブジェクトデータをコンテンツに表示、またはCRMオブジェクトデータを基準にロジックを制御できます。 

ウェブサイトにCRMデータを使用することで、営業、マーケティング、ウェブサイトのデータが全て一元的に管理され、常に同じ情報が反映されます。また、CRMレコード同士を関連付けることができるので、関連するデータをウェブサイトページに呼び出すことも可能です。

同様に、CRMオブジェクトやHubDBデータを使用して自動生成される動的ページのセットを作成できます。

使用例

CRMオブジェクトデータを使用するページの一例として、不動産の物件掲載ページが考えられます。まず「物件」というカスタムオブジェクトを定義して、ページに掲載する住宅ごとにオブジェクトレコードを作成します。次に、物件の場所や居室の数、提示価格などの詳細情報をオブジェクトプロパティーに追加します。 

その上で、各物件のレコードデータをウェブサイトページに抽出することで、物件掲載ページと各物件の詳細ページが作成できます。 

こちらのGitHubリポジトリー(英語)では、この例を使ったサンプルプロジェクトを公開しています。

サンプルプロジェクトの概要については、HubSpotの開発者イベント「HubSpot Developer Day 2020」の録画(英語)をご覧いただけます(1:44:15~)。 

サポートされるCRMオブジェクトタイプ

ここからは、CMS Hubページにデータを抽出できるCRMオブジェクトタイプについて説明します。全てのページで使用できるものと、非公開ページのみで使用できるものがあります。

CMSコンテンツで利用可能なオブジェクトタイプの名前と完全修飾名を次の表にまとめています。 

注:標準オブジェクト名の「contact」などは大文字と小文字が区別されませんが、単数形にする必要があります。

全てのページで利用可能なCRMオブジェクトデータ

以下のCRMオブジェクトのデータは、どのCMSページにも使用できます。

オブジェクトタイプ object_type名 完全修飾名
製品 product PRODUCT
マーケティングイベント marketing_event MARKETING_EVENT
カスタムオブジェクト

CMS Hub Enterpriseのみ。

オブジェクトの完全修飾名か、作成時に入力した名前のいずれかを使用できます。例えば「Cars」という名前でオブジェクトを作成した場合、「cars」や「Car」では参照できません。

カスタムオブジェクトと標準オブジェクトで名前を共有する場合は完全修飾名を使用する必要があります。

 

非公開ページに利用可能なCRMオブジェクトデータ

以下のCRMオブジェクトのデータは、パスワードまたはメンバー登録によるログインが必要なページのみに使用できます。

オブジェクトタイプ object_type名 完全修飾名
コンタクト contact CONTACT
会社 company COMPANY
取引 deal DEAL
チケット ticket TICKET
見積もり quote QUOTE
連携元オブジェクト

連携元オブジェクトの名前を取得するには、CRMオブジェクトスキーマAPIを使用します。

連携元オブジェクトが標準オブジェクトと同じ名前の場合、連携元オブジェクトの完全修飾名を使用します。

 

crm_object関数を使用したCRMレコード1件のデータ表示

crm_object関数を使用して、クエリーまたはCRMレコードIDによりHubSpotのCRMからレコードを1件取得できます。 

オブジェクトレコードがプロパティーと値のディクショナリーとして返されます。

{# Render custom object by query #} {% set event = crm_object("event", "name=Defensive Health") %} {{ event.name }} {# Render custom objects specifying the id of the object #} {% set event = crm_object("event", 289236) %} {{ event.name }}<p>Defensive Heatlh</p> <p>Defensive Heatlh</p>

クエリーでレコードのコレクションが返された場合、この関数はコレクションの先頭にあるレコードを返します。

crm_objects関数を使用した複数のCRMレコードのデータ表示

crm_objects()関数を使用して、クエリーまたはCRMレコードIDによりHubSpotのCRMからオブジェクトタイプごとのCRMレコードを取得できます。レコードはプロパティーと値のディクショナリーとして返されます。

返されるレコードにはresultsプロパティーが含まれ、ループ処理によってレコードの項目の情報を表示できます。

{# Render custom objects by query #} {% set events = crm_objects("event", "limit=3&type=virtual") %} <h3>{{events.total}} New Events:<h3> <ul> {% for event in events.results %} <li>Name: {{ event.name }}</li> {% endfor %} <ul> {# Render custom objects by ids #} {% set events = crm_objects("event", [289236,289237,289238]) %} <h3>{{events.total}} New Events:<h3> <ul> {% for event in events.results %} <li>Name: {{ event.name }}</li> {% endfor %} <ul> <h3>3 New Events:<h3> <ul> <li>Name: Defensive Health</li> <li>Name: Body Balance</li> <li>Name: Happy Heart</li> <ul> <h3>3 New Events:<h3> <ul> <li>Name: Defensive Health</li> <li>Name: Body Balance</li> <li>Name: Happy Heart</li> <ul>

関連付けられているレコードの表示

crm_associations HubL関数を使用して、特定のレコードID、関連付けカテゴリー、関連付け定義IDを基に、関連付けられているレコードのリストをHubSpotのCRMから取得できます。

レコードはプロパティーと値のディクショナリーとして返されます。

{% set associated_objects = crm_associations(289236, "USER_DEFINED", 3) %} <h3>Contacts Associated With Event</h3> <ul> {% for contact in associated_objects.results %} <li>Name: {{ contact.firstname }} {{ contact.lastname }}</li> {% endfor %} </ul> <h3>Contacts Associated With Event<h3> <ul> <li>Name: Brian Halligan</li> <li>Name: Dharmesh Shah</li> <li>Name: Yamini Rangan</li>

カスタム オブジェクト タイプの詳細の取得

カスタム オブジェクト タイプのnameidfullyQualifiedName、関連付けID、その他詳細を取得するには、CRMオブジェクトスキーマAPI(英語)にGETリクエストを送信します。

注:アカウント固有のオブジェクトタイプに対するfullyQualifiedNameにはHubSpotアカウントIDが含まれているため、複数のHubSpotアカウント向けにコードを作成する際には使用しないことをお勧めします。

CRMオブジェクトモジュールのフィールド

コンテンツ作成時に、コンテンツに表示するCRMレコード、またはロジック実行の基準とするCRMレコードを選択できるように、CRMオブジェクトフィールドが含まれるモジュールを構築することができます。

例えば、特定の製品、コンタクト、会社、取引、見積もり、チケット、またはカスタムオブジェクトに関する情報を表示できます。

CRMオブジェクトフィールド

参考になりましたか?
こちらのフォームではドキュメントに関するご意見をご提供ください。HubSpotがご提供しているヘルプはこちらでご確認ください。