HubDB
Marketing Hub
- Enterprise
CMS Hub
- Professional or Enterprise
HubDBは、データを行、列、セルに保存する、スプレッドシートによく似たテーブルを作成するために使用するツールです。HubDBテーブルの列、行、およびその他の設定は、必要に応じてカスタマイズできます。例えば、以下のような処理に対応できます。
- 外部メカニズムからのフィードバックを保存し、後で取得できるようにする
- 動的CMSページを作成するために使用可能な構造化データを保存する(CMS Hub ProfessionalおよびEnterpriseのみ)
注:
- HubDBデータをページで使用するには、CMS Hub ProfessionalまたはEnterpriseが必要です。
- 既存のテーブルを公開、編集、表示するには、[HubDB]権限が必要です。HubDBテーブルの設定を作成、複製、削除、編集するには、[HubDBテーブル設定]権限が必要です。
HubSpotの一般的なAPI制限に加えて、HubDBには次の技術的な制限事項があることにご注意ください。
- アカウントの制限:
- アカウント1件あたりのHubDBテーブル数:1,000件
- アカウント1件あたりのHubDB行数:100万行
- テーブルの制限:
- テーブル1件あたりの列数:250列
- HubDBテーブル1件あたりの行数:10,000行
- テーブル名1件あたりの文字数:700文字
- テーブルラベル1件あたりの文字数:700文字
- 列の制限:
- リッチテキスト列1列あたりの文字数:65,000文字
- 各テキスト列の文字数:10,000文字
- 列名1件あたりの文字数:700文字
- ラベル1件あたりの文字数:700文字
- 列の説明1件あたりの文字数:300文字
- 列内の選択可能なオプション1件あたりの文字数:700文字
- ページの制限:
- CMSページ1ページあたりの
hubdb_table_rows
HubL関数の呼び出し:10回 - 同じHubDBテーブルを使用する動的ページ:10ページ
- 動的ページが有効なHubDBではパスが必ず小文字で設定されるため、これらのページへのURLでは大文字と小文字が区別されません。
- CMSページ1ページあたりの
HubDBテーブルを作成するには、HubSpotのUIまたはHubDB APIを使用します。
全ての新しく作成されたテーブルのステータスは、下書きとして設定されます。テーブルは公開するまで、HubLまたはAPIによるデータ出力を目的として使用することができません。
HubDBテーブルの設定を管理するには、[アクション]>[設定を管理]の順にクリックします。以下の設定が利用可能です。
- パブリックAPIアクセスを許可:既定では、テーブル内のデータはアプリ内または認証済みAPIリクエストでのみ閲覧できます。認証されていないAPIリクエストでテーブル内のデータをクエリーできるようにするには、この設定を有効にします。
- 行データを使用した動的ページ作成を有効化:HubDBデータを使用した動的ページを作成できるようにするには、この設定を有効にします。このオプションを有効にすると、次の追加オプションが使用可能になります。
- ドロップダウンメニューを使用して、メタディスクリプション、キービジュアル、正規URLデータを動的ページに取り込むための列を選択します。新しいテーブルの場合は、これらのデータを格納する新しい列を作成する必要があります。
- メタディスクリプション:テキストタイプの列にする必要があります。
- キービジュアル:画像タイプの列にする必要があります。
- Canonical URL:URLタイプの列にする必要があります。
- このテーブル内の他のHubDBテーブルを参照するには、[子テーブルの使用を許可]チェックボックスをオンにします。また、[子テーブルのリストページを自動的に作成]を選択して、HubSpotが自動的に中間リスティングページを作成できるようにすることもできます。詳しくはHubDBを使用したマルチレベルの動的ページを作成する方法(英語)をご確認ください。
- ドロップダウンメニューを使用して、メタディスクリプション、キービジュアル、正規URLデータを動的ページに取り込むための列を選択します。新しいテーブルの場合は、これらのデータを格納する新しい列を作成する必要があります。
テーブル(表)とは、行と列から成る2次元構造です。テーブルが作成されるとグローバル固有ID(GUID)が付与され、このIDを使用してテーブルを識別できます。
行は、テーブルの横方向のスライスです。通常、1つの行の全ての値は1つのプライマリーIDの下で関連付けられています。スプレッドシートアプリケーションの場合、行は1から始まる番号で表されます。各テーブル行には、作成時にグローバル固有IDが指定されます。
列はテーブルの縦方向のスライスです。各列にはタイプがあります。スプレッドシートアプリケーションの場合、列はA、B、Cなどの英字で表されます。次の2種類のテーブル列があります。
テーブル内の各行には、2つの組み込み列があります。
列 | Description |
---|---|
hs_id
| この行に自動的に割り当てられた、数値のグローバル固有ID |
hs_created_at
| この行が作成された時点のタイムスタンプ |
hs_path
| 動的ページで使用される場合、ページのURLパスの最後の文字列 |
hs_name
| 動的ページで使用される場合、ページのタイトル |
注:HubDBのリッチ テキスト エリア列は65,000文字に制限されています。詳細については変更履歴の通知(英語)をご参照ください。
テーブルに追加できるカスタム列の数に制限はありません。カスタム列は、テキスト、リッチテキスト、数値、通貨、日付、時刻、画像、動画、選択値、または場所(緯度と経度)にできます。
列が作成されると、テーブル内で1
から始まる固有の数値IDが割り当てられます。列IDは大きくなっていきますが、必ずしも連続した値にはなりません。列IDは再利用できないので、テーブルに1
と2
という2列がある場合、2番目の列を削除すると次に作成される列のIDは3
になります。
列と行が交差した「セル」には、値が格納されます。セルの読み取りと更新は、セル単位で個別に、または行の一部として行うことができます。セルの値をnull
に設定する操作は、セルの値の削除に相当します。
HubLを使用すると、ウェブサイトページで構造化コンテンツとして使用するHubDBデータを取得できます。この後、HubLを使用してテーブル、行、列のデータを取得する方法を詳しく説明します。
テーブルののをリストを取得するには、HubL関数hubdb_table_rows()を使用します。テーブルには、テーブルのIDまたは名前でアクセスできます。HubSpotアカウント間でのコード移植に役立つ可能性があるため、HubDBテーブルは名前で参照することをお勧めします。新しいテーブルの作成時に変更不可能なテーブル名を設定します。この名前は、テーブルエディター内の[アクション]>[設定を管理]を選択することでいつでも確認可能です。テーブルのIDは、テーブルエディターのアドレスバー、またはHubDBテーブルダッシュボードのID
列に表示されます。

以下は、hubdb_table_rows()
を使用したデータ取得の例です。
注:既定では、返される行の最大数は1,000です。それより多くの行を取得するには、関数クエリーでlimit
を指定します。
例:
hudb_table_rows (12345, "random()&limit=1500")
<filterQuery>
の構文は、HTTP APIと同じです。例えばhubdb_table_rows(123, "employees__gt=10&orderBy=count")
の場合、employees列の値が10よりも大きい行が、count列の順に並べ替えた状態で返されます。<filterQuery>
の全ての任意パラメーターのリストは、テーブル行の取得方法に関するページ(英語)でご確認いただけます。
異なる<filterQuery>
パラメーターを指定した複数の行クエリーを使用する代わりに、1つのクエリーを使用して、selectattr()
またはrejectattr()
フィルターで次のように行を絞り込む方法が適切です。
1つの行を取得するには、HubL関数hubdb_table_row()
を使用します。
組み込み列とカスタム列の名前では大文字と小文字は区別されません。HS_ID
とhs_id
の動作は同じです。
属性 | Description |
---|---|
row.hs_id
| この行のグローバル固有ID |
row.hs_path
| 動的ページを使用する場合、この文字列は「ページのパス」列の値で、ページのURLパスの最後の部分です |
row.hs_name
| 動的ページを使用する場合、この文字列は行の「ページタイトル」列の値です |
row.hs_created_at
| 行が作成された時点のUnixタイムスタンプ |
row.hs_child_table_id
| 動的ページを使用する場合、これは行のデータを提供する別のテーブルのIDです |
row.column_name
| 列名を使用してカスタム列の値を取得します |
row["column name"]
| 列名を使用してカスタム列の値を取得します |
テーブルの名前、列、最終更新日などのメタデータを取得するには、hubdb_table()
関数を使用します。
ここでは、前述のコードでhubdb_table()
から代入された変数を例に、関連する属性を示します。実際にご使用の変数名とは異なる場合があります。
利便性を考慮して、変数に属性値を代入することをお勧めします。または、次の方法を使用できます。{{ hubdb_table(<tableId>).attribute }}
属性 | Description |
---|---|
table_info.id
| テーブルのID |
table_info.name
| テーブルの名前 |
table_info.columns
| 列情報のリスト。この属性の情報に対して、forループによる反復処理を実行できます |
table_info.created_at
| テーブルが初めて作成された時点のタイムスタンプ |
table_info.published_at
| このテーブルが公開された時点のタイムスタンプ |
table_info.updated_at
| このテーブルの最終更新時点のタイムスタンプ |
table_info.row_count
| テーブル内にある行の数 |
テーブルの列に関する情報(ラベル、タイプ、オプションなど)を取得するには、hubdb_table_column()
関数を使用します。
ここでは、前述のコードでhubdb_table_column()
から代入された変数を例に、関連する属性を示します。実際にご使用の変数名とは異なる場合があります。
利便性を考慮して、変数に属性値を代入することをお勧めします。または、次の方法を使用できます。{{ hubdb_table_column(<tableId>,<columnId or column name>).attribute }}
属性 | Description |
---|---|
table_info.id
| 列のID |
table_info.name
| 列の名前 |
table_info.label
| 列に使用するラベル |
table_info.type
| この列のタイプ |
table_info.options
| select列タイプの場合、これは |
table_info.foreignIds
| foreignId列タイプの場合、foreignIdのリストです( |
メソッド | Description |
---|---|
getOptionByName("<option name")
| select列タイプの場合、オプション名に基づいてオプションの情報を取得します |
richtext
列タイプは、モジュールのリッチ テキスト フィールドと同様に機能します。
データはHTMLとして保存され、HubDB UIにテキスト編集インターフェイスが表示されます。ただし、HubSpotのUIを使用してHubDBテーブルを編集する場合、ソースコードを直接編集することはできません。これにより、技術者以外のユーザーが無効なHTMLを入力できないようにして、サイトの外観や機能に想定外の問題が発生する事態を防いでいます。埋め込みコードや追加のカスタムHTMLが必要な場合は、リッチ テキスト エディターの埋め込み機能を使用してカスタムコードを配置できます。
貴重なご意見をありがとうございました。