SnowflakeでHubSpotデータを照会する
更新日時 2024年 5月 31日
以下の 製品でご利用いただけます(別途記載されている場合を除きます)。
Operations Hub Enterprise |
SnowflakeをH ubSpot アカウントに接続した後、SnowflakeのData Shareを使用して、SnowflakeアカウントからHubSpotのデータを照会することができます。
データラグとSnowflakeのアカウントリージョン
15分ごとに更新されるV2_LIVEスキーマと、毎日更新されるV2_DAILYスキーマにアクセスすることができます。
注: V2_LIVEスキーマの以下の表示条件は、毎日更新されます: association_definitions、owners、pipelines、pipeline_stages。
Snowflake環境を設定する
SnowflakeでHubSpotデータを照会するには、照会元のウェアハウス、データベース、スキーマを選択する必要があります。ワークシートレベルでこれらを設定して自動的にクエリーに含めるか、または手動で追加することができます。
ワークシートレベルでウェアハウス、データベース、スキーマを選択するには、次の手順に従います。
- ワークシートの一番上の行で、[Worksheet actions]バーをクリックします。
- ポップアップウィンドウで、次の操作を行います。
- [Warehouse]ドロップダウンメニューをクリックして、ウェアハウスを選択します。
- [Database]ドロップダウンメニューをクリックして、HubSpotデータベースを選択します。
- [Schema]ドロップダウンメニューをクリックして、使用するスキーマを選択します。
- V2_DAILY: テーブルに基づいたデータを照会するための日次スキーマ。このスキーマのデータは1日1回更新されます。このスキーマを使用すると、クエリーが高速になります。Snowflakeで直接照会する場合に推奨されます。
- V2_LIVE: HubSpotデータのSecure Viewsに基づくライブスキーマです。このスキーマのデータは最大で15分ごとに更新されます。大規模なデータセットを照会する場合、クエリーに時間がかかることがあります。このような場合は、まずETLプロセスで自分のテーブルにデータをコピーし、そのテーブルを照会することをお勧めします。
設定された環境では、HubSpotデータを照会するときに、データベースやスキーマタイプを手動でクエリーに追加する必要がありません。
データベースとスキーマの種類を手動でクエリーに追加するには、データベース名の後にスキーマを追加して、クエリーの先頭に追加します。FROM
のフィールドを使用します。例として、以下のような場合が挙げられます。
SELECT objectTypeId, property_createddate
FROM hubspot_share_name.V2_LIVE.objects_deals
LIMIT 1
データの概要
クエリーはSQLで構築され、以下のようなHubSpotのデータを取得することが可能です:
- オブジェクト:コンタクト、会社、製品など、標準およびカスタムのオブジェクト。
- レコード:個々のコンタクトや会社など、個々の記録。
- 関連付け:利用可能なすべての関連付けの種類と現在関連付けられているレコード。
- Eメール: Eメールの開封などHubSpotの標準的なイベントと、カスタムの行動イベントの両方のイベントデータです。
- リストです: HubSpotのコンタクトリストと会社リストです。
- 所有者:レコードの所有者として設定されているHubSpotアカウントのユーザー。
- パイプライン:取引パイプラインとチケットパイプライン(パイプラインステージを含む)。
- プロパティー:プロパティーの履歴を含む、CRMレコードのプロパティーとその値。
HubSpotのCRMデータモデルについて詳細をご確認ください。
注:データシェアを進化させるにあたり、変更点を導入し、中には破壊的な変更もあります。HubSpot の開発者向け変更ログを配信(サブスクリプション)することを強くお勧めします。これらの変更は、アップデートの前に必ず変更履歴に掲載されます。
返されるデータの制限と順序の設定
クエリーを作成するときに、返されるデータの量と、データが返される順序を制御できます。このためにはLIMIT
とORDER BY
をクエリーに追加します。例えば、すべてのコンタクトとそのプロパティーを照会するが、3件の結果だけをコンタクトIDの順で返すには、クエリーを次のように作成します。
SELECT objectTypeId, updatedAt, ingestedAt
FROM objects_deals
ORDER BY objectId
LIMIT 10;
列のデータ型
Snowflakeでデータを照会する場合、返される列は、照会するデータによって異なります。Snowflakeで、指定したテーブルまたはビューで利用可能な列を確認するには、左側のサイドバーでビューを選択します。
ご注意ください。このドキュメントの残りの部分では、テーブルとビューの両方に適用されるコンテキストでは、データベースオブジェクトという語句を使用します。
特定の列を返すには、その列をSELECT
のフィールドで、クエリーを実行します。例えば、次のようなクエリーでは、以下のようなものだけが返されます。OBJECTID
とUpdatedAt
の欄があります:
SELECTobjectId, updatedAt
FROM objects_contacts
以下に、クエリーが返す可能性のある列の一般的な定義を示します。以下に記載されていないその他の定義については、上記の各ビューの定義を参照してください。
- OBJECTTYPEID:オブジェクトのタイプを表すVARCHAR値。例えば、「0-1」はコンタクトオブジェクト、「0-2」は会社オブジェクト、「2-1232」はアカウントのカスタムオブジェクトを表します。リストでは、リストのタイプ(コンタクトや会社など)を指します。object_and_event_type_definitionsビューを使って、アカウント内のすべてのオブジェクトとイベントのIDを照会できます。
- OBJECTID: HubSpotアカウント内の所定のタイプのオブジェクトの単一レコードを表すBIGINT番号です。レコードを識別するには、オブジェクトタイプIDとオブジェクトIDの両方を使用する必要があります。
- INGESTEDAT:データ行がSnowflakeに追加された時のタイムスタンプで、TIMESTAMP_NTZ値で表されます。HubSpotでの作成操作または更新操作の論理タイムスタンプとは関係ありません。
- HubSpotの内部処理により、行の他の列が変更されていなくても、行のインジェスチョンタイムスタンプが更新されることがあります。
- 最近変更されたデータをコピーするETLプロセスを作成するときには、インジェスチョンタイムスタンプに基づいてクエリーを作成することをお勧めします。また、フローで毎日データをコピーする場合は、遅延を考慮して過去2日間のデータをコピーすることをお勧めします。
- CREATEDATとUPDATEDAT:データがHubSpotで作成または更新されたときの論理的なタイムスタンプで、TIMESTAMP_NTZ 値で表わされます。これらのタイムスタンプは、HubSpotのタイムスタンプと一致します。例えば、HubSpotでレコード作成日に表示される時刻は、Snowflakeの「CREATEDAT」列のタイムスタンプと同じになります。これらはインジェストのタイムスタンプとは直接関係がなく、これらのプロパティーに基づいてETL処理を行うことは推奨されない。
- COMBINEDASSOCIATIONTYPE:関連付けの定義を一意に識別するVARCHAR値です。
データ型を変換する
VARCHAR列を持つクエリーから、別の型にした方が望ましいデータが返ってくることがあります。このような場合、Snowflakeの関数を使用してVARCHARデータ型を目的の型に変換することをお勧めします。例えば、オブジェクトレコードのプロパティーは、ほとんどのデータベースオブジェクトではVARCHARデータ型として格納されるが、時には数値やdatetime値を含むこともある。
try_to_number , try_to_timestamp_ntzなどの関数で、VARCHAR データをそれぞれNUMBER型、DATETIME型に変換することができる:
SELECT objectid, value AS amount_str, try_to_number(value) AS amountFROM object_properties
WHERE objecttypeid='0-3' AND name='amount'
LIMIT 1
オブジェクトのクエリー
以下では、特定のHubSpotオブジェクトやレコードのデータを照会する方法と、返されるデータを説明します。
さまざまな種類のオブジェクトデータは、2つの方法で整理され、利用することができます。
- 個別です。各オブジェクトタイプは独自のビューに格納され、同じオブジェクトタイプのレコードのみを含みます。例えば、objects_contactsはコンタクトレコードのみを含みます。これにより、問い合わせの際にobjecttypeidを指定する必要がなくなる。これらのビューは、ObjectTypeIds を知る必要がないため、クエリーが簡単です。また、各行がオブジェクトとそのプロパティーの現在のバージョンに対応する、より使いやすいフォーマットでデータを返します。クエリーが遅くならない限り、これらのビューを使用してオブジェクトデータを取得することが推奨されます。詳しくは下記のObjects_X viewsでご覧ください。
- 結合される。すべてのオブジェクトタイプのすべてのレコードが1つのデータベースオブジェクトに結合されます。したがって、問い合わせの際には、「WHERE objectTypeId='0-1'」のようなフィルターを指定する必要があります。例えば、問い合わせの際に以下のようなobjecttypeidを使用することができる。
オブジェクト名 | ObjectTypeId |
コンタクト | 0-1 |
会社 | 0-2 |
商品項目 | 0-8 |
カスタムオブジェクトには、作成時にIDが割り当てられ、「2-unique_ID」として識別されます。例えば「2-12345」などです。object_and_event_type_definitionsについて詳細をご確認ください。
これらのデータベースオブジェクトは、objects_xビューから得られるものより優れたクエリパフォーマンスが必要な場合に一般的に適しています。詳細は、下記のobject_with_object_properties、object_properties、object_properties_historyをご覧ください。
objects_x views
このデータベースオブジェクトでは、カスタムオブジェクトを含む利用可能な各オブジェクトタイプは、特定のビューを持ち、各ビューにはその特定のオブジェクトタイプのオブジェクトのレコードのみが含まれます。これらのビューは、OBJECTS_ <object type name>というフォーマットに従って命名されます。<object type name>は、オブジェクトタイプの複数形ラベルです(オブジェクトタイプに複数形がない場合、<object type name>は、オブジェクトタイプ名の単数形ラベルに "S" を結合しただけのものになります)。
このビューに対するクエリは、オブジェクト内の各レコードに対して1行を返し、オブジェクトの各プロパティーは個別の列として利用できます。
HubSpot(つまり非カスタム)のオブジェクトタイプの一覧と、それらが表すデータの簡単な説明、および対応するビューは以下のとおりです。
HubSpot オブジェクトタイプ |
ObjectTypeId |
説明 |
0-1 |
あなたのビジネスに関わる個人に関する情報 |
|
0-2 |
個々の企業・団体に関する情報 |
|
0-3 |
コンタクトや会社との収益機会に関する詳細。 |
|
0-4 |
メモ、タスク、Eメール、ミーティング、コールなど、CRMのアクションからのデータを保存します。 |
|
0-5 |
お客さまからのヘルプやサポートの依頼を代行する。 |
|
0-14 |
購入希望者と価格情報を共有するために使用します。 |
|
0-15 |
HubSpotのフォームに対する個別投稿の詳細です。 |
|
0-8 |
取引で販売される製品のサブセットを表す。製品は取引に紐付けられると、商品項目になります。 |
|
0-11 |
複数のチャンネルからの受信メッセージの詳細。 |
|
0-25 |
ランディングページの詳細 |
|
0-27 |
ToDoリストに関する情報を格納 |
|
0-28 |
訪問者やコンタクトのリード情報を収集するために使用します。 |
|
0-29 |
Marketing Hub からのメールに関する詳細 |
|
AD_ACCOUNT |
0-30 |
Linkedin、Facebook、Googleの広告アカウントに関する情報を保存します。 |
0-31 |
広告キャンペーンの詳細です。広告キャンペーンには、1つまたは複数の広告を含めることができます。 |
|
AD_GROUP |
0-32 |
広告キャンペーン内の広告の論理的なグループ化 |
AD |
0-33 |
個別広告の詳細 |
0-35 |
関連するマーケティング資産やコンテンツの情報により、集合的なマーケティング活動の効果を容易に測定することができます。 |
|
SITE_PAGE |
0-38 |
ウェブサイト内の個別ページに関するデータ |
0-39 |
ブログ記事に関するデータ |
|
オブジェクトリスト |
0-45 |
オブジェクトレコードのプロパティーまたはアクティビティーに基づくグループ化に関する情報 |
0-48 |
他のCRMレコードによる通話(例:コンタクト |
|
請求書 |
0-53 |
請求書の管理および外部会計システムとの同期 |
0-57 |
HubSpotにインポートされたメディアアセットの情報 |
|
0-58 |
シーケンスとは、コンタクトを長期的に育成するための、ターゲットを絞った一連のメールテンプレートのことです。 |
|
0-72 |
取引分割は、複数のユーザー間で取引クレジットを共有するために使用されます。 |
|
0-83 |
セールスドキュメントは、チーム全体でコンテンツのライブラリーを構築し、コンタクトとドキュメントをアップロードして共有することができます。 |
|
0-19 |
フィードバックアンケートに投稿された情報を保存します。 |
|
0-69 |
定期的な支払いの詳細が含まれています。 |
|
0-101 |
お客さまからお預かりした資金のデータが含まれます |
各データベースオブジェクトは、以下の列を返す。
列名 |
タイプ |
説明 |
OBJECTTYPEID |
Varchar |
オブジェクトタイプのID(例:コンタクトの場合は「0-1」)。 |
OBJECTID |
数値 |
レコードのID (例:IDが「123752」のコンタクトレコード)。 |
UPDATEDAT |
タイムスタンプ |
このオブジェクトがHubSpotで最後に更新された日付と時刻。 |
INGESTEDAT |
タイムスタンプ |
データが最後にSnowflakeにインジェストされた日時。 |
PROPERTY_* |
Varchar |
オブジェクトのプロパティーの最新バージョンを含む個々の列。(property_definitionsで指定されている)日付または数値のタイプを持つ各オブジェクトプロパティーに対して、2つの列が存在します:
|
例1
全てのコンタクトの名、姓、ライフサイクルステージを取得します。
クエリーを実行します。
SELECT objectId, property_firstname AS firstname, property_lastname AS lastname,property_lifecyclestage AS lifecyclestageFROM objects_contact
リターンです。
OBJECTID |
FIRSTNAME |
LASTNAME |
LIFECYCLESTAGE |
54325098 |
Hobbes |
Baron |
lead |
96805401 |
Milo |
Gold |
lead |
6922028 |
Henry |
Riley |
lead |
例2
最大3つの案件の案件名とステージを取得します。
クエリーを実行します。
SELECT objectId, property_dealName, property_dealStage,
property_amount AS dealAmountFROM objects_deals
LIMIT 3
戻り値:
OBJECTID |
プロパティー取引ネーム |
property_dealstage |
property_dealamount |
38960439 |
案件名 1 |
閉所恐怖症 |
34199 |
321740651 |
テスト取引 123 |
14845019 |
8383663 |
98392101 |
ポップアップキャノピー |
閉所恐怖症 |
9309007 |
例3
金額上位3件の案件名とステージを取得する。
クエリー:
取引金額データは数値データ型として利用できるため、変換やキャストを行うことなく、順序付けに利用することができる。
SELECT objectId, property_dealName, property_dealStage,
property_amount AS dealAmountFROM objects_deals
ORDER BY property_amount DESC
LIMIT 3
戻り値:
OBJECTID |
プロパティー取引ネーム |
property_dealstage |
property_dealamount |
98392101 |
ポップアップキャノピー |
閉所恐怖症 |
9309007 |
321740651 |
テスト取引 123 |
14845019 |
8383663 |
38960439 |
案件名 1 |
閉所恐怖症 |
34199 |
object_with_object_properties
このデータベースオブジェクトには、HubSpotのレコードのデータが含まれています。このデータベースオブジェクトへの問い合わせは、オブジェクトタイプ内の各レコードに対して1行を返します(例:contactsオブジェクトタイプ内の全てのcontactレコード)。全てのプロパティーは、Snowflake Variant / JSON列であるProperties列に格納されます。
このビューでは、以下の列が返されます。
列名 | タイプ | 説明 |
OBJECTTYPEID |
Varchar | オブジェクトタイプのID(例:コンタクトは0-1 ). |
OBJECTID |
数値 | レコードのID(例えば、コンタクトレコードのIDが123752 ). |
PROPERTIES |
バリエーション | レコードのプロパティーの値。 |
UPDATEDAT |
タイムスタンプ | HubSpotでのレコードの最終更新日時。列のデータ型について詳細をご確認ください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
ご注意:2022年1月25日、object_with_object_propertiesテーブルおよびビューのtimestampという列は、HubSpotでオブジェクトレコードが最後に更新された日時を表し、updateatになります。これは、残りのデータ共有で、datetime データがどのように表現されているかを合わせるためです。
これは画期的な変更であるため、新しい列 updatedatがテーブルとビューに追加されまし た。今後90日間、この2つの新しい列は、置き換えようとしている列であるtimestampと共存することになる。
90日後の2022年1月25日に、テーブルとビューから列のタイムスタンプが削除されます。この日付以降、タイムスタンプ列を使用してobject_with_object_propertiesテーブルまたはビューを照会しようとすると、失敗します。
例1
すべてのコンタクトとそのプロパティーを取得します。
クエリー:
SELECT objectTypeId, objectId, properties
FROM object_with_object_properties
WHERE objectTypeId = '0-1'
戻り値:
OBJECTTYPEID | OBJECTID | PROPERTIES |
0-1 | 38960439 | {"createdate": "1504656970152"... } |
0-1 | 321740651 | { "createdate": "1590183081949"... } |
0-1 | 98392101 | { "createdate": "1533566477279"... } |
... | ... | ... |
例2
最大3つの取引の取引名とステージを取得します。
クエリー:
SELECTobjectId,
properties:dealname::string AS dealname,
properties:dealstage::string AS dealstage,
properties:amount::number AS dealamount
FROM object_with_object_properties
WHERE objectTypeId = '0-3'
LIMIT 3;
戻り値:
OBJECTID | DEALNAME | DEALSTAGE | DEALAMOUNT |
38960439 | Deal name 1 | クローズド・ロスト | 7488939 |
321740651 | Deal name 1 | 閉所恐怖症 | 9292029 |
98392101 | Deal name 1 | クローズド・ロスト | 62626528 |
objects
このデータベースオブジェクトは、object_with_object_properties データベースオブジェクトのデータのサブセットである。返される各行には、各レコードのオブジェクトIDが含まれています。このデータベースオブジェクトは、既存のレコードのみを返します。HubSpotでレコードが削除されると、このデータベースオブジェクトから削除されます。このデータベースオブジェクトは、object_with_object_propertiesテーブルのデータのサブセットである。返される各行には、各レコードのオブジェクトIDが含まれています。このビューでは、既存のレコードのみが返されます。HubSpotでレコードが削除されると、そのレコードはこのビューから除去されます。
このデータベースオブジェクトは、アカウントに大量のデータがあり、object_with_object_propertiesやobject_xビューのパフォーマンスが低下している場合に有効でしょう。このデータベース・オブジェクトを object_properties データベース・オブジェクトと一緒に使うことで、 object_with_object_properties のデータを複製しつつ、どのプロパティーが返されるかを 制御することが可能になります。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
OBJECTTYPEID |
Varchar | オブジェクトタイプのID(例:コンタクトは0-1 ). |
OBJECTID |
数値 | レコードのID(例えば、コンタクトレコードのIDが123752 ). |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。列のデータ型について詳細をご確認ください。 |
例1
すべてのコンタクトレコードを取得します。
クエリー:
SELECT objectTypeId, objectId
FROM objects
WHERE objectTypeId = '0-1'
戻り値:
OBJECTTYPEID | OBJECTID |
0-1 | 36721864 |
0-1 | 103580363 |
0-1 | 56047670 |
... | ... |
object_properties
このデータベースオブジェクトはobject_with_object_propertiesデータベースオブジェクトのサブセットである。各行には、与えられたレコードに設定されている現在のプロパティー値が含まれています。例えば、コンタクトの場合は「First name」プロパティーと「Last name」プロパティーに対してそれぞれ1行ずつがあります。レコードがプロパティーの値を持っていない場合、その行は空の文字列で表示されるか、まったく表示されません。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
OBJECTTYPEID |
Varchar | オブジェクトタイプのID(例:コンタクトは0-1 ). |
OBJECTID |
数値 | レコードのID(例えば、コンタクトレコードのIDが123752 ). |
NAME |
Varchar | プロパティーの名前。 |
VALUE |
タイムスタンプ | プロパティーの値。 |
UPDATEDAT |
タイムスタンプ | HubSpotでのレコードの最終更新日時。列のデータ型について詳細をご確認ください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
すべてのコンタクトの名前、姓、市町村のプロパティーを取得します。
クエリー:
SELECT objectTypeId, objectId, name, value
FROM object_properties
WHERE objectTypeId = '0-1'
AND name IN ('firstname', 'lastname', 'city')
ORDER BY objectId;
戻り値:
OBJECTTYPEID | OBJECTID | NAME | VALUE |
0-1 | 10401 | firstname | Brian |
0-1 | 10401 | city | Dublin |
0-1 | 10401 | lastname | Gallagher |
0-1 | 23451 | firstname | Fernando |
0-1 | 23451 | lastname | Fierro |
0-1 | 25751 | firstname | Charles |
... | ... | ... | ... |
例2
すべてのコンタクトの名前、姓、ライフサイクルステージを取得し、結合してコンタクトごとに1行にまとめます。この例では、SQLのPIVOT構文を使用しています。
クエリー:
SELECT objectId, firstname, lastname, lifecyclestage
FROM
(
SELECT objectId, name, value
FROM object_properties
WHERE objectTypeId = '0-1'
AND name IN ('firstname', 'lastname', 'lifecyclestage')
)
PIVOT(MAX(value) FOR name IN ('firstname', 'lastname', 'lifecyclestage')) AS p(objectId, firstname, lastname, lifecyclestage);
戻り値:
OBJECTTYPEID | OBJECTID | FIRSTNAME | LASTNAME | LIFECYCLESTAGE |
0-1 | 54325098 | Hobbes | Baron | lead |
0-1 | 96805401 | Milo | Gold | lead |
0-1 | 6922028 | Henry | Riley | lead |
... | ... | ... | ... | ... |
object_properties_history
このデータベースオブジェクトは、過去のプロパティー値を含む。コンタクトの場合、最新の45個の値が含まれています。その他のすべてのオブジェクトでは、最新の20個の値が含まれています。過去のプロパティー値ごとに1行ずつ表示されます。プロパティーの現在の値は、プロパティーの履歴における最新の「UPDATEDAT」タイムスタンプによって決まります。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
OBJECTTYPEID |
Varchar | オブジェクトタイプのID(例:コンタクトは0-1 ). |
OBJECTID |
数値 | レコードのID(例えば、コンタクトレコードのIDが123752 ). |
NAME |
Varchar | プロパティーの名前。 |
VALUE |
タイムスタンプ | プロパティーの値。 |
UPDATEDAT |
タイムスタンプ | HubSpotでのデータの最終更新日時。列のデータ型について詳細をご確認ください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
1つのコンタクトの1つのプロパティーの履歴を取得します。
クエリー:
SELECT objectId, name, value, updatedAt
FROM object_properties_history
WHERE objectTypeId = '0-1'
AND objectId = 136493192
AND name = 'hs_predictivescoringtier'
ORDER BY UPDATEDAT DESC;
戻り値:
OBJECTID | NAME | VALUE | UPDAT |
136493192 |
hs_predictivescoringtier |
ティア1 |
2022-06-22 22:45:05.931 |
136493192 |
hs_predictivescoringtier |
tier_2 |
2021-09-18 08:20:56.622 |
136493192 |
hs_predictivescoringtier |
tier_3 |
2019-11-31 18:20:22.851 |
... |
... |
... |
... |
例2
ライフサイクルステージが「登録読者」であったことがあるすべてのコンタクトの現在の名前を取得します。
クエリー:
SELECT
objectId,
properties:firstname::string AS firstname,
properties:lastname::string AS lastname
FROM object_with_object_properties
WHERE object_with_object_properties.objectTypeId = '0-1'
AND objectId IN (
SELECT objectId
FROM object_properties_history
WHERE
object_properties_history.objectTypeId = '0-1'
AND object_properties_history.name = 'lifecyclestage'
AND object_properties_history.value = 'subscriber'
);
戻り値:
OBJECTID | FIRSTNAME | LASTNAME |
54325098 | Hobbes | Baron |
96805401 | Milo | Gold |
6922028 | Henry | Riley |
... | ... | ... |
関連付けのクエリー
オブジェクトデータと同様に、関連付けデータも2つの方法で整理される。
- 個別です。各関連付けタイプは独自のビューに保存され、そのタイプのレコードのみが含まれます。例えば、associations_contacts_to_dealsには、コンタクトオブジェクトと取引オブジェクトの間の関連レコードのみが格納されます。これにより、問い合わせの際にassociationtypeidを指定する必要がなくなります。これらのビューは、CRMのデータモデルに精通している必要がないため、問い合わせが非常に簡単です。また、objects_xビューとの結合で簡単に使用できるように、2つのオブジェクト間の関連レコードの拡張された説明を返します。クエリーが遅くならない限り、これらのビューを使用して関連データを取得することをお勧めします。詳しくは下記のassociations_x_to_y viewsをご覧ください。
- 結合される。すべての関連付けタイプのすべてのレコードが1つのデータベースオブジェクトに結合されます。したがって、問い合わせの際には、「WHERE combinedassociationtypeid='0-32' 」のようなフィルターを指定する必要があるのです。詳しくは、下記のassociationとassociation_definitionsをご覧ください。
associations_x_to_y views
各関連付けのタイプは、associations_ <association type name>(例:associations_contacts_to_deals)とラベル付けされた独自のビューを持っています。各ビューは、associationデータベースオブジェクトのデータのサブセットであり、特定のcombinedassociationtypeidのレコードのみを含んでいます。
各データベースオブジェクトは、以下の列を返す。
列名 |
タイプ |
説明 |
COMBINEDASSOCIATIONTYPEID |
Varchar |
関連付け定義の固有ID。 |
関連付けカテゴリー |
Varchar |
関連付けタイプのソース。のいずれかです。hubspot_defined, user_defined, integrator_defined のいずれか。 |
関連付けタイプID |
Varchar |
特定の関連付けカテゴリー内の関連付け定義の固有のID、すなわち、関連付けカテゴリー内の2つの定義が同じassociationtypeidを持つことはありません。 |
FROMOBJECTTYPEID |
Varchar |
関連付け定義のソースとなるオブジェクトタイプID。 |
フロムオブジェクトタイプ |
Varchar |
関連付け定義のソースとなるオブジェクトタイプの名前です。 |
TOOBJECTTYPEID |
Varchar |
関連付けの定義の宛先となるオブジェクトタイプ ID。 |
TOOBJECTTYPE |
Varchar |
関連付けの定義の宛先となるオブジェクトタイプの名前です。 |
NAME |
Varchar |
関連付け定義の名前。 |
LABEL |
Varchar |
関連付け定義の説明です。 |
ISMAINASSOCIATIONDEFINITION |
ブール値 |
関連付け定義がメインタイプであるかどうか。trueの場合、HubSpotが関連するレコードに表示する定義となります。 |
[FROMOBJECTTYPE_OBJECTID] 例:ASSOCIATIONS_CONTACTS_TO_DEALSビューの場合、これはCONTACT_OBJECTIDになります。 |
数値 |
ソースオブジェクトのオブジェクトID。 |
[TOOBJECTTYPE_OBJECTID] 例えば、ASSOCIATIONS_CONTACTS_TO_DEALSビューでは、これはDEAL_OBJECTIDになります。 |
数値 |
デスティネーションオブジェクトのオブジェクトID。 |
INGESTEDAT |
タイムスタンプ |
データが最後にSnowflakeにインジェストされた日時。 |
例1
特定のコンタクトに関連付けされたすべての取引を取得します。
クエリー:
SELECT
contact_objectId, deal_objectId
FROM associations_contacts_to_deals
WHERE contactId = 6626541373
リターンです。
contact_objectid |
DEAL_OBJECTID |
6626541373 |
233620335 |
6626541373 |
90253678 |
例2
ボゴタのタイムゾーンにある全てのコンタクトとその案件を取得します。
SELECT contacts.property_firstname contact_firstname,
contacts.property_lastname contact_lastname,
contacts.property_email contact_email,
deals.property_dealtype deal_type, deals.property_amount deal_amount
FROM objects_contacts contacts
JOIN associations_contacts_to_deals assoc on
assoc.contact_objectid=contacts.objectid
JOIN objects_deals deals on deals.objectid=assoc.deal_objectid
where contacts.property_hs_timezone='america_slash_bogota'.
CONTACT_FIRSTNAME |
CONTACT_LASTNAME |
コンタクトEMAIL |
DEAL_TYPE |
DEAL_AMOUNT |
デビッド |
マガルハイス |
dmagalhaes@example.com |
ニュービジネス |
74848 |
Fernanda |
ロドリゲス |
fmoreira@example.com |
ニュービジネス |
253530 |
例3
全コンタクトと各コンタクトの成約金額の合計を取得します。
SELECT SUM(deals.property_hs_closed_amount) AS
total_closed_amount, contacts.property_email contact_email
FROM objects_contacts contacts
JOIN associations_contacts_to_deals assoc on
assoc.contact_jectid=contacts objectid JOIN objects_deals on assoc.contact_email JOIN objects_contacts_to_deals on as assoc.contact_email contact_objectid=contacts.objectid
、JOIN objects_deals deals on deals.objectid=assoc.deal_objectid
、GROUP BY contact_email
、ORDER BY total_closed_amount DESC。
戻り値:
総閉鎖量 |
コンタクトEMAIL |
98474793 |
johndoe@riverview.com |
849488 |
sallymae@longford.com |
association_definitions
このデータベースオブジェクトには、HubSpotオブジェクト間で利用可能なすべての関連タイプに関する情報が含まれており、関連タイプごとに1行ずつあります。このデータベースオブジェクトとassociationsデータベースオブジェクトを結合して、レコード固有の関連情報を取得することができます。
同じオブジェクトの間に複数のタイプの関連付けを設定できます。メインの関連付けタイプは、レコードが関連付けされたときにHubSpotに表示されるタイプで、以下のような関連付けを使用します。ISMAINASSOCIATIONDEFINITION
ですtrue
.
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
COMBINEDASSOCIATIONTYPEID |
Varchar | 関連付け定義の固有ID。 |
CATEGORY |
Varchar | 関連付けタイプのソース。の1つです:HUBSPOT_DEFINED , USER_DEFINED , INTEGRATOR_DEFINED |
ID |
数値 | そのカテゴリー内の関連付け定義の識別子。 |
FROMOBJECTTYPEID |
Varchar | 関連付け定義のソースであるオブジェクトのID。 |
TOOBJECTTYPEID |
Varchar | 関連付け定義の宛先であるオブジェクトのID。 |
NAME |
Varchar | 関連付け定義の名前。 |
LABEL |
Varchar | 関連付け定義のラベル。 |
ISMAINASSOCIATIONDEFINITION |
ブール値 | 関連付け定義がメインタイプであるかどうか。trueの場合、この定義はHubSpotで関連付けられているレコードに表示される定義です。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。列のデータ型について詳細をご確認ください。 |
例1
アカウントで利用可能な関連付けのタイプを取得します。
クエリー:
SELECT combinedAssociationTypeId, fromObjectTypeId, toObjectTypeId, name
FROM association_definitions
ORDER BY category, id
戻り値:
COMBINEDASSOCIATIONTYPE | FROMOBJECTTYPEID | TOOBJECTTYPEID | NAME |
0-1 | 0-1 | 0-2 | CONTACT_TO_COMPANY |
0-2 | 0-2 | 0-1 | COMPANY_TO_CONTACT |
0-3 | 0-3 | 0-1 | DEAL_TO_CONTACT |
0-4 | 0-1 | 0-3 | CONTACT_TO_DEAL |
0-5 | 0-3 | 0-2 | DEAL_TO_COMPANY |
... | ... | ... | ... |
例2
取引と会社の間で利用可能な関連付けタイプを取得します。
クエリー:
SELECT
combinedAssociationTypeId, fromObjectTypeId, toObjectTypeId, name
FROM association_definitions
WHERE fromObjectTypeId = '0-3' AND toObjectTypeId = '0-2'
AND isMainAssociationDefinition = trueORDER BY category, id
戻り値:
COMBINEDASSOCIATIONTYPE | FROMOBJECTTYPEID | TOOBJECTTYPEID | NAME |
0-5 | 0-3 | 0-2 | DEAL_TO_COMPANY |
0-271 | 0-3 | 0-2 | DEAL_TO_PRIMARY_COMPANY |
0-341 | 0-3 | 0-2 | DEAL_TO_COMAPNY_UNLABELED |
associations
このデータベースオブジェクトは、特定のレコード間の関連付けに関する情報を含んでいます。各行は、オブジェクト間の関連付けを表します。参照されたレコードが削除されても、このデータベースオブジェクトに行が存在する場合があります。レコードが存在しているかどうかは、objectsテーブルと結合することで確認できます。
このデータベースオブジェクトは、アカウントに大量のデータがあり、associations_x_to_yビューのパフォーマンスが低下している場合に有効です。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
COMBINEDASSOCIATIONTYPEID |
Varchar | 関連付け定義の固有ID。 |
FROMOBJECTID |
数値 | ソースオブジェクトのID。 |
TOOBJECTID |
数値 | ターゲットオブジェクトのID。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。列のデータ型について詳細をご確認ください。 |
例1
関連付けられている取引とコンタクトをすべて取得します。
クエリー:
SELECT combinedAssociationTypeId, fromObjectId, toObjectId
FROM associations
WHERE combinedAssociationTypeId = '0-5'
戻り値:
結合関連付けタイプID | FROMOBJECTID | TOOBJECTID |
0-5 | 6626541373 | 233620335 |
0-5 | 6616436082 | 3866015468 |
0-5 | 6690805943 | 7132752747 |
... | ... | ... |
例2
特定のコンタクト(コンタクトID:「3005」)に関連付けられているチケットをすべて取得します。
クエリー:
SELECT combinedAssociationTypeId, fromObjectId, toObjectId
FROM associations
WHERE associationCategory = 'HUBSPOT_DEFINED'
AND combinedAssociationTypeId = '0-15'
AND fromObjectId = 3005;
戻り値:
COMBINEDASSOCIATIONTYPE | FROMOBJECTID | TOOBJECTID |
0-5 | 6626541373 | 233620335 |
例3
特定のコンタクト(コンタクトID:「4464」)に関連付けられている取引をすべて取得します。この例では「combinedAssociationTypeId」をハードコーディングする代わりに、association_definitionsと結合しています。
クエリー:
SELECT combinedAssociationTypeId, fromObjectId toObjectId,
FROM associations
WHERE
combinedAssociationTypeId = (
SELECT combinedAssociationTypeId
FROM association_definitions
WHERE fromObjectTypeId = '0-1'
AND toObjectTypeId = '0-3'
AND isMainAssociationDefinition)
AND fromObjectId = 4464;
戻り値:
結合関連付けタイプID | FROMOBJECTID | TOOBJECTID |
0-5 | 6626541373 | 233620335 |
担当者からの問い合わせ
owners
このデータベースオブジェクトには、HubSpot アカウントのユーザーに関する情報が含まれています。ユーザーはレコード所有者として設定できます。ユーザーには、そのコンテキストに応じてユーザーIDと所有者IDの両方が含まれます。どちらのIDも同じユーザーを識別するために使用できます。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
OWNERID |
数値 | ユーザーの所有者ID。 |
USERID |
数値 | ユーザーのユーザーID。この列が「NULL」のユーザーは削除されています。 |
EMAIL |
Varchar | ユーザーのEメールアドレス。 |
FIRSTNAME |
Varchar | ユーザーの名前。 |
LASTNAME |
Varchar | ユーザーの姓。 |
ARCHIVED |
ブール値 | ユーザーが削除されているかどうか。 |
CREATEDAT |
タイムスタンプ | HubSpotでのユーザーの作成日時。詳細については、列のデータ型を参照してください。 |
UPDATEDAT |
タイムスタンプ | HubSpotでのユーザーの最終更新日時。詳細については、列のデータ型を参照してください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
すべてのユーザーを取得します。のことです。WHERE archived = false
フィルターは、返されたデータから削除されたユーザーを削除します。
クエリー:
SELECT ownerId, userId, email, firstname, lastname
FROM owners
WHERE archived = false
戻り値:
OWNERID | ユーザーID | FIRSTNAME | LASTNAME | |
29584574 | 4621126 | 233620335 | Hobbes | Baron |
30532717 | 4874784 | 3866015468 | Pablo | Walters |
30580321 | 925511 | 7132752747 | Milo | Gold |
... | ... | ... | ... | ... |
例2
所有者IDで特定の所有者を取得します。
クエリー:
SELECT ownerId, userId, email, firstname, lastname
FROM owners
WHERE ownerId = 29584574;
戻り値:
OWNERID | ユーザーID | FIRSTNAME | LASTNAME | |
29584574 | 4621126 | 233620335 | Hobbes | Baron |
例3
すべてのコンタクトとその担当者を取得します。このクエリーは、object_with_object_propertiesとコンタクトプロパティー「hubspot_owner_id」を使用して担当者にレコードを結合します。
SELECT
contact.objectId contactid,
contact.property_firstname contact_firstname,
contact.property_lastname contact_lastname,
contact.property_hubspot_owner_id contact_hubspot_owner_id,
owner.firstname owner_firstname,
owner.lastname owner_lastname,
owner.email owner_email
FROM objects_contacts contact
JOIN owners owner ON contact.property_hubspot_owner_id = owner.ownerId
戻り値:
CONTACTID | CONTACT_FIRSTNAME | CONTACT_LASTNAME | CONTACT_HUBSPOT_OWNER_ID | OWNER_FIRSTNAME | OWNER_LASTNAME | OWNER_EMAIL |
113834202 | リチャード | Greenfield | 29584574 | Hobbes | Baron | hobbes.b@business.com |
53540801 | フォード | Karl | 30241125 | Milo | Gold | milo.g@business.com |
... | ... | ... | ... | ... | ... | ... |
チームへの問い合わせ
チーム
HubSpotのチームを使用して、組織の目的やレポートの目的に合わせてユーザーをグループに分けることができます。メインチームと追加チームを設定できます。
このデータベースオブジェクトには、HubSpotアカウントのチームに関する情報が含まれています。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
TEAMID | 数値 | チームIDです。 |
TEAMNAME | Varchar | チーム名です。 |
PARENTTEAMID | 数値 | 親チームのチームID。 |
CHILDTEAMIDS | 配列 | 子チームのチームID。 |
PRIMARYOWNERMEMBERS | Varchar | チームのプライマリーメンバーの担当者ID。 |
SECONDARYOWNERMEMBERS | ブール値 | チームのセカンダリーメンバーの担当者ID。 |
INGESTEDAT | タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
全てのチームを取得します。
クエリー:
SELECT teamId,teamName, primaryOwnerMembers
FROM teams
戻り値:
TEAMID | TEAMNAME | PRIMARYOWNERMEMBERS |
29584574 | サブチーム | [233620335, 1234553] |
30532717 | Super Team | [3866015468, 126221873] |
3058032 | A Team | [7132752747] |
owner_team
このデータベースオブジェクトには、担当者とHubSpotアカウントのチームの対応付けに関する情報が含まれています。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
TEAMID | 数値 | チームIDです。 |
OWNERID | 数値 | ユーザーの所有者ID。 |
ISTEAMPRIMARY | ブール値 | このチームが、この担当者のプライマリーチームであるかどうか。 |
INGESTEDAT | タイムスタンプ | データが最後にSnowflakeに取り込まれた日時。 |
例1
指定したチームのすべての担当者を取得します。
クエリー:
SELECT teamId, ownerId, isTeamPrimary
FROM teams
WHERE teamId = 29584574
返されるデータ
TEAMID | TEAMNAME | ISTEAMPRIMARY |
29584574 | 233620335 | TRUE |
29584574 | 1234553 | TRUE |
パイプラインのクエリー
以下では、取引とチケットのパイプラインのデータ(アカウントで利用可能なパイプラインとそのステージなど)を照会する方法を説明します。
このデータをオブジェクトデータと結合することで、パイプラインの全体像を把握できます。例えば、objects_deals_view やobject_with_object_propertiesデータとpipelinesデータを結合することで、取引とそのパイプラインを照会することができます。
pipelines
このデータベースオブジェクトは、アカウント内の取引およびチケットパイプラインに関する情報を含んでいます。返される各行はそれぞれ1つのパイプラインを表しています。
このテーブルでは、以下の列が返されます。
列名 | タイプ | 説明 |
PIPELINEID |
Varchar | パイプラインのID。 |
OBJECTTYPEID |
Varchar | パイプラインに含めることができるオブジェクト(取引やチケットなど)のID。 |
LABEL |
Varchar | HubSpotでのパイプラインの名前。 |
DISPLAYORDER |
数値 | HubSpotでパイプラインが表示される順序。 |
ARCHIVED |
ブール値 | パイプラインが削除されているかどうか。 |
CREATEDAT |
タイムスタンプ | パイプラインの作成日時。 |
UPDATEDAT |
タイムスタンプ | HubSpotでのデータの最終更新日時。列のデータ型について詳細をご確認ください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
利用可能なすべての取引パイプラインを、HubSpotでの順序で取得します。
クエリー:
SELECT objectTypeId, pipelineId, label
FROM pipelines
WHERE objectTypeId = '0-3'
AND not archived
ORDER BY displayorder;
戻り値:
OBJECTTYPEID | PIPELINEID | LABEL |
0-3 | 1bed503c-37f7-4f51-9d40-7598902673f4 | Sales Pipeline |
0-3 | 12659678 | Licenses Pipeline |
0-3 | 75e28846-ad0d-4be2-a027-5e1da6590b98 | New Business |
... | ... | ... |
例2
特定のパイプライン内の取引を取得します。object_with_object_propertiesとpipelinesを結合します。
クエリー:
SELECT
deals.objectId deal_id,
deals.property_dealname deal_name,
pipelines.label pipeline_name
FROM objects_deals deals
INNER JOIN pipelines
ON deals.objectTypeId = pipelines.objectTypeId
AND deals.property_pipeline = pipelines.pipelineid
WHERE pipelines.objectTypeId = '0-3';
戻り値:
DEAL_ID | DEAL_NAME | PIPELINE_NAME |
605140072 | Meowmix Global Signup | Sales Pipeline |
605457408 | Friskies Rebrand | Sales Pipeline |
604362473 | Fresh Step App Build | Sales Pipeline |
例3
上記例2と同様に、特定のパイプライン内の案件を取得する。しかし、joinでobjects_dealsを使用する代わりに、object_with_object_propertiesを使用する。
SELECT
deals.objectId deal_id,
deals.properties:dealname::varchar deal_name,
pipelines.label pipeline_name
FROM object_with_object_properties deals
INNER JOIN pipelines
ON deals.objectTypeId = pipelines.objectTypeId
AND deals.properties:pipeline::string = pipelines.pipelineid
WHERE deals.objecttypeId = '0-3'
AND pipelines.objectTypeId = '0-3';
戻り値:
DEAL_ID |
DEAL_NAME |
PIPELINE_NAME |
605140072 |
Meowmix Global Signup |
Sales Pipeline |
605457408 |
Friskies Rebrand |
Sales Pipeline |
604362473 |
Fresh Step App Build |
Sales Pipeline |
pipeline_stages
このビューには、パイプライン内の個々のステージに関する情報が含まれています。オブジェクトタイプID、パイプラインID、ステージIDの組み合わせによりステージを識別します。pipelinesとの結合には、オブジェクトタイプIDとパイプラインIDを使用します。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
PIPELINEID |
Varchar | パイプラインのID。 |
STAGEID |
Varchar | ステージのIDです。 |
LABEL |
Varchar | HubSpotにおけるステージの名前です。 |
DISPLAYORDER |
数値 | HubSpotでパイプラインが表示される順序。 |
METADATA |
バリエーション | ステージのJSON形式の説明(オープンかクローズかを含む |
ARCHIVED |
ブール値 | パイプラインステージが削除されたかどうか。 |
CREATEDAT |
タイムスタンプ | パイプラインステージが作成されたとき。 |
例1
「Sales pipeline」という名前の取引パイプラインのパイプラインステージを取得します。
クエリー:
SELECT pipelineid, stageId, label
FROM pipeline_stages
WHERE not archived
AND pipelineid = (
SELECT pipelineid
FROM pipelines
WHERE objectTypeId = '0-3'
AND not archived
AND label = 'Sales Pipeline' LIMIT 1)
ORDER BY displayorder;
戻り値:
PIPELINEID | STAGEID | LABEL |
941650 | 941651 | Contacted |
941650 | 941652 | Appt scheduled |
941650 | 941653 | Invoice sent |
... | ... | ... |
例2
すべての取引とそれぞれのパイプラインステージを取得します。
クエリー:
SELECTdeals.objectId deal_id,
deals.properties:dealname::varchar deal_name,
pipelines.label pipeline_name,
pipeline_stages.label pipeline_stage_name
FROM object_with_object_properties deals
INNER JOIN pipelines
ON deals.objectTypeId = pipelines.objectTypeId
AND deals.properties:pipeline::string = pipelines.pipelineid
INNER JOIN pipeline_stages
ON deals.objectTypeId = pipeline_stages.pipelineid
AND deals.properties:pipeline::string = pipeline_stages.pipelineid
AND deals.properties:dealstage::string = pipeline_stages.stageId
WHERE deals.objecttypeId = '0-3';
戻り値:
DEAL_ID | DEAL_NAME | PIPELINE_NAME | PIPELINE_STAGE_NAME |
605140072 | Meowmix Global Signup | Sales Pipeline | Contract sent |
605457408 | Friskies Rebrand | Sales Pipeline | Appt scheduled |
604362473 | Fresh Step App Build | Sales Pipeline | Contract signed |
... | ... | ... | ... |
プロパティーに関するお問い合わせ
property_definitions
このデータベースオブジェクトには、HubSpotアカウントのオブジェクトプロパティーとイベントプロパティーに関する情報が含まれています。イベントプロパティーには、メールの開封やクリックなどの標準イベントと、カスタム行動イベントのプロパティーがあります。この情報は、object_propertiesおよびeventsのデータにある値を定義する際に役立ちます。
オブジェクトタイプIDと名前を組み合わせることで、特定のプロパティーを識別できます。同様の情報をproperties APIで取得できます。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
OBJECTYPEID |
Varchar | イベントに関連するオブジェクトのID。 |
NAME |
Varchar | プロパティーの内部名。 |
LABEL |
Varchar | プロパティーのラベル。 |
DESCRIPTION |
Varchar | プロパティーの説明。 |
TYPE |
Varchar | プロパティーのタイプ(例:文字列、数値、日時)。 |
FIELDTYPE |
Varchar | プロパティーのフィールドタイプ。プロパティーがHubSpotとフォームでどのように表示されるかを定義します(例:checkbox、select)。 |
DISPLAYORDER |
数値 | プロパティーの表示順。 |
GROUPNAME |
Varchar | プロパティーのグループ名。 |
OPTIONS |
バリエーション | 列挙プロパティーの場合は、プロパティーのオプションの配列であり、各オプションの属性(表示順、ラベルなど)が含まれます。 |
CREATEDUSERID |
数値 | プロパティーを作成したユーザーのID。 |
REFERENCEDOBJECTTYPE |
Varchar | プロパティーが参照するオブジェクトのタイプ。所有者のプロパティーの場合は「OWNER」という値が返されます。 |
CALCULATED |
ブール値 | プロパティーが計算プロパティーであるかどうか。 |
EXTERNALOPTIONS |
ブール値 | プロパティーのオプションが外部システムで定義されているかどうか。 |
HASUNIQUEVALUE |
ブール値 | プロパティーの値が一意であるかどうか。APIでプロパティーを作成するときにのみ設定できます。 |
HIDDEN |
ブール値 | プロパティーがHubSpotで非表示であるかどうか。 |
SHOWCURRENCYSYMBOL |
ブール値 | 数値プロパティーの値の形式が通貨であるかどうか。 |
FORMFIELD |
ブール値 | このプロパティーをフォームで使用できるかどうか。 |
READONLYDEFINITION |
ブール値 | プロパティーをHubSpotで編集できるかどうか。 |
READONLYVALUE |
ブール値 | プロパティーの値をHubSpotで編集できるかどうか。 |
HUBSPOTDEFINED |
ブール値 | プロパティーがHubSpotによって作成されたのか、ユーザーによって作成されたのか。 |
ARCHIVED |
ブール値 | プロパティーが削除されているかどうか。 |
CREATEDAT |
タイムスタンプ | HubSpotでのプロパティーの作成日時。 |
UPDATEDAT |
タイムスタンプ | HubSpotでのデータの最終更新日時。列のデータ型について詳細をご確認ください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
すべてのコンタクトプロパティーの名前と説明を取得します。
クエリー:
SELECT name, label, description
FROM property_definitions
WHERE objectTypeId = '0-1'
戻り値:
NAME | LABEL | DESCRIPTION |
entered_sql_stage | Entered SQL stage | SQLステージ日のカウントを開始する。 |
first_conversion_event_name
|
First Conversion | このコンタクトが送信した最初のフォーム。 |
address | Street address | コンタクトの住所。 |
イベントクエリー
イベントには、標準的なHubSpotイベントとカスタム行動イベントがあります。各イベントには、それぞれデータベース・オブジェクトがあり、ラベルは次のようになっています。events_eventname
.
名前 | |
イベント_広告_インタラクション | 広告の詳細と、広告をクリックしたりフォームを送信したりして広告とインタラクションしたコンタクト。 |
イベント_広告_測定指標_インポート_v0 |
広告の詳細とそのパフォーマンス指標。 |
イベント_コール_キーワード | 通話中に参加者が発言したキーワードの詳細。 |
イベント_clicked_link_in_email_v2 |
コンタクトがマーケティングメール内でクリックしたリンク。 |
イベント_クリックされたリンク_追跡された受信トレイ_メール_v8 | コンタクトが「コミュニケーションの受信トレイ」メール内でクリックしたリンク。 |
イベント_Cookie_バナークリック | Cookieをクリックしたコンタクト |
イベント_Cookie_バナー_表示数 | Cookieを表示したコンタクト |
イベント_ドキュメント_共有_v2 | 外部リンクでコンタクトと共有される営業資料。 |
イベント_ドキュメント_ビューイング_v2 | 外部リンクを開いて表示した営業資料やコンタクト。 |
イベント_ドキュメント_完了_v2 | 営業文書とそれをクローズしたコンタクト。 |
イベント_hs_scheduled_email_v2 | HubSpotのメールサーバーに送信されるEメール。 |
イベント_mta_delivered_email_v2 | HubSpotのメールサーバーから受信者に正常に配信されたメール。 |
イベント_mta_bounced_email_v2 | 受信者のEメールサーバーによって拒否されたEメール配信の試み。 |
イベント_開封済み_メール_v2 | コンタクト別のメール開封数 |
イベント_報告されたスパムメール_v2 | 受信者がスパムとして分類したEメール。 |
イベント_アップデイト_メール_配信登録状況_v2 | 受信者によるEメール配信登録の変更。 |
イベント_開封済み_追跡済み_受信トレイ_メール_v8 | コミュニケーション受信トレイのメールをコンタクト別に開封。 |
イベント_mb_media_played | コンタクト別の動画再生アクティビティー。 |
events_v2_contact_booked_meeting_through_sequence | コンタクトは、シーケンスを通じてミーティングを予約しました。 |
イベント_v2_contact_enrolled_in_sequence | コンタクトは、順次登録されています。 |
イベント_v2_contact_finished_sequence | シーケンスは終了しました。 |
イベント_v2_contact_replied_sequence_email | シーケンスの送信メール(またはシーケンスの登録を解除した受信メール)に返信した担当者。 |
イベント_v2_contact_unenrolled_from_sequence | シーケンスから登録されていないコンタクト。 |
イベント_v2_contact_unenrolled_manually_from_sequence | ユーザーが手動でコンタクトを登録解除しました。 |
イベント_v2_contact_unsubscribed_sequence_email | コンタクトが配信登録を中止し、シーケンスが登録解除された。 |
イベント_v2_sequence_email_bounced | シーケンスメールがバウンス(不達)になった。 |
イベント_v2_sequence_errored | シーケンスエラーにより登録が解除されました。 |
events_v2_sequence_step_executed | シーケンスステップを実行した。 |
イベント訪問ページ | コンタクト別のウェブサイトページ訪問数。 |
EVENTS_ <INTEGRATION_EVENT_NAME>_ <UNIQUE_IDENTIFIER> | 連携イベント ( Timeline V3 API ) |
イベントタイプIDとIDを組み合わせることで、イベントを識別できます。返される列はイベントによって異なります。イベントのプロパティーごとに1つの列が返されます。すべてのイベントで返される列を以下に示します。
ご注意ください。HubSpotは、すべてのイベントテーブルとビューに2つの新しい列を追加しました。
occurredat
occurredatdateint
これらの列は、次のように置き換わります。occuredat
とoccuredatdateint
の列を2022年11月24日に掲載しました。この日付になると、古い列は使用できなくなり、その列を使用してイベントを含むデータベースオブジェクトやビューを照会しようとすると失敗します。Snowflakeデータ共有の変更点についての詳細はこちらをご覧ください。
列名 | タイプ | 説明 |
EVENTTYPEID |
Varchar | OBJECTTYPEID に似たイベントタイプの ID object_and_event_type_definitionsビューを使用して、アカウント内の全てのイベントタイプ ID をクエリーすることができます。 |
ID |
Varchar | これはイベントの種類ごとにユニークです。あるイベントタイプにおいて、同じIDを持つレコードは2つ存在しない。 |
OBJECTTYPEID |
Varchar | イベントを完了したオブジェクトのタイプ。例えば、Eメールのリンクをクリックすると、次のように表示されます。0-1 を、コンタクトオブジェクトを表すこの列で表現します。 |
OBJECTID |
数値 | イベントを完了したレコードのID。 |
OCCURREDAT |
タイムスタンプ | イベントが発生した時点。 |
|
数値 | イベントが発生した時点を表す数字。と同じデータを含む。OCCURREDAT 列で、数値としてフォーマットされ、テーブルのクラスターキーの一部として使用されます。たいていの場合はOCCURREDAT は、この数値の代わりにタイムスタンプを使用します。 |
|
数値 | イベントが発生した時点を表す数字。と同じデータを含む。 注:この列は2022年11月24日に非推奨となり、次のように置き換わります。 |
OCCUREDAT |
タイムスタンプ | イベントが発生した時点。 注:この列は2022年11月24日に非推奨となり、次のように置き換わります。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。列のデータ型について詳細をご確認ください。 |
PROPERTY_* |
Varchar | イベントのプロパティーを含む個々の列。 |
例1
最新の50件のEメールのクリックイベントを取得します。
クエリー:
SELECT eventTypeId, objectTypeId, objectId, occuredAt, property_hs_click_raw_url AS hs_click_raw_url
FROM events_clicked_link_in_email_V2
ORDER BY occuredAt
LIMIT 50;
戻り値:
EVENTTYPEID | OBJECTTYPEID | OBJECTID | OCCUREDAT | HS_CLICK_RAW_URL |
4-666288 | 0-1 | 45318579 | 2016-08-04 21:06:43.245 | http://website.com?utm_campaign=Launch&utm_source=hs_email&utm_medium=email&utm_content=32520579 |
4-666288 | 0-1 | 80701 | 2016-08-29 13:31:28.622 | https://cta-image-cms2.hubspot.com/ctas/v2/public/cs/ci/?pg=f0f6585a-08fc-4273-8422-49cfaddcf8d8&pid=1976760&ecid=ACsprvtkRbakerw4BiWlaDL7xFAqau1aW9m1_PAqSfQiWarY69X7Ds42zHGYTCfhHJLrXUP86Nxu |
4-666288 | 0-1 | 26146013 | 2017-11-30 14:27:11.528 | https://hubs.ly/H097a37a?utm_source=hs_email&utm_medium=email&utm_content=58251290 |
... | ... | ... | ... | ... |
例2
クリックしたコンタクトのEメールのクリックイベントをすべて取得します。このクエリーは、object_with_object_propertiesと結合することでコンタクトデータを取得します。
クエリー:
SELECT
click.occuredat click_timestamp,
click.property_hs_click_raw_url click_url,
contact.properties:firstname::varchar contact_firstname,
contact.properties:lastname::varchar contact_lastname
FROM events_clicked_link_in_email_V2 click
LEFT JOIN object_with_object_properties contact
ON click.objectTypeId = contact.objectTypeId
AND click.objectId = contact.objectId
LIMIT 3;
戻り値:
CLICK_TIMESTAMP | CLICK_URL | CONTACT_FIRSTNAME | CONTACT_LASTNAME |
2019-01-04 22:35:41.264 | https://help.website.com/articles/tutorial/how-to-use-email-tool?utm_source=hs_automation&utm_medium=email&utm_content=68042217 | Hobbes | Baron |
2018-11-08 09:37:41.400 | https://www.website.net/webinar-case-study?utm_source=hs_automation&utm_medium=email&utm_content=55200164 | Milo | Gold |
2018-11-08 09:37:41.426 | https://www.website.net/contact?utm_source=hs_automation&utm_medium=email&utm_content=55200164 | Harlow | Villari |
... | ... | ... | ... |
オブジェクトとイベントタイプのクエリ
object_and_event_type_definitions
このデータベースオブジェクトには、HubSpotアカウントで利用可能なすべてのオブジェクトとイベントの定義が含まれています。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
OBJECTTYPEID |
Varchar | パイプラインに含めることができるオブジェクト(取引やチケットなど)のID。 |
FULLYQUALIFIEDNAME |
Varchar | オブジェクトまたはイベントの名前。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。列のデータ型について詳細をご確認ください。 |
例1
HubSpotアカウントで利用可能なすべてのオブジェクトとイベントを取得します。
クエリー:
SELECT objectTypeId, fullyQualifiedName
FROM object_and_event_type_definitions;
戻り値:
OBJECTTYPEID | FULLYQUALIFIEDNAME |
0-1 | CONTACT |
0-8 | LINE_ITEM |
0-11 | CONVERSATION |
... | ... |
リストクエリ
以下では、利用可能なコンタクトリストと会社リスト、それらのリストに含まれるレコードなど、リストを照会する方法について説明します。
lists
このデータベースオブジェクトには、HubSpotのコンタクトおよび会社リストに関する情報が含まれています。1つのリストにつき1つの行を返します。列にはリストの詳細(リストの名前、サイズ、含まれるレコードのオブジェクトタイプなど)が含まれます。各リスト内の個々のレコードに関する情報は含まれません(list_membershipを参照)。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
OBJECTTYPEID |
Varchar | リスト内のレコードのタイプ(例:コンタクト、会社)。 |
LISTID |
数値 | リストのID。list-membershipsテーブルの「LISTID」に結合します。 |
CLASSICLISTID |
数値 | コンタクトリストに固有のIDで、HubSpotのリストのURLに含まれるIDと一致します。 |
NAME |
Varchar | リストの名前。 |
SIZE |
数値 | リストのレコード数。 |
CREATEDBYUSERID |
数値 | リストを作成したユーザーのID。 |
CREATEDAT |
タイムスタンプ | HubSpotでリストが作成された時点。 |
UPDATEDBYUSERID |
数値 | リストを最後に更新したユーザーのID。 |
UPDATEDAT |
タイムスタンプ | HubSpotでの日付の最終更新日時。列のデータ型について詳細をご確認ください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
すべてのコンタクトリストを取得します。
クエリー:
SELECT listId, name, size
FROM lists
WHERE objectTypeId = '0-1';
戻り値:
LISTID | NAME | SIZE |
118131 | Weekly outreach | 103 |
66156 | Blog subscribers | 455 |
771852 | Top subscribers 2021 | 37 |
... | ... | ... |
例2
「Top subscribers 2021」という名前の特定のコンタクトリストを取得します。
クエリー:
SELECT listId, name, size
FROM lists
WHERE objectTypeId = '0-1'
ANDlistName = 'Top subscribers 2021';
戻り値:
LISTID | NAME | SIZE |
771852 | Top subscribers 2021 | 37 |
list_membership
このデータベースオブジェクトは、どのレコードがどのリストのメンバーであるかの情報を持ち、リスト内のレコードごとに1行が存在する。例えば、500人のコンタクトを持つ「ブログ」登録読者リストがある場合、データベースオブジェクトは500行を返します。
含まれるのはリストIDとオブジェクトIDのみです。詳しくは、listsデータベース・オブジェクトと結合してください。
このデータベースオブジェクトは、以下の列を返すことができる。
列名 | タイプ | 説明 |
LISTID |
Varchar | リストのID。listsテーブルのHS_LIST_ID列に結合します。 |
OBJECTID |
Varchar | リスト内のレコードのID。 |
UPDATEDAT |
タイムスタンプ | HubSpotでのデータの最終更新日時。列のデータ型について詳細をご確認ください。 |
INGESTEDAT |
タイムスタンプ | データが最後にSnowflakeにインジェストされた日時。 |
例1
「Top subscribers 2021」リストに含まれているすべてのコンタクトのIDを取得します。
クエリー:
SELECT objectId
FROM list_memberships
INNER JOIN lists
ON list_memberships.listId = lists.listId
WHERE lists.objectTypeId = '0-1'
AND lists.name = 'Top Subscribers 2021';
戻り値:
OBJECTID |
54325098 |
96805401 |
6922028 |
... |
例2
Top subscribers 2021リストに登録されているコンタクトの詳細の姓と名を取得します。
クエリー:
SELECT
contact.objectId AS objectid,
contact.property_firstname AS firstname,
contact.property_lastname AS lastname
FROM objects_contacts contact
INNER JOIN list_memberships ON contact.objectId = list_memberships.objectId
INNER JOIN lists ON list_memberships.listId = lists.listId
WHERE lists.objectTypeId = '0-1'
AND lists.name = 'Top Subscribers 2021'
戻り値:
OBJECTID |
FIRST NAME |
LAST NAME |
54325098 |
Hobbes |
Baron |
96805401 |
Milo |
Gold |
6922028 |
Henry |
Riley |
... |
... |
... |
よくある質問
HubSpotアプリからレポートと同様のデータを作成したいのですが、どのようにすればよいですか?
一般的には、比較対象のレポートに存在する列を確認することになるでしょう。レポートのグラフ化が表形式でない場合、表に変換すると、レポートに含まれる列が表示されます。これらの列は通常、オブジェクト・タイプまたはイベント・タイプのプロパティーである。次のステップは、列が対応するオブジェクトタイプのプロパティーを把握することです。property_definitionsに問い合わせることで可能です。
SELECT * FROM property_definitions
WHERE label = [column_name]
一部のプロパティー名は、通常、アプリ上でより説明的な名前に解決されるため、必ずしも完全に一致しない場合があります。このような場合、property_definitionsのlabel(あるいはdescription)列でLIKE演算子を使ったあいまい検索が有効です。
列がどのオブジェクトタイプに属するかを決定した後、何を問い合わせるかを決定するのは簡単なことです。その型に対応するobject_xビューを検索すればよいのです。
このデータ型を別のデータ型にリンクさせるにはどうすればよいですか(例:キャンペーン用のフォームを取得する方法)?
2つ以上の異なるレコードを互いにリンクさせる必要がある場合は、関連付けをご覧ください。関連付けは、HubSpotのCRM上のさまざまなオブジェクトの間の関係を表します。2つの型の間で可能なすべての異なる関連付けはassociation_definitionsにリストされている。上記の例では、キャンペーンがリンクされている全てのフォームを知るために、ASSOCIATIONS_CAMPAIGNS_TO_FORMSをクエリーする必要があります。
SELECT campaigns.property_hs_name campaign_name,
forms.property_hs_form_id form_id
FROM objects_campaigns campaigns
JOIN associations_campaigns_to_forms assoc ON
assoc.campaign_objectid=campaigns.objectid
JOIN objects_forms forms ON forms.objectid=assoc.form_objectid
GROUP BY campaign_name
HubSpotとSnowflakeの連携状況を知るにはどうすればよいですか?
HubSpotとSnowflakeの連携の障害や問題についてのリアルタイムのステータスアップデートを受け取るには、data_share_statusビューにクエリーします:
SELECT * FROM hubspot.public.data_share_status
LIMIT 1
と表示されます:
STATUS | メッセージ | UPDAT |
よっしゃー | ただいまのところ、事件性はありません | 2023-04-10 09:21:20.123 |
このビューでは、連携ステータスの更新を逆時系列で提供します。このクエリーの結果をダッシュボードに連携することで、連携のパフォーマンスを追跡し、ダウンタイムや停止を検出することができます。