# テレメトリーを追加する(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/add-telemetry テレメトリーの設定方法をご確認ください。 アプリにテレメトリーを設定してログシンクとして機能させ、このアプリ経由でログデータを外部の可観測性プロバイダーに送信することができます。サードパーティープロバイダーとしてサポートされているのは、現在のところ、[Honeycomb](https://www.honeycomb.io/)と[Sentry](https://sentry.io/)のみです。 ## テレメトリー コンポーネント ファイルを作成して設定する プロジェクトの`app/`ディレクトリー内に`telemetry/`ディレクトリーを作成し、その中に`telemetry-hsmeta.json`設定ファイルを追加します。 ```shell theme={null} └── src/ └── app/ └── telemetry/ └── telemetry-hsmeta.json ``` `telemetry-hsmeta.json`ファイルを編集して、プロバイダー、ログレベルなどを設定します。以下に、ファイルの例と併せて、利用可能な各フィールドについて説明する表を記載します。 > [!WARNING] > > **注**: 既定では、`logTypes`フィールドと`logLevels`フィールドを介して全てのタイプとレベルのログがプロバイダーと同期されるため、大量のデータが送信されることになる場合があります。始めは関心のあるログタイプのみを設定し、エラーだけに絞り込まれるようにログレベルを設定することを強くお勧めします。 ### telemetry-hsmeta.json ```json theme={null} { "uid": "telemetry", "type": "telemetry", "config": { "providerType": "SENTRY", "datasetName": "my-app-telemetry", "logTypes": ["API_CALL", "EXTENSION_LOG", "EXTENSION_RENDER", "DATA_FETCH"], "logLevels": ["ERROR", "WARN", "INFO"] } } ``` | フィールド | 型 | 説明 | | - | - | - | | `uid` | 文字列 | テレメトリー設定の一意の識別子。任意の値を設定できますが、このフィールドはアカウントのプロジェクト設定に表示されるため、他のアプリコンポーネントの`uid`値とは異なる値にする必要があります。 | | `type` | 文字列 | コンポーネントのタイプ。この場合は`telemetry`にする必要があります。 | | `config` | オブジェクト | 設定の詳細を格納するオブジェクト。以下の行にリストされているサブプロパティーを参照してください。 | | `providerType` | 文字列 | サードパーティー テレメトリー プロバイダーの名前。現在のところ、サポートされているのは`SENTRY`と`HONEYCOMB`のみです。 | | `datasetName` | 文字列 | ログデータに関連付けられるラベル(プロバイダーがこのオプションをサポートしている場合)。 | | `logTypes` | 配列 | 外部プロバイダーに送信されるログタイプのリスト。既定では、全てのログがプロバイダーに伝播されます。利用可能なログタイプ:`["CRM_LEGACY_CARD", "CRM_EXTENSIBILITY_CARD", "WEBHOOKS", "API_CALL", "APP_SETTINGS", "SERVERLESS_EXECUTION", "PROXY_EXECUTION", "EXTENSION_RENDER", "EXTENSION_LOG", "SERVERLESS_GATEWAY_EXECUTION"]` | | `logLevels` | 配列 | ログのフィルター条件となる重大度レベルのリスト。サポートされているログレベル:`["ERROR", "WARNING", "INFO"]` | ## CLIを使用して外部認証をシークレットとして追加する 上記の`telemetry-hsmeta.json`設定ファイルを作成するだけでなく、プロバイダーの認証キーに相当するシークレットを追加する必要もあります。 * Sentryを使用している場合は、シークレットとしてDSN(データソース名)を追加します。 * Honeycombを使用している場合は、シークレットとしてAPIキーを追加します。 ### Sentry DSNを特定する Sentryを使用している場合は、以下の手順に従ってDSNを取得します。 * [Sentryアカウント](https://sentry.io/auth/login/)にログインします。 * プロジェクトの設定に移動します。 * [クライアントキー\_\_]または[DSN\_\_]セクションで、プロジェクトでの一意のDSNを確認できます。以下に例を示します。 ``` https://sentry-key@sentry-identifier.ingest.us.sentry.io/project-id ``` ### Honeycomb APIキーを特定する 外部の可観測性プロバイダーとしてHoneycombを使用している場合は、データの認証と転送にAPIキーが使用されます。このAPIキーは特定のHoneycombアカウントとプロジェクトに関連付けられたものです。 Honeycomb APIキーを生成するには、次のようにします。 * [Honeycombアカウント](https://ui.honeycomb.io/login)ににログインします。 * プロジェクトの設定に移動します。 * [APIキー\_\_]セクションを見つけて、新しいキーを生成します。 * 生成されたAPIキーをコピーします。 ### HubSpot CLIを使用してシークレットを追加する Sentry DSNまたはHoneycomb APIキーを取得した後は、その値をシークレットとして追加するために次のコマンドを実行します。シークレットの名前を求められたら、ログデータを正しく同期するために、必ず`TELEMETRY_SECRET`を使用してください。 ```shell theme={null} hs app secrets add ``` # エージェントツールを作成する Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/agent-tools/create-an-agent-tool このチュートリアルに従って、エージェントツールを構築しましょう。エージェントツールとは、AIエージェントに合わせてカスタマイズされたワークフローアクションのことです。 HubSpotでは、ユーザーの指示に従ってさまざまなアクションを実行するAIエージェントを作成できます。例えば、毎朝その日に予定されているミーティングに関するメモを記載したEメールを送信するエージェントを作成できます。 エージェントはこうしたタスクを実行するために、エージェントツールを利用します。エージェントツールはプログラミング言語の関数のようなもので、ユーザーから渡されたパラメーターを取り、出力を返します。HubSpotでのエージェントツールは、MCP(モデル コンテキスト プロトコル)でのツールの概念に似ています。つまり、AIが特定のジョブを実行できるように、エージェントツールでAPI呼び出し、LLMステップ、およびその他のサポートコンテキストをパッケージ化します。これらのツールは特定の明確に定義されたタスクを実行するように設計され、それぞれに、データベースのクエリー、CRUD(作成、読み取り、更新、削除)操作の実行、生成AIを使用したコンテンツの要約といったタスクを実行します。 実装の観点からすると、エージェントツールはカスタム ワークフロー アクションの拡張バージョンであり、HubSpotの開発者プロジェクトフレームワークを使用して構築します。このチュートリアルでは、エージェントツールの構築を開始する方法を説明します。 ## 前提条件 開始する前に、次の準備作業を行う必要があります。 * `npm i -g @hubspot/cli@next`を実行して、HubSpot CLIの最新バージョンをインストールします。 * ベータ版にオプトインした開発者アカウント内で、[開発者テストアカウント](/docs/getting-started/account-types#developer-test-accounts)を作成します。 * CLIを使用してテストアカウントを認証するために、ターミナルで[`hs auth`コマンド](/docs/developer-tooling/local-development/hubspot-cli/reference#authenticate-an-account)を実行します。 **1. プロジェクトを作成する** ゼロから作成する場合は、まず、新しいプロジェクトを作成する必要があります。既存のプロジェクトを使用する場合は、[次のセクションにスキップ](#2.-add-an-agent-tool-to-the-project)してかまいません(バージョン`2025.2`のプロジェクトが必要です)。 新しいプロジェクトを作成する場合は、次の手順に従います。 1. ボイラープレートとなるクイックスタートテンプレートのいずれかを基に新しいプロジェクトを作成するには、ターミナルで以下のコマンドを実行します。 ```shell theme={null} hs project create --platform-version 2025.2 ``` 2. ターミナルのプロンプトに従ってプロジェクトの名前と場所を設定し、テンプレートを選択します。予定しているアプリの[配布](/docs/apps/developer-platform/build-apps/app-configuration#distribution)方法に応じて、複数のテンプレートオプションの中から選択できるようになっています。このチュートリアルでは、[Getting stated project with marketplace app(マーケットプレイスアプリを使用したプロジェクトの開始)]\*\*\*\*テンプレートを選択します。 3. プロジェクトテンプレートが作業ディレクトリーにダウンロードされます。このディレクトリーで、その内容を確認できます。 このプロジェクトテンプレートには、いくつかのサンプルアプリ機能を備えたアプリを含むプロジェクトをアップロードするために必要な全てのファイルが揃っています。サンプルアプリ機能には、ボイラープレート [アプリ カード](/docs/apps/developer-platform/add-features/ui-extensibility/app-cards/create-an-app-card)、[Webhook](/docs/apps/developer-platform/add-features/configure-webhooks)、[ワークフローアクション](/docs/apps/developer-platform/add-features/custom-workflow-actions)などがあります。このチュートリアルには、これらのコンポーネントは必要ありませんが、後で試してみる場合に備えてコンポーネントを確認しておくと役立ちます。 **2. プロジェクトにエージェントツールを追加する** 実際のところ、エージェントツールはエージェントのコンテキストに合わせて設定されたカスタム ワークフロー アクションです。エージェントがこれらのツールを実行できるようにするには、ワークフローでアクションを実行する仕組みと同様に、`supportedClients`フィールドを使用してカスタム ワークフロー アクションを有効にし、エージェントで使用できるようにする必要があります。 * `workflow-actions`ディレクトリー内に、ツールの設定ファイルとして新しいJSONファイルを作成します。ファイルには任意の名前を付けることができますが、名前の末尾は`-hsmeta.json`にする必要があります(例:`my-agent-tool-hsmeta.json`)。 * [エージェントツールのリファレンスドキュメント](/docs/apps/developer-platform/add-features/agent-tools/reference)に従って、アクション設定を作成します。以下のコード例に示されているように、必ず、`supportedClients`フィールドに`AGENTS`クライアントを含めてください。 ```json theme={null} { "uid": "agent_tool_action", "type": "workflow-action", "config": { "actionUrl": "https://example.com", "toolType": "GET_DATA", "llmDescription": "A description that helps the LLM understand what this tool does.", "isPublished": false, "supportedClients": [ { "client": "AGENTS" }, { "client": "WORKFLOWS" } ], "inputFields": [ { "typeDefinition": { "name": "message", "type": "string", "fieldType": "textarea" }, "supportedValueTypes": ["STATIC_VALUE"], "isRequired": false } ], "labels": { "en": { "actionName": "My custom agent tool", "actionDescription": "A description of the tool.", "actionCardContent": "Send a notification", "inputFieldLabels": { "message": "Notification Message" }, "inputFieldDescriptions": { "message": "Enter the message to be sent in the notification" } } }, "objectTypes": ["CONTACT"] } } ``` ツールを構築する際には、次の点に留意してください。 * 活発に開発を進めているときは、入力フィールドを必須に設定しないでください。必須フィールドは、アップロード後に更新または削除することができないためです。 * 公開エンドポイントに対するリクエストは、`POST`リクエストとして送信されます。 テストアカウントにアップロードする準備ができたら、ファイルを保存し、`hs project upload`を実行します。新しいプロジェクトを作成するところから始めた場合は、`y`を押してアカウント内にそのプロジェクトを作成するよう求められます。 > [!WARNING] > > ### 注: > > HubSpotでは現在も、エージェントツールのテストを可能にするための機能の開発を積極的に進めています。これらのテスト機能が利用可能になり次第、このページが更新されて手順が追加される予定です。 # エージェントとツールの概要 Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/agent-tools/overview HubSpotエージェントエクスペリエンスをカスタマイズするためのエージェントツールを構築する方法をご紹介します。 HubSpotでは、ユーザーの指示に従ってさまざまなアクションを実行するAIエージェントを作成できます。例えば、毎朝その日に予定されているミーティングに関するメモを記載したEメールを送信するエージェントを作成できます。 エージェントはこうしたタスクを実行するために、エージェントツールを利用します。エージェントツールはプログラミング言語の関数のようなもので、ユーザーから渡されたパラメーターを取り、出力を返します。HubSpotでのエージェントツールは、MCP(モデル コンテキスト プロトコル)でのツールの概念に似ています。つまり、AIが特定のジョブを実行できるように、エージェントツールでAPI呼び出し、LLMステップ、およびその他のサポートコンテキストをパッケージ化します。これらのツールは特定の明確に定義されたタスクを実行するように設計され、それぞれに、データベースのクエリー、CRUD(作成、読み取り、更新、削除)操作の実行、生成AIを使用したコンテンツの要約といったタスクを実行します。 実装の観点からすると、エージェントツールはカスタム ワークフロー アクションの拡張バージョンであり、HubSpotの開発者プロジェクトフレームワークを使用して構築します。 > [!NOTE] > > 現時点のベータ版では、以下の制限があります。 > > * CRMデータを取得するためのツールが明示的に指定されていない限り、エージェントはCRMデータにアクセスできません。 > * タスクを完了するための十分な情報が与えられていなくても、起動後のエージェントがユーザーに情報を要求することはできません。 ## ツールの構築 ツールを構築するには、[エージェントの作成に関するガイド](/docs/apps/developer-platform/add-features/agent-tools/create-an-agent-tool)と、設定オプション、ベストプラクティス、リクエストの検証に関する情報が記載されている[リファレンスドキュメント](/docs/apps/developer-platform/add-features/agent-tools/reference)を参照してください。 > [!WARNING] > > ### 注: > > HubSpotでは現在も、エージェントツールのテストを可能にするための機能の開発を積極的に進めています。これらのテスト機能が利用可能になり次第、このページが更新されて手順が追加される予定です。 # エージェントツールのリファレンス(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/agent-tools/reference エージェントツールの作成方法を説明します。エージェントツールとは、AIエージェントで使用できるカスタム ワークフロー アクションです。 HubSpotエージェントは、ユーザーがタスクを実行する際にチャットできるAI搭載アシスタントです。各エージェントには、ユーザーの指示に従ってエージェントが使用する一連のアクション(ツール)が含まれています。開発者はエージェントの目的に応じて、明確に定義された特定のタスクを実行するカスタム エージェント ツールを作成できます。 実際には、ツールはエージェントコンテキストで使用できるように設定されたカスタム ワークフロー アクションです。ツールは複数のエージェントで使用できます。また、エージェントとワークフローの両方で機能するように設定できます。 エージェントツールを作成する方法の概要を以下に示します。 * ワークフロー アクション コンポーネントをアプリに追加します。このために、ツールの`*-hsmeta.json`設定ファイルを格納した`workflow-actions`[ディレクトリーをプロジェクトに](#project-setup)含めます。作成する各ツールとワークフローアクションには、専用の`*-hsmeta.json`設定ファイルが必要です。 * `supportedClients`フィールドを介してAIエージェントで[アクションが使用できるように設定](#agent-tool-definition)します。 ツールを作成する際には、高品質のパフォーマンスを保証するための一連の[ベストプラクティス](#best-practices)にも留意する必要があります。 ## プロジェクトの設定 ツールを作成するには、`hsproject.json`で`platformVersion`が`2025.2`に設定されている必要があります。このバージョンは、すべての[クイックスタートテンプレート](/docs/apps/developer-platform/build-apps/create-an-app)で自動的に設定されますが、以前のバージョンのプロジェクトでは手動で更新する必要があります。 プロジェクトをバージョン`2025.2`にアップグレードする場合は、[アプリの設定](/docs/apps/developer-platform/build-apps/app-configuration)とその機能について新しい`*-hsmeta.json`設定ファイルの標準に準拠する必要があることに注意してください。 エージェントツールとカスタム ワークフロー アクションは、どちらもアプリの`workflow-actions`ディレクトリーに格納されています。 ```shell theme={null} ├──src │ ├── hsproject.json │ ├── app/ │ │ └── app-hsmeta.json │ │ └── ... │ │ └── workflow-actions/ │ │ └── agent-tool-action-hsmeta.json └── ``` ## エージェントツールの定義 ツールが機能できるようにするには、ツールの設定ファイルを`workflow-actions`ディレクトリー内に配置する必要があります。エージェントツールの設定オプションは[カスタム ワークフロー アクション](/docs/apps/developer-platform/add-features/custom-workflow-actions#custom-workflow-action-definition)と同じですが、`supportedClients`フィールドに`AGENTS`クライアントが含まれている必要があります。 ```json theme={null} { "uid": "agent_tool_action", "type": "workflow-action", "config": { "actionUrl": "https://example.com", "toolType": "GET_DATA", "llmDescription": "A description that helps the LLM understand what this tool does.", "isPublished": false, "supportedClients": [ { "client": "AGENTS" }, { "client": "WORKFLOWS" } ], "inputFields": [ { "typeDefinition": { "name": "message", "type": "string", "fieldType": "textarea" }, "supportedValueTypes": ["STATIC_VALUE"], "isRequired": true }, { "typeDefinition": { "name": "priority", "type": "enumeration", "fieldType": "select", "options": [ { "value": "high", "label": "High Priority" }, { "value": "normal", "label": "Normal Priority" }, { "value": "low", "label": "Low Priority" } ] }, "supportedValueTypes": ["STATIC_VALUE"], "isRequired": true } ], "labels": { "en": { "actionName": "My custom agent tool", "actionDescription": "A description of the tool.", "actionCardContent": "Send {{priority}} priority notification", "inputFieldLabels": { "message": "Notification Message", "priority": "Priority Level" }, "inputFieldDescriptions": { "message": "Enter the message to be sent in the notification", "priority": "Select the priority level for this notification" } } }, "objectTypes": ["CONTACT"] } } ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | ワークフローアクションの内部固有ID。 | | `type`\* | 文字列 | コンポーネントのタイプ。この場合は`workflow-action`にする必要があります。 | | `actionUrl`\* | 文字列 | ツールによる`POST`リクエストの送信先のURL。このURLは、一般公開されているエンドポイントである必要があります。また、開発者プロジェクト内で定義したサーバーレス関数は指定できません。 | | `toolType`\* | 文字列 | ツール機能のカテゴリー。次のいずれかになります。 | | `llmDescription`\* | 文字列 | LLMがツールの機能を理解するのに役立つ説明。 | | `isPublished` | ブール値 | アプリをインストールしたアカウントに定義が表示されるかどうかを決定します。既定では、`false`に設定されています。 | | `supportedClients`\* | 配列 | カスタム ワークフロー アクションがサポートするクライアントを指定するオブジェクトの配列。配列内の各オブジェクトには、クライアントのタイプを示す文字列値を持つ`client`キーを指定する必要があります。値には次のものがあります。 | | `inputFields` | 配列 | ユーザーが入力フィールドに入力した値。[フィールドの数に関するベストプラクティス](#be-mindful-of-the-number-of-input-fields)について詳細をご確認ください。 | | `typeDefinition.name` | 文字列 | 入力フィールドの名前またはキー。 | | `typeDefinition.type` | 文字列 | 入力フィールドに入力される値のタイプ。 | | `typeDefinition.fieldType` | 文字列 | ワークフローを作成するユーザーに対して表示されるフィールドのタイプ。 | | `typeDefinition.options` | 配列 | 列挙型の場合、このフィールドでオプションのリストを指定します。各オプションには、ユーザーが入力した情報に基づく`value`と、ワークフローツール内でオプションを識別する`label`が必要です。 | | `inputFieldDependencies` | 配列 | `dependencyType`に基づいて2つ以上の入力間の関係を定義するルールのリスト。[こちらの例](/docs/api-reference/automation-actions-v4-v4/guide#example-%233)で詳細をご確認ください。 | | `labels.`\* | 文字列 | ロケール定義にマッピングされるロケールキー。少なくとも、英語のラベル(`en`)とその定義を定義する必要があります。 | | `labels..inputFieldDescriptions` | オブジェクト | アクションに関する入力内容の詳細を定義するオブジェクト。上記の例では、このオブジェクトに`message`フィールドと`priority`フィールドが含まれています。 | | `labels..inputFieldOptionLabels` | オブジェクト | 入力フィールドにオプションがある場合に必要となるオブジェクト。オプションの値またはラベルをキーとして使用して、入力フィールドのオプションラベルのマップを提供します。 | | `labels..outputFieldLabels` | オブジェクト | `outputFields`の定義を、ワークフローツールに表示される、該当するラベルにマッピングするオブジェクト。 | | `labels..actionName`\* | 文字列 | ワークフローエディターの[アクションを選択]\_\_パネルに表示するアクションの名前。 | | `labels..appDisplayName`\* | 文字列 | アプリの全てのアクションが表示される、[アクションを選択]\_\_パネルのセクションの名前。複数のアクションで`appDisplayName`が定義されている場合、最初に見つかった名前が使用されます。 | | `labels..actionCardContent` | 文字列 | アクションのカードに表示する説明の要約。 | | `labels..executionRules` | オブジェクト | `executionRules`の定義を、ワークフローの履歴に実行結果として表示されるメッセージにマッピングするオブジェクト。 | | `objectTypes` | 配列 | このアクションで処理できるCRMオブジェクトタイプ。空白の場合、全てのオブジェクトタイプで当該アクションを使用できます。 | | `outputFields` | 配列 | アクションによって出力される値。この値は、エージェントまたはワークフローの後続アクションで使用できます。カスタムアクションの出力はゼロにすることも、1つまたは複数にすることもできます。 | | `executionRules` | オブジェクト | ワークフローを作成するユーザーに対し、貴社のサービスからのエラーを示すために指定できる定義のリスト。 | ## ベストプラクティス エージェントツールを作成する際には、次のベストプラクティスのチェックリストを念頭に置いてください。 * 最初に任意のフィールドを使用し、その後安定した場合にのみこれらのフィールドを必須に設定します。 * フィールドにラベルを付けて説明を作成する際には、人間とAIの両方を考慮します。 * AIによってツールがどのように解釈されるかを理解するため、最初は少数のエージェント指示を使用してテストを行います。 * ツールの焦点を維持し、フィールドの数に注意します。 * フィールドの説明を使用して、エージェントの創造性をコントロールします。 それぞれのベストプラクティスについて、以下のセクションで詳しく説明します。 > [!WARNING] > > **注**: > > 以下のガイダンスの一部には、エージェントツールのテストに関する情報が含まれていますが、これらのテスト機能は現在開発段階です。エージェントツールのドキュメントは、テスト手法が利用可能になった時点で更新されます。 ### 任意のフィールドを使用して開発を行う アクティブな開発の際にアクションのフィールド(`inputFields`)を必須に設定しないでください。フィールドが必須に設定され、プロジェクトがアップロードされた後では、そのフィールドを削除または更新することができません。フィールドを必須に設定するのは、フィールドの詳細(`name`や`type`など)について確信できる場合のみにしてください。この制限の理由は、必須フィールドを変更すると、アクションを含むアクティブなワークフローが機能しなくなることにあります。 ### 人間とAIの理解を促進する開発 `actionName`、`inputFields`、`labels`は、その用途と実用性を人間とエージェントの両方に明確に伝える必要があります。これらのフィールドは特に、アクションを呼び出すタイミングとツールにデータを渡す方法を理解する目的でエージェントにより使用されます。ツールを作成する際には、LLMでは人間のユーザーに対する場合よりも明確な説明が必要になる可能性があることに注意してください。例えば、人間であれば`Date`というラベルの付いたフィールドを直感的に理解できるかもしれませんが、LLMでは`Event start date (YYYY-MM-DD)`の方が適切なことがあります。 理想的には、エージェントがツールを使用するために追加の指示を必要としないように、ツールを作成する必要があります。ただし、フィールドの詳細だけではエージェントにとって不十分な場合があります。例えば、他のツールの出力に依存するツールを実行する場合の意図的な操作順序をエージェントが理解できないことがあります(例:「Eメールを送信」ツールが、最初に実行される「連絡先情報を取得」ツールに依存している場合)。 ツールを作成する際には、エージェントがツールを理解する仕組みをより深く理解するため、最初にエージェントの指示を追加せずにエージェントでツールをテストします。テストを行うことで、推論エンジンが単独で正しく動作するかどうか、追加の指示が必要かどうかを判断できます。 ### 入力フィールドの数に注意する エージェントは、ツールごとに多数の入力フィールド(最大26の固有の入力)を処理できます。ただし、ツールの入力フィールドの数が多いほど、`actionName`、`inputField`、`label`の値を割り当てるときにより明確にする必要があります。ツールの効果と信頼性が最も高くなるのは、ツールが特定のタスクを対象として、限定的なパラメーターセットを使用して設計されている場合です。複雑な操作の場合、入力の数が多すぎる単一のツールよりも、複数の単純なツールを作成する方が効果的であるかどうかを検討してください。 > [!WARNING] > > **注**: > > 将来的に、大量の入力を処理するエージェントの品質に関するフィードバックに基づいて、HubSpotが入力の数を制限する可能性があります。 ### エージェントの創造性と即興性をコントロールする 状況によっては、エージェントが創造的かつ即興的に対応するようにしたいことがあります。ただし、エージェントが即興的に対応しないことが必要な状況もあります。入力フィールド名、ラベル、説明を使用してLLMに指示することを試してみます。より厳密なガイダンスが必要な場合は、エージェントに対する指示を追加し、期待する内容を明確に設定します。 例えば、ブログ記事を生成し、1つのフィールドをブログ記事のタイトルにするというタスクをエージェントに与えるとします。エージェントにどの程度即興で対応してもらいたいかに応じて、フィールドに許容的なラベルを付けるか、またはより制限的なラベル付けることができます。 * **許容的**: `"Blog title"` * **制限的**: `"Blog title (must include the product name 'HubSpot CRM')"` 別の例として、ソーシャルメディア投稿コンテンツ用の次の入力フィールドラベルを考えてみましょう。 * **許容的**: `"Social post content"` * **中程度**: `"Social post content (keep under 280 characters)"` * **制限的**: `"Social post content (must mention our Q4 sale, include #HubSpot, and stay under 280 characters)"` ## エージェントツールのリクエストの発生元を確認する エージェントがツールを使用してリクエストを行う際には、そのツールの`actionUrl`に対して`POST`リクエストを送信します。エージェントツールの呼び出しを認証するため、リクエストと共に送信された`X-HubSpot-Signature`ヘッダーが検証されます。これは、HubSpotが[Webhookリクエストの検証](/docs/apps/legacy-apps/authentication/validating-requests#validate-the-v3-request-signature)に使用するシステムと同じです。 > [!WARNING] > > **注**: > > シークレットやAPIキーの入力フィールドは作成しないでください。これは、LLMに対する指示でシークレット/APIキーを与える必要があるか、またはLLMが別のツールからシークレット/APIキーを受け取る必要がある場合には特に、安全でなく、意図された認証パターンではないためです。 # イベントタイプの作成と管理(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/app-events/create-and-manage-event-types イベント オカレンス データをHubSpotに送信できるように、アプリ イベント タイプを定義する方法をご確認ください。 アプリ イベント データをHubSpotに送信するには、まず、開発者プロジェクトを使用してイベントタイプを作成します。イベントタイプとは、送信するイベント オカレンス データの構造、プロパティー、検証ルールを定義するJSONスキーマのことです。このスキーマは、イベント名、表示ラベル、ターゲットCRMオブジェクト、イベントプロパティーからなります。また、イベントタイプにはCRMレコードのタイムラインをレンダリングするための表示テンプレートの定義も含めます。 > [!WARNING] > > このドキュメントで説明するアプリイベントは、開発者プロジェクトを使用して[アプリマーケットプレイス](https://ecosystem.hubspot.com/marketplace/apps)向けに開発されたアプリを対象としています。他のタイプの連携を対象にカスタム イベント レポートを作成するには、代わりに[カスタムイベント](/docs/api-reference/events-manage-event-definitions-v3/guide)を使用してください。 ## 前提条件 アプリ イベント タイプの定義をプロジェクトに含めるには、次の条件を満たす必要があります。 * HubSpot CLIバージョン`7.5.4`以降を使用していること。使用しているCLIのバージョンを確認するには、`hs --version`を実行します。また、バージョンを更新するには、`npm i -g @hubspot/cli@next`を実行します。 * アプリ イベント コンポーネントを追加してプロジェクトを更新できるように、あらかじめプロジェクトをデプロイすること。 ## プロジェクトファイルを設定する > [!NOTE] > > 以前に作成した、タイムラインイベントを使用する公開アプリがある場合は、[開発者プラットフォームに公開アプリを移行する](#migrate-an-existing-timeline-event-type)方法について詳細をご確認ください。 **1. アプリの設定とプロジェクトの構造** プロジェクトで新しいアプリ イベント タイプの定義を作成するには、[アプリの設定](/docs/apps/developer-platform/build-apps/app-configuration)`hsmeta.json`ファイルを更新して、`requiredScopes`フィールドに`timeline`スコープを含めます。こうしなければ、アプリ イベント データはCRMレコードのタイムラインに表示されません。イベントデータが正常に送信されように、インストーラーがこのスコープを付与する必要があります。 ```json theme={null} "requiredScopes": [ "timeline" ], ``` > [!NOTE] > > アプリに組み込まれている機能によっては、他の[スコープ](/docs/apps/legacy-apps/authentication/scopes#list-of-available-scopes)も追加しなければならない場合があります。 次に、プロジェクトの`app/`ディレクトリー内に`app-events`ディレクトリーを追加します。`app-events/`ディレクトリー内に、アプリ イベント タイプを定義するJSON設定ファイルを追加します。このファイルには任意の名前を付けることができますが、ファイル名の末尾は`*-hsmeta.json`にする必要があります。アプリごとに、それぞれ固有の`*-hsmeta.json`ファイルを持つ最大750個のイベントタイプを含めることができます。 ```shell theme={null} project-folder/ └── src/ └── app/ ├── app-hsmeta.json └── app-events/ └── my-event-type-hsmeta.json ``` **2. イベント タイプ スキーマを設定する** イベントタイプの`*-hsmeta.json`ファイルで、[イベント タイプ スキーマ](/docs/apps/developer-platform/add-features/app-events/reference#event-type-schema)を設定します。このスキーマで、イベントタイプ属性(名前、CRMレコードのタイムライン表示テンプレート、イベントデータを関連付けるCRMオブジェクトタイプなど)を設定します。 これらのフィールドの中には作成後に更新できるものもありますが、`name`フィールドと`objectType`フィールドは、イベントタイプの作成後に変更することはできません。 例えば、顧客のログインイベントを追跡する場合は、以下のイベント タイプ スキーマを使用できます。 ```json theme={null} { "uid": "customer_login_event", "type": "app-event", "config": { "name": "Customer login", "headerTemplate": "{{customerName}} logged in", "detailTemplate": "{{customerName}} logged in via the {{loginLocation}}.", "objectType": "CONTACT", "properties": [ { "name": "customerName", "label": "Customer Name", "type": "string" }, { "name": "loginLocation", "label": "Login location", "type": "enumeration", "options": [ { "value": "mobileApp", "label": "Mobile app" }, { "value": "website", "label": "Website" } ] } ] } } ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | イベントタイプの内部固有ID。 | | `type`\* | 文字列 | コンポーネントのタイプ。`app-event`でなければなりません。 | | `name`\* | 文字列 | HubSpotに表示されるラベル(最大50文字)。この値を作成後に更新することはできません。 | | `objectType`\* | 文字列 | イベントオカレンスを関連付けることができるCRMオブジェクトタイプの完全修飾名。この値を作成後に変更することはできません。`COMPANY`、`CONTACT`、`CUSTOM_OBJECT`、`DEAL`、`TICKET`、`APP_OBJECT`のいずれかを指定できます。 | | `headerTemplate` | 文字列 | CRMタイムライン アクティビティー カードのヘッダーの[表示テンプレート](/docs/apps/developer-platform/add-features/app-events/reference#rendering-templates)。使用できる文字数は最大1,000文字です。 | | `detailTemplate` | 文字列 | CRMタイムライン アクティビティー カードの本文の[表示テンプレート](/docs/apps/developer-platform/add-features/app-events/reference#rendering-templates)。使用できる文字数は最大10,000文字です。 | | `properties` | 配列 | イベント オカレンス データを格納する、イベントタイプ用に定義されたプロパティー。イベントタイプごとに最大500個のプロパティーを設定できます。[アプリイベントのリファレンスドキュメント](/docs/apps/developer-platform/add-features/app-events/reference)で、要件や制限を含め、プロパティーの詳細についてご確認ください。 | **3. HubSpotに変更内容をアップロードする** HubSpotにプロジェクトをアップロードするには、`hs project upload`コマンドを使用します。 ```shell theme={null} hs project upload ``` ビルドフェーズの際に、HubSpotがイベントタイプを検証します。スキーマ検証エラーがある場合は、CLIから、何を修正すべきかを示すエラーが返されます。 既定では、ビルドが成功すると、HubSpotによってプロジェクトが自動的にデプロイされます。[プロジェクト設定](/docs/apps/developer-platform/build-apps/manage-apps-in-hubspot#view-your-app-on-the-project-details-page)でこの機能をオフにしている場合は、`hs project deploy`を使用して手動でデプロイできます。 デプロイが完了すると、アプリ イベント タイプが有効になり、これを使用してイベント オカレンス データを受信できるようになります。 ## fullyQualifiedNameを取得する 当該イベントタイプに対応するイベント オカレンス データを送信するには、アプリイベントAPIを使用して`fullyQualifiedName`を取得する必要があります。この名前はイベントタイプを識別するものであり、アプリイベントAPIの全ての操作では、この名前を含める必要があります。 `eventTypeName`を取得するには、`POST`リクエストを`https://api.hubapi.com/integrators/timeline/v4/types/projects`に送信します。リクエスト本文には、以下のフィールドを含めます。 * `projectName`フィールド。プロジェクトの`hsproject.json`ファイルに含まれる`name`値に設定する必要があります。 * `developerSymbol`フィールド。イベントタイプの`*-hsmeta.json`設定ファイルに含まれる`uid`値に設定する必要があります。 ```json theme={null} { "projectName": "my-marketplace-app", "developerSymbol": "customer_login_event" } ``` レスポンスでは、プロジェクト名、イベントタイプ名、`fullyQualifiedName`が返されます。 ```json highlight={6} theme={null} { "developerQualifiedSymbol": { "projectName": "marketplace", "developerSymbol": "customer_login_event" }, "fullyQualifiedName": "ae000000_integrators-timeline-event-type-id-0000000" } ``` `fullyQualifiedName`値は変更されないため、実装にハードコードしても問題ありません。APIでは、この値を取得できる1日あたりの回数に制限が適用されるため、プログラムによってこのAPIを使用することはできません。 ## イベントタイプを管理する イベントタイプを作成後に更新するには、プロジェクト内のイベント タイプ スキーマを更新してから、プロジェクトを再度アップロードしてアプリをビルドし、デプロイすればよいだけです。 イベントタイプを使用する必要がなくなった場合は、プロジェクトから削除できます。ただし、イベントタイプを削除する前に、次の点にご注意ください。 * イベントタイプは完全に削除されます。この削除操作を元に戻すことはできません。 * イベントタイプを削除すると、アプリをインストールした全てのアカウントから、イベントタイプとそのタイプの全てのイベントオカレンスが削除されます。 * イベントタイプを削除すると、そのイベントタイプに依存する他のHubSpotツール(レポートやワークフローなど)が機能しなくなります。 イベントタイプを削除するには、プロジェクトからイベントタイプ設定ファイル`*-hsmeta.json`を削除した上で、プロジェクトをアップロードしてデプロイします。 ## 既存のタイムライン イベント タイプを移行する タイムラインイベントを使用する既存の公開アプリがある場合は、CLIを使用して、その公開アプリを開発者プラットフォームに移行できます。 > [!WARNING] > > アプリを移行する前に、以下の点をご確認ください。 > > * [公開アプリ移行ガイド](/docs/apps/developer-platform/build-apps/migrate-an-app/migrate-an-existing-public-app)で、開発者プラットフォームベータ版に関する現在の考慮事項と制限について確認します。 > * 既存のタイムライン イベント タイプ(`v1`/`v3`)を開発者プラットフォームに移行した後、7日以内に既存の`v1`/`v3`タイムラインイベントAPIリクエスト(当該イベントタイプのイベントオカレンス/インスタンスAPIリクエストの両方を含む)を新しい`v4`エンドポイントに合わせて変更する必要があります。7日が経過すると、`v1`/`v3`イベント オカレンス エンドポイントに対する既存の呼び出しは`401`エラーを返します。 > * イベントタイプおよびテンプレートを作成、更新するためにAPIを使用する必要はなくなりました。代わりに、[イベントタイプ設定ファイル](/docs/apps/developer-platform/add-features/app-events/reference#event-type-schema)を使用して、プロジェクト内で直接イベントタイプおよびテンプレートを管理します。 > * イベント オカレンス データを送信するには、[1回送信エンドポイントと一括送信エンドポイント](/docs/apps/developer-platform/add-features/app-events/send-event-occurrences)の両方を提供する`v4`エンドポイントを使用する必要があります。 アプリを移行するには、次の手順に従います。 * ターミナルで、`hs app migrate`を実行し、ターミナルプロンプトに従ってアプリとタイムラインイベントを移行します。 * 移行プロセスが完了すると、アプリは開発者プロジェクト内で有効になり、ローカル プロジェクト ディレクトリーが自動的に作成されます。 * HubSpotでプロジェクトを開くには、ローカル プロジェクト ディレクトリーに移動して、`hs project open`を実行します。 生成される設定ファイル(`*-hsmeta.json`)には、`null`値のフィールドが含まれている場合があります。これらのフィールドは移行によるアーティファクトであり、削除しても問題ありません。 ## 次のステップ イベントタイプを作成した後は、[APIを使用してイベント オカレンス データを送信する](/docs/apps/developer-platform/add-features/app-events/send-event-occurrences)方法をご確認ください。 また、引き続きアプリイベントの作成とカスタマイズを行うには、[アプリイベントのリファレンスドキュメント](/docs/apps/developer-platform/add-features/app-events/reference)をご確認ください。 # アプリイベントの概要(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/app-events/overview 最新バージョンの開発者プラットフォームでアプリイベントを定義する方法をご確認ください。 アプリイベントを使用すると、外部システムで拡充されたアクティビティーデータを直接HubSpotに送信できます。アプリ イベント データはCRMレコードに関連付けられるため、HubSpotのオートメーションツール、アナリティクスツール、レポートツールで使用できます。 アプリイベントの仕組みについては、以下のセクションで詳しく説明します。アプリイベントをプロジェクトに組み込むには、まず、次のようにします。 * [イベントタイプを作成する](/docs/apps/developer-platform/add-features/app-events/create-and-manage-event-types) * [イベント オカレンス データを送信する](/docs/apps/developer-platform/add-features/app-events/send-event-occurrences) * [アプリイベントのリファレンスドキュメント](/docs/apps/developer-platform/add-features/app-events/reference)を確認する > [!WARNING] > > このドキュメントで説明するアプリイベントは、開発者プロジェクトを使用して[アプリマーケットプレイス](https://ecosystem.hubspot.com/marketplace/apps)向けに開発されたアプリを対象としています。他のタイプの連携を対象にカスタム イベント レポートを作成するには、代わりに[カスタムイベント](/docs/api-reference/events-manage-event-definitions-v3/guide)を使用してください。 ## アプリイベントの仕組み イベントとは、特定の時点で発生した事象を捕捉するデータポイントを指します。イベントは多くの場合、フォームの送信、SMSメッセージの送信、ページの閲覧といったユーザーのアクションに関係するものです。CRMレコードはエンティティーの現在の状態を明らかにすることを目的としていますが、イベントはそれとは異なり、アクティビティーのパターン、経時的な行動の変化や、その他の傾向について理解を深めるために使用できます。 > [!TIP] > > 次のようなデータについては、アプリイベントが非常に役立ちます。 > > * 繰り返し発生するアクションまたはアクティビティーを表すデータ。 > * 経時的な変化や量を分析する必要があるデータ。 > * 作成後に更新する必要がないデータ。 大まかには、アプリイベントは以下の要素からなります。 * **イベントタイプの定義**: イベントの構造、プロパティー、検証ルールを定義するJSONスキーマ。このスキーマは、イベント名、表示ラベル、ターゲットCRMオブジェクト、イベントプロパティーからなります。また、イベントタイプにはCRMレコードのタイムラインをレンダリングするための表示テンプレートの定義も含めます。イベントタイプは、開発者プロジェクトを使用して定義します。 * **イベントオカレンス**: 実際のデータを格納し、イベント タイプ スキーマに照らし合わせて検証される、個々のイベントインスタンス。イベント オカレンス データはアプリイベントAPIを介して送信されます。このデータには、イベントタイプ識別子、プロパティー値、タイムスタンプとその他のメタデータ、ならびにCRMレコードの関連付けに関するCRMオブジェクト参照データが含まれます。 > [!NOTE] > > **タイムラインイベントとアプリイベントの違い** > > HubSpotでは以前、CRMオブジェクトのタイムラインにイベントデータを表示できるように、タイムラインイベントをリリースしていました。アプリイベントは、拡大されたサポート対象オブジェクト全体でタイムラインイベントと同じ機能を果たせるだけでなく、HubSpotの他のツールでも利用できます。アプリイベントでも、カスタムイベントを使用できるようになったとともに、固有のインデックスページが設定され、イベントアクティビティーを一元的に把握できるようになりました。 > > 既存のタイムラインイベント連携も引き続き機能し、アプリイベントと同じ場所に表示されます。ただし、新しいイベントタイプを作成する場合や、既存のタイプに変更を加える場合には、開発者プロジェクトでアプリイベントとして作成/再作成する必要があります。 ## サポート対象のオブジェクトとツール イベントタイプを定義する際は、イベントデータをそのソース(ウェブサイトにログインしたコンタクトなど)に結び付けられるように、イベントタイプを特定のCRMオブジェクトと関連付けて設定します。これにより、イベントオカレンスが該当するタイプのCRMレコードに関連付けられるようになります。アプリイベントには、以下のCRMオブジェクトを関連付けることができます。 * コンタクト * 会社 * 取引 * チケット * カスタムオブジェクト * アプリオブジェクト アプリイベントは、以下のHubSpotツールで使用できます。 * **イベント管理インターフェース**: アカウントで[データ管理]\*\*\*\*>[カスタムイベント]\*\*\*\*に移動すると、カスタム イベント ダッシュボードでカスタム イベント データと併せてアプリ イベント データを確認し、分析できます。 * **CRMレコードのタイムライン**: イベントオカレンスに関連付けられているCRMレコードのタイムラインで、アプリ イベント アクティビティーを時系列で確認できます。 * **レポートツール**: 分析と可視化を目的に、アプリ イベント データを使用してカスタムレポート、カスタマー ジャーニー アナリティクス、データセットを作成できます。 * **リードスコア、リスト、ワークフロー**: 動的リスト、リードスコアリング、ワークフローのトリガーを目的に、イベントを使用してCRMデータベースをセグメント化できます。 ## ベストプラクティス イベントタイプを作成する際のベストプラクティスは以下のとおりです。 * [イベントタイプ](/docs/apps/developer-platform/add-features/app-events/reference#event-type-schema)と[プロパティー](/docs/apps/developer-platform/add-features/app-events/reference#event-properties)は、ワークフロー、リスト、レポート、カスタム イベント ダッシュボードでフィルターとして表示されるため、明確で分かりやすい名前にします。 * データに一致し、正確な適切なフィルタリングおよび分析を可能にする、適切なプロパティータイプ(文字列、数値、日時など)を選択します。 * セグメンテーション、レポート作成、自動化トリガーに役立つプロパティー(取引金額、ユーザーロール、アクションカテゴリーなど)を含めます。 * レポート作成やワークフローのユースケースを念頭に、ユーザーがイベントデータを絞り込んでグループ化する方法を考慮してイベントタイプを設計します。 * イベント構造に依存する既存のワークフローやレポートが中断される可能性があるため、既存のイベント タイプ スキーマには破損につながるような変更を加えないようにします。 高品質のイベントデータを維持するには、次のようにします。 * プログラムによるイベント オカレンス データ リクエストをレビューして、イベント タイプ スキーマに照らし合わせて適切に検証されることを確認します。 * イベントのプロパティー値(特に日付、数値、カテゴリーデータ)には一貫した書式設定を使用します。 * イベントオカレンスが[有効なCRMレコードID](/docs/apps/developer-platform/add-features/app-events/send-event-occurrences#crm-record-association)に関連付けられるようにします。 * イベント送信の成功率と[エラーレスポンス](/docs/apps/developer-platform/add-features/app-events/reference#occurrence-send-errors)をモニタリングします。 * CRMレコードのタイムラインとカスタム イベント ダッシュボードで、イベントデータが正確であることを定期的に確認します。 イベント送信のパフォーマンスを最適化するには、次の方法があります。 * 可能な場合は、1つのAPIリクエストで[複数のイベントオカレンスを一括処理](/docs/apps/developer-platform/add-features/app-events/send-event-occurrences#sending-event-occurrences)します(バッチあたり最大500件)。 * イベントオカレンスのペイロードの無駄をなくすために、必要なプロパティーデータのみを含めます。 * 失敗したイベント送信に対してエクスポネンシャルバックオフ方式の再試行ロジックを実装します。 ## 制限事項 アプリイベントを計画および作成する際は、次の制限事項にご注意ください。 ### バージョンの要件 * アプリイベントは、最新バージョンの開発者プロジェクトプラットフォーム(`2025.2`)でのみ作成できます。 * 既存のイベントタイプについては、引き続き[v1](/docs/api-reference/legacy/crm-timeline-v1/get-integrations-v1-application-id-timeline-event-event-typeid-event-id)および[v3のタイムラインイベントAPI](/docs/api-reference/crm-timeline-v3/guide)を使用できます。ただし、`v1`および`v3`のAPIを使用して新しいイベントタイプを作成することはできません。 ### イベントタイプに関する制約 * イベントオカレンスは、定義されたイベントタイプのスキーマに準拠している必要があります。そうでない場合は拒否されます。 * 一部の[イベントタイプのフィールド](/docs/apps/developer-platform/add-features/app-events/reference#event-type-schema)は、イベントタイプが作成された後に更新することはできません(`name`、`objectType`など)。 * 新しいイベントタイプは、審査プロセスを経てからでないと有効化できません。 ### データの制限 * 個々のプロパティーは最大510KBに制限され、イベントの合計サイズには1MBの上限が適用されます。 * アプリイベントはアプリマーケットプレイスのプロバイダーを対象としており、OAuth認証を使用するように設定されているアプリでのみ機能します。内部システムでは、代わりに[カスタムイベント](/docs/api-reference/events-manage-event-definitions-v3/guide.mdx)を使用する必要があります。 ## 使用の開始 アプリイベントの使用を開始するには、次のことを行う必要があります。 * 開発者プロジェクトを使用して、イベントデータの構造を定義する[イベントタイプを作成](/docs/apps/developer-platform/add-features/app-events/create-and-manage-event-types)します。 * [アプリイベントAPI]()を使用して、[イベント オカレンス データをアプリに送信](/docs/apps/developer-platform/add-features/app-events/send-event-occurrences#send-a-single-occurrence)します。 * HubSpotのレポートツール、オートメーションツール、またはアナリティクスツールで、必要に応じてデータを活用します。 # アプリイベントのリファレンス(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/app-events/reference 最新バージョンの開発者プラットフォームのアプリイベントに関する参照情報。 以下でイベントタイプのスキーマ、イベントタイムライン表示テンプレート、イベントオカレンスのフィールドなど、アプリイベントの使用に関する参照情報を紹介します。 ## プロジェクトの構成 プロジェクトのコンテキストで、イベントタイプの定義を`app/`内の`app-events`ディレクトリーに配置します。`app-events`ディレクトリーには、各イベントタイプのJSONスキーマ定義ファイル(`*-hsmeta.json`)が含まれている必要があります。 ```shell theme={null} project-folder/ └── src/ └── app/ ├── app-hsmeta.json └── app-events/ └── my-event-type-hsmeta.json ``` イベントタイプの定義をプロジェクトに含めるための要件を以下に示します。 * アプリがOAuth認証を使用しており、アプリマーケットプレイスでの配布用に設定されている必要があります。また、アプリの`requiredScopes`に`timeline`が含まれている必要があります。[アプリの設定](/docs/apps/developer-platform/build-apps/app-configuration)についての詳細をご確認ください。 * アプリ イベント コンポーネントを含めるには、その前にプロジェクトが正常にデプロイされている必要があります。 ## イベント タイプ スキーマ イベント タイプ スキーマで使用できる設定オプションを以下に示します(`*-hsmeta.json`)。以下の属性の一部は、イベントタイプが作成された後に変更することはできません。 > [!WARNING] > > 各アプリで使用できるイベントタイプは750個に制限されています。 ```json theme={null} { "uid": "customer_login_event", "type": "app-event", "config": { "name": "Customer login", "headerTemplate": "{{customerName}} logged in.", "detailTemplate": "{{customerName}} logged in via the {{loginLocation}}.", "objectType": "CONTACT", "properties": [ { "name": "customerName", "label": "Customer Name", "type": "string" }, { "name": "loginLocation", "label": "Login location", "type": "enumeration", "options": [ { "value": "mobileApp", "label": "Mobile app" }, { "value": "website", "label": "Website" } ] } ] } } ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | イベントタイプの内部固有ID。 | | `type`\* | 文字列 | コンポーネントのタイプ。`app-event`でなければなりません。 | | `name`\* | 文字列 | HubSpotに表示されるラベル(最大50文字)。この値を作成後に更新することはできません。 | | `objectType`\* | 文字列 | イベントオカレンスを関連付けることができるCRMオブジェクトタイプの完全修飾名。この値を作成後に変更することはできません。`COMPANY`、`CONTACT`、`CUSTOM_OBJECT`、`DEAL`、`TICKET`、`APP_OBJECT`のいずれかを指定できます。 | | `headerTemplate` | 文字列 | CRMタイムライン アクティビティー カードのヘッダーの[表示テンプレート](#rendering-templates)。使用できる文字数は最大1,000文字です。 | | `detailTemplate` | 文字列 | CRMタイムライン アクティビティー カードの本文の[表示テンプレート](#rendering-templates)。使用できる文字数は最大10,000文字です。 | | `properties` | 配列 | イベント オカレンス データを格納する、イベントタイプ用に定義されたプロパティー。イベントタイプごとに最大500個のプロパティーを設定できます。イベントプロパティーの詳細については、以下をご確認ください。 | ### イベントプロパティー イベントスキーマを定義するときには、`properties`配列を使用して、イベント オカレンス データの送信先フィールドを定義します。イベントタイプごとに最大500個のプロパティーを設定できます。 ```json theme={null} "properties": [ { "name": "customerName", "label": "Customer Name", "type": "string" }, { "name": "loginLocation", "label": "Login location", "type": "enumeration", "options": [ { "value": "mobileApp", "label": "Mobile app" }, { "value": "website", "label": "Website" } ] } ] ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `name`\* | 文字列 | プロパティーの内部名。小文字で1~500文字にする必要があります。プロパティーはイベントタイプで重複しない名前にする必要がありますこの値は正規表現`"[A-Za-z0-9_\\-.]+"`と一致させることはできません。また`hs_`で始まる値にはできません。 | | `label`\* | 文字列 | HubSpotに表示されるラベル。小文字で1~500文字にする必要があります。 | | `type`\* | 文字列 | プロパティーで取得されるデータのタイプ。`STRING`、`NUMBER`、`DATE`、`ENUMERATION`のいずれかを指定できます。 | | `options` | 配列 | `ENUMERATION`タイプのプロパティーの場合、このフィールドは使用可能なオプションを示します。1つ以上のオプションを含める必要があります。各オプションは、以下を含むオブジェクトです。
  • `name`:HubSpotに表示されるオプションのラベル。
  • `value`:イベントオカレンスによって提供される内部値
`name`と`label`はイベントタイプ内で重複しないものである必要があります。 | | `objectPropertyName` | 文字列 | このフィールドが含まれている場合、イベントデータがHubSpotに送信される時点で更新されるCRMオブジェクトのプロパティーの名前です。このプロパティーの値によって、そのプロパティーの既存の値が上書きされます。CRMレコードのプロパティーにデータを付加する方法については、以下をご覧ください。 | ### プロパティーへのデータの付加 場合によっては、アプリ イベント オカレンス データに基づいてCRMレコードのプロパティー値を変更することがあります。例えば、コンタクトの姓名を、オカレンス(例:フォーム送信)によって設定された新しい値に更新することがあります。 イベントオカレンスによってCRMレコードプロパティーを更新するには、イベントプロパティーをイベント タイプ スキーマ内のCRMプロパティーにリンクします。特定のイベントプロパティーの定義フィールドに、`objectPropertyName`フィールドを含め、リンクするCRMプロパティーを指定します。プロパティーがリンクされると、HubSpotは常に`timestamp`フィールドに基づく最新のオカレンスの値を使用して、CRMレコードのプロパティー値を更新します。 例えば以下のイベント タイプ スキーマは、イベントプロパティー`customerName`をカスタム コンタクト プロパティー`custom_property_name`にリンクします。イベント オカレンス データに`customerName`の値が含まれている場合、関連付けられているCRMレコードの`custom_property_name`が更新されます。 ```json theme={null} "properties": [ { "name": "customerName", "label": "Customer Name", "type": "string", "objectPropertyName": "custom_property_name" } ] ``` ### 表示テンプレート イベント タイプ スキーマには`headerTemplate`フィールドと`detailTemplate`フィールドを含めることができます。これらのフィールドにより、イベントオカレンスがCRMレコードタイムラインにどのように表示されるかを設定できます。 * `headerTemplate`:アクティビティーカードの上部に、イベントに関する1行の説明(最大1,000文字)として表示する。 * `detailTemplate`:アクティビティカードの本文に、イベントの詳細(最大10,000文字)として表示する。 表示テンプレートは、[Markdown](https://www.markdownguide.org/basic-syntax/)と[Handlebars](https://handlebarsjs.com/guide/)テンプレートを使用して作成されています。これらのテンプレートは、イベント オカレンス データを次のように表示できます。 * どちらのテンプレートでも、構文`{{propertyName}}`を使用して、イベントオカレンスによって渡される`property`データにアクセスできます。 * `detailTemplate`では、構文`{{extraData.fieldName}}`を使用して、イベントオカレンスによって渡される`extraData`値にもアクセスできます。ドット表記(例:`{{extraData.person1.preferredName}}`)を使用して、`extraData`の任意の属性ティアにアクセスできます。 > [!WARNING] > > `extraData`オブジェクトには有効なJSONのみを含めることができます。JSONの形式が正しくない場合、オカレンスは却下され、エラーレスポンスが返されます。 例えば以下のテンプレートでは、`customerName`プロパティーと`loginLocation`プロパティーのデータと、[イベントオカレンスにより送信された](#event-occurrences)`extraData`の`surveyData`フィールドが使用されています。 ![コンタクトタイムラインに表示テンプレートの例がどのように表示されるかを示すスクリーンショット。](https://www.hubspot.com/hubfs/Knowledge_Base_Images/CRM/Contacts/example-timeline-event-rendering-template.png) ```json theme={null} "headerTemplate": "{{customerName}} logged in via the {{loginLocation}}.", "detailTemplate": "#### Post-login survey\n{{#each extraData.surveyData}}\n- **{{question}}**: {{answer}}\n{{/each}}", ``` テンプレートはMarkdownとHandlebarsを使用して作成されるため、Handlebarsヘルパーを利用してコンテンツをより動的にできます。例えば次の`detailTemplate`には、イベント オカレンス データの`extraData`に`surveyData`フィールドが含まれているかどうかに基づいて、コンテンツを条件付きで表示する[`#if`ヘルパー](https://handlebarsjs.com/guide/builtin-helpers.html#if)が含まれています。 * `extraData`に`surveyData`が含まれている場合は、ログイン後のアンケートの回答が表示されます。 * イベントオカレンスに`surveyData`がない場合は、`No additional information.`が表示されます。 ![コンタクトタイムラインに以下のサンプルコードががどのように表示されるかを示すスクリーンショット。](https://www.hubspot.com/hubfs/Knowledge_Base_Images/CRM/Contacts/if-helper-in-handlebars-template.png) ```json theme={null} "detailTemplate": "{{#if extraData.surveyData}}#### Post-login survey\n{{#each extraData.surveyData}}\n- **{{question}}**: {{answer}}\n{{/each}}{{else}}No additional information." ``` ### iframeの使用 イベント オカレンス データに`timelineIFrame`フィールドが含まれている場合、タイムライン アクティビティー カードには、ユーザーがリンク先のコンテンツをiframeで表示できるハイパーリンクが含まれます。 ![timelineIFrameフィールドによってタイムライン アクティビティー カードに含まれるリンクのスクリーンショット](https://www.hubspot.com/hubfs/Knowledge_Base_Images/CRM/Contacts/app-events-timeline-card-iframe-link.png) ```json theme={null} "timelineIFrame": { "linkLabel": "Click me", "headerLabel": "This is an iframe", "url": "https://hubspot.mintlify.io/en-us/apps/developer-platform/build-apps/overview", "width": 300, "height": 300 } ``` | フィールド | 型 | 説明 | | - | - | - | | `linkLabel` | 文字列 | クリックするとiframeが表示されるハイパーリンクテキスト。 | | `headerLabel` | 文字列 | iframeコンテンツを表示するモーダルウィンドウのラベル。 | | `url` | 文字列 | iframeコンテンツのURL。 | | `width` | 整数 | iframeモーダルの幅。 | | `height` | 整数 | iframeモーダルの高さ。 | ## イベントオカレンス 特定のイベントタイプのイベントオカレンスを送信するには、以下のエンドポイントに対する`POST`リクエストを送信します。アプリイベントAPIには、1件のイベントオカレンスを送信するためのエンドポイントと、複数のイベントオカレンスを一括送信するためのエンドポイントが含まれています。どちらのエンドポイントでも、イベント オカレンス データを既存のイベント タイプ スキーマに照らして検証する必要があります。これはリクエスト本文の`eventTypeName`で指定します。 **1件のオカレンスを送信する** 1件のイベントオカレンスを送信するには、`/integrators/timeline/v4/events`に対する`POST`リクエストを送信します。 リクエスト本文に、イベントタイプの定義済みスキーマに従ってイベント オカレンス データを含めます。 ```json theme={null} { "eventTypeName": "ae000000_integrators-timeline-event-type-id-0000000", "objectId": "123456", "id": "login-1", "properties": { "customerName": "Mark S.", "loginLocation": "mobileApp" } }, ``` **複数のオカレンスを一括送信する** 複数のイベントオカレンスを一括送信するには、`/integrators/timeline/v4/events/batch`に対する`POST`リクエストを送信します。 リクエスト本文の`inputs`配列に、カンマ区切りのイベント オカレンス オブジェクトを最大500個まで含めます。検証に失敗したオカレンスがある場合でも、正常に検証されたオカレンスは引き続き受け入れられ、保持されます。 ```json theme={null} { "inputs": [ { "EventTypeName": "ae000000_integrators-timeline-event-type-id-0000000", "id": "login_event_100", "objectId": "769851", "properties": { "customerName": "Tim", "loginLocation": "mobileApp" }, "extraData": { "surveyData": [ { "question": "How was your login experience?", "answer": "Fine!" }, { "question": "How likely are you to recommend logging in to a co-worker?", "answer": "Extremely likely" } ] } }, { "EventTypeName": "ae000000_integrators-timeline-event-type-id-0000000", "id": "login_event_101", "objectId": "769851", "properties": { "customerName": "Tim", "loginLocation": "website" }, "extraData": {} } ] } ``` リクエスト本文に、定義されているイベント タイプ スキーマに基づくデータを含めます。リクエスト本文に`eventTypeName`を含める必要があります。これは、[APIを使用して取得](/docs/apps/developer-platform/add-features/app-events/create-and-manage-event-types#retrieve-the-fullyqualifiedname)できます。 ```json theme={null} { "eventTypeName": "ae000000_integrators-timeline-event-type-id-0000000", "objectId": "8675309", "properties": { "customerName": "Mark S.", "loginLocation": "mobileApp" }, "id": "login-1529a3gda23", "extraData": { "surveyData": [ { "question": "How was your login experience?", "answer": "Fine!" }, { "question": "How likely are you to recommend logging in to a co-worker?", "answer": "Extremely likely" } ] } } ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `eventTypeName`\* | 文字列 | イベントタイプの完全修飾名。APIを使用してイベントを識別するときに使用します。この値はHubSpotによって自動設定され、イベントタイプの作成後に、[APIを使用して取得](/docs/apps/developer-platform/add-features/app-events/create-and-manage-event-types#retrieve-the-fullyqualifiedname)できます。この値を作成後に変更することはできません。 | | `objectId`\* | 文字列 | イベントオカレンスに関連付けるCRMレコードのID。このフィールドはあらゆるタイプのCRMレコードに使用でき、識別子として推奨されます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `email` | 文字列 | コンタクトの関連付けの場合、関連付けるコンタクトのEメールアドレスを指定できます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `utk` | 文字列 | コンタクトの関連付けの場合、関連付ける既存のコンタクトのユーザートークンを指定できます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `domain` | 文字列 | 会社の関連付けの場合、関連付ける既存の会社のウェブサイトのドメインを指定できます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `timestamp` | 文字列 | イベントオカレンスの時刻([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式)を設定します。指定しない場合、既定でイベント オカレンス データの送信時刻のタイムスタンプに設定されます。 | | `properties` | オブジェクト | イベントタイプで定義した[プロパティー](/docs/apps/developer-platform/add-features/app-events/reference#event-properties)のプロパティー名と値のキーと値のペア。 | | `extraData` | 配列 | このフィールドが含まれている場合、タイムライン表示に関する追加情報を示します。有効なJSONである必要があります。[表示テンプレートの追加データ](#rendering-templates)の詳細をご確認ください。 | | `timelineIFrame` | オブジェクト | このフィールドが含まれている場合、ユーザーがリンク先のコンテンツをiframeで表示できるハイパーリンクがタイムラインカードに組み込まれます。[iframeの使用](#using-iframes)についての詳細をご確認ください。 | | `id` | 文字列 | イベントオカレンスの固有ID。イベントタイプ内で重複しないようにする必要があります。指定しない場合、HubSpotによりランダムなUUIDが生成されます。複数のイベントのIDが同一である場合、最初のイベントのIDが受け入れられ、その他は全て拒否されます。 | 検証に失敗したオカレンスがある場合でも、正常に検証されたオカレンスは引き続き受け入れられ、保持されます。レスポンスに含まれるエラーメッセージには、修正が必要な内容に関する情報が記述されます。 ![イベント オカレンス データの送信時に表示されるエラーメッセージの例のスクリーンショット](https://www.hubspot.com/hubfs/Knowledge_Base_Images/CRM/Contacts/timeline-events-api-error-validation-example.png) ### CRMレコードの関連付け 各イベントオカレンスは、イベント タイプ スキーマで定義されたCRMオブジェクトタイプを持つCRMレコードに関連付けられている必要があります。アプリイベントAPIには、イベント オカレンス データをCRMレコードに関連付けるための複数のフィールドがあります。サポートされている全てのCRMオブジェクトでは、`objectId`フィールドを使用することをお勧めします。ただし、場合によっては他のフィールドを使用することがあります。 * `utk`/`email`:コンタクトのIDが不明な場合は、識別に`utk`フィールドと`email`フィールドのいずれかまたは両方を使用します。両方の識別子を指定すると、コンタクトを作成および更新することもできます。以下に例を示します。 * `utk`が既存のコンタクトに一致しても`email`が一致しない場合、HubSpotは新しいEメールアドレスでコンタクトを更新します。 * `objectId`が指定されていない場合、イベントオカレンスは`utk`/`email`に一致する既存のコンタクトに関連付けられ、一致するコンタクトが見つからない場合はHubSpotによって新しいコンタクトが作成されます。 * `utk`のみでは新しいコンタクトレコードを作成できないことにご注意ください。適切な関連付けを確保するために、常に`utk`と`email`を含める必要があります。 * `domain`:会社の関連付けの場合、`objectId`を指定する必要があります。また、会社の`domain`プロパティーを更新するために`domain`を含めることもできます。 # イベントオカレンスを送信する(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/app-events/send-event-occurrences HubSpotで、定義したイベント タイプ スキーマを使用してイベント オカレンス データを送信する方法を説明します。 [イベント タイプ スキーマを定義](en-us/apps/developer-platform/build-apps/features/app-events/create-and-manage-event-types)し、[そのfullyQualifiedNameを取得](/docs/apps/developer-platform/add-features/app-events/create-and-manage-event-types#retrieve-the-fullyqualifiedname)したら、アプリイベントAPIを使用してイベント オカレンス データを送信できます。イベントデータを送信する際には、事前に作成したスキーマに従う必要があります。スキーマに一致しないリクエストは検証に失敗し、アプリはこのリクエストをキャプチャーしません。 ## イベントオカレンスの送信 **1件のオカレンスを送信する** 1件のイベントオカレンスを送信するには、`/integrators/timeline/v4/events`に対する`POST`リクエストを送信します。 リクエスト本文で、イベントタイプの定義済みスキーマの後にイベントデータを含め、`eventTypeName`フィールドに`fullyQualifiedName`値を指定します。 ```json theme={null} { "eventTypeName": "ae000000_integrators-timeline-event-type-id-0000000", "objectId": "123456", "id": "login-1", "properties": { "customerName": "Mark S.", "loginLocation": "mobileApp" } }, ``` **複数のオカレンスを一括送信する** 複数のイベントオカレンスを一括送信するには、`/integrators/timeline/v4/events/batch`に対する`POST`リクエストを送信します。 リクエスト本文の`inputs`配列に、カンマ区切りのイベント オカレンス オブジェクトを最大500個まで含めます。検証に失敗したオカレンスがある場合でも、正常に検証されたオカレンスは引き続き受け入れられ、保持されます。 ```json theme={null} { "inputs": [ { "EventTypeName": "ae000000_integrators-timeline-event-type-id-0000000", "id": "login_event_100", "objectId": "769851", "properties": { "customerName": "Tim", "loginLocation": "mobileApp" }, "extraData": { "surveyData": [ { "question": "How was your login experience?", "answer": "Fine!" }, { "question": "How likely are you to recommend logging in to a co-worker?", "answer": "Extremely likely" } ] } }, { "EventTypeName": "ae000000_integrators-timeline-event-type-id-0000000", "id": "login_event_101", "objectId": "769851", "properties": { "customerName": "Tim", "loginLocation": "website" }, "extraData": {} } ] } ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `eventTypeName`\* | 文字列 | イベントタイプの完全修飾名。APIを使用してイベントを識別するときに使用します。この値はHubSpotによって自動設定され、イベントタイプの作成後に、[APIを使用して取得](/docs/apps/developer-platform/add-features/app-events/create-and-manage-event-types#retrieve-the-fullyqualifiedname)できます。この値を作成後に変更することはできません。 | | `objectId`\* | 文字列 | イベントオカレンスに関連付けるCRMレコードのID。このフィールドはあらゆるタイプのCRMレコードに使用でき、識別子として推奨されます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `email` | 文字列 | コンタクトの関連付けの場合、関連付けるコンタクトのEメールアドレスを指定できます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `utk` | 文字列 | コンタクトの関連付けの場合、関連付ける既存のコンタクトのユーザートークンを指定できます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `domain` | 文字列 | 会社の`domain`プロパティー値を設定するときに、`objectId`に加えてこのフィールドを含めます。[CRMレコードの関連付け](#crm-record-association)について詳細をご確認ください。 | | `timestamp` | 文字列 | イベントオカレンスの時刻([ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)形式)を設定します。指定しない場合、既定でイベント オカレンス データの送信時刻のタイムスタンプに設定されます。 | | `properties` | オブジェクト | イベントタイプに設定したプロパティーのプロパティー名と値のキーと値のペア。[イベントプロパティー](/docs/apps/developer-platform/add-features/app-events/reference#event-properties)の詳細をご確認ください。 | | `extraData` | オブジェクト | [タイムライン表示テンプレート](/docs/apps/developer-platform/add-features/app-events/reference#rendering-templates)で使用できる追加情報。有効なJSON形式である必要があります。 | | `timelineIFrame` | オブジェクト | このフィールドが含まれている場合、ユーザーがリンク先のコンテンツをiframeで表示できるハイパーリンクがタイムラインカードに組み込まれます。[iframeの使用](/docs/apps/developer-platform/add-features/app-events/reference#using-iframes)についての詳細をご確認ください。 | | `id` | 文字列 | イベントオカレンスの固有ID。イベントタイプ内で重複しないようにする必要があります。指定しない場合、HubSpotによりランダムなUUIDが生成されます。複数のイベントのIDが同一である場合、最初のイベントのIDが受け入れられ、その他は全て拒否されます。 | ## CRMレコードの関連付け 各イベントオカレンスは、イベント タイプ スキーマで定義されたCRMオブジェクトタイプを持つCRMレコードに関連付けられている必要があります。アプリイベントAPIには、イベント オカレンス データをCRMレコードに関連付けるための複数のフィールドがあります。サポートされている全てのCRMオブジェクトでは、`objectId`フィールドを使用することをお勧めします。ただし、場合によっては他のフィールドを使用することがあります。 * `utk`/`email`:コンタクトのIDが不明な場合は、識別に`utk`フィールドと`email`フィールドのいずれかまたは両方を使用します。両方の識別子を指定すると、コンタクトを作成および更新することもできます。以下に例を示します。 * `utk`が既存のコンタクトに一致しても`email`が一致しない場合、HubSpotは新しいEメールアドレスで(`utk`に一致する)コンタクトを更新します。 * `objectId`が指定されていない場合、イベントオカレンスは`utk`/`email`に一致する既存のコンタクトに関連付けられ、一致するコンタクトが見つからない場合はHubSpotによって新しいコンタクトが作成されます。 * `utk`のみでは新しいコンタクトレコードを作成できないことにご注意ください。適切な関連付けを確保するために、常に`utk`と`email`を含める必要があります。 * `domain`:会社の関連付けの場合、`objectId`を指定する必要があります。また、会社の`domain`プロパティーを更新するために`domain`を含めることもできます。 以下に、CRMレコードの関連付けプロパティーの優先順位を示します。最も小さい数値が最も高い優先順位となります。 | フィールド | 優先順位 | 説明 | | - | - | - | | `objectId` | 1 | CRMレコードID(推奨)。 | | `utk` | 2 | コンタクトのユーザートークン(コンタクトのみ)。 | | `email` | 3 | コンタクトのEメールアドレス(コンタクトのみ)。 | | `domain` | 4 | 会社ドメイン(会社のみ)。 | ## 追加データの送信 [イベントプロパティー](/docs/apps/developer-platform/add-features/app-events/reference#event-properties)へのデータの送信と[イベントオカレンスによるCRMプロパティーの更新](/docs/apps/developer-platform/add-features/app-events/reference#property-stamping)の他に、`extraData`オブジェクトを使用して[タイムライン表示](/docs/apps/developer-platform/add-features/app-events/reference#rendering-templates)のための追加データを含めることができます。 > [!WARNING] > > `extraData`オブジェクトには有効なJSONのみを含めることができます。JSONの形式が正しくない場合、オカレンスは却下され、エラーレスポンスが返されます。 イベントタイプの`detailTemplate`では、`{{extraData.fieldName}}`構文を使用して`extraData`フィールドの値にアクセスできます。`extraData`の全ての属性レベルは、`{{extraData.person1.preferredName}}`などのドット表記形式で指定できます。 例えば以下のテンプレートでは、`customerName`プロパティーと`loginLocation`プロパティーのデータと、[イベントオカレンスにより送信された](#event-occurrences)`extraData`の`surveyData`フィールドが使用されています。 ![コンタクトタイムラインに表示テンプレートの例がどのように表示されるかを示すスクリーンショット。](https://www.hubspot.com/hubfs/Knowledge_Base_Images/CRM/Contacts/example-timeline-event-rendering-template.png) **イベント オカレンス データ** ```json theme={null} { "eventTemplateId": "5488733", "objectId": "769851", "tokens": { "customerName": "Tim", "loginLocation": "mobileApp" }, "extraData": { "surveyData": [ { "question": "How was your login experience?", "answer": "Fine!" }, { "question": "How likely are you to recommend logging in to a co-worker?", "answer": "Extremely likely" } ] } } ``` **タイムラインテンプレートの設定** ```json theme={null} "headerTemplate": "{{customerName}} logged in via the {{loginLocation}}.", "detailTemplate": "#### Post-login survey\n{{#each extraData.surveyData}}\n- **{{question}}**: {{answer}}\n{{/each}}", ``` # はじめに:概要 Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/app-objects/overview HubSpotで開発を始める方法について学びましょう。 初めてHubSpotの開発者になった人も、スキルを伸ばそうとしている開発者も、このセクションのガイドを参考にして使い始めることができます。ここでは、利用可能なさまざまな開発ルートについて、また目標の達成に必要な具体的なツールやアカウントについて説明します。 ## 統合プラットフォームの利点 まず、HubSpotが開発者にとって強力なプラットフォームであると言える理由を見ていきましょう。 全てのHubSpotアカウントの基盤は[CRM](/docs/guides/crm/understanding-the-crm) (顧客関係管理)プラットフォーム、つまりさまざまなビジネス関係とプロセスから成るデータベースです。HubSpotには、外部の開発者やパートナーがCRMと連携するためのさまざまなルートが備わっているので、HubSpotエンドユーザー向けにより多くの価値を生み出すことができます。次に例を示します。 * HubSpotのAPIとの連携機能/拡張機能を作成して、HubSpotと外部プラットフォームの間でデータを同期します。 * HubSpot CMS(コンテンツ管理システム)を使用してカスタムウェブサイトを作成します。コンテンツ管理ツールのスイート全体に加えて、CMSは完全にCRMと連携します。これにより、キャンペーンの開始、リード(見込み客)の獲得、顧客との継続的なコミュニケーションを管理しやすくなります。 * UI拡張機能を使用してCRMをカスタマイズする。開発者はReactを使用して、HubSpotとシームレスに連携する柔軟なカスタムカードを作成できます。 次のセクションでは、HubSpot開発者が利用できるツールの概要について説明します。その後、ルートを選んでHubSpot開発者ジャーニーを進んで行くことができます。 ## 1.作成に役立つツールをインストールする HubSpot開発者向けに幅広いツールが用意されています。開発者の具体的な目標に応じて、必要なツールの組み合わせが異なります。 * \*\*HubSpot CLI:\*\*多くの開発タスクでは、ローカル開発用のHubSpot CLIをインストールすることが効果的な出発点となります。UI拡張機能とCMSアセットを作成するときにはCLIを使用し、シークレット、HubDBテーブル、およびカスタム オブジェクト データをアカウントから作成/管理するときにもCLIを使用できます。[Node.jsが](https://nodejs.org/en/)インストールされている必要があります(必須バージョンは18以上、推奨されるバージョンはLTSです)。CLIをグローバルにインストールするには、次のコマンドを実行します。 ```shell theme={null} npm i -g @hubspot/cli ``` * **Visual Studioコード:**[Visual Studio Code](https://code.visualstudio.com/)をインストールすると、[HubSpot Visual Studio Code拡張機能](https://developers.hubspot.com/docs)を利用して開発ワークフローを一元化できます。 * **クライアントライブラリー**: HubSpotには、[Node](https://github.com/HubSpot/hubspot-api-nodejs)、[PHP](https://github.com/HubSpot/hubspot-api-php)、[Ruby](https://github.com/HubSpot/hubspot-api-ruby)、および[Python](https://github.com/HubSpot/hubspot-api-python)用のクライアントライブラリーが備わっています。 * **Postman:**[Postman](https://www.postman.com/)を使用して、[HubSpotのPostmanコレクション](https://www.postman.com/hubspot)にアクセスします。HubSpotのAPIドキュメント全体にわたり、コレクションを使って呼び出しを実行するためのボタンがあります。 ![run-in-postman-current-docs-site](https://www.hubspot.com/hubfs/run-in-postman-current-docs-site.png) [HubSpotの開発者ツール](/docs/developer-tooling/overview)について詳細をご覧ください。 ## 2. 何を作成するかを決める HubSpotで開発するためのルートは画一的ではありません。幅広いニーズに対応できる柔軟なプラットフォームです。 以下に挙げる4つの広範なカテゴリーのいずれかで、大部分のニーズが満たされるでしょう。現時点で最も該当するものを1つ選んでください。簡単な紹介と、すぐに開始できるステップが説明されます。また、ジョブに最適なツールについて理解し、[特定の種類のHubSpotアカウント](/docs/getting-started/account-types)が必要かどうか確認することもできます。 * [APIを使用して連携を作成する](https://developers.hubspot.com#use-apis-and-build-integrations) * [マーケットプレイス向けのアプリを作成する](https://developers.hubspot.com#build-for-the-app-marketplace) * [HubSpot UIをカスタマイズする](https://developers.hubspot.com#customize-the-hubspot-ui) * [カスタムウェブサイトを作成する](https://developers.hubspot.com#build-custom-websites) ## 3. 仲間に加わりましょう 既にHubSpotで作成を行っている仲間とつながりましょう。質問をしたり、知識を共有したり、コミュニティーを作ったりして、やがて友達ができるかもしれません。 * [開発者Slack](https://developers.hubspot.com/community) * [開発者フォーラム](https://community.hubspot.com/t5/HubSpot-Developers/ct-p/developers) * [開発者アドボカシーGitHub](https://github.com/hubspotdev) ## 4. 自分に合った方法で学習を続けます 始める準備が整ったら、より深く掘り下げるのに役立つ多くのリソースが用意されています。ご希望の学習スタイルに応じて、詳細なガイド、詳しい参考資料、または[HubSpotアカデミーコース](https://academy.hubspot.com/courses)にアクセスできます。 # アプリオブジェクトを使ってみる(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/app-objects/quickstart-guide-to-app-objects 新しい概念実証の統合アプリ(ベータ版)を作成する方法について説明します。 > [!NOTE] > > この機能を使用するには、HubSpotからの承認が必要です。アプリオブジェクトへのアクセスの申請に関心がある場合、または機能について詳しく知りたい場合は、[こちらのフォーム](https://developers.hubspot.com/app-objects-interest)をお送りください。 概念実証アプリを作成する方法を説明します。この方法では、開発者テストアカウントでテストおよび使用できるアプリオブジェクトを設定します。 **1. HubSpot CLIの最新バージョンをインストールする** 統合アプリを作成するには、[HubSpot CLI](/docs/developer-tooling/local-development/hubspot-cli/reference)の最新ベータ版が必要です。ターミナルウィンドウで次のコマンドを実行します。 ```shell theme={null} npm install -g @hubspot/cli@next ``` CLIのバージョンは`7.4.4-beta.0`以降である必要があります。`hs --version`を実行すると、CLIのバージョンを確認できます。 **2. 開発者アカウントを認証する** 次のコマンドを実行して開発者アカウントを認証する必要があります。 ```shell theme={null} hs auth ``` * 画面の指示に従ってアカウントでパーソナル アクセス キーを生成し、このキーをコピーしてターミナルに貼り付け、設定を保存します。 * このベータ期間中は、このアカウントをCLIの既定にすることが推奨されます。これにより、ベータに登録したアカウントのアクセスで発生する可能性があるエラーを回避できます。 **3. 新しいボイラープレートプロジェクトを作成する** ターミナルで以下のコマンドを実行し、現在互換性のある機能またはアプリオブジェクト参照スキーマを使用して新しいプロジェクトアプリおよびマーケットプレイスアプリを作成します。 ```shell theme={null} hs project create --templateSource robrown-hubspot/hubspot-project-components-ua-app-objects-beta ``` **4. 新しく作成したプロジェクトを設定し、開発者アカウントにアップロードする** プロジェクトフレームワークは、UIまたはAPIで以前に設定されたアプリ機能を、ソース コード ファイル(通常は`-hsmeta.json`設定ファイルとして定義されるファイル)に移動します。 アプリ機能は、必要に応じて、メインの`/src/app`ディレクトリーのサブフォルダーと他の設定ファイルの組み合わせを使用して作成されます。プロジェクトを設定するには、次のようにします。 * ローカル(または別の非本番)OAuthサーバー設定に基づいて、1つ以上の有効なリダイレクトURLを`app-hsmeta.json`ファイルに追加します。 > [!TIP] > > ### 注: > > 最初に、[OAuth Node.jsのサンプル](http://github.com/hubspot/oauth-quickstart-nodejs)を使用してローカルで実行できます。これは、前のステップで実行した`hs project create`コマンドのボイラープレート サンプル コードで設定されたリダイレクトURLとして、`https://localhost:3000/oauth-callback`で機能するようにすでにセットアップされています。 * `app-hsmeta.json`ファイル内のアプリの`uid`プロパティーと、プロジェクト内の他の`*-hsmeta.json`設定ファイルを変更します。 > [!WARNING] > > UIDは、プロジェクトの全てのコンポーネントと機能の固有IDとして使用されます。機能とUIDの作成後に、後続のデプロイでUIDが変更または修正されると、プラットフォームは変更後のUIDを以前の機能と異なるものとして認識しますが、これは想定外である可能性があります。 * 統合アプリにアプリオブジェクトを使用する場合、オブジェクトのリクエストに基づいて許可されるのは、承認済みの「name」プロパティーの定義のみです。この非公開ベータの一環として、アプリの承認済みの「name」を別途確認している必要があります。これは`*-object-hsmeta.json`設定で使用されます。参考までに、アプリオブジェクトの完全修飾名(FQN)は`a_`です。例えば、`appId`が`16858319`で`name`プロパティーが`CARS`であった場合、FQNは`a16858319_cars`になります。 * 変更を保存したら、CLIコマンド`hs project upload`を実行してプロジェクトをHubSpot開発者プラットフォームにアップロードし、自動的に新しいビルドをトリガーします。 * ブラウザーウィンドウで`https://app.hubspot.com/developer_projects/`に移動してプロジェクトUIにアクセスし、アプリとプロジェクトが正しく作成、ビルド、デプロイされていることを確認します。 **5. アプリのクライアントIDとクライアントシークレットをアプリに追加する** * プロジェクトをアップロードしたら、OAuth設定にコピーするアプリの認証の詳細を取得する必要があります。 * [開発]ナビゲーションメニューの[プロジェクト]をクリックします\*\*。\*\*\_\_ * 新しいプロジェクトの**名前**をクリックします。 * アプリの**UID**をクリックし、[認証]タブをクリックします\*\*。\*\* * 新しいアプリから「クライアントID」\_\_と「クライアントシークレット」\_\_をコピーし、ローカルOAuthサーバーの設定内の対応する場所に貼り付けてから、OAuthサーバーを再起動します。 **6. アプリのオブジェクトスキーマ設定を構成する** 次に、アプリ オブジェクト スキーマを設定します。 * `/src/app`ディレクトリー内にディレクトリーを作成し、`app-objects`という名前を付けて、新しいアプリオブジェクトを追加します。新しいディレクトリーのパスは`/src/app/app-objects`です。 * オブジェクトのスキーマを表す新しい設定ファイルを作成します。このファイル名のプレフィックスとして、プレビュープロセス中にアプリに付与されたオブジェクト名を使用し、その後に`-object-hsmeta.json`と続ける必要があります。例えばリファレンス プロジェクト テンプレートでは、アプリオブジェクト名は「CAR」であるため、作成される設定ファイルの名前は`car-object-hsmeta.json`になります。 * [アプリ オブジェクト コンポーネント定義](/docs/apps/developer-platform/add-features/app-objects/reference#app-schema)の参照ファイルを参照し、フィールドをカスタマイズして、アプリオブジェクトの該当する値にします。 * 定義の`config`オブジェクト内にある`name`フィールドは、レビュープロセス中にアプリに付与された名前(`UPPER_SNAKE_CASE`形式)と一致している必要があります。 * 次のステップでプロパティーとフィールドがアプリ オブジェクト スキーマに追加され、プロジェクトにアップロードされた後は、これらのプロパティーとフィールドを削除できません。 > [!TIP] > > ### 注: > > テスト中に、開発ライフサイクルをサポートするために複数のアプリで同じアプリオブジェクト名を使用できます。この概念実証アプリから始めて、移行が実行可能になったら、開発アプリ、ステージングアプリ、本番アプリで同じ名前とスキーマ定義を使用できます。これらの各インスタンスのUIDは一意である必要があります。 * アプリ オブジェクト スキーマ定義の編集が完了し、これらの変更をコミットする準備ができたら、次のコマンドを実行して変更を保存します。 ```shell theme={null} hs project upload hs project deploy ``` * ブラウザーウィンドウで`https://app.hubspot.com/developer_projects/`に移動してプロジェクトUIにアクセスし、アプリとプロジェクトが正しく作成、ビルド、デプロイされていることを確認します。 **7. アプリを更新する** アプリ オブジェクト スキーマがアップロードされたので、次は`app-hsmeta.json`ファイルで定義されたスコープを更新して、前のステップで作成したスコープを反映する必要があります。これらのスコープは、`hs project upload`の実行後にCLIログに表示されます。 * `app-hsmeta.json`ファイルを編集し、`auth`定義内の`requiredScopes`の配列に新しいスコープを追加します。例えば`appId`が`a12345`だった場合、`auth`定義を次のように編集します。 ```json theme={null} "auth": { "type" : "oauth", "redirectUrls": ["http://localhost:3000/oauth-callback"], "requiredScopes": [ "crm.objects.contacts.read", "crm.objects.contacts.write", "crm.app.objects.a12345_my_app_object.view", "crm.app.objects.a12345_my_app_object.create", "crm.app.objects.a12345_my_app_object.edit", "crm.app.schemas.a12345_my_app_object.read", "crm.app.objects.a12345_my_app_object.merge", "crm.app.objects.a12345_my_app_object.delete", "crm.app.schemas.a12345_my_app_object.properties.write" ], "optionalScopes": [], "conditionallyRequiredScopes": [] }, ``` > [!WARNING] > > ### 注: > >
    >
  • > 顧客がアプリオブジェクトを表示できるのは、`schemas.read` > スコープがアプリ設定に含まれており、 > インストール/再認証のOAuthフローでリクエストされた場合だけです。設定に全てのアプリ オブジェクト スコープを > 含めることを強くおすすめしますが、`schemas.read`は > 顧客がアクセスできるようにするために必須です。例えば`appId`が`12345`の場合、 > `crm.app.schemas.a12345_MY_APP_OBJECT.read`を必須スコープとして > 含めます。 >
  • > >
  • > テストに使用するアプリ(プロトタイプ、開発、ステージング、 > 本番)に応じて、スコープ定義を追加する場所に > 注意する必要があります。非公開ベータのこの段階では、本番アプリのデプロイはまだサポートされていませんが > 本番環境の準備ができたら、これらのスコープを > `conditionallyRequiredScopes`として含めるのが一般に最も安全です。 > これらのスコープタイプの詳細については[公開アプリの > ドキュメント](/docs/apps/legacy-apps/public-apps/overview#scope-types)をご確認ください。 >
  • >
* これらのスコープの追加が完了し、変更を保存したら、次のコマンドを実行して変更をプラットフォームにコミットします。 ```shell theme={null} hs project upload hs project deploy ``` デプロイが完了すると、アプリとそれに対応するアプリオブジェクトは、インストール済みアカウントでテストできる状態になります。 **8. 開発者テストアカウント(任意)を作成してアプリをインストールする** [テストアカウント](/docs/getting-started/account-types#developer-test-accounts)をまだお持ちでない場合は、HubSpotで作成できます。 * [開発]\_\_ナビゲーションメニューの[テストアカウント]\*\*\*\*に移動し、[開発者テストアカウントを作成]\*\*\*\*をクリックします。画面の指示に従って、新しいテストアカウントを作成します。 * 左側のサイドバーメニューで[プロジェクト]\*\*\*\*に移動し、新しいプロジェクトの**名前**をクリックして、コンポーネントリストでアプリの**UID**をクリックします。 * [認証]\_\_タブで、アプリのインストールリンクをコピーします。 * このリンクを使用して、開発者テストアカウントにアプリをインストールします。 * テストアカウントを開き、[接続されたアプリ]\_\_ページに移動すると、インストール済みのアプリがリストに表示されます。 * テストアカウントで[**CRM**]>[コンタクト]\*\*\*\*に移動し、CRMオブジェクトのドロップダウンメニューをクリックして、アプリオブジェクトが使用可能であることを確認します。 * その後、アプリオブジェクトの新しいレコードを作成して、スキーマ定義が設定ファイルに準拠していることを確認できます。 ![app-object-available-in-crm](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/test-app-object-in-developer-test-account-1.png) **9. HubSpotオブジェクトAPIを使用したプログラムによるデータアクセス** アプリオブジェクトを作成し、開発者テストアカウントでテストしたので、次にインストールしたテストアカウントに関連付けられているOAuthアクセストークンを使用して、オブジェクトAPIでアカウント内のデータを更新するリクエストを直接実行できます。 APIの詳細については[オブジェクトAPI](/docs/guides/crm/using-object-apis)をご確認ください。ただし、アプリオブジェクトに固有のリクエストは、HubSpotの他の標準オブジェクトと同じ規則に従います。アプリオブジェクトの`objectTypeId`または`fullyQualifiedName`をリクエストの`objectType`パスパラメーターとして使用する必要があります。 例えば次のコードブロックは、アプリオブジェクトの新しいレコードを作成するためのcURLリクエストを送信する方法を示しています。 ```shell theme={null} curl --request POST \ --url https://api.hubapi.com/crm/v3/objects/ \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' \ --header 'content-type: application/json' \ --data '{ "properties": { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" } }' ``` レコード インデックス ページに移動すると、アプリオブジェクトの`objectTypeId`を確認できます。 * アプリをインストールした開発者テストアカウントで[**CRM**]>[コンタクト]\*\*\*\*に移動します。 * ページ上部の**ドロップダウン**メニューをクリックして、**アプリオブジェクト**を選択します。 * `objectTypeId`は、URLの`/objects//views`部分に表示されます。 ## 次のステップ 開発者プラットフォームのさまざまな機能でアプリオブジェクトを使用する方法を[参照ドキュメント](/docs/apps/developer-platform/add-features/app-objects/reference)でご確認ください。 * [アプリカードを設定する](/docs/apps/developer-platform/add-features/app-objects/reference#app-card-schema) * [Webhook配信登録を設定する](/docs/apps/developer-platform/add-features/app-objects/reference#webhooks-component-definition) * [他のCRMオブジェクトタイプとの関連付けを有効にする](/docs/apps/developer-platform/add-features/app-objects/reference#app-object-associations) # アプリオブジェクトのリファレンス(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/app-objects/reference アプリやアプリオブジェクトなどの設定オプションを含む、アプリオブジェクトの作成に関する参照情報。 > [!NOTE] > > この機能を使用するには、HubSpotからの承認が必要です。アプリオブジェクトへのアクセスの申請に関心がある場合、または機能について詳しく知りたい場合は、[こちらのフォーム](/docs/apps/developer-platform/add-features/app-objects/overview)をお送りください。 以下で、アプリオブジェクトを使用した開発者プラットフォームのアプリ機能のリファレンス情報(設定ファイルの定義、スコープの詳細など)を紹介します。 ## プロジェクトの構成 * 全てのプロジェクトコンポーネントは、`hsproject.json`設定ファイルに指定されている`src`ディレクトリー内に配置されている必要があります。 * アプリの全ての機能とコンポーネントは`app/`ディレクトリー内に配置される必要があります。 * アプリオブジェクトの関連付けは、`app-object-associations/`ディレクトリー内で定義されます。 * Webhook配信登録は`webhooks/`ディレクトリー内で定義されます。 * カスタム ワークフロー アクションは`workflow-actions/`ディレクトリー内で定義されます。 * 全てのカード機能は`cards/`ディレクトリー内に配置されている必要があります。 * 全てのコンポーネントと機能のインスタンスは、`*-hsmeta.json`ファイルを使用して宣言されます。ファイル名の前に意味のあるプレフィックスを付ける必要があります(例:`my-app-hsmeta.json`)。これらのファイルは、該当するフォルダーのルートレベルに配置されている必要があります(例:`app/my-app-hsmeta.json`、`cards/my-card-hsmeta.json`)。 以下のディレクトリー構造の例は、利用可能な全ての機能の概要を示しています。 ```shell theme={null} my-folder/ ├── hsproject.json ├──src │ ├── app/ │ │ └── app-hsmeta.json/ │ │ └── app-objects/ │ │ └── my-app-object-hsmeta.json │ │ └── app-object-associations/ │ │ └── my-app-object-association-hsmeta.json │ │ └── webhooks/ │ │ └── webhooks-hsmeta.json │ │ └── cards/ │ │ └── my-app-card-hsmeta.json │ │ └── MyCard.jsx └── ``` > **[GitHubでサンプルを表示](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/tree/main/projects/app-object-getting-started-template)** ## アプリオブジェクト アプリオブジェクトを作成するには、プロジェクトに、設定ファイルを格納した`app-objects`コンポーネントディレクトリーを含めます。 ```shell theme={null} ... ├──src │ ├── app/ │ │ └── app-hsmeta.json │ │ └── ... │ │ └── app-objects/ │ │ └── my-app-object-hsmeta.json └── ``` `*-object-hsmeta.json`で使用できる設定オプションを以下に示します。 ```json theme={null} { "uid": "car-app-object", "type": "app-object", "config": { "name": "CAR", "appPrefix": "Vroom", "description": "An automobile in our warehouse.", "singularForm": "Car", "pluralForm": "Cars", "primaryDisplayLabelPropertyName": "model", "secondaryDisplayLabelPropertyNames": ["make"], "settings": { "hasRecordPage": true, "allowsUserCreatedRecords": true, "hasEngagements": true }, "properties": [ { "type": "string", "fieldType": "text", "name": "model", "label": "Model", "description": "The model of the car" }, { "type": "enumeration", "fieldType": "select", "name": "make", "label": "Make", "description": "The manufacturer of the car.", "options": [ { "label": "Ford", "value": "ford", "displayOrder": 0 }, { "label": "Toyota", "value": "toyota", "displayOrder": 1 }, { "label": "Chevrolet", "value": "chevrolet", "displayOrder": 2 } ] } ] } } ``` > **[GitHubでサンプルを表示](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/blob/main/projects/app-object-getting-started-template/src/app/app-objects/car-object-hsmeta.json)** \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | アプリオブジェクトの固有ID。プロジェクト全体で重複しないラベルにする必要があります。 | | `type`\* | 文字列 | コンポーネントのタイプ。親フォルダーの名前(`app-object`)に一致している必要があります。 | | `name`\* | 文字列 | アプリオブジェクトの名前。承認済みアプリの確認で受け取った承認済みの名前を使用します。大文字のスネークケース(`MY_OBJECT_NAME`)にする必要があります。 | | `appPrefix` | 文字列 | HubSpotのUIで、オブジェクトの単数形または複数形の名前の前に付ける文字列。これにより、他のオブジェクトと区別しやすくなります。この例では、`appPrefix`が`Vroom`、`singularForm`が`Car`であるため、UIに「Vroom Car」と表示されます。 | | `description`\* | 文字列 | HubSpotに表示されるオブジェクトの説明。 | | `singularForm`\* | 文字列 | オブジェクト名の単数形。 | | `pluralForm`\* | 文字列 | オブジェクト名の複数形。 | | `properties`\* | 配列 | オブジェクトに対して定義されているCRMプロパティーのリスト。プロパティーは、[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)と同じフィールドを使用して定義します。作成されるプロパティーには、作成時に`a_`が自動的に付加されます(例:`a12345_make`)。設定ファイルにプレフィックスを含めないでください。 | | `primaryDisplayLabelPropertyName`\* | 文字列 | [プライマリー表示プロパティー](https://knowledge.hubspot.com/object-settings/create-custom-objects#:~:text=object%27s%20singular%20name.-,Primary%20display%20property,-%3A%20the%20property%20used)として使用するプロパティーの名前。この値は、`properties`リストで指定される名前に一致している必要があります(つまり、生成された`a_`プレフィックスを含めることはできません)。 | | `secondaryDisplayLabelPropertyNames`\* | 配列 | [セカンダリー表示プロパティー](https://knowledge.hubspot.com/object-settings/create-custom-objects#:~:text=Secondary%20properties%3A)として使用するプロパティーのリスト。この値は、`properties`リストで指定される名前に一致している必要があります(つまり、生成された`a_`プレフィックスを含めることはできません)。 | | `settings`\* | オブジェクト | オブジェクト設定を含むオブジェクト。 | | `hasRecordPage`\* | ブール値 | このアプリオブジェクトのインスタンスのレコードページが存在するかどうか。`false`に設定すると、インデックスページは引き続き存在しますが、個々のレコードページへのリンクは含まれなくなります。 | | `allowsUserCreatedRecords`\* | ブール値 | エンドユーザーがオブジェクトを使用してレコードを作成できるかどうか。`false`に設定すると、ユーザーがHubSpotでレコードを作成できなくなります | | `hasEngagements`\* | ブール値 | アプリ オブジェクト レコードでアクティビティー/エンゲージメントをサポートするかどうか。`false`に設定すると、アプリ オブジェクト レコード ページには、アクティビティーのタブやアクティビティー関連のタイムラインフィルターなどのエンゲージメント機能が一切含まれなくなります。 | > [!NOTE] > > アプリオブジェクトの完全修飾名(FQN)は`a_`です。例:`appId`が`16858319`でアプリオブジェクト名が`CARS`の場合、FQNは`a16858319_CARS`になります。FQNは、アプリオブジェクトのスコープ値を設定する際に使用します。 ## アプリスキーマ アプリオブジェクトを作成するには、`app-hsmeta.json`設定ファイルを`app`ディレクトリーに含めます。 ```shell theme={null} ... ├──src │ ├── app/ │ │ └── app-hsmeta.json/ └── ``` `app-hsmeta.json`で使用できる設定オプションを以下に示します。 > **変更の要約** > > アプリカード設定ファイルの次の変更点に注意してください。 > > * 最上位フィールド`uid`、`type`、`config`が追加されました。 > * `extensions`フィールドが削除されました。 > * `distribution`フィールドが追加されました。 ```json theme={null} { "uid": "app_object_poc_app", "type": "app", "config": { "description": "An example to demonstrate how to build an app with an app object on developer projects.", "name": "my first app object app", "distribution": "marketplace", "auth": { "type": "oauth", "redirectUrls": ["http://localhost:3000/oauth-callback"], "requiredScopes": ["crm.objects.contacts.read", "crm.objects.contacts.write"], "optionalScopes": [], "conditionallyRequiredScopes": [] }, "permittedUrls": { "fetch": ["https://api.hubapi.com"], "iframe": [], "img": [] }, "support": { "supportEmail": "support@example.com", "documentationUrl": "https://example.com/docs", "supportUrl": "https://example.com/support", "supportPhone": "+18005555555" } } } ``` > **[GitHubでサンプルを表示](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/blob/main/projects/app-object-getting-started-template/src/app/app-hsmeta.json)** ### アプリスキーマ \*-hsmeta.jsonのフィールド \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | アプリの内部固有ID。プロジェクト全体で重複しないラベルにする必要があります。最大64文字の任意の文字列を指定できます。大文字または小文字を使用できます。数字、アンダースコア(`_`)、ダッシュ(`-`)、ピリオド(`.`)を含めることができます。 | | `type`\* | 文字列 | コンポーネントのタイプ。親フォルダーの名前(`app`)に一致している必要があります。 | | `description`\* | 文字列 | インストールを実行するユーザーに対するアプリの動作の説明。最大8192文字の任意の文字列を指定できます。 | | `name`\* | 文字列 | HubSpotに表示されるアプリの名前。最大200文字までの任意の文字列を指定できます。先頭や末尾を空白文字にすることはできません。 | | `distribution`\* | 文字列 | アプリの配布方法。アプリをアプリマーケットプレイスに掲載できるようにするには、`marketplace`に設定する必要があります。 | | `auth`\* | オブジェクト | アプリの認証方法の詳細を含むオブジェクト。詳細については、[認証フィールドの表](#auth-fields)をご確認ください。 | | `permittedUrls` | オブジェクト | アプリが呼び出すことができるURLを含む配列。URLではHTTPSスキームを使用する必要があります。また、URLには[オーソリティー](https://developer.mozilla.org/en-US/docs/Learn_web_development/Howto/Web_mechanics/What_is_a_URL#authority)、とその後に(必要に応じて)オプションのパスプレフィックスを含める必要があります。 | | `supportEmail` | 文字列 | ユーザーがサポートを受けるために連絡できる有効なEメールアドレス。 | | `documentationUrl` | 文字列 | ユーザーがサポートドキュメントを参照するためにアクセスできる外部URL。HTTPSを使用する必要があります。 | | `supportUrl` | 文字列 | ユーザーが追加のサポートを受けるためにアクセスできる外部URL。HTTPSを使用する必要があります。 | | `supportPhone` | 文字列 | ユーザーがサポートを受けるために連絡できる電話番号。プラス記号(`+`)で始まる必要があります。 | ### 認証フィールド \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `type`\* | 文字列 | 認証のタイプ。アプリでOAuth認証を使用するには、`oauth`に設定する必要があります。 | | `redirectUrls`\* | 配列 | OAuthプロセスで再ルーティング先として許可されるURLのリスト。各アプリには少なくとも1つの認証リダイレクトURLが必要であり、このURLではHTTPSを使用する必要があります。唯一の例外として、テスト目的の場合は`http://localhost`を使用できます。 | | `requiredScopes`\* | 配列 | アプリの必須スコープのリスト。各アプリには少なくとも1つのスコープが含まれる必要があります。アプリを正常にインストールするには、インストールを行うユーザーがこれらのスコープを付与する必要があります。[スコープの詳細については、以下の説明をご確認ください](#scopes)。 | | `optionalScopes` | 配列 | アプリの任意のスコープのリスト。アプリをインストールするアカウントまたはユーザーに適切な権限がない場合は、インストール時にこれらのスコープを認証から除外できます。その場合、作成されるリフレッシュトークンやアクセストークンにはスコープが含まれません。[スコープの詳細については、以下の説明をご確認ください](#scopes)。 | | `conditionallyRequiredScopes` | 配列 | インストールURLの`scope`クエリーパラメーターに含まれている場合にのみ必須であるスコープのリスト。[スコープの詳細については、以下の説明をご確認ください](#scopes)。 | ### スコープ アプリ設定ファイルの`auth`フィールドでは、必須スコープ、条件次第で必須となるスコープ、任意のスコープという[3種類のスコープ](/docs/apps/legacy-apps/public-apps/overview#scope-types)を指定できます。ベータのこの段階では、アプリ オブジェクト スコープを`conditionallyRequiredScopes`として含めるだけにしてください。これにより、インストールURLにアプリオブジェクトのスコープを含めることで、新機能の対象を特定の顧客のみに限定できます。 アプリ オブジェクト スコープでは次の形式が使用されます。 `crm.app.schemas..read` 例えばFQNが`a16858319_cars`のアプリオブジェクトの場合、`read`スコープは次のようになります: `crm.app.schemas.a16858319_cars.read`。 顧客がオブジェクトにアクセスできるようにするには、少なくともアプリに上記の`read`スコープを含める必要があります。次のように、アプリに全てのアプリ オブジェクト スコープを含めることをお勧めします。 ```json theme={null} "auth": { "type" : "oauth", "redirectUrls": ["http://localhost:3000/oauth-callback"], "requiredScopes": [ "crm.objects.contacts.read", "crm.objects.contacts.write", "crm.app.objects.a12345_MY_APP_OBJECT.view", "crm.app.objects.a12345_MY_APP_OBJECT.create", "crm.app.objects.a12345_MY_APP_OBJECT.edit", "crm.app.schemas.a12345_MY_APP_OBJECT.read", "crm.app.objects.a12345_MY_APP_OBJECT.merge", "crm.app.objects.a12345_MY_APP_OBJECT.delete", "crm.app.schemas.a12345_MY_APP_OBJECT.properties.write" ], "optionalScopes": [], "conditionallyRequiredScopes": [] }, ``` 使用可能な全てのスコープのリストについては、[スコープリファレンス](/docs/apps/legacy-apps/authentication/scopes)を参照してください。 ## Webhookコンポーネントの定義 アプリの一連のWebhook配信登録を定義するには、プロジェクトに、`*-hsmeta.json`設定ファイルを格納した`webhooks`ディレクトリーを含めます。 ```shell theme={null} ├──src │ ├── app/ │ │ └── app-hsmeta.json │ │ └── ... │ │ └── webhooks/ │ │ └── webhooks-hsmeta.json └── ``` `*-hsmeta.json`ファイルで使用できる設定オプションを以下に示します。 ```json theme={null} { "uid": "webhooks", "type": "webhooks", "config": { "settings": { "targetUrl": "https://example.com/webhook", "maxConcurrentRequests": 10 }, "subscriptions": { "crmObjects": [ { "subscriptionType": "object.creation", "objectType": "contact", "active": true }, { "subscriptionType": "object.propertyChange", "objectType": "car_app_object", "propertyName": "carProperty", "active": true } ], "legacyCrmObjects": [ { "subscriptionType": "contact.propertyChange", "propertyName": "lastname", "active": true }, { "subscriptionType": "contact.deletion", "active": true } ], "hubEvents": [ { "subscriptionType": "contact.privacyDeletion", "active": true } ] } } } ``` ### Webhook \*-hsmeta.jsonのフィールド \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | Webhookコンポーネントの内部固有ID。 | | `type`\* | 文字列 | コンポーネントのタイプ。この場合は`webhooks`にする必要があります。 | | `settings`\* | オブジェクト | 2つのフィールドを指定するオブジェクト。一方の`targetUrl`フィールドで、HubSpotがイベントペイロードを配信するために呼び出す、一般公開されたURLを指定します。もう一方の`maxConcurrentRequests`フィールドでは、HubSpotが所定の時間枠内に送信するHTTPリクエスト数の上限しきい値を指定します。 | | `subscriptions`\* | オブジェクト | アプリで配信登録する配信カテゴリーを指定するオブジェクト。 | | `crmObjects` | 配列 | イベント配信登録の定義からなる配列。これは標準で組み込まれる配列であり、新しい形式(`object.*`)の全てのイベントにはこの配列を使用する必要があります。イベントによっては、代わりに`legacyCrmObjects`配列と`hubEvents`配列に、従来のWebhook配信カテゴリーを含める必要があります。 | | `legacyCrmObjects` | 配列 | 従来の配信カテゴリー(`contact.creation`、`deal.deletion`など)からなる配列。 | | `hubEvents` | 配列 | 従来の配信カテゴリー`contact.privacyDeletion`および`conversation.*`からなる配列。 | `subscription`オブジェクトごとに、対象とする配信登録定義のタイプ(`crmObjects`、`legacyCrmObjects`、`hubEvents`)や、特定のプロパティーの変更(`contact.propertyChange`など)に配信登録するかどうかに応じて、以下のフィールドを指定できます。 | フィールド | 型 | 説明 | | - | - | - | | `subscriptionType` | 文字列 | 配信登録する対象のイベントのタイプ。 | | `objectType` | 文字列 | `crmObjects`配列内で指定されている配信登録の場合、このフィールドで、アプリの配信登録先のCRMオブジェクトを指定します。アプリオブジェクト変更に対する配信登録の場合は、このフィールドにアプリオブジェクト名を含めます(例:`car_app_object`)。 | | `propertyName` | 文字列 | プロパティー変更に対する配信登録の場合、このフィールドで、Webhookイベントをトリガーするプロパティーを指定します。 | | `active` | ブール値 | この配信登録に対してWebhookイベントをトリガーするかどうかを示します。 | ## アプリカードのスキーマ アプリ オブジェクト レコード ページに表示されるアプリカードを作成するには、プロジェクトに、設定ファイルを格納した`cards`コンポーネントディレクトリーを含めます。 ```shell theme={null} ├──src │ ├── app/ │ │ └── app-hsmeta.json │ │ └── ... │ │ └── cards/ │ │ └── my-app-card-hsmeta.json │ │ └── MyCard.jsx └── ``` * アプリ オブジェクト コンポーネントと関連設定ファイルを作成した後に`hs project upload`を実行していることを確認してください。 * `my-app-card-hsmeta.json`ファイルの`objectTypes`配列にアプリオブジェクトUID(この例では`"app_object_uid"`)を追加します。`.json`ファイルで使用できる各フィールドの詳細については、以下の[表](#app-card-*-hsmeta.json-fields)でご確認ください。 > **変更の要約** > > アプリカード設定ファイルの次の変更点に注意してください。 > > * 最上位フィールド`uid`、`type`、`config`が追加されました。 > * `module`フィールドの名前が`entrypoint`に変更されました。 > * `title`フィールドの名前が`name`に変更されました。 > * `objectTypes`フィールドが簡素化され、文字列の配列を受け入れるようになりました。 ```json theme={null} { "uid": "my-app-card", "type": "card", "config": { "name": "My app card", "description": "An example description of the card, which lives on contact records.", "previewImage": { "file": "./preview.png", "altText": "A short description of the preview image" }, "entrypoint": "/app/cards/MyCard.jsx", "location": "crm.record.tab", "objectTypes": ["contacts", "app_object_uid"] } } ``` * `example-card-hsmeta.json`ファイルの変更内容を保存したら、`hs project upload`を実行します。 カードがアプリオブジェクトの既定のビューに自動的に追加されます。カードが自動的に表示されない場合は、[CRMレコードにカードを追加する](/docs/apps/developer-platform/add-features/ui-extensibility/app-cards/create-an-app-card#view-the-card-in-hubspot)方法をご確認ください。 > **[GitHubでサンプルを表示](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/blob/main/projects/app-object-getting-started-template/src/app/app-hsmeta.json)** ### アプリカード \*-hsmeta.jsonのフィールド \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | カードの固有ID。任意の文字列を指定できますが、カードを識別できる意味のある文字列である必要があります。HubSpotではこのIDでカードが識別されるため、CRMレコードの位置などの履歴データやステートフルデータを削除することなく、カードのタイトルを変更できます。 | | `type` | 文字列 | コンポーネントのタイプ。この場合は`card`にする必要があります。 | | `config` | オブジェクト | 設定の詳細を含むオブジェクト。 | | `name`\* | 文字列 | HubSpotのUIに表示されるカードのタイトル。 | | `description` | 文字列 | カードの説明。 | | `previewImage` | オブジェクト | `file`フィールドと`altText`フィールドを含むオブジェクト。`file`フィールドは、プレビュー画像の相対パスです。有効なファイル拡張子はpng、jpeg、jpg、gifです。最大ファイルサイズは5.0MBです。`altText`フィールドは、画像の簡単な説明です。 | | `entrypoint`\* | 文字列 | カードのフロントエンドReactコードのファイルパス。 | | `location`\* | `crm.record.tab` \| `crm.record.sidebar` \| `helpdesk.sidebar` | HubSpotのUIでカードが表示される場所。詳細については、[拡張機能の場所](/docs/apps/developer-platform/add-features/ui-extensibility/app-cards/reference#extension-location)をご確認ください。 | | `objectTypes`\* | 配列 | このカードが表示されるCRMレコードのタイプ。 | ## アプリオブジェクトの関連付け アプリオブジェクトと他のCRMオブジェクトの間の関連付けを有効にするには、プロジェクトに、設定ファイルを格納した`app-object-associations`コンポーネントディレクトリーを含めます。 ```shell theme={null} ├── src │ ├── app/ │ │ └── app-hsmeta.json │ │ └── ... │ │ └── app-object-associations/ │ │ └── my-app-object-association-hsmeta.json └── ``` 使用できるアプリオブジェクト設定オプションを以下に示します(`*-association-hsmeta.json`)。 ```json theme={null} { "uid": "car_to_contact_association", "type": "app-object-association", "config": { "firstObjectType": "car-app-object", "secondObjectType": "CONTACT" } } ``` ### 関連付け \*-association-hsmeta.jsonのフィールド \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | アプリの内部固有ID。プロジェクト全体で重複しないラベルにする必要があります。 | | `type`\* | 文字列 | コンポーネントのタイプ。親フォルダーの名前(`app-object-association`)に一致している必要があります。 | | `config`\* | オブジェクト | オブジェクト関連付けの設定を含むオブジェクト。 | | `firstObjectType`\* | 文字列 | 関連付けの最初のオブジェクト。アプリオブジェクトまたはHubSpotのCRMオブジェクトのいずれかを指定できます。アプリオブジェクトは、ソースファイルに指定された`uid`によって参照されます。標準オブジェクトは、その`fullyQualifiedName`によって参照されます。結果として得られる関連付けは双方向になるため、これらのフィールド値の順序は任意です。 | | `secondObjectType`\* | 文字列 | 関連付けの2番目のオブジェクト。詳細については、`firstObjectType`を参照してください。 | # Webhook配信登録の設定(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/configure-webhooks 最新バージョンの開発者プラットフォーム(ベータ版)でWebhook配信登録を定義する方法をご確認ください。 新しい開発者プラットフォームでアプリ用に一連のWebhook配信登録を定義するには、プロジェクトに、`*-hsmeta.json`構成ファイルを格納した`webhooks`ディレクトリーを含めます。 ## ディレクトリー構造 ```shell theme={null} ├──src │ ├── app/ │ │ └── app-hsmeta.json │ │ └── ... │ │ └── webhooks/ │ │ └── webhooks-hsmeta.json └── ``` ## Webhookの設定 `*-hsmeta.json`ファイルで使用できる設定オプションを以下に示します。 ```json theme={null} { "uid": "webhooks", "type": "webhooks", "config": { "settings": { "targetUrl": "https://example.com/webhook", "maxConcurrentRequests": 10 }, "subscriptions": { "crmObjects": [ { "subscriptionType": "object.creation", "objectType": "contact", "active": true } ], "legacyCrmObjects": [ { "subscriptionType": "contact.propertyChange", "propertyName": "lastname", "active": true }, { "subscriptionType": "contact.deletion", "active": true } ], "hubEvents": [ { "subscriptionType": "contact.privacyDeletion", "active": true } ] } } } ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | Webhookコンポーネントの内部固有ID。 | | `type`\* | 文字列 | コンポーネントのタイプ。この場合は`webhooks`にする必要があります。 | | `settings`\* | オブジェクト | 2つのフィールドを指定するオブジェクト。一方の`targetUrl`フィールドで、HubSpotがイベントペイロードを配信するために呼び出す、一般公開されたURLを指定します。もう一方の`maxConcurrentRequests`フィールドでは、HubSpotが所定の時間枠内に送信するHTTPリクエスト数の上限しきい値を指定します。 | | `subscriptions`\* | オブジェクト | アプリで配信登録する配信カテゴリーを指定するオブジェクト。 | | `crmObjects` | 配列 | イベント配信登録の定義からなる配列。これは標準で組み込まれる配列であり、[新しい形式](/docs/apps/legacy-apps/public-apps/create-generic-webhook-subscriptions)(`object.*`)の全てのイベントにはこの配列を使用する必要があります。 イベントによっては、代わりに`legacyCrmObjects`配列と`hubEvents`配列に、[従来のWebhook配信カテゴリー](/docs/api-reference/webhooks-webhooks-v3/guide#webhook-subscriptions)を含める必要があります。 | | `legacyCrmObjects` | 配列 | [従来の配信カテゴリー](/docs/api-reference/webhooks-webhooks-v3/guide#webhook-subscriptions)(`contact.creation`、`deal.deletion`など)からなる配列。 | | `hubEvents` | 配列 | 従来の配信カテゴリー`contact.privacyDeletion`および`conversation.*`からなる配列。 | `subscription`オブジェクトごとに、対象とする配信登録定義のタイプ(`crmObjects`、`legacyCrmObjects`、`hubEvents`)や、特定のプロパティーの変更(`contact.propertyChange`など)に配信登録するかどうかに応じて、以下のフィールドを指定できます。 | フィールド | 型 | 説明 | | - | - | - | | `subscriptionType` | 文字列 | 配信登録する対象のイベントのタイプ。 | | `objectType` | 文字列 | `crmObjects`配列内で指定されている配信登録の場合、このフィールドで、アプリの配信登録先のCRMオブジェクトを指定します。 | | `propertyName` | 文字列 | プロパティー変更に対する配信登録の場合、このフィールドで、Webhookイベントをトリガーするプロパティーを指定します。 | | `active` | ブール値 | この配信登録に対してWebhookイベントをトリガーするかどうかを示します。 | # カスタム ワークフロー アクションを定義する(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/custom-workflow-actions 最新バージョンの開発者プラットフォーム(ベータ版)でカスタム ワークフロー アクションを定義する方法をご確認ください。 新しい開発者プラットフォームでアプリの[カスタム ワークフロー アクション](/docs/api-reference/automation-actions-v4-v4/guide) を定義するには、プロジェクトに`*-hsmeta.json`設定ファイルを格納した`workflow-actions`ディレクトリーを含めます。 ## プロジェクトのディレクトリー構造 ```shell theme={null} ├──src │ ├── app/ │ │ └── app-hsmeta.json │ │ └── ... │ │ └── workflow-actions/ │ │ └── custom-action-hsmeta.json └── ``` ## カスタム ワークフロー アクションの定義 `*-hsmeta.json`ファイルで使用できる設定オプションを以下に示します。 ```json theme={null} { "uid": "simple_notification_action", "type": "workflow-action", "config": { "actionUrl": "https://example.com", "isPublished": false, "supportedClients": [ { "client": "WORKFLOWS" } ], "inputFields": [ { "typeDefinition": { "name": "message", "type": "string", "fieldType": "textarea" }, "supportedValueTypes": ["STATIC_VALUE"], "isRequired": true }, { "typeDefinition": { "name": "priority", "type": "enumeration", "fieldType": "select", "options": [ { "value": "high", "label": "High Priority" }, { "value": "normal", "label": "Normal Priority" }, { "value": "low", "label": "Low Priority" } ] }, "supportedValueTypes": ["STATIC_VALUE"], "isRequired": true } ], "labels": { "en": { "actionName": "My Custom Action (via Projects V2)", "actionDescription": "Sends a notification with custom message and priority level", "actionCardContent": "Send {{priority}} priority notification", "inputFieldLabels": { "message": "Notification Message", "priority": "Priority Level" }, "inputFieldDescriptions": { "message": "Enter the message to be sent in the notification", "priority": "Select the priority level for this notification" } } }, "objectTypes": ["CONTACT"] } } ``` \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | ワークフローアクションの内部固有ID。 | | `type`\* | 文字列 | コンポーネントのタイプ。この場合は`workflow-action`にする必要があります。 | | `actionUrl`\* | 文字列 | ワークフロー実行リクエストを配信するためのAPIのWebhook URL。 | | `isPublished` | ブール値 | アプリをインストールしたアカウントに定義が表示されるかどうかを決定します。既定では、`false`に設定されています。 | | `supportedClients`\* | オブジェクトの配列 | カスタム ワークフロー アクションがサポートするクライアントを指定します。配列内の各オブジェクトには、クライアントのタイプを示す文字列値(`WORKFLOWS`など)を設定したクライアントキーを指定する必要があります。 | | `inputFields` | 配列 | ユーザーが入力フィールドに入力した値。 | | `typeDefinition.name` | 文字列 | 入力フィールドの名前またはキー。 | | `typeDefinition.type` | 文字列 | 入力フィールドに入力される値のタイプ。 | | `typeDefinition.fieldType` | 文字列 | ワークフローを作成するユーザーに対して表示されるフィールドのタイプ。 | | `typeDefinition.options` | 配列 | 列挙型の場合、このフィールドでオプションのリストを指定します。各オプションには、ユーザーが入力した情報に基づく`value`と、ワークフローツール内でオプションを識別する`label`が必要です。 | | `inputFieldDependencies` | 配列 | `dependencyType`に基づいて2つ以上の入力間の関係を定義するルールのリスト。[こちらの例](/docs/api-reference/automation-actions-v4-v4/guide#example-%233)で詳細をご確認ください。 | | `labels.`\* | 文字列 | ロケール定義にマッピングされるロケールキー。少なくとも、英語のラベル(`en`)とその定義を定義する必要があります。 | | `labels..inputFieldDescriptions` | オブジェクト | アクションに関する入力内容の詳細を定義するオブジェクト。上記の例では、このオブジェクトに`message`フィールドと`priority`フィールドが含まれています。 | | `labels..inputFieldOptionLabels` | オブジェクト | 入力フィールドにオプションがある場合に必要となるオブジェクト。オプションの値またはラベルをキーとして使用して、入力フィールドのオプションラベルのマップを提供します。 | | `labels..outputFieldLabels` | オブジェクト | `outputFields`の定義を、ワークフローツールに表示される、該当するラベルにマッピングするオブジェクト。 | | `labels..actionName`\* | 文字列 | ワークフローエディターの[アクションを選択]\_\_パネルに表示するアクションの名前。 | | `labels..appDisplayName`\* | 文字列 | アプリの全てのアクションが表示される、[アクションを選択]\_\_パネルのセクションの名前。複数のアクションで`appDisplayName`が定義されている場合、最初に見つかった名前が使用されます。 | | `labels..actionCardContent` | 文字列 | アクションのカードに表示する説明の要約。 | | `labels..executionRules` | オブジェクト | `executionRules`の定義を、ワークフローの履歴に実行結果として表示されるメッセージにマッピングするオブジェクト。 | | `objectTypes` | 配列 | このアクションで処理できるCRMオブジェクトタイプ。空白の場合、全てのオブジェクトタイプで当該アクションを使用できます。 | | `outputFields` | 配列 | アクションによって出力する値。この値は、ワークフローの以降のアクションで使用できます。カスタムアクションの出力はゼロにすることも、1つまたは複数にすることもできます。 | | `executionRules` | オブジェクト | ワークフローを作成するユーザーに対し、貴社のサービスからのエラーを示すために指定できる定義のリスト。 | # アプリのSCIMを設定する(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/add-features/scim # アプリの設定(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/app-configuration 新しい開発者プラットフォーム(ベータ版)で構築されたアプリの設定オプションに関するリファレンス情報 以下では、開発者プラットフォームのアプリ機能に関するリファレンス情報(設定ファイルの定義、スコープの詳細など)を紹介します。 ## プロジェクトの構成 * 全てのプロジェクトコンポーネントは、最上位レベルの`hsproject.json`設定ファイルで指定された`src`ディレクトリー内に配置される必要があります。 * アプリの全ての機能とコンポーネントは`src/app/`ディレクトリー内に配置される必要があります。この`app/`ディレクトリー内に、アプリでサポートする予定の機能ごとのサブディレクトリーを次のように定義します。 * アプリイベントは`app-events/`内で設定されます。 * アプリオブジェクトは`app-objects/`内で定義されます。 * 全てのカード機能は`cards/`内で定義されます。 * 設定ページ機能は`settings/`内で定義されます。 * テレメトリーは`telemetry/`内で設定されます。 * Webhook配信登録は`webhooks/`内で定義されます。 * カスタム ワークフロー アクションは`workflow-actions/`内で定義されます。 * 各機能のサブディレクトリー内で、`*-hsmeta.json`ファイルを使用して機能を設定します。ファイル名の前に、そのアプリを記述する名前(例:`my-app-hsmeta.json`)を付けることができます。ただし、ファイルの末尾は`-hsmeta.json`である必要があります。これらのファイルは、該当するフォルダーのルートレベルに配置されている必要があります(例:`app/my-app-hsmeta.json`、`cards/my-card-hsmeta.json`)。 以下のディレクトリー構造の例は、利用可能な全ての機能の概要を示しています。最上位レベルのアプリスキーマ`app-hsmeta.json`ファイルの設定について、詳しくは下記の[アプリ スキーマ セクション](#app-schema)を参照してください。アプリの機能を追加する準備ができたら、[アプリ機能の追加](#adding-app-features)セクションをご覧ください。 ```shell theme={null} my-project-folder/ └── hsproject.json └── src └── app/ └── app-hsmeta.json/ └── app-events/ └── my-event-type-hsmeta.json └── cards/ └── MyCard.jsx └── my-app-card-hsmeta.json └── package.json └── settings/ └── Settings.tsx └── settings-hsmeta.json └── package.json └── telemetry/ └── telemetry-hsmeta.json └── webhooks/ └── webhooks-hsmeta.json └── workflow-actions/ └── custom-action-hsmeta.json ``` > **[GitHubでサンプルを表示](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/tree/main/projects/app-object-getting-started-template)** HubSpot Visual Studio Code拡張機能では、`*-hsmeta.json`設定ファイル内の各プロパティーの[型検証](/docs/developer-tooling/local-development/vs-code-extension#validate-hs-meta-json-config-files)を行うことができます。 ## UIDを指定する `uid`フィールドは、特定のアプリ内部で一意の識別子です。また、これはプロジェクト全体で重複しないラベルにする必要があります。[アプリ機能](#adding-app-features)ごとに、それぞれの`*-hsmeta.json`ファイル内に独自の`uid`が定義されます。これは、アプリの`app-hsmeta.json`ファイルで選択する最上位レベル`uid`とは区別される必要があります。 ## アプリスキーマ アプリの最上位レベルの設定は、`app`ディレクトリー内の`app-hsmeta.json`設定ファイルの中で指定されます。 ```shell theme={null} my-project-folder/ └── src └── app/ └── app-hsmeta.json/ ``` `app-hsmeta.json`で使用できる設定オプションを以下に示します。 ```json theme={null} { "uid": "new_developer_platform_app", "type": "app", "config": { "description": "An example to demonstrate how to build an app with developer projects.", "name": "my first app", "distribution": "marketplace", "auth": { "type": "oauth", "redirectUrls": ["http://localhost:3000/oauth-callback"], "requiredScopes": ["crm.objects.contacts.read", "crm.objects.contacts.write"], "optionalScopes": [], "conditionallyRequiredScopes": [] }, "permittedUrls": { "fetch": ["https://api.hubapi.com"], "iframe": [], "img": [] }, "support": { "supportEmail": "support@example.com", "documentationUrl": "https://example.com/docs", "supportUrl": "https://example.com/support", "supportPhone": "+18005555555" } } } ``` > **[GitHubでサンプルを表示](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/blob/main/projects/app-object-getting-started-template/src/app/app-hsmeta.json)** 各設定オプションの詳細については、次の表をご覧ください。[アプリの配布](#distribution)、[認証](#authentication)の設定、[スコープ](#scopes)の指定に関する詳しいコンテキスト情報は、表の下のセクションにあります。 \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `uid`\* | 文字列 | アプリの内部固有ID。プロジェクト全体で重複しないラベルにする必要があります。最大64文字の任意の文字列を指定できます。大文字または小文字を使用できます。数字、アンダースコア(`_`)、ダッシュ(`-`)、ピリオド(`.`)を含めることができます。 | | `type`\* | 文字列 | コンポーネントのタイプ。親フォルダーの名前(`app`)に一致している必要があります。 | | `description`\* | 文字列 | インストールを実行するユーザーに対するアプリの動作の説明。最大8192文字の任意の文字列を指定できます。 | | `name`\* | 文字列 | HubSpotに表示されるアプリの名前。最大200文字までの任意の文字列を指定できます。先頭や末尾を空白文字にすることはできません。 | | `distribution`\* | 文字列 | アプリの配布方法。次のいずれかに設定できます。
  • `marketplace`:アプリをHubSpotアプリマーケットプレイスへの掲載対象する場合に使用します。
  • `private`:許可リストに含まれる特定のアカウントセットにのみアプリをインストールする場合、または一度に1つのアカウントにのみインストールする場合にこれを使用します。
詳しくは、下記の[配布](#distribution)のセクションをご覧ください。 | | `auth`\* | オブジェクト | アプリの認証方法の詳細を含むオブジェクト。詳しくは、下記の[認証のセクション](#authentication)をご覧ください。 | | `permittedUrls` | オブジェクト | アプリが呼び出すことができるURLを含む配列。URLではHTTPSスキームを使用する必要があります。また、URLには[オーソリティー](https://developer.mozilla.org/en-US/docs/Learn_web_development/Howto/Web_mechanics/What_is_a_URL#authority)、とその後に(必要に応じて)オプションのパスプレフィックスを含める必要があります。 | | `supportEmail` | 文字列 | ユーザーがサポートを受けるために連絡できる有効なEメールアドレス。 | | `documentationUrl` | 文字列 | ユーザーがサポートドキュメントを参照するためにアクセスできる外部URL。HTTPSを使用する必要があります。 | | `supportUrl` | 文字列 | ユーザーが追加のサポートを受けるためにアクセスできる外部URL。HTTPSを使用する必要があります。 | | `supportPhone` | 文字列 | ユーザーがサポートを受けるために連絡できる電話番号。プラス記号(`+`)で始まる必要があります。 | ### 配布 アプリスキーマの`distribution`フィールドを使用すると、アプリの配布方法を次のように設定できます。 * [HubSpotアプリマーケットプレイス](https://ecosystem.hubspot.com/marketplace/apps)にアプリを掲載する予定の場合は、`distribution`フィールドを`"marketplace"`に設定します。このオプションのアプリスキーマの例については、[こちら](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/blob/main/projects/public-app-getting-started-template/src/app/app-hsmeta.json)をご覧ください。このオプションを選択する場合は、下記の[認証](#authentication)セクションで詳しく説明されているように、`auth`プロパティー内の`type`を必ず`oauth`に設定してください。 * 許可リストに含まれる特定のアカウントセットにアプリのインストールを許可する場合、またはインストールを一度に1つのアカウントに制限する場合には、`distribution`を`"private"`に設定します。`auth`プロパティー内の`type`を、次のように適切に設定してください。 * [プロジェクト設定で構成した許可リスト](/docs/apps/developer-platform/build-apps/manage-apps-in-hubspot#manage-authentication-for-your-app)に基づき複数のアカウントにアプリをインストールするには、認証の`type`を`oauth`に設定します。このオプションのアプリスキーマの例については、[こちら](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/blob/main/projects/private-app-oauth-getting-started-template/src/app/app-hsmeta.json)を参照してください。 * インストールを1つのアカウント(開発に使用するのと同じアカウント、またはインストールするユーザーがアクセスできる別のアカウント)に制限するには、認証の`type`を`static`に設定します。静的認証のアプリスキーマの例については、[こちら](https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/blob/main/projects/private-app-static-getting-started-template/src/app/app-hsmeta.json)を参照してください。 ### 認証 アプリの認証を設定するには、アプリスキーマの`auth`プロパティーを使用します。アプリのスコープ要件、リダイレクトURL、認証タイプを指定できます。 \*でマークされたフィールドは必須です。 | フィールド | 型 | 説明 | | - | - | - | | `type`\* | 文字列 | 認証タイプ。次のいずれかに設定できます。
  • `oauth`:OAuth経由でのインストールを許可します。このインストールは、許可リストに登録された特定のアカウントに対してのみ行うか、HubSpotアプリマーケットプレイスに掲載して行います。
  • `static`:アプリのインストールを、インストールを実行するユーザーがアクセスできる1つのアカウントに制限します。
| | `redirectUrls`\* | 配列 | OAuthプロセスで再ルーティング先として許可されるURLのリスト。各アプリには少なくとも1つの認証リダイレクトURLが必要であり、このURLではHTTPSを使用する必要があります。唯一の例外として、テスト目的の場合は`http://localhost`を使用できます。 | | `requiredScopes`\* | 配列 | アプリの必須スコープのリスト。各アプリには少なくとも1つのスコープが含まれる必要があります。アプリを正常にインストールするには、インストールを行うユーザーがこれらのスコープを付与する必要があります。[スコープの詳細については、以下の説明をご確認ください](#scopes)。 | | `optionalScopes` | 配列 | アプリの任意のスコープのリスト。アプリをインストールするアカウントまたはユーザーに適切な権限がない場合は、インストール時にこれらのスコープを認証から除外できます。その場合、作成されるリフレッシュトークンやアクセストークンにはスコープが含まれません。[スコープの詳細については、以下の説明をご確認ください](#scopes)。 | | `conditionallyRequiredScopes` | 配列 | インストールURLの`scope`クエリーパラメーターに含まれている場合にのみ必須であるスコープのリスト。[スコープの詳細については、以下の説明をご確認ください](#scopes)。 | ### スコープ アプリ設定ファイルの`auth`フィールドでは、必須スコープ、条件次第で必須となるスコープ、任意のスコープという[3種類のスコープ](/docs/apps/legacy-apps/public-apps/overview#scope-types)を指定できます。 関連付けられたCRMオブジェクトタイプに顧客がアクセスできるようにするには、少なくとも`read`スコープをアプリに含める必要があります。 ```json theme={null} "auth": { "type" : "oauth", "redirectUrls": ["http://localhost:3000/oauth-callback"], "requiredScopes": [ "crm.objects.contacts.read", "crm.objects.contacts.write" ], "optionalScopes": [], "conditionallyRequiredScopes": [] }, ``` 使用可能な全てのスコープのリストについては、[スコープリファレンス](/docs/apps/legacy-apps/authentication/scopes)を参照してください。 ## アプリ機能を追加する Webhook配信登録、カスタム ワークフロー アクション、アプリカードなどのアプリ機能を設定するには、下記のガイドを参照して、関連する`*-hsmeta.json`ファイルをプロジェクトに追加する方法を詳しくご確認ください。 * [アプリカードを作成する](/docs/apps/developer-platform/add-features/ui-extensibility/app-cards/create-an-app-card) * [アプリイベントを定義する](/docs/apps/developer-platform/add-features/app-events/overview) * [アプリオブジェクトを作成する](/docs/apps/developer-platform/add-features/app-objects/quickstart-guide-to-app-objects) * [設定コンポーネントを作成する](/docs/apps/developer-platform/add-features/ui-extensibility/create-a-settings-component) * [カスタム ワークフロー アクションを設定する](/docs/apps/developer-platform/add-features/custom-workflow-actions) * [Webhook配信登録を設定する](/docs/apps/developer-platform/add-features/configure-webhooks) * [テレメトリーを追加する](/docs/apps/developer-platform/add-features/add-telemetry) # OAuthの利用 | OAuthクイックスタートガイド Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/authentication/oauth/oauth-quickstart-guide このクイックスタートガイドとNode.jsのサンプルアプリを使って、アプリのOAuthを設定する方法をご紹介します。 'このクイックスタートガイドとNode.jsのサンプルアプリを使って、アプリのOAuthを設定する方法をご紹介します。'; ## 始める前に HubSpotでOAuthを使用するには、次のものが必要です。 * [開発者アカウント](https://app.hubspot.com/signup-hubspot/developers) * 開発者アカウントに関連付けられている[アプリ](/docs/apps/legacy-apps/public-apps/overview) * アプリをインストールするためのHubSpotアカウント(既存のアカウントを使用するか、または[テストアカウントを作成する](/docs/getting-started/account-types)ことができます) HubSpotアカウント上にアプリをインストールするには、[スーパー管理者](https://knowledge.hubspot.com/ja/user-management/hubspot-user-permissions-guide#super-admin)の権限が必要です。 ### 仕組み HubSpotは、[OAuth 2.0認証コード付与方式](https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type)に対応しています。この処理は次の4つの基本ステップに分けることができます。 1. アプリによってブラウザーウィンドウを開き、ユーザーをHubSpot OAuth 2.0サーバーに導く 2. 要求された権限をユーザーが確認し、アプリにアクセス権を付与する 3. クエリー文字列の中に認証コードを指定した状態で、ユーザーがアプリにリダイレクトされる 4. アプリが、アクセストークンの認証コードを交換するためのリクエストをOAuth 2.0サーバーに送信する ### このガイドの内容 * [クイックスタートアプリ](#quickstart-app):HubSpotのOAuth 2.0サーバーで認証されるNode.jsデモアプリ * [OAuthトークンの取得](#getting-oauth-tokens):アプリでユーザーを認証する方法 * [OAuthトークンの使用](#using-oauth-tokens):トークンによりクエリーを実行する方法 * [OAuthトークンのリフレッシュ](#refreshing-oauth-tokens):HubSpotで提供されるリフレッシュトークンの使い方 このガイドの全てのコードサンプルは、JavaScript(Node.js)で記述されています ## クイックスタートアプリ HubSpotのAPIでOAuth認証を初めて使用する場合、Node.jsで記述されている[OAuth 2.0クイックスタートアプリ](https://github.com/HubSpot/oauth-quickstart-nodejs)(英語)を確認することを強くお勧めします。このサンプルアプリは、OAuth 2.0をできるだけ早く使い始められるように設計されており、後述の[OAuthトークンの取得](#getting-oauth-tokens)セクションに記載の全ての手順を実際に示しています。 ![GitHub icon](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/uie-icons/github.png) [クイックスタートアプリを確認する](https://github.com/HubSpot/oauth-quickstart-nodejs) ## OAuthトークンの取得 ### 1. 認証URLを作成し、ユーザーをHubSpotのOAuth 2.0サーバーに導く HubSpotのOAuth 2.0サーバーにユーザーを導くための最初のステップは、認証URLの作成です。これによりアプリが特定されると共に、ユーザーに代わってアクセス権を求めるリソース(スコープ)が定義されます。認証URLの一部として指定できるクエリーパラメーターを以下の表に示します。このステップの詳細については、[リファレンスドキュメント](/docs/apps/legacy-apps/authentication/working-with-oauth)を参照してください。 \*でマークされたフィールドは必須です。 | パラメーター | 説明 | 例 | | - | - | - | | `client_id`\* | クライアントIDによってアプリが識別されます。アプリの設定ページで確認します。 | `7fff1e36-2d40-4ae1-bbb1-5266d59564fb` | | `scope`\* | URLエンコードされたスペース(`%20`)で区切られた、アプリが要求している[スコープ](/docs/apps/legacy-apps/authentication/scopes#list-of-available-scopes)。 | `oauth%20crm.objects.contacts.read` | | `redirect_uri`\* | アプリが要求したスコープの認証後にユーザーがリダイレクトされるURL\*\*。本番環境アプリでは、`https`が必須です\*\*。 | `https://www.example.com/auth-callback` | | `optional_scope` | アプリにとって任意のスコープ。選択されたHubSpotポータルがその製品にアクセスできない場合は破棄されます。 | `automation` | | `state` | リダイレクトされてアプリに戻ってきたユーザーの状態を維持するために使用できる一意の文字列値。 | `WeHH_yy2irpl8UYAvv-my` | URLを作成したら、ユーザーをそのURLに誘導してOAuth接続プロセスを開始します。 以下のコードブロックは、さまざまなリダイレクトタイプの使用例を示しています。 **サーバーサイドのリダイレクトを使用**: ```js theme={null} // Build the auth URL const authUrl = "https://app.hubspot.com/oauth/authorize" + `?client_id=${encodeURIComponent(CLIENT_ID)}` + `&scope=${encodeURIComponent(SCOPES)}` + `&redirect_uri=${encodeURIComponent(REDIRECT_URI)}` + `&state=${encodeURIComponent(STATE)}`; // Redirect the user return res.redirect(authUrl); ``` **HTMLリンクを使用**: ```html theme={null} Install ``` **追加のリダイレクトユーザー状態をエンコード**: 一部のアプリでは、ユーザーを別の場所にリダイレクトしなければならない場合があります。例えば、アプリによっては、連携されている別のサブドメイン(`userA.integration.com`や`userB.integration.com`など)にリダイレクトする必要がある場合があります。これを行うには、`state`パラメーターを使用して、ユーザー状態に関する詳細情報をエンコードします。 1.Stateパラメーターのnonce値を生成して保存します。 2.Nonceをキーとして使用して、ユーザーの状態をローカルデータストアに保存します。 3.認証URLに、状態パラメーターとしてnonce値を含めます。 4.ユーザーが認証され、リダイレクトURLにリダイレクトされたら、stateパラメーターを検証し、保存されたユーザー状態を取得するためのキーとして使用します。 5.そこから、必要に応じてユーザーをリダイレクトします(例:ユーザー固有のURLに再度リダイレクトする)。 ### 2. HubSpotがユーザーに同意を求める HubSpotは、アプリの名前と、アプリがアクセス権限を要求しているHubSpot APIサービスに関する簡単な説明を含む同意ウィンドウをユーザーに提示します。ここで、ユーザーはアプリにアクセス権を付与できます。 ![インストールプロンプトウィンドウの例](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/%5BExample%5D%20Install%20Screen.png) **注**: アプリをインストールするユーザーは、要求された全てのスコープに対するアクセス権を持っている必要があります。必要なアクセス権を持っていない場合は、インストールが失敗し、エラーページが表示されます。この権限エラーページが表示された場合は、スーパー管理者にアプリのインストールを依頼する必要があります。 この段階でアプリが行う処理はありません。アクセス権が付与されると、HubSpot OAuth 2.0サーバーが、認証URLで定義されたコールバックURIにリクエストを送信します。 ### 3. OAuthサーバーのレスポンスを処理する ユーザーがステップ2の同意確認を完了すると、OAuth 2.0サーバーは`GET`リクエストを認証URLで指定されたリダイレクトURIに送信します。問題が発生せず、ユーザーがアクセス要求を承認した場合、リダイレクトURIに対するリクエストが`code`クエリーパラメーター付きで返されます。ユーザーがアクセス権を付与しなかった場合、リクエストは送信されません。 **例**: ```js theme={null} app.get("/oauth-callback", async (req, res) => { if (req.query.code) { // Handle the received code } }); ``` ### 4. 認証コードをトークンと交換する アプリはOAuth 2.0サーバーから認証コードを受け取ったら、コードをアクセス/リフレッシュトークンと交換できます。そのためには、URL形式でエンコードされた`POST`リクエストを`https://api.hubapi.com/oauth/v1/token`に送信します(以下に記載の値を使用)。このステップの詳細については、この[リファレンスドキュメント](/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth)を参照してください。 | パラメーター | 説明 | 例 | | - | - | - | | `grant_type` | `authorization_code`である必要があります | `authorization_code` | | `client_id` | アプリのクライアントID | `7fff1e36-2d40-4ae1-bbb1-5266d59564fb` | | `client_secret` | アプリのクライアントシークレット | `7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d` | | `redirect_uri` | ユーザーがアプリを認証した場合のリダイレクトURI | `https://www.example.com/auth-callback` | | `code` | OAuth 2.0サーバーから受信した認証コード | `5771f587-2fe7-40e8-8784-042fb4bc2c31` | **例**: ```js theme={null} const formData = { grant_type: 'authorization_code', client_id: CLIENT_ID, client_secret: CLIENT_SECRET, redirect_uri: REDIRECT_URI, code: req.query.code }; request.post('https://api.hubapi.com/oauth/v1/token', { form: formData }, (err, data) => { // Handle the returned tokens } ``` トークンレスポンスの本文は、次の形式のJSONデータになります。 ```json theme={null} { "refresh_token": "6f18f21e-a743-4509-b7fd-1a5e632fffa1", "access_token": "CN2zlYnmLBICAQIYgZXFLyCWp1Yoy_9GMhkAgddk-zDc-H_rOad1X2s6Qv3fmG1spSY0Og0ACgJBAAADAIADAAABQhkAgddk-03q2qdkwdXbYWCoB9g3LA97OJ9I", "expires_in": 1800 } ``` アクセストークンは、レスポンスの`expires_in`フィールドで示された秒数の経過後に期限切れになります(現時点では30分)。新しいアクセストークンの取得の詳細については、後述の[OAuthトークンのリフレッシュ](#refreshing-oauth-tokens)セクションをご参照ください。 ## OAuthトークンの使用 認証コードのフローが完了すると、ユーザーに代わってリクエストを行う権限がアプリに付与されます。これを行うには、トークンをベアラートークンとして`Authorization` HTTPヘッダーに指定します。具体的には、[リファレンスドキュメント](/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth)で確認できます。 **例**: ```js theme={null} request.get( "https://api.hubapi.com/contacts/v1/lists/all/contacts/all?count=1", { headers: { Authorization: `Bearer ${ACCESS_TOKEN}`, "Content-Type": "application/json", }, }, (err, data) => { // Handle the API response } ); ``` アクセストークンはアプリから要求されたスコープを反映するものであり、ユーザーがHubSpotアカウントで実行可能な操作に関する権限や制限を反映するものではありません。例えば、ユーザーに自分が担当するコンタクトのみを表示する権限が付与されている場合、このユーザーが`crm.objects.contacts.read`スコープを対象としたリクエストを許可したとしても、生成されるアクセストークンでは、このユーザーが担当するコンタクトだけでなく、アカウント内の全てのコンタクトを表示できます。 ## OAuthトークンのリフレッシュ OAuthアクセストークンは定期的に有効期限が切れます。これは、トークンが侵害されても、攻撃者によるアクセスを極力短時間に限定するためです。トークンの利用可能な秒数は、認証コードがアクセストークンと交換された時点で、`expires_in`フィールドに指定されます。 アプリは受信したリフレッシュトークンを新しいアクセストークンと交換できます。そのためには、URL形式でエンコードされた`POST`リクエストを`https://api.hubapi.com/oauth/v1/token`に送信します。その際に、以下の値を使用します。このステップの詳細については、[リファレンスドキュメント](/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth)を確認してください。 | パラメーター | 説明 | 例 | | - | - | - | | `grant_type` | `refresh_token`である必要があります | `refresh_token` | | `client_id` | アプリのクライアントID | `7fff1e36-2d40-4ae1-bbb1-5266d59564fb` | | `client_secret` | アプリのクライアントシークレット | `7c3ce02c-0f0c-4c9f-9700-92440c9bdf2d` | | `redirect_uri` | ユーザーがアプリを認証した場合のリダイレクトURI | `https://www.example.com/auth-callback` | | `refresh_token` | ユーザーがアプリを認証したときに受け取るリフレッシュトークン | `b9443019-30fe-4df1-a67e-3d75cbd0f726` | **例**: ```js theme={null} const formData = { grant_type: 'refresh_token', client_id: CLIENT_ID, client_secret: CLIENT_SECRET, redirect_uri: REDIRECT_URI, refresh_token: REFRESH_TOKEN }; request.post('https://api.hubapi.com/oauth/v1/token', { form: formData }, (err, data) => { // Handle the returned tokens } ``` トークンレスポンスの本文は、次の形式のJSONデータになります。 ```json theme={null} { "refresh_token": "6f18f21e-a743-4509-b7fd-1a5e632fffa1", "access_token": "CN2zlYnmLBICAQIYgZXFLyCWp1Yoy_9GMhkAgddk-zDc-H_rOad1X2s6Qv3fmG1spSY0Og0ACgJBAAADAIADAAABQhkAgddk-03q2qdkwdXbYWCoB9g3LA97OJ9I", "expires_in": 1800 } ``` この新しいアクセストークンを、ユーザーの代わりに呼び出しを行う際に使用します。新しいトークンの有効期限が切れたら、同じ手順を繰り返して新たにトークンを取得できます。 ## 関連記事 [HubSpotでの認証方式](/docs/apps/developer-platform/build-apps/authentication/overview) [OAuthの利用](/docs/apps/legacy-apps/authentication/working-with-oauth) [トークンを管理する](/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth) # OAuthの使用 Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth OAuthはアプリのためのセキュリティーで保護された認証手段です。パスワードではなく認証トークンを使用して、アプリをユーザーアカウントに接続します。 'OAuthはアプリのためのセキュリティーで保護された認証手段です。パスワードではなく認証トークンを使用して、アプリをユーザーアカウントに接続します。 '; OAuthはアプリをユーザーアカウントに接続するための安全な認証手段で、パスワードではなく認証トークンが使用されます。ユーザーが自分のHubSpotアカウントに[アプリをインストール](/docs/apps/legacy-apps/public-apps/overview#install-an-app)できるようにするには、まず、OAuthの使用を開始します。 * 複数のHubSpotアカウントによるインストール用に設計されたアプリ、またはアプリマーケットプレイスに掲載されるアプリでは、OAuthを使用する必要があります。 * HubSpotアカウントでアプリをインストールするユーザーには、[スーパー管理者](https://knowledge.hubspot.com/ja/user-management/hubspot-user-permissions-guide#super-admin)の権限、または[アプリマーケットプレイスのアクセス](https://knowledge.hubspot.com/ja/user-management/hubspot-user-permissions-guide#settings)権限が付与されている必要があります。 ## 参考資料 * [OAuthクイックスタートガイド](/docs/apps/legacy-apps/authentication/oauth-quickstart-guide)で紹介されているサンプルアプリは、OAuthの利用をできるだけ短時間で開始することを意図して設計されており、全ての手順を実際にご利用いただけます。 * [HubSpotアカデミーのコース](https://app.hubspot.com/l/academy/tracks/71/593/2967)では、HubSpotでOAuthを使い始める方法を短時間で習得できます。HubSpot-OAuthフローの詳細や、アクセストークンの更新方法を説明しています。 ## OAuth認証の設定 アプリのOAuth認証を設定するには、次の手順に従います。 * まず、[HubSpot開発者アカウント](/docs/getting-started/account-types#developer-accounts)で[アプリを作成](/docs/apps/legacy-apps/public-apps/overview)します。アプリを作成すると、アプリ設定の[認証]ページで作成したアプリのクライアントIDとクライアントシークレットを確認できるようになります。\_ \_ ![MyHubSpotApp](https://cdn2.hubspot.net/hubfs/53/MyHubSpotApp.png) * 下記のように、クライアントIDとクライアントシークレット、および[クエリーパラメーター](#query-parameters)と[スコープ](#scopes)を使用して、認証URLを作成します。 * アプリをインストールするユーザーを認証URLに誘導し、ユーザーがアカウントを選択する画面を表示して、連携機能へのアクセスを許可できるようにします。以下に示すように、`/oauth/`と`/authorize`の間にアカウントIDを追加することで、特定のHubSpotアカウント用の認証URLを設定できます。アクセス権が付与されると、コードクエリーパラメーターが付加された`redirect_url`によってユーザーがアプリにリダイレクトされます。このコードとクライアントシークレットを使用して、HubSpotから[access\_tokenとrefresh\_token](/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth)を取得します。 * **認証URLの例** * **任意のアカウント**: `https://app.hubspot.com/oauth/authorize?client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&scope=contacts%20automation&redirect_uri=https://www.example.com/` * **特定のアカウント(ID 123456)**: `https://app.hubspot.com/oauth/123456/authorize?client_id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&scope=contacts%20automation&redirect_uri=https://www.example.com/` * **リダイレクトURLの例**: `https://example.com/?code=xxxx` * **エラーの例**: `https://www.example.com/?error=error_code&error_description=Human%20readable%20description%20of%20the%20error` * `access_token`を使用して、当該HubSpotアカウントに対して行われたAPI呼び出しを認証します。 * `access_token`の有効期限が切れたら、`refresh_token`を使用して新しい`access_token`を生成します。 - リフレッシュトークンと初期アクセストークンを生成しない限り、ユーザーのアカウントの[接続されたアプリ]にアプリが表示されることはありません。\_ \_ - アクセストークンはアプリから要求されたスコープを反映するものであり、ユーザーがHubSpotアカウントで実行可能な操作に関する権限や制限を反映するものではありません。例えば、ユーザーに自分が担当するコンタクトのみを表示する権限が付与されている場合、このユーザーが`crm.objects.contacts.read`スコープを対象としたリクエストを許可したとしても、生成されるアクセストークンでは、このユーザーが担当するコンタクトだけでなく、アカウント内の全てのコンタクトを表示できます。 ## クエリーパラメーター アプリの認証URLを作成する際には、以下のクエリーパラメーターが必須です。 | **パラメーター** | **説明** | **使い方** | | - | - | - | | `client_id` | アプリの固有IDとして機能するID。 | アプリの認証設定ページから(上記の説明に従って)取得します。 | | `redirect_uri` | 訪問者がアプリへのアクセス権を取得した後にリダイレクトされる宛先URL。 | アプリの認証設定ページでも、このURLを指定します\*\*。注\*\*: セキュリティー上の理由により、本番環境ではこのURLに`https`を使用する必要があります(`localhost`を使用したテスト環境では、`http`を使用することも可能です)。また、IPアドレスはサポートされていないため、必ずドメインを使用してください。 | | `scope` | アプリに対する権限セット(権限ごとにスペースで区切ります)。 | アプリの認証設定でチェックマークを付けたスコープは必須と見なされるため、このパラメーターに含めない場合は認証ページにエラーが表示されます。\_ \_また、ここに含まれたスコープへのアクセス権がないアカウント上にアプリをインストールしようとした場合、エラーが発生します。特定のスコープでアクセスできるエンドポイントの詳細については、[スコープに関するリファレンスドキュメント](/docs/apps/legacy-apps/authentication/scopes#list-of-available-scopes)をご参照ください。 | 以下のパラメーターは任意で指定できます。 | **パラメーター** | **使い方** | **説明** | | - | - | - | | `optional_scope` | 貴社のアプリに対する任意アクセス許可(許可ごとにスペースで区切ります)。 | ユーザーがそのツールへのアクセス権を持っていないHubSpotアカウントを選択した場合(HubSpotの無料アカウントで**Content Hub** Enterpriseスコープを承認する場合など)、任意指定のスコープは自動的に認証リクエストから除かれます。\_ \_任意指定のスコープを使用する場合、許可されたスコープを把握するためにはアクセストークンまたはリフレッシュトークンを確認する必要があります。詳細については[スコープに関するリファレンスドキュメント](/docs/apps/legacy-apps/authentication/scopes)をご覧ください。 | | `state` | 認証URLにこのパラメーターを含めた場合、ユーザーが`redirect_uri`に誘導される際に、ここで指定した値が状態クエリーパラメーターに格納されます。 | リダイレクトされてアプリに戻ってきたユーザーの状態を維持するために使用できる文字列値。 | ## スコープの設定 OAuthでは、アプリに対するスコープ(権限)を設定する必要があります。各スコープによって、一連のHubSpot APIエンドポイントへのアクセス権が与えられます。また、アプリによるHubSpotアカウント上の特定のツールへのアクセスを、ユーザーが許可できるようになります。 ![スコープの詳細な選択](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/granular-scopes-selection.png) 特定のAPIまたはAPIエンドポイントへのアクセスは、HubSpotアカウントのティアによって異なります。複数の異なるタイプのHubSpotアカウントで機能するアプリの場合は、`optional_scope`パラメーターを使用して、対応するあらゆるティアのスコープを含めることができます。これにより、HubSpotの無料アカウントを使用しているお客さまも、全てのスコープにはアクセスできなくても、アプリを認証できるようになります。認証されていない全てのスコープについては、アプリ側で確認および処理する必要があります。 スコープの完全なリストは[こちらのページ](/docs/apps/legacy-apps/authentication/scopes)で確認できます。 ## 関連ドキュメント [HubSpotでの認証方式](/docs/apps/developer-platform/build-apps/authentication/overview) [OAuthクイックスタートガイド](/docs/apps/legacy-apps/authentication/oauth-quickstart-guide) [トークンの管理](/docs/apps/developer-platform/build-apps/authentication/oauth/working-with-oauth) # はじめに:概要 Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/authentication/overview HubSpotで開発を始める方法について学びましょう。 初めてHubSpotの開発者になった人も、スキルを伸ばそうとしている開発者も、このセクションのガイドを参考にして使い始めることができます。ここでは、利用可能なさまざまな開発ルートについて、また目標の達成に必要な具体的なツールやアカウントについて説明します。 ## 統合プラットフォームの利点 まず、HubSpotが開発者にとって強力なプラットフォームであると言える理由を見ていきましょう。 全てのHubSpotアカウントの基盤は[CRM](/docs/guides/crm/understanding-the-crm) (顧客関係管理)プラットフォーム、つまりさまざまなビジネス関係とプロセスから成るデータベースです。HubSpotには、外部の開発者やパートナーがCRMと連携するためのさまざまなルートが備わっているので、HubSpotエンドユーザー向けにより多くの価値を生み出すことができます。次に例を示します。 * HubSpotのAPIとの連携機能/拡張機能を作成して、HubSpotと外部プラットフォームの間でデータを同期します。 * HubSpot CMS(コンテンツ管理システム)を使用してカスタムウェブサイトを作成します。コンテンツ管理ツールのスイート全体に加えて、CMSは完全にCRMと連携します。これにより、キャンペーンの開始、リード(見込み客)の獲得、顧客との継続的なコミュニケーションを管理しやすくなります。 * UI拡張機能を使用してCRMをカスタマイズする。開発者はReactを使用して、HubSpotとシームレスに連携する柔軟なカスタムカードを作成できます。 次のセクションでは、HubSpot開発者が利用できるツールの概要について説明します。その後、ルートを選んでHubSpot開発者ジャーニーを進んで行くことができます。 ## 1.作成に役立つツールをインストールする HubSpot開発者向けに幅広いツールが用意されています。開発者の具体的な目標に応じて、必要なツールの組み合わせが異なります。 * \*\*HubSpot CLI:\*\*多くの開発タスクでは、ローカル開発用のHubSpot CLIをインストールすることが効果的な出発点となります。UI拡張機能とCMSアセットを作成するときにはCLIを使用し、シークレット、HubDBテーブル、およびカスタム オブジェクト データをアカウントから作成/管理するときにもCLIを使用できます。[Node.jsが](https://nodejs.org/en/)インストールされている必要があります(必須バージョンは18以上、推奨されるバージョンはLTSです)。CLIをグローバルにインストールするには、次のコマンドを実行します。 ```shell theme={null} npm i -g @hubspot/cli ``` * **Visual Studioコード:**[Visual Studio Code](https://code.visualstudio.com/)をインストールすると、[HubSpot Visual Studio Code拡張機能](https://developers.hubspot.com/docs)を利用して開発ワークフローを一元化できます。 * **クライアントライブラリー**: HubSpotには、[Node](https://github.com/HubSpot/hubspot-api-nodejs)、[PHP](https://github.com/HubSpot/hubspot-api-php)、[Ruby](https://github.com/HubSpot/hubspot-api-ruby)、および[Python](https://github.com/HubSpot/hubspot-api-python)用のクライアントライブラリーが備わっています。 * **Postman:**[Postman](https://www.postman.com/)を使用して、[HubSpotのPostmanコレクション](https://www.postman.com/hubspot)にアクセスします。HubSpotのAPIドキュメント全体にわたり、コレクションを使って呼び出しを実行するためのボタンがあります。 ![run-in-postman-current-docs-site](https://www.hubspot.com/hubfs/run-in-postman-current-docs-site.png) [HubSpotの開発者ツール](/docs/developer-tooling/overview)について詳細をご覧ください。 ## 2. 何を作成するかを決める HubSpotで開発するためのルートは画一的ではありません。幅広いニーズに対応できる柔軟なプラットフォームです。 以下に挙げる4つの広範なカテゴリーのいずれかで、大部分のニーズが満たされるでしょう。現時点で最も該当するものを1つ選んでください。簡単な紹介と、すぐに開始できるステップが説明されます。また、ジョブに最適なツールについて理解し、[特定の種類のHubSpotアカウント](/docs/getting-started/account-types)が必要かどうか確認することもできます。 * [APIを使用して連携を作成する](https://developers.hubspot.com#use-apis-and-build-integrations) * [マーケットプレイス向けのアプリを作成する](https://developers.hubspot.com#build-for-the-app-marketplace) * [HubSpot UIをカスタマイズする](https://developers.hubspot.com#customize-the-hubspot-ui) * [カスタムウェブサイトを作成する](https://developers.hubspot.com#build-custom-websites) ## 3. 仲間に加わりましょう 既にHubSpotで作成を行っている仲間とつながりましょう。質問をしたり、知識を共有したり、コミュニティーを作ったりして、やがて友達ができるかもしれません。 * [開発者Slack](https://developers.hubspot.com/community) * [開発者フォーラム](https://community.hubspot.com/t5/HubSpot-Developers/ct-p/developers) * [開発者アドボカシーGitHub](https://github.com/hubspotdev) ## 4. 自分に合った方法で学習を続けます 始める準備が整ったら、より深く掘り下げるのに役立つ多くのリソースが用意されています。ご希望の学習スタイルに応じて、詳細なガイド、詳しい参考資料、または[HubSpotアカデミーコース](https://academy.hubspot.com/courses)にアクセスできます。 # リクエストの検証 Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/authentication/request-validation # スコープ Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/authentication/scopes # CLIを使用して新しいアプリを作成(ベータ) Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/create-an-app # HubSpot上でのアプリの管理(ベータ版) Source: https://developers.hubspot.jp/docs/apps/developer-platform/build-apps/manage-apps-in-hubspot 新しい開発者プラットフォームでアプリの認証やその他の設定を管理する方法を説明します [クイックスタートガイド](/docs/apps/developer-platform/build-apps/create-an-app)を使用し、旧アプリからの移行、またはコマンド`hs project upload`の手動実行を使用してアプリをHubSpotにアップロードした後、HubSpotアカウントのプロジェクト インデックス ページでアプリを管理できます。アプリの詳細ページでは、アプリのビルドとデプロイの履歴の表示、有効なアプリの機能の確認、認証の管理ができます。 ## プロジェクトの詳細ページでアプリを表示する アプリの詳細を確認するには、次の手順に従います。 * HubSpotアカウントで、[開発]\*\*\*\*に移動します。 * [プロジェクト]\*\*\*\*ページで、プロジェクトの**名前**をクリックします。プロジェクトの詳細ページで、アプリを確認して管理します。 * 左サイドバーのメニューから、[詳細]\*\*\*\*をクリックして最近のビルドとデプロイの履歴に直接ジャンプできます。また、アプリの機能をクリックして、関連付けられた`*-hsmeta.json`ファイルに記述された設定を確認できます。 * [設定]\*\*\*\*タブをクリックして、自動デプロイ設定を切り替えるか、必要に応じてアプリを削除します。 * [プロジェクトコンポーネント]\_\_で、アプリの名前(アプリの[最上位レベルのスキーマ](/docs/apps/developer-platform/build-apps/app-configuration#app-schema)で指定されている名前)をクリックして、最後にデプロイされたアプリスキーマや、現在設定されているアプリ機能を確認し、認証設定を管理します。 ![最上位レベルのプロジェクトの詳細とアプリ機能を確認する](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/top-level-project-details-for-unified-app.png) ## アプリの認証を管理する アプリの資格情報の表示および認証の管理を行うには、次の手順に従います。 * プロジェクトの詳細ページの[概要]\_\_タブの[プロジェクトコンポーネント]\_\_で、アプリの[最上位レベルのスキーマファイル](/docs/apps/developer-platform/build-apps/app-configuration#app-schema)の`name`フィールドで定義されている最上位レベルのアプリ名をクリックします。 * [認証]\*\*\*\*タブをクリックして、アプリの資格情報、設定済みのスコープ、リダイレクトURLを表示します。 ![アプリプロジェクト設定の[認証]タブを確認する](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/review-auth-details-for-unified-app.png) アプリの配信が[アプリ スキーマ ファイル](/docs/apps/developer-platform/build-apps/app-configuration#app-schema)で`private`に設定されている場合は、[配信]\*\*\*\*タブをクリックして許可リスト設定を管理できます。 * ページの上部に、現在インストールされているアカウントの概要が表示されます。`private`配信のアプリの場合、アプリを最大10個のHubSpotアカウントにインストールできます。 * 許可リストに登録するアカウントを追加するには、[Add approved account(s)(承認済みアカウントを追加)]\*\*\*\*をクリックします。 * 右側のパネルの[他の本番アカウント]\_\_で、HubSpotユーザーが現在アクセスできる本番アカウントのリストを確認します。 * アプリをインストールできる許可リスト登録済みアカウントに追加するアカウントの横にある**チェックボックス**をオンにします。 * 完了したら、[変更を保存]\*\*\*\*をクリックします。 ![右側のパネルで許可リストに登録するアカウントを追加する](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/approve-account-for-installation-panel.png) * 承認済みアカウントのリストでアカウントにカーソルを合わせると、インストールリンクをコピーしたり、許可リスト登録済みアカウントのリストからアカウントを削除したりできます。 ![リストビューで許可リストに登録された個々のアカウントを管理する](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/manage-individual-allowlisted-accounts-in-app-settings.png) # エージェントツールの掲載に必要な条件 Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/agent-tool-listing-requirements エージェントツールを含むアプリをアプリマーケットプレイスに掲載する際の要件をご確認ください。 この記事では、アプリマーケットプレイスに掲載するアプリにAIツールが搭載されている場合の追加要件と、こうしたツールを[承認に向けて提出する](#submitting-tools-for-approval)方法について説明します。 ## 掲載情報の条件 アプリマーケットプレイス向けに構築された全てのアプリには、[アプリマーケットプレイスへの掲載に必要な条件](/docs/apps/developer-platform/list-apps/listing-your-app/app-marketplace-listing-requirements)が適用されます。また、認定アプリには[アプリマーケットプレイスの認定要件](/docs/apps/developer-platform/list-apps/apply-for-certification/certification-requirements)も適用されます。さらに、アプリマーケットプレイス向けのアプリにAIツールを追加している場合は、他にも従わなければならない条件があります。 ### セキュリティーとプライバシー * **スコープ**: エージェントツールでオブジェクトタイプをサポートしている場合は、[アプリの必須のスコープ設定](/docs/apps/developer-platform/build-apps/app-configuration#app-schema)に、そのオブジェクトタイプに対応する`.read`スコープを追加する必要があります。例えば、取引をサポートするツールの場合、アプリには`crm.objects.deals.read`スコープが必須となります。 * **入力**: ツールが収集する入力とコンテキストは、ツールの出力に必要なものだけでなければなりません。例: * 「コンタクト要約」ツールで検討できる入力としては、コンタクトに関連付けられたミーティングやタスクから取得するコンタクトのプロパティーおよびデータなどが考えられます。 * 「見積もり作成」ツールが、コンタクトのミーティング履歴に関するコンテキストを要求するようであってはなりません。 * **LLM固有の脆弱性**: アプリに対しては、LLMに固有のリスク(間接的なプロンプトインジェクション、ジェイルブレイクなど)に関連するセキュリティーのベストプラクティスについての評価が行われます。 * **センシティブデータ**: アプリが[センシティブ データ スコープ](/docs/api-reference/crm-sensitive-data/guide)にアクセスしたり、このスコープを要求または使用したりするようであってはなりません。 ### コンプライアンス エージェントツールは、[欧州AI規制法](https://digital-strategy.ec.europa.eu/en/policies/regulatory-framework-ai)で規定されている「許容できないリスク」または「高リスク」のシステムやユースケースをサポートするものであってはなりません。 例: * **許容範囲内**: 「コンタクト要約」ツール、「見積もり作成」ツール * **許容範囲外**: 「社会信用スコアリング」ツール、「採用判断」ツール、「育児休暇予測」ツール ### 信頼性 * **テスト動画**: 実施した機能テストについて説明する短い動画を提出する必要があります(以下の「[承認に向けてツールを提出する](#submitting-your-tools-for-approval)」セクションを参照)。 * **機能テスト**: HubSpotエコシステム品質チームが実施する全ての機能テストに合格するツールでなければなりません。 ### 使いやすさ * **名称**: ツール名で、そのツールがやり取りする外部プラットフォームが引用されている必要があります。ただし、ラベル付けと関連付けはアプリマーケットプレイスUIによって処理されるため、ツール名で組織への帰属を表してはなりません。例: * **許容範囲内**: 「Slack通知の送信」、「ACME見積もり作成」" * **許容範囲外**: 「Alpha Co.によるSlack通知の送信」、「Omega Inc.によるAcme見積もり作成」" * **コピー**: ツールの説明、ラベル、オプション、ツール、およびその他の顧客向けのテキストは、分かりやすく、直感的なものにします。 ### 価値 現段階で、ツールは顧客対応のユースケース(マーケティング、営業、カスタマーサービスなど)を強化するものでなければなりません。例: * **許容範囲内**: 「Xero請求書作成」ツール、「Omegaギフト送信」ツール * **許容範囲外**: 「新入社員のHubSpot設定」ツール *** ## 承認に向けてツールを提出する 承認に向けてツールを提出するには、指定された期限までに次の手順を完了します。 ### 2025年6月2日〜9日(プライベートベータ版キックオフ/チェックポイント#1) 2025年6月2日〜9日の期間内に、開発者テストアカウントを設定します。 * ツールを構築する開発者アカウント(6月2日に開発者プラットフォームに変換されたアカウント)で、[新しい開発者テストアカウント](/docs/getting-started/account-types#developer-test-accounts)を選択または作成します。 * その開発者テストアカウントに、ツールを含めるテストアプリをインストールします。 * HubSpotのベータ プログラム マネージャーに、開発者テストアカウントのHub IDを伝えます。Hub IDは、下のスクリーンショットでハイライト表示されているIDで、開発者アカウントIDやテストアプリIDとは異なります。HubSpotが、ツールをエージェントで使用できるようにアカウントの制限を解除します。 ![開発者テストアカウントID。テスト アカウント ページの[アカウントの詳細]列で確認できます](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer-test-account-id.png) ### 2025年6月20日(プライベートベータ版チェックポイント#2) HubSpotエコシステム品質チームがツールを審査および承認できるように、2025年6月20日までにテスト用ユーザー資格情報をプロビジョニングして、ツールをテストします。 * **テスト用ユーザー資格情報のプロビジョニング**: * 開発者テストアカウントに、ツールを適切にテストするために必要なCRMデータを取り込みます。 * [ecosystem-quality-review@hubspot.com](mailto:ecosystem-quality-review@hubspot.com)を[スーパー管理者](https://knowledge.hubspot.com/user-management/hubspot-user-permissions-guide#super-admin)としてアカウントに招待します。 * 外部プラットフォームで、HubSpotワークフローおよびエージェント内のツールを適切にテストするために必要な全ての権限が付与されるように[ecosystem-quality-review@hubspot.com](mailto:ecosystem-quality-review@hubspot.com)をプロビジョニングします。 * **制限解除された開発者テストアカウントでのツールのテスト**: 開発者テストアカウントで、テスト/開発アプリを使用して、ワークフローおよびエージェント内にエンドツーエンドでツールを実装し、テストします。 * **テスト動画**: 実施した機能テストについて説明する短い動画を録画し、その動画を[ecosystem-quality-review@hubspot.com](mailto:ecosystem-quality-review@hubspot.com)と共有します。デモ動画は以下の要件を満たしている必要があります。 * 3分以上の動画であること * 音声(推奨)またはテキストによる説明が含まれていること * ツールと一般的なユースケースの説明が含まれていること * 実施したテスト実行について説明していることエコシステム品質チームが、開発者テストアカウント内にあるデータを使用してテストの手順を再現できるようでなければなりません。 2025年6月20日~25日の期間内に、HubSpotエコシステム品質チームがツールを審査し、初回のフィードバックを共有します。最終的な承認を得るためには審査が何度か必要になる可能性があるため、初回のフィードバックに早急に対応してください。 # アプリ認定の申請 Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/apply-for-certification/applying-for-app-certification アプリ認定は、HubSpotによる審査で承認された確かな品質の証明となるため、利用を検討しているユーザーからの信頼の獲得につながります。 'アプリ認定は、HubSpotによる審査で承認された確かな品質の証明となるため、利用を検討しているユーザーからの信頼の獲得につながります。'; ### アプリ認定とは? アプリ認定では、マーケットプレイスに掲載されるアプリがセキュリティー、プライバシー、信頼性、パフォーマンス、ユーザビリティー、アクセシビリティー、価値について[必要な条件](https://developers.hubspot.com/docs)を満たしているかどうかをHubSpotエコシステム品質チームが審査して確認します。承認されると、アプリ掲載情報のページに「HubSpot Certified App」バッジが表示されます。 ![](https://lh5.googleusercontent.com/CsSeky353aK17dYyX63spJgvA0INloEKH5z9zbmc2VgWG9QExch_b8skZ6ozu8K5H6Q3k0UWSScb2z16WwiIlkcx4Rhsmr0JexBRIYAJLoVNzb7D6DI3_296A5nIiAiolEkvhkl4) ### 重要な理由 アプリ掲載情報のページに認定バッジがあれば、HubSpotエコシステム品質チームが審査し承認したアプリであることを、利用を検討している顧客が確認できます。利用を検討しているユーザーにとって優れた品質の証しとなり、アプリに対する信頼の獲得につながります。アプリ認定がどのように顧客の信頼につながるのかについては[こちらの記事](https://developers.hubspot.com/blog/how-to-build-customer-trust-through-certification)で解説しています。 ### 仕組み [対象となる](https://developers.hubspot.com/docs)アプリパートナーは、ご自身のアプリ開発者アカウントを通じて認定を申請できます。その後、HubSpotエコシステム品質チームが審査を行い、フィードバックまたはアプリの認定についてご連絡いたします。 ### 申請の対象となるアプリは? [認定に必要な条件](https://developers.hubspot.com/docs)を参照して、アプリが認定申請の対象となるかどうかを確認してください。アプリのアクティブインストール数が60以上、かつAPIトラフィックが所定の量以上でない場合は、申請いただけません。アクティブインストール数は、過去30日以内に成功したアプリのアクティビティーを示す、貴社とは関係のない、HubSpotの本番アカウントのユニーク数です。 ### 認定の申請方法は? 認定申請で提出できるアプリは一度に1つのみです。同時に複数のアプリの認定を申請すると、申請の順番に基づいて却下されます。アプリが認定されたら、別の認定申請を送信できます。 認定を申請する手順は以下の通りです。 * 開発者アカウントに[ログイン](https://knowledge.hubspot.com/ja/account-management/why-can-t-i-log-into-hubspot)し、[マーケットプレイス]>[アプリ掲載情報]に移動します。 * 認定を申請するアプリにカーソルを合わせて[その他]をクリックします。次に、[アプリを認定]を選択します。 ![KB - アプリ認定](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/KB%20-%20App%20Certification.png) * ダイアログボックスに以下の情報を入力します。 * **デモ動画のYouTube URL**: デモ動画の**URL**を入力します。後述する[アプリのデモ動画の要件](#app-demo)を確認してください。 * **テスト用ユーザー資格情報**: HubSpotエコシステム品質チームがアプリの機能を評価できるよう、アプリのテスト用資格情報を入力します。 * 下部にある[認定申請を送信]をクリックします。 ![アプリ認定](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/app-certification.png) ### アプリのデモ動画の要件 デモ動画は、HubSpotエコシステム品質チームがアプリをテストするのに役立ちます。全ての要件が満たされたデモ動画が提出されない限り、チームはアプリの審査を行いません。セールスプロモーション動画およびマーケティング動画は却下されます。HubSpotはデモ動画の共有または公開はしません。 デモ動画は以下の要件を満たしている必要があります。 * 3分以上である。 * オーディオ(推奨)またはテキストの説明が含まれている。 * アプリの目的と一般的なユースケースの説明が含まれている。 * 例:「ACMEアプリは、営業担当者と導入支援担当者がCRM全体で調整を行うのに役立ちます。ACMEのサポートされたCRMのいずれかで成約した取引は、HubSpotでチケットと導入支援タスクを自動的に生成することができます」 * 以下のアクションについて、新規ユーザーがどのようにすべきかを実演および説明している。 * アプリをインストールする。 * 例:「HubSpotアプリマーケットプレイスのACMEのアプリ掲載情報から、[アプリをインストール]をクリックします。CRMを選択して、資格情報を入力してから、[完了]をクリックします。HubSpotアカウントを選択し、要求されたスコープを確認して、[アプリを接続]をクリックします」 * インストール後にアプリを設定する。 * 例:「アプリをインストールしたら、[設定]>[統合]>[接続されたアプリ]>[ACMEアプリ]>[チケットパイプライン]に移動してチケットパイプラインを選択します。次に、[タスクテンプレート]セクションで最大10のデフォルトタスクを構成します。同期を有効にする準備ができたら、[チケット同期]をオンに切り替えます」 * アプリの主な機能を使用して一般的なユースケースに対応する。 * 例:「チケット同期機能では、接続先CRMの各成約済み取引についてHubSpotでチケットレコードを作成し、関連付けられたコンタクトと設定済みタスクを含めます。これにより、導入支援チームは新しい顧客にすぐに連絡を取ることができます」 * 一般的なユースケースに対応するために、HubSpotアカウント内でアプリを操作する(該当する場合)。 * 例:「HubSpotの取引から導入支援チケットを作成するには、取引ベースのワークフローで[ACMEチケットの作成]のカスタムワークフローアクションを使用します。こうしたアクションによって、他のCRMのアプリ設定よりも幅広いカスタマイズが行えます」 * HubSpotアカウントからアプリの接続を解除する。 * HubSpotアカウントからアプリをアンインストールし、アンイストールによってユーザーのHubSpotアカウントとデータにどのように影響な影響が生じるかを説明する。 **ヒント**: デモ動画の録画には、無料ツールの[Loom](https://www.loom.com/)を使用できます。 ### 認定CTAがアプリに表示されない場合 [アプリを認定]ボタンは、アプリが申請の対象となる場合にのみ表示されます。ご不明な点がございましたら、[認定に必要な条件](https://developers.hubspot.com/docs)を参照いただくか、または担当の[アプリパートナーマネージャー](https://developers.hubspot.com/docs#related-resources)までお問い合わせください。 ### ユーザーに対する認定アプリの明示 認定されると、アプリマーケットプレイスの掲載情報に「HubSpot Certified App」バッジが明示されます。 ![](https://lh3.googleusercontent.com/dw7gvVRNzsrmtUwOYBsLVhpAEniaAZ5Z-_G70J-Bzs596yGR_ZzLXJyw821l7FVCV53XmKoI1VVEFxX9YKAJxtI-4NjwvCJadqfWyLG8IyFOWROZ6k8Nx-1307mp6cE0T8p980-N) バッジの上で、アプリの認定に関する追加情報を顧客が確認できます。 ![](https://lh5.googleusercontent.com/CsSeky353aK17dYyX63spJgvA0INloEKH5z9zbmc2VgWG9QExch_b8skZ6ozu8K5H6Q3k0UWSScb2z16WwiIlkcx4Rhsmr0JexBRIYAJLoVNzb7D6DI3_296A5nIiAiolEkvhkl4) 開発者アカウントにログインし、[アプリマーケットプレイス]>[掲載情報]の順に進み、**アプリパートナーマネージャー**とそのEメール情報を確認します。アプリにカーソルを合わせて、[その他]>[掲載情報の詳細を表示]をクリックします。 *** #### 関連ドキュメント [アプリの認定に必要な条件](https://developers.hubspot.com/docs) [アプリの掲載に必要な条件](https://developers.hubspot.com/docs) # アプリマーケットプレイス | アプリの認定に必要な条件 Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/apply-for-certification/certification-requirements HubSpotのアプリマーケットプレイスでのアプリ認定の取得をお考えのアプリパートナーさまに向け、必要な条件を解説します。 'HubSpotのアプリマーケットプレイスでのアプリ認定の取得をお考えのアプリパートナーさまに向け、必要な条件を解説します。'; アプリ認定では、[アプリマーケットプレイスに掲載されるアプリ](https://developers.hubspot.com/docs)がセキュリティー、プライバシー、信頼性、パフォーマンス、ユーザビリティー、アクセシビリティー、価値について以下の必要な条件を満たしているかどうかをHubSpotエコシステム品質チームが審査して確認いたします。 認定を取得すると、品質と信頼性が確認されたアプリとして、[アプリマーケットプレイス](https://ecosystem.hubspot.com/ja/marketplace/apps)で注目を集めやすくなります。また、アプリ認定には[特別なメリット](#certification-benefits)があり、認定審査中にHubSpotエコシステム品質チームから役立つフィードバックを得ることができます。 * HubSpotはアプリマーケットプレイスとエコシステムに継続的に改良を加えており、その一環として認定の要件を変更する可能性があります。設定されている基準をアプリが満たしていない場合、HubSpotは独自の裁量でアプリ認定リクエストを却下することがあります。 * [アプリ認定を申請](https://developers.hubspot.com/docs)する際には、手順に沿ってデモ動画を提出していただく必要があります。提出されない場合、HubSpotはアプリの審査を行いません。 * 認定申請に提出できるアプリは一度に1つのみです。同時に複数のアプリの認定を申請すると、申請の順番に基づいて却下されます。 * アプリ認定の有効期間は2年間です。順次更新する必要があります。認定が更新されない場合、認定ステータスが取り消されます。 * アプリの認定更新日の3か月前に通知が送信されます。 * アプリが基準を満たさなくなった場合、HubSpotエコシステム品質チームは最大60日間にわたり貴社の問題解決に協力します。 ## 概要 以下に、アプリの認定に必要な条件の概要を記載します。詳細については、後述の[審査基準](#review-criteria)のセクションをご確認ください。 アプリに求められるのは以下の条件です。 * HubSpotアプリIDが1つだけ関連付けられている。 * 掲載する公開アプリは、パートナーさま独自のものである必要があります。すでに掲載しているアプリを置き換える必要がある場合は、新しいアプリを掲載するのではなく、既存のアプリを更新する必要があります。 * 同じユースケースを解決する複数のアプリを作成しないでください。類似する機能を持ち、同じAPIを使用する複数のアプリは、1つのアプリに統合するのが適切です。 * [OAuth認証](/docs/apps/legacy-apps/authentication/working-with-oauth)と必要な全てのスコープを使用している。 * [認証済みドメイン](/docs/apps/legacy-apps/public-apps/overview)に関連付けられている。 * アプリに関連付けられた公開アセットがセキュリティーに関するベストプラクティスに準拠している。 [従来のCRMカード](/docs/api-reference/crm-public-app-crm-cards-v3/guide)は2025年6月16日以降サポートが終了しているため、貴社のアプリでは使用できません。この変更の詳細については[HubSpot開発者変更ログ](https://community.hubspot.com/t5/Developer-Announcements/Deprecating-Support-for-Classic-Legacy-CRM-Cards/m-p/1153039#M1048)をご確認ください。 [セキュリティーとプライバシーの面で必要な条件の詳細](#security-privacy)をご確認ください。 アプリのアクティビティーは、HubSpotの[API](/docs/api-reference/overview)へのOAuth認証済みリクエストと、HubSpotの[Webhook配信登録](/docs/api-reference/webhooks-webhooks-v3/guide)および拡張機能からの[署名済みリクエスト](/docs/apps/legacy-apps/authentication/validating-requests)([CRMカード](/docs/api-reference/crm-public-app-crm-cards-v3/guide)のデータフェッチリクエストなど)で定義されます。 アクティブインストール数は、過去30日以内に成功した**アプリのアクティビティー**を示す、貴社とは関係のない、HubSpotの本番アカウントのユニーク数です。 ## 認定取得のメリット 認定アプリには[アプリが掲載されるメリット](https://www.hubspot.jp/partners/app)に加え、他にも以下のメリットがあります。 * アプリマーケットプレイス掲載情報に「HubSpot認定アプリ」バッジが表示される。 * HubSpotアプリマーケットプレイスでの存在感が増す。 * 「HubSpot認定アプリ」の検索結果に含まれるようになる。 * アプリマーケットプレイスの特集コレクションの対象になる。 * 「HubSpot認定アプリ」バッジとソーシャルメディアの画像を使用して、アプリの認定実績を共有できる。 * HubSpotのパートナーシップおよび強化イニシアチブで有利になるように考慮される。 ## 審査基準 認定を取得するには、セキュリティー、プライバシー、信頼性、パフォーマンス、ユーザビリティー、アクセシビリティー、価値に関する定量的な指標と定性的な条件を満たすことで、アプリの品質を証明する必要があります。以下にて各カテゴリー別における認定の条件と、申請者に提供されるフィードバックの例をご紹介します。 ### セキュリティーとプライバシー アプリに求められるのは以下の条件です。 * HubSpotアプリIDが1つだけ関連付けられている。アプリがAPIリクエストの認証で、アプリ掲載情報に関連付けられたHubSpotの公開アプリのアプリID(および[OAuthクライアントID](/docs/apps/legacy-apps/authentication/working-with-oauth))を使用する必要があります。 * 掲載情報を別の公開アプリや非公開アプリにリダイレクトしないでください。 * 掲載される公開アプリは、別の公開アプリや非公開アプリを使用しなくても機能する必要があります。 * [OAuth認証コードのフロー](/docs/apps/legacy-apps/authentication/working-with-oauth)によって認証が行われていること * ユーザーにOAuth認証コードまたはトークンをコピーして貼り付けるよう依頼することは禁止されています。ユーザーに依頼できるのは、アクセス権の付与のみです。 * アプリは、ユーザーによる関与を必要とすることなく、アクセストークンのリクエスト、管理、更新を行う必要があります。 * インストール時に、リクエストしている全ての[スコープ](/docs/apps/legacy-apps/authentication/working-with-oauth)(つまり、必須の`scope`パラメーターと`optional_scope`パラメーターの両方で指定されているスコープ)を使用する。 * [高度なスコープ設定](/docs/apps/legacy-apps/public-apps/overview#configure-scopes)をオンにして、インストール時にアプリがリクエストする、必須スコープ、条件付き必須スコープ、およびオプションのスコープを全て選択します。 * 不要なスコープは取り除く必要があります。 * 特定のスコープが一部のアプリユーザーにのみ該当する場合は、それを条件付き必須スコープまたはオプションスコープとして含めてください。 * [認証済みドメイン](/docs/apps/legacy-apps/public-apps/overview)に関連付けられている。 * 公開アセットが、古いソフトウェアおよびウェブサーバーの各種脆弱性と所見に関連するセキュリティー上のベストプラクティスに基づいて評価される。 #### フィードバックの例 現在のところ、貴社のアプリでは`contacts`、`timeline`、`forms`、`content`の4つのスコープが必要とされています。しかしHubSpotの記録によると、過去30日間に行われたのは、CRMコンタクトおよびタイムラインイベントAPIに対するリクエストのみです。いずれの機能にも、`forms`スコープと`content`スコープは必要ないため、ユーザーが受け入れる必要がある権限を最小限に抑えるために、必要に応じてアプリの設定からこれらのスコープを削除してください。 ### 信頼性とパフォーマンス アプリに求められるのは以下の条件です。 * 以下の条件に当てはまる。 * 適用される全ての規約に従っている。 * 過去6か月以内に認定が却下されていない。 * 共通のお客さまについて未解決のサポートのエスカレーションがない。 * HubSpotのAPIと拡張機能の公開済み安定版を使用している。 * 最新の公開バージョンを使用することが推奨されます。 * 文書化されていないAPI、ベータ版API、開発者プレビュー版APIは不安定と分類され、本番アプリでは使用できません。 * アプリで安定していない、または公開されていないAPIを使用する場合は、その旨を認定審査の際に明示するか、アプリパートナーマネージャーのチームに伝えて可能な対応について話し合ってください。 * 貴社とは関係のないHubSpotの顧客アカウントによる適正な使用量の[アクティビティー](#activity)がある。 * アプリが以下に挙げる[API利用ガイドライン](https://developers.hubspot.com/docs)とベストプラクティスに準拠している。 * レート制限(接続済みHubSpotアカウント1件につき、受信するリクエストが10秒当たり100回)に従う。 * 有効期限が切れる前にOAuthアクセストークンを更新する。 * 繰り返し行われる呼び出しのデータを極力キャッシュする。 * リクエストの量を減らすために、可能な場合にはバッチAPIとWebhook配信登録を使用する。 * ユーザーの操作ではなくAPIを使用して、プロパティー、ワークフローの作成やカスタムワークフローアクションの設定を行う。 * 全ての[アクティビティー](#activity)にわたって、\*\*95%\*\*を上回る平均成功率を維持している。 * エラーレスポンスを生成したリクエストは、この成功率にマイナスに作用します。 * 全ての[アクティビティー](https://developers.hubspot.com/docs#activity)における成功率を計算する際、一部の避けられないエラー、または想定されるエラーは除外される場合があります。 * ユーザーに補足的な機能と価値を提供するために、アプリにブラウザー拡張機能を含めることができる。 * HubSpot UI専用として、あるいはHubSpot APIの回避策としてブラウザー拡張機能を作成することはできません。 * ブラウザー拡張機能でHubSpot UIに機能やコンポーネントを持ち込むことはできません。 * 正式にサポートされているUI拡張機能([CRMカード](/docs/api-reference/crm-public-app-crm-cards-v3/guide)や[カスタムワークフローアクション](/docs/api-reference/automation-actions-v4-v4/guide)など)を利用することで、さらに一貫性のあるユーザーエクスペリエンスをユーザーに提供できます。 * アプリにブラウザー拡張機能が含まれている場合、アプリは追加のセキュリティー評価の対象となります。 #### フィードバックの例 貴社のアプリのAPI成功率が、認定に必要なしきい値95%に達していません。記録によると、過去30日間の成功率は83%でした。失敗したリクエストの大半で返されたのは、`429`バーストレート上限エラーです。このエラー率を減らすには、リクエストをアカウントごとに10秒当たり100回に抑制することをお勧めします。 貴社のアプリが`undefined` Eメールアドレスを使用してコンタクトを更新しようとして、エラーが発生しています。このような更新方法は、このAPIエンドポイントでは機能しません。レコードにEメールアドレスが含まれていない場合、アプリはこうしたリクエストをスキップする必要があります。 貴社のアプリが、期限切れのOAuthトークンを使用してリクエストを送信しているため、トークンを更新するまで`401`エラーが発生しています。このようなエラーを最小限に抑えるために、アプリでリクエストを行う前に、トークンの有効期限または更新時期を追跡することをお勧めします。全てのリクエストで`401`エラーが発生し、アクセストークンを更新できない場合は、ユーザーがアプリを再認証するまでの間、アプリをアンインストールし、アカウントでのリクエストを停止することを検討してください。 Marketing Hubの無料版アカウントでコンタクトリストAPIを使用しようとしていますが、このアカウントにはコンタクトリストへのアクセス権がないため、`403`エラーが発生しています。適切なスコープが欠落しているためにアプリで`403`エラーが繰り返し発生する場合は、当該アカウントからリストを取得するための呼び出しを停止する必要があります。 貴社のアプリのWebhook配信登録が`500`エラーや`503`エラーで頻繁に失敗しています。顧客データが失われないように、サーバーがリクエストの量に対処できることを確認してください(現在は1秒当たり150件に制限されています)。 貴社のアプリでは、多数のコンタクトを一括ではなく1つずつプルしています。代わりに、[バッチエンドポイント](/docs/api-reference/crm-contacts-v3/guide)を使用することをお勧めします。 ### ユーザビリティーとアクセシビリティー | アプリ * アプリは、少なくとも過去6か月間、HubSpotの[アプリマーケットプレイス](https://ecosystem.hubspot.com/ja/marketplace/apps)に[掲載](https://developers.hubspot.com/docs)されている必要があります。 * アプリは、[使いやすさに関するベストプラクティス](https://www.nngroup.com/articles/ten-usability-heuristics/)を実装している必要があります。 * 共通のお客さまのユーザーエクスペリエンスに悪影響を及ぼしかねないので、ユーザーがアプリをインストールして利用する際に、混乱やストレスを引き起こすことがないようにしましょう。 #### フィードバックの例 現在、貴社のアプリでは、テキストメッセージを送信するワークフローWebhookアクションをユーザーが手動で設定しなければなりません。多くのユースケースに十分対応できる柔軟なカスタムワークフローアクションを、アプリで作成することを検討してください。 ### ユーザビリティーとアクセシビリティー | アプリマーケットプレイス掲載情報 アプリマーケットプレイス掲載情報に求められるのは以下の条件です。 * 現行のアプリ機能について正確に記述する。 * ユーザーが使用している製品や契約内容に基づいて利用できる機能が変化する場合は、その製品や契約内容がHubSpotのものであるか、貴社のものであるかにかかわらず、違いを明示する必要があります。 * 現行の明確な価格情報が記載された価格ページへのリンクを含む。 * アプリに対応するパッケージが複数ある場合は、少なくとも最低価格のものをアプリマーケットプレイス掲載情報に記載する必要があります。 * 個人情報(PII)が表示されないように、データにプレースホルダーを使用しているか、データを非表示にしている。 * 以下を含むこと。 * 有益な情報を提供する最新の視覚的資料(スクリーンショットや動画など)デモ動画の作成のベストプラクティスと例については、[アプリの優れたデモ動画の作成方法](https://www.hubspot.com/partners/apps/resources/how-to-make-a-great-app-demo-video)ページを参照してください。 * アプリの完全なセットアップガイドに直接アクセスできる、最新のセットアップドキュメントのURL。[セットアップドキュメントの全要件](https://developers.hubspot.com/docs)をご確認ください。このガイドには、全ての要件を満たすサンプルテンプレートも含まれています。 * 以下を含まないこと。 * データまたは統計情報(導入事例が資料として提供されている場合を除く) #### フィードバックの例 貴社のアプリのアプリマーケットプレイスの掲載情報に、アプリの機能に関する具体的な詳細がほとんど含まれていません。アプリの機能を示すスクリーンショットを追加するとともに、一般的なユースケースやアプリ内での動作に関する詳細な説明を含めて、掲載情報を充実させてください。 HubSpotのお客さまは、購入前に製品やサービを試用する方式に慣れ親しんでいます。この理由から、貴社のアプリでも無料トライアルやフリーミアムサインアップを提供していただくことをお勧めします。価格ページを設けていないか、無料トライアルを提供していないアプリパートナーさまの中には、HubSpot向けのプランを作成して、透明性の高い価格設定やタッチレスサインアップなどのメリットを共通のお客さまに提供している企業もあります。 ### ユーザビリティーとアクセシビリティー | サポートドキュメント アプリのサポートドキュメントに求められるのは以下の条件です。 * 一般公開されている有効なURL(支払いやログインを必要とするページは不可)内にあり、アクセシビリティー、プライバシー、GDPRに関する現行の規定に準拠している。 * アプリの現行バージョンと一致するように更新されている。 * 以下の事項が明記されている。 * アプリの基本機能 * アプリのインストール方法、およびHubSpotアカウントとの連携方法(スコープ承認画面を含む、各ステップのスクリーンショットが必要) * インストール後のアプリの設定方法 * アプリの使用方法(手動と自動の両方を含む) * アプリとHubSpotの接続を解除する方法 * HubSpotアカウントからアプリをアンインストールする方法 * 接続解除とアンインストールがユーザーのHubSpotアカウントとデータに及ぼす影響 * 画像が含まれている。HubSpot UIのスクリーンショットを含む画像は、最新の状態に更新し、[デザインシステム](https://canvas.hubspot.com/)との一貫性を確保してください。 * 動画も推奨されますが、必須ではありません。動画を含める場合は、定期的に更新し、アプリの現行バージョンを反映する必要があります。 #### フィードバックの例 アプリの設定ガイドに、アプリのインストールに必要なスコープを示すスクリーンショットが記載されていますが、このスクリーンショットにはアプリの設定で選択されている`business-intelligence`スコープが示されていません。現在必要とされているスコープを反映するようにスクリーンショットを更新してください。 ### 価値 * アプリのアクティブインストール数、顧客定着率、HubSpotアプリマーケットプレイスでのレビュー数は、貴社とHubSpotの共通のお客さまがアプリに見いだす価値の指標として評価されます。 * 認定を取得して保持するには、アプリの[アクティブ](#activity)なユニークインストール数が60以上必要です。インストール元のアカウントは、貴社と無関係でなければなりません。テストアカウントも対象外となります。 * アプリのアクティブインストール数が60未満の場合は、認証リクエストをキャンセルするよう求められます。 * アプリのアクティブインストール数が掲載の要件である3に満たない場合、アプリはアプリマーケットプレイスから削除される可能性があります。 * アプリに対する否定的なレビューがある場合、それに対するチームの応答をアプリ掲載情報に含める必要があります。 #### フィードバックの例 直近6か月の間、貴社のアプリのアクティブインストール数が60以上に維持されていません。そのためアプリの認定ステータスは削除されます。6か月が経過すると認定を再申請していただけます。 ## アプリの認定と再認定の審査プロセス HubSpotエコシステム品質チームは、[アプリ認定の申請](https://developers.hubspot.com/docs)に対して**10営業日**以内にお答えします。アプリの審査およびフィードバックのプロセス全体は、フィードバックが共有されてから**60日**以内に完了する必要があります。アプリのテスト用ユーザー資格情報を提供するには、[こちら](https://developers.hubspot.com/docs)に記載されている条件をご確認ください。 全ての必要な条件を満たしたアプリには、認定ステータスが付与され、「HubSpot認定アプリ」バッジがアプリマーケットプレイス上のお客さまやプロスペクトに対して表示されます。また、ユーザーが「HubSpot認定アプリ」で絞り込んだ場合の検索結果に表示されます。 なお、アプリが審査において認定されなかった場合は、6か月後に再申請いただけます。 アプリが厳格な認定条件を引き続き満たしているかどうかを確認する目的で、認定から1年が経過したアプリはHubSpotエコシステム品質チームによって再審査されることがあります。アプリが基準を満たさなくなった場合、同チームは最大60日間にわたり貴社の問題解決に協力します。 アプリがある時点で上記の認定条件に準拠しなくなった場合、認定から1年が経過していなくても、HubSpotによって直ちに再審査のプロセスを開始させていただく可能性がございます。また、[アプリパートナープログラム契約](https://legal.hubspot.com/jp/app-program-agreement)に記載の通り、当社は随時アプリを非公開にする権利を有するものとします。 ## よくあるご質問 > **アプリ認定に費用はかかりますか?** > > いいえ。HubSpotでは、アプリマーケットプレイスでのアプリの掲載または認定に伴う手数料や、アプリマーケットプレイス経由でのインストールに対する手数料を請求していません。また、収益分配も行われません。HubSpotの役割は、アプリの品質をさらに高められるよう、アプリパートナーさまを支援することです。 > **以前に認定申請が却下されたアプリが再び申請の対象になった時点で、通知を受け取れますか?** > > いいえ。現時点では、アプリに再申請の資格があるかどうか、またそのタイミングをお知らせする通知は行っていません。認定申請の前に、最適な窓口として担当の[アプリパートナーマネージャー](#app-partner-manager)に連絡し、アプリに認定申請の資格があるかどうかお問い合わせください。 > **認定アプリをユーザーにプロモーションするにはどうすればよいですか?** > > アプリ認定の取得に関するプレスリリースを発表する場合には、[こちらのページ](https://www.hubspot.jp/partners/app/resources)をご参照ください。 > > ソーシャルメディアへの投稿を予定している場合は、HubSpotをタグ付けしていただくようお願いします。アプリ認定の取得を皆さまと一緒にお祝いさせてください。 > **最新のベータ版APIを好んで試しています。この場合、アプリ認定を取得するのは適切でしょうか?** > > 貴社のアプリにアプリ認定が適しているかどうかについては、担当の[アプリパートナーマネージャー](#app-partner-manager)にお問い合わせいただくことをお勧めします。 > > HubSpotの目標は、アプリが共通のお客さま向けに適切に構築されていることを確認し、破損につながる変更を抑えることです。そのためには、アプリで最新の安定版APIを使用する必要があります。また、最新のベータ版APIを試すことに積極的なアントレプレナー、アーリーアダプター、開発者の皆さまにも申請いただき、ご支援させていただきたいと考えています。 > **自社のアプリをアプリマーケットプレイスの特集に取り上げてもらいたいと考えています。アプリ認定はそのためのものですか?** > > コレクションで特集されたり、アプリマーケットプレイス内でお客さまが簡単に認定アプリを絞り込んだりできるというメリットは、ますます大きくなりつつあります。HubSpotでは、アプリがどのような形式(アプリマーケットプレイス、HubSpotコミュニティー、HubSpotの特集ニュースレターなど)で特集されると特に効果的なのか、パートナーさまのお考えを詳しく伺いたいと考えています。 > > ぜひ担当の[アプリパートナーマネージャー](#app-partner-manager)にご連絡いただき、今後考えられるメリットや効果的な特集形式についてお話を伺えれば幸いです。 > **セキュリティーベストプラクティスについて公開アセットが評価される理由とその方法を教えてください。** > > 平均的なお客さまが5つ以上の連携を使用している現状において、アプリを監視して、プライバシー、セキュリティー、および品質の水準を守り続けることは不可欠です。公開アセットは、掲載プロセスで提供された情報に基づいて評価され、評価での発見事項が非侵襲的な方法で分析されます。 > **1年以上前にアプリの認定を取得しました。認定ステータスを維持するためには何をする必要がありますか? また、再認定とはどういうものですか?** > > アプリがコンプライアンスに違反している場合や年次再審査の期限に達した場合は、HubSpotエコシステム品質チームが必要な措置についてご連絡いたします。 > > アプリのパフォーマンス、認定要件、[開発者変更ログ](https://developers.hubspot.com/changelog)をモニタリングし、使用されているテクノロジーの変更やアプリを最新の状態に保つ方法に関連するその他のHubSpotリソースをご確認いただくことをお勧めします。 担当の**アプリパートナーマネージャー**とそのEメール情報を確認するには、開発者アカウントにログインし、[アプリマーケットプレイス]>[掲載情報]に移動します\*\*。 \*\*\*\* **アプリにカーソルを合わせて、[その他]>[掲載情報の詳細を表示]をクリックします**。 \*\*\*\* \*\* *** ## 関連コンテンツ [アプリ認定の申請方法](https://developers.hubspot.com/docs) [アプリを掲載する方法](/docs/apps/developer-platform/list-apps/listing-your-app/listing-your-app) [アプリの掲載に必要な条件](https://developers.hubspot.com/docs) [開発者コミュニティーフォーラム](https://community.hubspot.com/t5/APIs-Integrations/bd-p/integrations) [アプリパートナーチームへのお問い合わせ](https://www.hubspot.jp/partners/app/join) # アプリマーケットプレイス | アプリ掲載に必要な条件 Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/listing-your-app/app-marketplace-listing-requirements アプリパートナー向けに、アプリマーケットプレイスにアプリを掲載するためのHubSpotのガイドラインと要件をまとめました。 'アプリパートナー向けに、アプリマーケットプレイスにアプリを掲載するためのHubSpotのガイドラインと要件をまとめました。 '; ご提出いただいたアプリ掲載情報はHubSpotエコシステム品質チームによって手動で審査を行い、以下の条件を満たさない場合は却下とさせていただきます。アプリがこれらの要件を満たしたら、アプリ開発者アカウントから[アプリ掲載情報を作成](/docs/apps/developer-platform/list-apps/listing-your-app/listing-your-app)できます。 ## 最低限の条件 * **アクセス**: 掲載情報が、別の公開アプリまたは非公開アプリにリダイレクトされたり、別の公開アプリまたは非公開アプリの機能を必要としたりしてはなりません。 * **一意性**: 掲載する公開アプリは、貴社独自のものである必要があります。すでに掲載しているアプリを置き換えたい場合は、新しいアプリを掲載するのではなく、既存のアプリを更新してください。 * **ユースケース**: 作成する各アプリは、個別のユースケースに対処する必要があります。類似する機能を持ち、同じAPIを使用する複数のアプリは、1つのアプリに統合するのが適切です。 * **単一のHubSpotアプリID**: アプリがAPIリクエストを許可するには、アプリ掲載情報に関連付けられている、HubSpotの公開アプリのアプリID(および[OAuthクライアントID](/docs/apps/legacy-apps/authentication/working-with-oauth))が必要です。 * **OAuth**: アプリでは、OAuthを唯一の権限付与の方法として使用する必要があります。詳しくは、[OAuthの利用](/docs/apps/legacy-apps/authentication/working-with-oauth)をご参照ください。 * **インストール**: [アクティブなユニークインストール数](https://developers.hubspot.com/docs#:~:text=Active%20installs%20are%20the%20number%20of%20unique%20HubSpot%20production%20accounts%2C%20unaffiliated%20with%20your%20organization%2C%20showing%20successful%20app%20activity%20within%20the%20past%2030%20days.)が3以上必要です。 * **スコープ**: リクエストするのは、アプリに必要なスコープに限定してください。アプリの[高度なスコープ設定](/docs/apps/legacy-apps/public-apps/overview#configure-scopes)がオンになっている必要があります。エラーを防ぐため、必須、条件付き必須、およびオプションのすべてのスコープを選択してください。 * **規約**: [HubSpotのアプリパートナープログラム契約](https://legal.hubspot.com/app-program-agreement)の規約をご確認の上、同意していただく必要があります。 * **制限されている業界**: HubSpotで[制限されている業界](https://legal.hubspot.com/acceptable-use#Restricted-Industries)内のいずれかの顧客に適合していたり、そのような顧客のみに限定した機能を提供したりしてはなりません。 * **機能制限**: [従来のCRMカード](/docs/api-reference/crm-public-app-crm-cards-v3/guide)は2025年6月16日以降サポートが終了しているため、アプリで使用できません。この変更の詳細については[HubSpot開発者変更ログ](https://community.hubspot.com/t5/Developer-Announcements/Deprecating-Support-for-Classic-Legacy-CRM-Cards/m-p/1153039#M1048)をご確認ください。 ### HubSpotのブランディング要件 * アプリおよび関連資料(ドキュメント、ランディングページなど)は、[HubSpotのブランドガイドライン](https://www.hubspot.com/partners/app/branding-guidelines)を満たす必要があります。例えば、HubSpotに言及するときは必ず「HubSpot」の「S」を大文字にします。 * アプリおよび関連資料(ドキュメント、ランディングページなど)は、[HubSpotの商標使用ガイドラインを侵害しないようにしてください。](https://legal.hubspot.com/tm-usage-guidelines)例えば、アプリ名やロゴにHubSpotの名前(「Hub」と「HubSpot」を含む)を組み合わせることはできません。 ### 掲載情報の条件 最低限の条件を満たすと、アプリ掲載情報を提出できます。アプリ掲載情報を提出する際は、全ての情報をもれなく正確に入力する必要があります。これらのフィールドは特に重要であり、以下の要件を満たさない場合、掲載情報は下書きモードにしか設定されません。 * 一般的な製品情報とは対照的に、掲載情報の内容は連携に固有でなければなりません。顧客がこの連携をダウンロードして使用する結果として期待できる、具体的な価値に関する情報を盛り込む必要があります。一例として[Aircall](https://ecosystem.hubspot.com/marketplace/apps/aircall)、[CloudFiles](https://ecosystem.hubspot.com/marketplace/apps/cloudfiles)、[Reveal](https://ecosystem.hubspot.com/marketplace/apps/reveal-191193)を参考にしてください。 * アプリマーケットプレイスの掲載情報に記される全てのURLは、一般公開されている機能的なページにアクセスできるものである必要があります。 * 掲載情報に関連付けられたページをクロールするために、[HubSpotのSEOツール](https://knowledge.hubspot.com/ja/seo/understand-seo-crawling-errors)を使用して検証されます。 * 審査プロセスに不必要な遅延が生じないように、アプリ掲載情報を提出する前に、サイト管理者と協力して当社のクローラーのユーザーエージェント「HubSpot Crawler」を例外として許可リストに追加することを強くお勧めします。 * HubSpot連携に固有の、一般公開されているセットアップドキュメントへのリンクを含める必要があります。 * [セットアップドキュメントの全要件](https://developers.hubspot.com/docs)をご確認ください。このガイドには、全ての要件を満たすサンプルテンプレートも含まれています。 * * 一例として、[OrgChartHubセットアップガイド](https://orgcharthub.com/guides/setup)をご参照ください。 * アプリをHubSpotと簡単に連携できるページに顧客を誘導する、関連するインストールボタンのURLを含めます。 * アプリのサポートリソース(サポートウェブサイト、HubSpotコミュニティーフォーラム、導入事例)のURLは、有効で最新かつ一般公開されている必要があります。 * 貴社のアプリに関する利用規約およびプライバシーポリシーのURLは、有効かつ最新のものでなければなりません。 * 全てのURLフィールドが250文字に制限されています。 * アプリとHubSpotの間の情報の流れをユーザーに明示する「共有データ」は、正確かつ最新で、アプリが要求する[スコープ](https://developers.hubspot.com/docs#:~:text=Webhooks%20API.-,Scopes,-%3A%20You%20must)を反映したものでなければなりません。 * OAuthスコープで選択された全オブジェクトは、「共有データ」テーブルに文書化する必要があります。 * アプリが読み取りと書き込み両方のオブジェクトスコープを要求する場合は、データ同期を、これらのオブジェクトの双方向の同期としてアドバタイズする必要があります。 * アプリマーケットプレイス掲載情報には明確な価格情報が記載されている必要があります。 * 掲載情報に記載される料金プランは、ウェブサイトで公開されている価格情報と一致している必要があります。 * 掲載情報にはHubSpot連携を使用できる料金プランのみを記載する必要があります。 * 連携をサポートしていない料金プランは掲載情報に含めないでください。 * 例えば、アプリにAとBの料金プランがあり、プランBでしか連携を使用できない場合は、プランBの価格情報のみを掲載情報に記載します。 * 無料の料金プランは、無期限無料モデルまたはフリーミアムモデルの場合にのみ掲載してください。 * サポートへの連絡手段を少なくとも1つ記載する必要があります。 * アプリ掲載情報のテスト用ユーザー資格情報を提供するには、[こちら](https://developers.hubspot.com/docs)に記載されているガイドラインに従ってください。 ## 審査、フィードバック、承認 掲載情報が提出されると、HubSpotエコシステム品質チームは10営業日以内に初回審査を完了します。提供された情報に誤り、誤解を招く部分、または不備がある場合は、フィードバックをお送りいたします。アプリの審査およびフィードバックのプロセス全体は、フィードバックが共有されてから60日以内に完了する必要があります。[アプリマーケットプレイスに関する規約](https://legal.hubspot.com/app-program-agreement)に記載の通り、HubSpotは随時アプリ掲載情報の公開を取消または却下する権利を有するものとします。 **注**:認定申請に提出できるアプリは一度に1つのみです。最初のアプリの処理中に追加の申請が提出された場合、自動的に却下されます。 ## 掲載されたアプリパートナーさまの特典 * HubSpotアプリマーケットプレイスの専用ページへのアプリ掲載 * 専用サポートエイリアスによる開発者サポートへの優先的なお問い合わせ * ウェビナーやフォーラムなどの開発者コミュニティー向けリソースへのアクセス * PRテンプレートやローンチガイドなど、厳選されたマーケティングリソースへのアクセス * INBOUNDイベントのスポンサーシップ、ブース、チケットの割引 * HubSpot for Startupsシードステージプログラムを通じたソフトウェア割引 * マーケティングの最新情報や製品リリースなどに関する月刊ニュースレターの配信 ## 関連コンテンツ * [アプリを掲載する方法](/docs/apps/developer-platform/list-apps/listing-your-app/listing-your-app) * [アプリの認定に必要な条件](https://developers.hubspot.com/docs) * [APIリファレンスドキュメント](/docs/api-reference/overview) * [HubSpot APIの使い方](/docs/api-reference/overview) * [開発者コミュニティーフォーラム](https://community.hubspot.com/t5/APIs-Integrations/bd-p/integrations) * [アプリパートナーチームへのお問い合わせ](https://www.hubspot.jp/partners/app/join) # アプリ掲載情報の作成ガイド Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/listing-your-app/create-an-app-listing-setup-guide # アプリマーケットプレイス | アプリの掲載 Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/listing-your-app/listing-your-app HubSpotのアプリマーケットプレイスへの掲載のためにアプリを提出する流れをご紹介します。 'HubSpotのアプリマーケットプレイスへの掲載のためにアプリを提出する流れをご紹介します。'; [アプリマーケットプレイスへの掲載に必要な条件](https://developers.hubspot.com/docs)を満たすアプリを開発者アカウントで作成した後、[HubSpotアプリマーケットプレイス](https://ecosystem.hubspot.com/marketplace/apps)での公開に向けて掲載情報を提出することができます。ご提出いただいた内容は、HubSpotエコシステム品質チームが審査します。アプリの承認または却下については、Eメールでご連絡します。 アプリ掲載情報の更新や提出には、[スーパー管理者](https://knowledge.hubspot.com/ja/user-management/hubspot-user-permissions-guide#super-admin)の権限が必要です。 ## アプリ掲載情報の作成と提出 アプリ掲載情報を提出する前に、[アプリマーケットプレイスへの掲載に必要な条件](https://developers.hubspot.com/docs)に関するページを参照し、掲載情報の入力方法を確認してください。 * [アプリ開発者アカウント](https://developers.hubspot.com/docs)で\*\*[マーケットプレイス]>[アプリ掲載情報]\*\*に移動します。 * 右上の\*\*[掲載情報を作成]\*\*をクリックします。このボタンがグレー表示になっている場合、全ての既存のアプリについて掲載情報が既に作成されています。 * 掲載情報を作成する**アプリ**を選択し、\*\*[次へ]\*\*をクリックします。アプリマーケットプレイスに既に掲載されているアプリはここに表示されません。 * [\[アプリ名]のプライマリー掲載情報言語を選択]ドロップダウンメニューをクリックし、アプリマーケットプレイスを閲覧するユーザーに表示される**既定の言語**を選択します\*\*。 \*\* * \*\*[次へ]\*\*をクリックします。 アプリ掲載情報ウィザードには、情報を入力するタブが7つあります。 * [掲載情報](#listing-info) * [アプリの詳細](#app-details) * [価格設定](#pricing) * [アプリの機能](#app-features) * [サポート情報](#support-info) * [テスト情報](#testing-info) * [審査情報](#review-info) ### 掲載情報 [掲載情報]タブでは以下の操作を行います。 * [アプリ情報]には、**公開アプリ名**、**会社名**、**タグライン(キャッチコピー)**、**インストールボタンのURL**を追加します。2025年3月5日以降に作成されたアカウントの場合、[アプリ設定](guides/apps/public-apps/overview)で設定されたリダイレクトURLの中からインストールボタンURLを選択する必要があります。 * [アプリアイコン]で800px×800pxのサイズのアプリのアイコンをアップロードします。これはアプリマーケットプレイス、および接続されたユーザーアカウントに表示されます。アイコンを作成する際は、以下の点を考慮してください。 * **必要事項**: JPG、JPEG、PNGファイルを使用し、スペース全体(800px×800px)を活用(画像が少なくとも2つの縁に接するように)するとともに、ジャギーのない高解像度の画像を使用します。 * **禁止事項**: アイコンに文言を含める、ワードマークを使用する、またはアイコンの周囲に余白を残すことは禁止されています。 ![開発者ドキュメントのロゴ](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/dev-doc-logo.png) * [アプリの分類]セクションで、アプリの**カテゴリー**を2つまで選択できます。詳しくは[利用可能なカテゴリー](https://developers.hubspot.com/docs)をご参照ください。 * **URLパス**を確認して設定し、アプリマーケットプレイスでのアプリの検索に使用できる**検索語**を追加することもできます。 ### アプリの詳細 [アプリの詳細]タブでは以下の操作を行います。 * [デモ動画]には、アプリの動作を示す**動画**をアップロードします。ベストプラクティスとデモ動画の作成方法の例については、[アプリの優れたデモ動画の作成方法](https://www.hubspot.com/partners/apps/resources/how-to-make-a-great-app-demo-video)ページを参照してください。 * [スクリーンショット]には、アプリの動作を示す**画像**と**代替テキスト**を追加します。最大8つの画像を追加できます。 * [アプリの概要]セクションには、アプリの**概要**を入力します。概要には、アプリの機能、アプリによって解決される主要なビジネス上の問題、およびユーザーがアプリをインストールする理由に関する情報を含める必要があります。 * [共有されるデータを追加]をクリックします。[共有データ]では、アプリとHubSpotの間のデータの流れをユーザーに明示します。 * 右側のパネルで、アプリのどのオブジェクトがHubSpotのどのオブジェクトと同期されるかに加えて、同期の向きを選択します。[アプリの概要]では、アプリがユーザーの目的にどのように役立つかを簡単に**説明**します。 * 同期オブジェクトを追加するには[別のオブジェクトを追加]をクリックします。 ![アプリ掲載ページに表示される共有データ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/shared-data-app-listing.png) * [アプリと連携するHubSpot機能]ドロップダウンメニューをクリックし、HubSpot機能の横に表示されている**チェックボックス**を選択します。最大10件のHubSpotツールおよび機能を追加できます。 * [ソフトウェアと連携可能な他のツール]ドロップダウンメニューをクリックし、貴社のソフトウェアが連携する他のツールまたはアプリの横に表示されている**チェックボックス**を選択します。最大6件の他のツールまたはアプリを選択できます。 * [アプリが対応している言語を選択]では、アプリで利用可能な全ての**言語**を選択します。ここで指定した言語に限り、追加のアプリマーケットプレイス掲載情報を作成できます。 ### 価格設定 [価格設定]タブでは以下の操作を行います。 * [通貨]ドロップダウンメニューをクリックし、アプリに掲載したい通貨の横に表示されている**チェックボックス**を選択します。100種類を超える通貨の中から選択可能です。 * また、**価格モデル**、**プラン名**、**タグライン(キャッチコピー)**、**価格の詳細**、**機能リスト**を追加することで、アプリの料金プランを設定することもできます。 * 選択した価格モデルによっては、支払い頻度、一括払い、月々の価格などの情報を追加する必要があります。各料金モデルの詳細については、**情報アイコン**の内容をご確認ください。 ![DD - アプリの価格](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/DD%20-%20App%20Pricing.png) * 別の料金プランを追加するには、[別のプランを追加]をクリックします。料金プランは5件まで追加可能です。 * [このソフトウェアの価格設定プランへのリンク]では、料金プランの詳細情報をユーザーが参照できる**URL**を入力します。 * [パートナー価格プラン]には、パートナーやコンサルティングサービスの価格をユーザーが参照できる**URL**を入力します。 ### アプリの機能 [アプリの機能]タブで機能を追加し、その使用法を顧客に紹介します。アプリに作成できるアプリの機能数に制限はありません。 * 右上の[URLを追加]をクリックします。 * [機能の詳細]ページでアプリの機能を設定します。 * **機能名**を入力します。ここでは、機能の内容を説明する必要があります。 * **スコープ**: この機能で顧客に適用する必要のあるスコープグループを全て選択します。スコープグループは、顧客のHubSpotアカウントでアプリの機能を利用できるかどうかを決定するために使用されます。 * **説明**: 機能の詳細な説明と、それが顧客のビジネス上の問題をどのように解決できるかを入力します。 * **画像**: 機能の画像を追加します。画像を追加したら、[アプリマーケットプレイスの掲載情報]または[機能の発見カードとして]スイッチをクリックしてオンに切り替え、画像を表示する場所を設定します\*\*。 \*\*\*\* \*\* * 機能の発見カードとして機能を表示することを選択した場合は、以下の操作を行います。 * プライマリーボタンのオプションを選択します。 * **機能にリンク**:ボタンをリンクするHubSpot機能を選択します。 * **カスタムを作成**:[ボタンテキスト]および[ボタンURL]を入力します\*\*。 \*\*\*\* \*\* * **プライマリーボタンなし**: 機能の発見カードにボタンを表示しません。 * 顧客の導入支援を行うためのハウツーガイドを選択します。 * **ガイドをゼロから作成\*\***: タイトル\*\*、**説明**、\*\*画像または動画\*\*を入力します。 * **ガイドへの外部リンク\*\***: ガイドURL\*\*を入力します。 * **動画のみのガイド\*\***: 動画\*\*をアップロードします。 * 別のガイドを追加するには、[別のセクションを追加]をクリックします\*\*。 \*\* ![](https://www.hubspot.jp/hubfs/image-png-Dec-13-2024-10-32-55-1239-AM.png) ### サポート情報 [サポート情報]タブでは以下の操作を行います。\_ \_ * [コンタクト情報]には、アプリの利用ユーザーからの問い合わせ先として、サポートへの連絡方法を追加します。\_ \_貴社の**カスタマーサポートのEメール**、およびサポート対象**言語**を追加する必要があります。貴社のウェブサイト、ウェブチャット、Facebookページ、電話番号へのリンクも追加できます。 * [サポートリソース]には、アプリの設定用文書への**リンク**を記入します。\_ \_ * [サービス利用規約とプライバシーポリシー]には、貴社のプライバシー規約などに関する文書への**リンク**を追加します。\_ \_ ### テスト情報 [テスト情報]タブでは以下の操作を行います。 * [アプリのレビュー手順]フィールドに、HubSpotの開発者がレビュープロセスの一環としてアプリをテストするための手順を入力します。詳しくは、[アプリのテストの詳細とユーザー資格情報を指定する](https://developers.hubspot.com/docs)方法をご確認ください。 * [アプリパートナープログラムの連絡先]セクションで、アプリ掲載情報の詳細、技術情報、プログラム情報を受け取るチームメンバーの詳細を追加します。 * 少なくともアプリパートナープログラムのメインの連絡先と担当の開発者を含める必要があります。担当者の**役割**、**氏名**、**Eメールアドレス**、所在する**国・地域**を含める必要があります。 * 別のメンバーを窓口として追加するには、[別の連絡先を追加]をクリックします。 ### 審査情報 [審査情報]タブでは以下の操作を行います。 [アプリレビュー]セクションに、全ての掲載エラーが記載されたリストが表示されます。 * 全ての掲載情報エラーの詳細を確認するには、上部の[全て展開]をクリックします。 * 全ての掲載情報エラーの詳細を非表示にするには、上部の[全て折りたたむ]をクリックします。 * エラーを解決するには、**エラー名**をクリックします。クリックすると関連するタブとセクションに移動し、エラーを解決できます。 ![](https://www.hubspot.jp/hubfs/image-png-Dec-13-2024-11-25-02-2139-AM.png) * [検証して送信]ボタンがグレー表示になっている場合は、全ての必須フィールドに入力したこと、また、スーパー管理者権限があることを確かめてください。 * 必須項目の記入漏れがある場合、不足項目の件数がタブ見出しに表示されます。各**タブ**をクリックして不足している情報を入力してから、[審査情報]タブに戻ります。 * 下部にある[検証の実行]をクリックします。 ![](https://www.hubspot.jp/hubfs/image-png-Dec-13-2024-11-31-19-4860-AM.png) ## 既存のアプリ掲載情報のローカライズ版の作成と更新 他の言語の掲載情報を作成するには、既存のアプリ掲載情報でプライマリー言語を設定し、プライマリー掲載情報をHubSpotマーケットプレイスで公開済みにしている必要があります。 * HubSpotアプリ開発者アカウントで、[マーケットプレイス]>[アプリ掲載情報]をクリックします。 * マーケットプレイスに掲載済みのアプリがある場合は、掲載済みのアプリの上に黄色いバナーが表示され、掲載のプライマリー言語を設定することを求められます。[今すぐ設定]をクリックします。新しい言語で掲載情報を作成する前に、アプリ掲載情報のプライマリー言語を設定する必要があります。 * ダイアログボックスで、[アプリが対応している言語を選択]ドロップダウンメニューをクリックし、アプリのソフトウェアを提供する**言語**を選択します\*\*。 \*\* * [\[アプリ名]のプライマリー掲載情報言語を選択]ドロップダウンメニューをクリックし、アプリマーケットプレイスを閲覧するユーザーに表示される**既定の言語**を選択します\*\*。 \*\* * [保存]をクリックします\*\*。 \*\* プライマリー言語を設定すると、ローカライズされた新しい掲載情報を追加できるようになります。 * **アプリ掲載情報**にカーソルを合わせ、[その他]>[別の言語で掲載情報を作成]をクリックします\*\*。 \*\*\*\* \*\* * 掲載情報を他の言語に自動翻訳する場合は、[自動翻訳]スイッチをクリックしてオンに切り替えます\*\*。 \*\* * このオプションを選択した場合、翻訳された掲載情報は自動で直ちにマーケットプレイスに公開されます。自動翻訳された掲載情報に関しては、管理者による審査は行われません。 * [この掲載情報の言語]ドロップダウンメニューをクリックし、掲載情報を作成する**言語**を選択します\*\*。 \*\* * 掲載情報は、ユーザーがアカウントで設定した言語で自動的に表示されます。例えばユーザーがスペイン語を[アカウントのデフォルトの言語](https://knowledge.hubspot.com/ja/account-management/change-your-language-and-region-settings)に設定している場合、スペイン語で作成された掲載情報はスペイン語で表示されます。 * [自動翻訳]オプションが有効になっている場合、選択した言語は自動翻訳され、新規の掲載情報として公開されます。\_ \_ * [作成]をクリックします\*\*。 \*\*ステップに沿って、選択した言語の掲載情報を作成し、提出します。 ## 公開中のアプリ掲載情報の編集 アプリマーケットプレイスにアプリが公開された後に掲載情報を編集するには、以下の操作を行います。 * 開発者アカウントで、[マーケットプレイス]>[掲載情報]に移動します。 * 編集する掲載情報にカーソルを合わせ、[その他]をクリックします。次に[編集]を選択します。 * 変更後、右上の[検証して送信]をクリックします。 * ダイアログボックスで利用条件に目を通してから、**チェックボックス**をオンにします。 * ローカライズされた掲載情報の変更を自動的に翻訳するには、[サポートされている全てのローカライズ可能な掲載情報を自動翻訳する]チェックボックスをオンにします。[サポートされるローカライズ可能な掲載情報]にカーソルを合わせると、どの掲載情報が自動的に翻訳されるか確認できます。 * [同意して送信]をクリックします。 ![カーソルを合わせたときにダイアログボックスに表示される、サポートされるローカライズ可能な掲載情報](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/view-supported-localizable-listings.png) ## 公開中のアプリ掲載情報の公開停止 * 開発者アカウントで[マーケットプレイス]>[アプリ掲載情報]に移動します。 * 公開を停止する掲載情報にカーソルを合わせ、[その他]をクリックします。次に[掲載情報の公開を終了]をクリックします。 * ダイアログボックスにアプリを公開を停止する理由を入力してから[公開終了の依頼を送信]をクリックします。 非公開リクエストは、送信後10営業日以内にHubSpotマーケットプレイスチームによって処理されます。 # アプリマーケットプレイス | アプリカテゴリーについて Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/listing-your-app/understand-app-categories # アプリ掲載情報ページからデモのスケジュールを設定する Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/set-up-demo-scheduling-from-the-app-listing-page コンタクトによるフォームの送信方法やミーティングの日程をアプリ掲載情報ページから確認する方法を説明します。 アプリ掲載情報ページを設定する際に、見込み客がデモのスケジュールを設定できるようにするため、日程設定ページやフォームを追加できます。 ## 日程設定ページまたはフォームをアプリ掲載情報に追加する * 開発者アカウントで、[マーケットプレイス]>[アプリ掲載情報]に移動します\*\*。\*\*\*\*\*\* * 掲載情報の上にカーソルを置いて[その他]\*\*\*\*をクリックし、次に[編集]\*\*\*\*を選択します。[アプリ掲載情報の作成](/docs/apps/developer-platform/list-apps/listing-your-app)について詳細をご確認ください。 * [掲載情報]\_\_タブで、デモの日程を設定するためのオプションを追加します。 * ミーティングリンクを追加するには、[ミーティングURLを追加]\*\*\*\*ドロップダウンメニューをクリックして**日程設定ページ**を選択します。新しい日程設定ページを作成するには、[ミーティングリンクを作成]\*\*\*\*をクリックします。詳しくは、[日程設定ページ](https://knowledge.hubspot.com/meetings-tool/create-and-edit-scheduling-pages)をご確認ください。 * フォームを追加するには、[コンタクトフォームを追加]\*\*\*\*ドロップダウンメニューをクリックして**フォーム**を選択します。フォームを新しく作成するには、[コンタクトフォームを作成]\*\*\*\*をクリックします。[コンタクトフォームの利用](https://knowledge.hubspot.com/forms/create-and-edit-forms)について詳細をご確認ください。 ![デモの日程設定オプションを設定する](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/add-meeting-or-form-to-app-listing.png) * 右上の[検証して送信]をクリックします\*\*。\*\* 変更が承認されると、顧客に対して表示されるアプリ掲載情報の右上に、デモの日程を設定したり連絡をリクエストしたりするためのオプションが表示されます。日程設定ページとコンタクトフォームを追加した場合、[デモをスケジュール]\_\_ドロップダウンメニューで両方のオプションが利用できるようになります。 ![デモの日程設定に関するアプリ掲載情報のドロップダウンメニュー](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/schedule-demo-on-app-listing.png) # アプリマーケットプレイス | アプリのテスト用認証情報を提供 Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/testing-credentials # マーケットプレイスから作成されたコンタクトを表示する Source: https://developers.hubspot.jp/docs/apps/developer-platform/list-apps/view-contacts-created-from-the-marketplace HubSpotマーケットプレイスのアプリ掲載情報に反応したコンタクトのリストにアクセスする方法を説明します。 コンタクトがHubSpotマーケットプレイスのアプリ掲載情報に反応すると、関連付けられている開発者アカウントの特定のコンタクトリストにそのコンタクトが追加されます。その後、コンタクトに連絡して、アプリがコンタクトのニーズに適切に対応しているかどうかを確認できます。 ## 始める前に この機能を使用する前に、事前に必要な手順と制限事項を十分に理解しておく必要があります。 ### 要件を理解する * アプリに関連付けられている開発者アカウントがHubSpotの無料ツールを使用している必要があります。 * コンタクトは、アプリ掲載情報で次のいずれかのアクションを実行したときにリストに表示されます。 * 動画またはスクリーンショットをクリックする。 * [設定方法に関するヘルプ記事を表示]をクリックする。 * [会社のウェブサイト]をクリックする。 ### 制限事項と考慮事項を理解する * アプリ掲載情報にアクセスしたときにHubSpotにログインしていたコンタクトのみがリストに追加されます。 ## アプリ掲載情報のコンタクトにアクセスする * アプリに関連付けられているHubSpot開発者アカウントで、[**CRM**]>[リスト\*\*\*\*]に移動します。 * 「アプリマーケットプレイス - \[アプリ名]」という名前の**リスト**をクリックします。複数のアプリをお持ちの場合は、アプリごとに個別のリストが作成されます。 ![アプリ掲載情報に反応したコンタクトのリストを確認する](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/review-leads-from-marketplace-listing.png) * コンタクトに関する以下の情報を確認できます。 * 名 * 姓 * 会社 * Eメール # カスタムEメールテンプレートでのドラッグ&ドロップエリアの指定 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/drag-and-drop/custom-email-template カスタムEメールテンプレートでドラッグ&ドロップエリアを指定する方法について説明します。 > **サポートされる製品** [ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)を使用することで、開発者はEメールエディター内でレイアウト、スタイル、コンテンツを直接変更できる、カスタム Eメール テンプレートのセクションを作成できます。これにより、開発者はグローバル構造を使用してテンプレート作成数を減らすことができ、作成されたEメールテンプレートを使用してコンテンツ制作担当者は個々の目的に応じてさまざまなレイアウトのページを作成できるようになります。 > [!WARNING] > > **注**: カスタムEメールテンプレートに含めることができるドラッグ&ドロップエリアは1つだけです。 **1. 新規HTMLテンプレートを作成する** 新しいHTMLテンプレートを作成して、ドラッグ&ドロップセクションのHubLおよびHTMLコードを含めます。 * HubSpotアカウントで[コンテンツ]>[デザインマネージャー]の順に進みます。 * 新しいファイルを作成するには、左のサイドバーで[ファイル]>[新規ファイル]をクリックします。 * ダイアログボックスで、[今日は何を作成しますか?]の下にあるドロップダウンメニューをクリックし、[HTML + HubL]を選択します。 * [次へ]をクリックします。 * [テンプレートタイプ]ドロップダウンメニューをクリックし、[Eメール]を選択します。 * テンプレートの**名前**を入力します。 * テンプレートの保存場所を更新するには、[ファイルの場所]の下にある[変更]をクリックし、テンプレートを作成する新しいフォルダーを選択します。 * [作成]をクリックします。 **2. テンプレートヘッドにHubLタグを追加する** スタイル設定と互換性の目的でEメールテンプレートの``セクションに含めることができる必須のタグと任意のタグを以下でご確認ください。 ### 必須タグ `{{ dnd_area_stylesheet }}` このタグは、次の機能を提供します。 * 関連付けられたメディアクエリーを追加する * Outlookの既知のスタイル設定に関する問題を修正する * マージンとパディングをリセットする * アンチエイリアス処理を有効にする * 特定のCSSを追加する ### 任意のタグ 全ての主要なEメールクライアントで一貫性のあるテンプレートの表示を確保するために、以下の任意のHubLタグをテンプレートに含めることもできます。 * `{{ email_header_includes }}`:このタグはCSSをテンプレートに挿入して、一貫したスタイルをレンダリングし、一般的なスタイルの問題を修正し、EメールのHTMLにメタデータを追加します。このHubLタグを解析すると、Eメールの``内に次の内容が追加されます。 | パラメーター | 説明 | | - | - | | `` | iOS11によりEメールが自動的にスケーリングされないようにします。 | | `` | ブラウザーやEメールクライアントに、さまざまな文字をどのように解釈するかを伝えます。 | | `` | Windows Phone 7.5でCSS3とメディアクエリーを有効にし、可能な限り最適なモードでコンテンツをレンダリングするようにInternet Explorerに通知し、EメールをレンダリングするInternet Explorerのバージョンをブラウザーが選択できるようにします。 | | `` | 表示可能領域をデバイス画面の幅に設定して、Eメールをレスポンシブにします。 | * `{{ reset_css_stylesheet }}`:このタグを含めると、Outlookにおける多くのスタイルの問題が修正されると同時に、Eメールの余白とパディングがリセットされます。 * `{{ outlook_background_snippet }}`:このタグは、関連する背景CSSルールを指定している場合に、Outlookの背景画像または色を設定します。 **3. ドラッグ&ドロップエリアを作成する** `{{ dnd_area_stylesheet }}` HubLタグとその他の任意のタグをテンプレートの``に追加したら、テンプレート本文に`dnd_area`を設定できます。 ### 空のドラッグ&ドロップエリアを作成する `dnd_area`は、ウェブページの一部の構造、デザイン、およびコンテンツを編集可能にするためのコンテナーです。ドラッグ&ドロップエリアのデフォルトのコンテンツは、`dnd_area`タグの本文で指定します。 ドラッグ&ドロップエリアは、`
`または``で囲むことができます。ドラッグ&ドロップエリアの制限の1つは、最小幅が624ピクセルに設定されており、この値をオーバーライドできないことです。 このタグの独自機能により、制作担当者がモジュールをEメールエディター内にドラッグするためのドロップエリアが生成されます。 次のコードは、空のドラッグ&ドロップエリアを指定します。 ```hubl theme={null} {% dnd_area "main" %} {% end_dnd_area %} ``` ### 空の列を含むドラッグ&ドロップエリアを作成する `dnd_section`フィールドと`dnd_column`フィールドを使用してドラッグ&ドロップエリアをカスタマイズし、デフォルトのセクションと列を指定することもできます。 例えば、以下のHubLコードでは、3列のドラッグ&ドロップエリアを指定します。 ```hubl theme={null} {% dnd_area "main" %} {% dnd_section padding={'top': 25, 'bottom': '20} %} {% dnd_column width=4 %} {% end_dnd_column %} {% dnd_column width=4 %} {% end_dnd_column %} {% dnd_column width=4 %} {% end_dnd_column %} {% end_dnd_section %} {% end_dnd_area %} ``` > [!WARNING] > > `dnd_row` HubLタグは、現在Eメールテンプレートでサポートされていません。 **4. モジュールを含むドラッグ&ドロップエリアを追加する** セクションにあらかじめコンテンツを取り込むには、`dnd_module`タグを使用して、取り込むモジュールのパスを参照します。モジュールをセクションと列内に追加し、ドラッグ&ドロップエリアにコンテンツが事前に取り込まれるようにする必要があります。 以下の例ではデフォルトのHubSpotモジュールが参照されていますが、デザインツールのファイルツリー内のパスを指定して、自分で作成したモジュールを含めることもできます。 `dnd_module`のデフォルト値を指定するには、`module_attribute`タグを使用できます。 ```hubl theme={null} {% dnd_area "main", full_width=False %} {% dnd_section padding={ 'top':'25', 'bottom':'20' }, full_width=False %} {% dnd_column width=6 %} {% dnd_module path='@hubspot/image_email', img={ 'alt':'NavyLogo', 'height':38, 'src':'email_dnd_template_images/NavyLogo.png', 'width':120 }, alignment='center', hs_enable_module_padding=True, hs_wrapper_css={ 'padding-bottom':'10px', 'padding-left':'20px', 'padding-right':'20px', 'padding-top':'10px' } %} {% end_dnd_module %} {% end_dnd_column %} {% dnd_column width=6 %} {% end_dnd_column %} {% end_dnd_section %} {% end_dnd_area %} ``` **5. ドラッグ&ドロップテンプレートをさらにカスタマイズしてスタイルを設定する** ドラッグ&ドロップのHubLタグ(`dnd_area`、`dnd_section`、`dnd_column`など)のそれぞれには、デフォルトのスタイルを指定したり、その他の動作(Eメールエディターのサイドバーに表示するラベルなど)を指定したりするために使用できるさまざまなパラメーターが含まれています。 各タグで使用できるパラメーターの詳細については、各タグの以下のリンクを確認してください。 * [dnd\_area](/docs/cms/reference/hubl/tags/dnd-areas#dnd-area) * [dnd\_section](/docs/cms/reference/hubl/tags/dnd-areas#dnd-section) * [dnd\_column](/docs/cms/reference/hubl/tags/dnd-areas#dnd-column) * [dnd\_module](/docs/cms/reference/hubl/tags/dnd-areas#dnd-module) # ドラッグ&ドロップテンプレート Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/drag-and-drop/drag-and-drop-templates デザインマネージャーのドラッグ&ドロップテンプレートは、ビジュアルビルダーを使用して作成されるテンプレートです。利便性の面でコードテンプレートが優れているため、新しく作成する場合にドラッグ&ドロップテンプレートは推奨されません。 > **サポートされる製品** > [!WARNING] > > **ドラッグ&ドロップテンプレートは、新しいテンプレートには推奨されません。**ドラッグ&ドロップテンプレートはテーマの一部として使用できないため、テーマフィールドのようなテーマ機能と、テーマモジュールをサポートしません。また、CMS Hub Starterではサポート**されない**ため、代わりに`dnd_area`を使用してください。ドラッグ&ドロップテンプレートでは、CMSの一部の新しい機能([アクセス権設定(メンバーシップ)](/docs/cms/start-building/features/memberships/overview)、[ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)、[再利用可能セクション](/docs/cms/start-building/building-blocks/sections/sections)、GraphQLなど)がサポートされません。拡張性が十分ではなく、制作担当者や開発者にとってコードテンプレートほどの利便性が得られません。代わりに、[ドラッグ&ドロップエリア](/docs/cms/start-building/building-blocks/templates/html-hubl-templates)を有する、コード化された[HTML+HubLテンプレート](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)の利用をお勧めします。開発者やマーケティング担当者にとっての利便性が向上します。CMSの利用を始めるには、コードテンプレートを使用して構築されている[HubSpot Theme Boilerplate](https://github.com/HubSpot/cms-theme-boilerplate)(テーマボイラープレート)をぜひご参照ください。 ドラッグ&ドロップ[テンプレート](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview)は、技術的な知識がなくてもHubSpotのCMS上で簡単にウェブサイトを構築できるように設計されています。ドラッグ&ドロップテンプレートには視覚的なテンプレートビルダーが採用されていますが、内部ではHTML+HubLが生成されます。 ビジュアルビルダーの動作に必要なHTML出力はHubSpotによって制御されていて、開発者がその構造化部分を直接制御することはできません。さらに、**layout.cssファイルがページに読み込まれて、ブートストラップ2に基づく基本的な12列グリッドが有効になります**。これにより、ドラッグ&ドロップテンプレートを使用したウェブサイトは既定で、コンテンツの行が縦に積み重なったレスポンシブ対応になります。レスポンシブデザインの複雑なカスタマイズを行う場合には、独自のレスポンシブスタイルを追加可能です。 ドラッグ&ドロップテンプレートはデザインマネージャー内で構築し、APIまたは[ローカル開発ツール](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)を使用する場合にはJSONで表記します。ドラッグ&ドロップテンプレートの編集方法としては、その性質上、デザイン マネージャー インターフェイスを使用する方法が推奨されます。\*\*コーディングが必要な場合は、バージョン管理機能を使用するか、使い慣れたローカルツールを使用して編集します。HTML+HubLコードテンプレートにより、最適な開発体験が提供されます。\*\*HTML+HubLテンプレートの[dnd\_area](/docs/cms/reference/hubl/tags/dnd-areas)機能でも、ビジュアル コンテンツ エディター内で制作担当者が作業できるので、デザインマネージャーのドラッグ&ドロップインターフェイスよりも優れた利便性を備えています。 ## ドラッグ&ドロップ テンプレート ビルダー ドラッグ&ドロップテンプレートを作成するには、デザインマネージャーを開き、ファインダー内で新しいファイルを作成し、作成するテンプレートと[テンプレートのタイプ](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#template-types)を選択します。 ドラッグ&ドロップテンプレートには、モジュール、グループ、グローバルグループ、フレキシブルカラムというさまざまな構成要素があります。 詳しくは[ドラッグ&ドロップ テンプレート ビルダーの使用方法](https://knowledge.hubspot.com/ja/design-manager/structure-and-customize-template-layouts)をご覧ください。 ### モジュール モジュールは、ページ上で編集できる再利用可能な要素です。モジュールは、HTML+HubLテンプレートのフラグメント、CSS、JS、およびフィールドで構成されます。制作担当者は、モジュールをフレキシブルカラムとdnd\_areasの内部に配置できます。制作担当者によるウェブサイトのコンテンツ管理の基本機能です。モジュールを作成することで、数多くの機能、検索、画像ギャラリー、メニュー、複雑なマーケティングアニメーション、電卓、製品比較など、想像力次第でさまざまな処理が可能になり、制作担当者の利便性の向上につながります。フィールドは、制作担当者が出力を制御する手段になります。モジュールはドラッグ&ドロップテンプレートに使用できるだけではなく、HubSpotのCMSにおける重要な構成要素です。ドラッグ&ドロップテンプレートでは、モジュールフィールドの既定値を[インスペクター](https://knowledge.hubspot.com/ja/design-manager/a-quick-tour-of-the-design-manager)内で設定できます。詳しくは[モジュールについて](https://developers.hubspot.jp/docs/guides/cms/content/modules/overview)をご参照ください。 ![モジュールを示すデザイン マネージャー インターフェイス](https://cdn2.hubspot.net/hubfs/53/image2-3.png) ### グループ グループは他のグループやモジュールのためのラッパーであり、CSSクラスやラッピングHTMLを使用できます。グループの配置とサイズ設定を円滑化する、レイアウトクラスを伴うラッピングHTMLとして機能します。グループには内部専用名を付けることができます。このようにデザインマネージャー上で[モジュールをグループ化](https://knowledge.hubspot.com/ja/design-manager/structure-and-customize-template-layouts#group-modules)することで、ページのさまざまな部分が識別しやすくなります。例として、サイドバーやバナーが挙げられます。 > [!WARNING] > > 新しいサイトでは[HTML+HubL](/docs/cms/start-building/building-blocks/templates/html-hubl-templates)ファイルが推奨されるため、[ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)の列、セクション、行によってグループの目的の大半が置き換えられます。 > > さらに開発者は、パーシャルおよび[グローバルパーシャル](/docs/cms/start-building/building-blocks/global-content)を作成し、ドラッグ&ドロップエリアに加えて自由形式のコードも含められます。 > > ドラッグ&ドロップテンプレートでは、ドラッグ&ドロップエリア、パーシャル、およびグローバルパーシャルがサポートされません。 ![デザインマネージャーでサイドバーグループが選択されているスクリーンショット](https://designers.hubspot.com/hubfs/image4-1.png) ### グローバルグループ グローバルグループは、編集されると、特定のページだけでなくウェブサイト全体に影響するグループです。グローバルグループは、複数のテンプレートに配置可能で、通常はウェブサイトのヘッダーやフッターに使用されます。グローバルグループはパーシャルに似ていますが、ドラッグ&ドロップテンプレートによって適用される構造に限定されます。必要に応じてHTML+HubLファイルに埋め込むこともできますが、その場合はグローバルパーシャルを使用する方が理にかなっています。 ![ヘッダーとフッターのグローバルグループを示すデザイン マネージャー インターフェイス](https://cdn2.hubspot.net/hubfs/53/image1-3.png) ### フレキシブルカラム フレキシブルカラムは特別なタイプのグループです。モジュールの既定のセットを含めることができますが、制作担当者はその中のモジュールを追加、削除、移動することが可能です。フレキシブルカラムを利用すると、1次元的にモジュールを上から下に並べ替えることができます。[dnd\_areaタグとは異なり](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)、\*\*フレキシブルカラムでは、モジュールを格納できるセクションもスタイル機能もサポートされません。 \*\*フレキシブルカラムは、ドラッグ&ドロップテンプレートに限定されません。[HTML+HubL](/docs/cms/start-building/building-blocks/templates/html-hubl-templates)テンプレートで使用できる[HubLタグ](/docs/cms/reference/hubl/tags/standard-tags#flexible-column)があります。詳しくは[ドラッグ&ドロップテンプレートにフレキシブルカラムを追加する方法](https://knowledge.hubspot.com/ja/design-manager/structure-and-customize-template-layouts#add-a-flexible-column)をご確認ください。 > [!TIP] > > 一般的に、ドラッグ&ドロップエリアの使用が推奨されます。多くの状況で使いやすく、フレキシブルカラムに相当する機能を全て利用できるためです。 > > ただしサイドバーのように、フレキシブルカラムを使用する方が便利な場合もあります。メインのコンテンツ領域としては、ドラッグ&ドロップエリアが非常に柔軟です。 ![デザインマネージャーでのメイン コンテンツ グループの選択を示すスクリーンショット](https://designers.hubspot.com/hubfs/image3-2.png) フレキシブルカラムを使用する理由を考えてみてください。ウェブサイトは変化を伴います。長期間にわたって構築および維持されます。例えば、企業のホームページで特定の製品が大きく扱われることがありますが、マーケティングニーズの変化につれて頻繁な変更が必要になる場合もあります。フレキシブルカラム内のコンテンツは制作担当者による追加、削除、変更が可能なので、マーケティング担当者にとって煩雑な作業ではありません。開発者は軽微なページ調整に対応する代わりに、本質的な開発作業に集中できます。 同じように、1つのウェブサイトのページごとに異なる構造が必要な場合があるかもしれません。こうしたページもフレキシブルカラムというコントロールを利用すれば、マーケティング担当者がカスタムモジュールを使用して作成できます。 ### ドラッグ&ドロップテンプレートにカスタムコードを追加する 複数の追加方法が用意されており、中でも最も基本的な方法はカスタムモジュールです。ただし、モジュールやグループのラッパーコードの追加が必要になる場合があります。そのためには、モジュールまたはグループをクリックして、それをインスペクターで表示し、ラッピングHTMLフィールドを検索します。そのフィールドにHTMLを追加します。 また、HTMLのheadへのコード追加や、``の直前へのコード追加が必要になる場合もあります。テンプレートを開いた状態で、何も選択していないことを確かめてください。インスペクターには、テンプレート自体のフィールドが表示されます。この状態で、スタイルシートやJavaScriptファイルへのリンクを追加したり、headまたは``タグの直前にHTMLを追加したりできます。 追加するには[インスペクター](https://knowledge.hubspot.com/ja/design-manager/a-quick-tour-of-the-design-manager)を使用します。インスペクターには、[スタイルシート、JavaScript](https://knowledge.hubspot.com/ja/design-manager/a-quick-tour-of-the-design-manager##attach-stylesheets-and-javascript-files)、[``マークアップ](https://knowledge.hubspot.com/ja/design-manager/a-quick-tour-of-the-design-manager#customize-your-template-s-head-and-body-options)などのための、テンプレート側のフィールドがあります。 ![デザインマネージャーのカスタム コード インスペクター パネル](https://designers.hubspot.com/hubfs/image5.png) # ドラッグ&ドロップエリアの概要 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/drag-and-drop/overview ドラッグ&ドロップエリアを使うと制作担当者はモジュールの配置、レイアウトの変更、コンテンツエディター内での一部のスタイル設定ができます。開発者が定義済みレイアウトを作成します。 ドラッグ&ドロップエリアを使用すると、制作担当者がコンテンツエディター内でモジュールの配置、レイアウトの変更、スタイルの追加を行うことができるページエリアとグローバルパーシャルを作成できます。ドラッグ&ドロップエリアを使用すると、制作担当者が独自にレイアウトを作成できるので、作成するテンプレートの数を減らすことができます。 このページでは、`dnd_area`の利便性と概念について詳しく説明します。ビルドの準備ができたら、 [dnd\_area](/docs/cms/start-building/building-blocks/drag-and-drop/tutorial)を使ってみると[dnd\_areaのリファレンスドキュメント](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas)をご参照ください。 > [!WARNING] > > ### 注: > > [ブログ記事](/docs/cms/start-building/building-blocks/templates/blog)と[Eメールテンプレート](/docs/cms/start-building/building-blocks/templates/overview#email)でドラッグ&ドロップエリアを使用することはできません。 ## 制作担当者にとっての利便性 制作担当者がドラッグ&ドロップエリアを含むテンプレートを使用してページを作成する際には、開発者がレイアウトに配置した定義済みモジュールを使用したページが最初に表示されます。この初期レイアウトは、このテンプレートを使用するページの外観のサンプルとなります。制作担当者はドラッグ&ドロップエリアを使用して、次のようなページを作成できます。 * モジュール、セクション、行、列の追加。 * モジュールのサイズ変更、コンテンツとスタイルの更新(配置の調整や背景の追加など)。 小さな調整のために開発者の介入を必要とせずに、シンプルにページを変更できる豊富な柔軟性が得られます。 > [!WARNING] > > ### 注: > > コンテンツ制作担当者は、テンプレートで「[dnd\_area](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas)」タグが使用されているかどうかに応じて、ページのテンプレートを同じタイプの別のテンプレートと入れ替えることができます。 > > * ビジュアルドラッグ&ドロップ レイアウト エディター上で作成したテンプレートは、「`dnd_area`」タグの有無に関係なく、他のドラッグ&ドロップテンプレートまたはコードテンプレートと入れ替えることができます。 > * 「dnd\_area」タグを含むコードテンプレートは、`dnd_area`タグを含む他のコードテンプレートとのみ入れ替えることができます。 > * 「`dnd_area`」タグが使用されていないコードテンプレートは、「`dnd_area`」タグが使用されていない他のコードテンプレートとのみ入れ替えることができます。 > > ページのテンプレートが入れ替わっても、最初のテンプレートのドラッグ&ドロップエリアに追加した既存のコンテンツは保持されます。 ![ページエディターでのdnd\_areas](https://cdn2.hubspot.net/hubfs/53/drag-and-drop.gif) の操作 ## 開発者にとっての利便性 ドラッグ&ドロップエリアを使用した開発は、一般的なCSSフレームワークとそのグリッドを使用することと似ています。まず最初にセクションと呼ばれるコンテナーを使用してページをレイアウトします。[セクション](/docs/cms/start-building/building-blocks/sections/sections)に行が含まれています。行の内部はモジュールと列です。これらの[要素](#drag-and-drop-area-elements)の詳細については、以下をご覧ください。 ほとんど全てをテンプレートにハードコードすることもできますが、ドラッグ&ドロップエリアを使用した開発の目標は、後で制作担当者が編集できるデフォルトのページコンテンツを作成することです。 `dnd_area`タグの使用例を確認するには、[HubSpotのCMSボイラープレートテンプレート](https://github.com/HubSpot/cms-theme-boilerplate/tree/main/src/templates)をご参照ください。 ![dnd\_areaVS Codeでコーディングされた](https://cdn2.hubspot.net/hubfs/53/dnd%20coded.png) ## ドラッグ&ドロップエリアの要素 ドラッグ&ドロップエリアを含むページを作成する場合は、次の要素を含めます。 * [**dnd\_area**](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#dnd-area)\*\*:\*\*コンテンツエディターでモジュールのドラッグ&ドロップを可能にする最上位のドラッグ&ドロップ要素。ドラッグ&ドロップエリアをネストすることはできません。例えば、 `dnd_section`に`dnd_area`タグを含めることはできません。 * [**dnd\_section**](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#dnd-section): `dnd_area`内の最も外側のコンテナ。`dnd_row`、 `dnd_column`、 `dnd_module`を含めることができます。他のドラッグ&ドロップ要素の中に`dnd_section`をネストすることはできません。 * [**dnd\_column**](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#dnd-column): `dnd_row`を含めることができます。`dnd_row`内に複数の列がある場合、行の内容は水平方向に揃えられます。 * [dnd\_row](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#dnd-row): `dnd_module`と`dnd_column`を含めることができます。 * [dnd\_module](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#dnd-module): モジュールのレイアウト、スタイル、コンテンツを追加できるモジュールラッパー。 これらのタグの詳細については、以下をご覧ください。また、実践的なアプローチとして、[ドラッグ&ドロップエリアを使ってみる](/docs/cms/start-building/building-blocks/drag-and-drop/tutorial)も確認しておくとよいでしょう。 ![ドラッグ&ドロップ要素の関係](https://www.hubspot.jp/hubfs/Drag%20and%20Drop%20relationships.png) 下の図は、さまざまなドラッグ&ドロップ要素の階層をさらに細分化したものです。 ![構造の例](https://cdn2.hubspot.net/hubfs/53/Example%20structure.png) ドラッグ&ドロップエリアを可視化する方法に関する動画チュートリアルについては、以下の動画(英語)をご覧ください。 [https://www.youtube.com/embed/RUs24n8DfzA](https://www.youtube.com/embed/RUs24n8DfzA) このまま読み進めて、ドラッグ&ドロップのセクション、行、列、モジュールの詳細をご確認ください。 ### セクション セクションは、 [`dnd_section`](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#drag-and-drop-section-code-dnd-section-code-)タグを使用して作成される特殊なタイプの行です。これは`dnd_area`の直接の子にすることができる唯一のドラッグ&ドロップ要素です。セクションは外側のラッピングコンテナーと考えることができます。コンテンツは全幅に広げることも、中央で最大幅制限を持たせることもできます。セクションは列とモジュールを囲むので、コンテンツの大部分を簡単に再配置して実装できます。`dnd_section`タグはHTML`
`要素をレンダリングしません。 以下は、ページエディターでのセクションの表示方法を示したスクリーンショットです。 ![ページエディターでのセクション](https://cdn2.hubspot.net/hubfs/53/Section%20in%20page%20editor.png) `dnd_section`タグに加えて、 [セクションテンプレート](/docs/cms/start-building/building-blocks/sections/sections#create-reusable-sections)を作成することもできます。これは、このページエディターで制作担当者がアクセスできる事前定義された再利用可能なセクションです。例えば、上のスクリーンショットに示されているセクションをセクションテンプレートとして作成することができます。制作担当者は作成したテンプレートを必要に応じてページに素早く追加することができます。再利用可能なセクションには固有の機能があり、例えば、標準のhubLパーシャルテンプレートのように使用できます。 ### 列 列は行とモジュールのラッパーであり、行またはセクション内に配置できます。列は[`dnd_column`](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#drag-and-drop-column-code-dnd-column-code-)タグを使用して作成します。 行内の複数の列を使用して、水平方向に行とモジュールを配置します。 列は行を含めることができる垂直方向の領域です。幅を変更することで、異なるサイズの列を作成できます。行のサイズが12「列」幅だという場合、これはCSSグリッドを指します。行内の列は12以下ならどんなサイズにもできますが、12を超えて追加することはできません。 複数行を列に配置すると、それらの行内のモジュールは垂直方向に積み重なって表示されます。モジュールは列自体であるため、モジュールを列の直接の子にすることはできません。モジュールは行内に含める必要があります。 ![ページエディターでのdnd\_area列](https://cdn2.hubspot.net/hubfs/53/dnd_area%20column%20in%20page%20editor.png) ページエディターでの列の表示。 ### 行 行は列のラッパーです。行は[`dnd_row`](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#drag-and-drop-row-code-dnd-row-code-)タグを使用してテンプレート内に作成します。モジュールは、行内に直接配置できる列です。これにより、モジュールは水平方向に隣り合って表示されます。 モジュールを行内に配置することにより、垂直方向に整理できます。モジュールを他のモジュールの上に配置する場合は、そのモジュールを行内に配置します。次に、最初の行の上または下の行内に別のモジュールを追加します。 ![ページエディターでのdnd\_area行](https://cdn2.hubspot.net/hubfs/53/dnd_area%20row%20in%20page%20editor.png) ページエディターでの行の表示。 ### モジュール [モジュール](/docs/cms/start-building/building-blocks/modules/overview)はCMS Hubの基本パーツであり、サイトにまとめてコンテンツを表示するために使用する再利用可能な構築要素として機能します。テンプレートを作成するとき、[`dnd_module`](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#drag-and-drop-module-code-dnd-module-code-)タグを使用してドラッグ&ドロップ行内およびセクション内にモジュールを配置します。モジュールは列でもあります。つまり、2つのモジュールタグを配置するか、モジュールと列を直接隣に配置すると、それらは水平方向に並べて表示されます。 ドラッグ&ドロップ要素をモジュール内に配置することはできません。モジュールを[`dnd_area`](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#drag-and-drop-area-code-dnd-area-code-)の直接の子にすることはできません。 ## HTML構造とスタイル設定 ドラッグ&ドロップエリアとその要素がレンダリングされるときには、ブートストラップ2に基づいて12列グリッドのクラス名になります。簡単に実行できるようにするには、[HubSpot CMS Boilerplate](https://github.com/HubSpot/cms-theme-boilerplate/)の[\_layout.css](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/css/objects/_layout.css)ファイルを使用できます。これはそのクラス名のデフォルトのスタイルを提供します。 このスタイルシートを使用する必要はなく、代わりに独自のスタイルを提供できます。CMSテーマボイラープレートに基づいてサイトを構築していて独自のCSSを使用する場合は、[base.htmlで呼び出されないようにlayout.cssを削除](https://github.com/HubSpot/cms-theme-boilerplate/blob/5abaf2a4c45a95dbed1d459f7f0f6407350752ac/src/templates/layouts/base.html#L8)するとよいでしょう。独自のCSSグリッドを使用するには同じグリッドクラス名をターゲットにする必要がありますが、スタイルは自由に設定できます。 ドラッグ&ドロップエリアは、レンダリングされるときにページエディターで使用されるクラスを使用するdivを作成します。例えば、`widget-span`や`widget-type-cell`などです。これらのクラスはページエディターで使用されるので直接ターゲットにするべきではありませんが、後で変更することはできます。 代わりに、使用するクラス名を使うクラスパラメーターを[`dnd_area`](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas#drag-and-drop-area-code-dnd-area-code-)にHubLが追加します。 ```html theme={null}
``` ### 制作担当者と属性スタイル設定 ドラッグ&ドロップエリアで制作担当者はページのスタイルにエフェクトを付けることができます。例えば、セクションに背景を設定できます。開発者は、属性によって設定のデフォルト値を渡すことができます。 ページが実際にレンダリングされるとき、この設定に基づいて生成されるスタイルが`standard_header_includes`に追加されます。 ## フレキシブルカラムの移行 フレキシブルカラムで構築されたテンプレートを変更してドラッグ&ドロップエリアを使用する場合は、フレキシブルカラムについて次の点に注意してください。 フレキシブルカラムはドラッグ&ドロップエリアと同じではありません。フレキシブルカラムのみを持つテンプレートをドラッグ&ドロップエリアのみを持つテンプレートに交換することはできません。この制限が設けられていたのは、コンテンツがフレキシブル列からドラッグ&ドロップエリアにマッピングされないためです。この理由を考えてみましょう。新しいテンプレートを作成してサイドバーとメインのコンテンツエリアを設定したとします。サイドバーはフレキシブルカラムで、メインコンテンツはドラッグ&ドロップエリアです。交換ツールはフレキシブルカラム同士をマッピングしようとします。 [ドラッグ&ドロップエリアの既存ウェブサイトへの追加](https://developers.hubspot.jp/docs/guides/cms/improve-older-sites/add-theme-features-to-existing-sites#drag-and-drop-areas)の詳細についてご確認ください。 ## 関連コンテンツ * [ドラッグ&ドロップエリアの既存ウェブサイトへの追加](https://developers.hubspot.jp/docs/guides/cms/improve-older-sites/add-theme-features-to-existing-sites#drag-and-drop-areas) * [ドロップエリアの作成](/docs/cms/start-building/building-blocks/drag-and-drop/tutorial) * [ドラッグ&ドロップエリアの解説 - YouTube動画](https://www.youtube.com/watch?v=RUs24n8DfzA\&feature=youtu.be) # ドラッグ&ドロップエリアを作成する Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/drag-and-drop/tutorial ドラッグ&ドロップエリアを使用して、制作担当者が簡単にレイアウト、スタイル、コンテンツを変更できるようにサポートします。 > **サポートされる製品** [ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)は、ページエディターから直接変更できる空のコンテナーとして機能するテンプレート内のセクションです。ドラッグ&ドロップエリアをテンプレート内に組み込むことで、制作担当者はテンプレートに組み込まれた静的モジュールに頼るのではなく、必要に応じてページエディター内でモジュールを追加、管理できるようになります。 ![モジュールをページにドラッグして列と行を調整する様子を示すアニメーション](https://newinboundblog.hubspot.com/hubfs/a%20new%20approach.gif) 制作担当者はドラッグ&ドロップエリアを空のドロップ領域として使用できるだけでなく、開始点として機能するさまざまなモジュール、レイアウト、コンテンツをドラッグ&ドロップエリアに事前に配置することもできます。 このチュートリアルでは、簡単なドラッグ&ドロップエリアの設定について説明します。ドラッグ&ドロップエリアの開発者向けリソースについては、実装のベストプラクティスとしての[ボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/home.html)(英語)と、[ドラッグ&ドロップエリアHubLタグのリファレンスドキュメント](/docs/cms/reference/hubl/tags/dnd-areas)をご覧ください。 > [!WARNING] > > **注**: コンテンツ制作担当者は、テンプレートで「[dnd\_area](/docs/cms/reference/hubl/tags/dnd-areas)」タグが使用されているかどうかに応じて、ページのテンプレートを同じタイプの別のテンプレートと入れ替えることができます。 > > * ビジュアル レイアウト エディター上で作成したドラッグ&ドロップテンプレートは、「*dnd\_area*」タグの有無に関係なく、他のドラッグ&ドロップテンプレートまたはコードテンプレートと入れ替えることができます。 > * 「*dnd\_area*」タグが使用されているコードテンプレートは、「*dnd\_area*」タグが使用されている他のコードテンプレートとのみ入れ替えることができます。 > * 「*dnd\_area*」タグが使用されていないコードテンプレートは、「*dnd\_area*」タグが使用されていない他のコードテンプレートとのみ入れ替えることができます。 > > ページのテンプレートが入れ替わっても、最初のテンプレートのドラッグ&ドロップエリアに追加した既存のコンテンツは保持されます。 **1. 新規HTMLテンプレートを作成する** 新しいHTMLテンプレートを作成して、ドラッグ&ドロップセクションのHubLおよびHTMLを含めます。 > [!NOTE] > > ドラッグ&ドロップエリアは、12列のレスポンシブグリッドを基盤としています。ドラッグ&ドロップタグでは、列と行を指定するクラス名を指定して、マークアップをレンダリングします。これらのクラス名をターゲットとするスタイルシートは、開発者が追加する必要があります。実装可能なレイアウトスタイルの例については、[HubSpotのCMSボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/css/objects/_layout.css)(英語)を参照してください。スタイルシートをテンプレートに追加するには、[`{{ require_css() }}`](/docs/cms/reference/hubl/tags/standard-tags#require-css)を使用します。 **2. ドラッグ&ドロップエリアを作成する** `dnd_area`は、ウェブページの一部の構造、デザイン、およびコンテンツを編集可能にするためのコンテナーです。ドラッグ&ドロップエリアのデフォルトのコンテンツは、`dnd_area`タグの本文として提供します。 このタグ自体によって、制作担当者がモジュールをコンテンツ制作ツール内にドラッグするためのドロップ領域が生成されます。 ```hubl theme={null} {% dnd_area "body_dnd_area" %} {% end_dnd_area %} ``` **3. モジュールでセクションを作成する** `dnd_section`は最上位の行であり、常に`dnd_area`の直接の子でなければなりません。セクションでは、制作担当者がコンテンツ制作ツール内のセクションに指定するスタイルのデフォルト値を制御するさまざまなパラメーターがサポートされます。 例として、次のコードでは背景画像(`background_image`)を含むセクションを作成します。このセクションは`vertical-alignment`パラメーターを基準に中央に配置し、子コンテンツのフィールドの最大幅を`1000px`に設定しています。ドラッグ&ドロップのHubLタグでサポートされる全てのパラメーターについては、[ドラッグ&ドロップエリアのHubLタグ](https://developers.hubspot.jp/beta-docs/reference/cms/hubl/tags/dnd-areas)に関する資料をご参照ください。 セクションのコンテンツを事前に配置しておくために、コードにはパスを参照してモジュールを組み込む`dnd_module`タグも含まれています。この例では、`path`パラメーターで設定されているHubSpotのデフォルトのリッチ テキスト モジュールを`dnd_module`で取り込んでいます。リッチ テキスト モジュールのデフォルト値は、`module_attribute`タグを使用して指定します。 ```hubl theme={null} {% dnd_area "body_dnd_area" %} {% dnd_section background_image = { 'backgroundPosition': 'MIDDLE_CENTER', 'backgroundSize': 'cover', 'imageUrl': 'https://www.dragndrop.com/bg-image.jpg' }, max_width=1000, vertical_alignment='MIDDLE' %} {% dnd_module path='@hubspot/rich_text' %} {% module_attribute "html"%} This is your main headline. Use this space to tell everyone about what you have to offer. {% end_module_attribute %} {% end_dnd_module %} {% end_dnd_section %} {% end_dnd_area %} ``` 結果として、制作担当者がコンテンツエディター内で編集できるモジュールを含むドラッグ&ドロップエリアになります。`dnd_section`に`max_width`を設定する場合、コンテンツにどのような影響があるかにご注意ください。 ![モジュールツールバーが表示されたページエディターのスクリーンショット](https://newinboundblog.hubspot.com/hubfs/dnd_rich_text.png) **4. 複数のモジュールを含める** 複数のモジュールを含めるには、複数の`dnd_module`タグを使用します。12列グリッドに基づく`offset`および`width`パラメーターを設定することで、以下のようにリッチ テキスト モジュールの横に画像モジュールを配置できます。 ```hubl theme={null} {% dnd_area "body_dnd_area" %} {% dnd_section background_image={ 'backgroundPosition': 'MIDDLE_CENTER', 'backgroundSize': 'cover', 'imageUrl': 'https://www.dragndrop.com/bg-image.jpg' }, max_width=1000, vertical_alignment='MIDDLE' %} {% dnd_module path='@hubspot/rich_text', width=8, offset=0, label="Rich Text" %} {% module_attribute "html"%}

This is your main headline.

Use this space to tell everyone about what you have to offer. {% end_module_attribute %} {% end_dnd_module %} {% dnd_module path='@hubspot/linked_image', width=4, offset=8, img={ "src": "https://www.dragndrop.com/placeholder-image.jpg", "alt": "Stock placeholder image" } %} {% end_dnd_module %} {% end_dnd_section %} {% end_dnd_area %} ``` また、ページには編集可能な画像モジュールとドラッグハンドルも用意されているため、制作担当者がモジュールの幅とオフセットを変更できます。`dnd_section`に`vertical_alignment`を設定すると、コンテンツが垂直方向の中央に配置される点にご注意ください。 ![セクションに追加された画像モジュールを表示するページエディターのスクリーンショット](https://newinboundblog.hubspot.com/hubfs/dnd_rich_image.png) **5. 列と行を組み込む** ドラッグ&ドロップエリアをさらに細かく設定するには、`dnd_row`タグと`dnd_column`タグを使用して行と列を組み込むことができます。行と列はコンテンツエディターのセクションと同様に機能します。制作担当者は行と列をドラッグして操作し、複製、削除、スタイル設定を行うことも可能です。 ```hubl theme={null} {% dnd_area "body_dnd_area" %} {% dnd_section background_image={ 'backgroundPosition': 'MIDDLE_CENTER', 'backgroundSize': 'cover', 'imageUrl': 'https://www.dragndrop.com/bg-image.jpg' }, max_width=1000, vertical_alignment='MIDDLE' %} {% dnd_module path='@hubspot/linked_image', width=6, img={ "src": "https://www.dragndrop.com/placeholder-image.jpg", "alt": "Stock placeholder image" } %} {% end_dnd_module %} {% dnd_column width=6, offset=6 %} {% dnd_row padding={ 'bottom': 15 } %} {% dnd_module path='@hubspot/rich_text' %} {% module_attribute "html"%}

This is your main headline.

Use this space to tell everyone about what you have to offer. {% end_module_attribute %} {% end_dnd_module %} {% end_dnd_row %} {% dnd_row %} {% dnd_module path='@hubspot/form' %} {% end_dnd_module %} {% end_dnd_row %} {% end_dnd_column %} {% end_dnd_section %} {% end_dnd_area %} ``` これで制作担当者は、モジュールやセクションに加えて、特定の行や列に対するスタイル設定とレイアウト制御ができるようになりました。 ![2列の行を表示するページエディターのスクリーンショット。左側に画像モジュール、右側にリッチ テキスト モジュールとフォームモジュール](https://newinboundblog.hubspot.com/hubfs/dnd_area_full.png) **6. ドラッグ&ドロップコンポーネントの汎用スタイルを設定する** ドラッグ&ドロップエリア、セクション、列、行、モジュールのさまざまなコンポーネント全てには、CSSを使用してスタイル設定できるクラスがあります。これらのコンポーネントの編集可能なスタイルとオプションは、HubLではなくCSSを使用して設定できます。例えば、デフォルトのパディングはCSSで`dnd_sections`に設定できます。 ```css theme={null} .dnd-section { padding: 80px 20px; } ``` ドラッグ&ドロップ エリア コンポーネントの汎用CSSセレクターは、`.dnd-section`、`.dnd-column`、`.dnd-row`、および`.dnd-module`です。これらの`dnd`プレフィックスが付いたクラス以外、マークアップの実際のグリッドクラス名はブートストラップ2の名前に基づいています。これは、ドラッグ&ドロップでブートストラップ2を使用する必要があることを意味するわけではありません。ページに`dnd_area`を追加する場合、開発者には、グリッドが機能するようなスタイルを指定する責任があります。実装可能なレイアウトスタイルの例については、[HubSpotのCMSボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/tree/main/src/css/objects)(英語)をご参照ください。スタイルシートをテンプレートに追加するには、[`{{ require_css() }}`](/docs/cms/reference/hubl/tags/standard-tags#require-css)を使用します。 ## 関連チュートリアル * [テーマを使ってみる](/docs/cms/start-building/building-blocks/themes/getting-started) * [カスタムモジュールを使ってみる](/docs/cms/start-building/building-blocks/modules/overview) * [テーマ機能を既存のサイトに追加する方法](/docs/cms/best-practices/improve-existing-sites/add-theme-features-to-existing-sites) # エイリアスの対応付け Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/fields/alias-mapping # ブランド設定の継承 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/fields/brand-and-settings-inheritance ロゴやブランドカラーなどのブランド設定を、テーマ内、またはHubL/HTMLファイルおよびCSSファイル全体で使用する方法について説明します。 [ブランド設定](https://knowledge.hubspot.com/settings/customize-branding-for-your-hubspot-content#customize-your-company-logo-and-colors)を使用すると、ユーザーはHubSpotコンテンツ全体で使用される会社のブランドカラー、ロゴ、ファビコンを設定できます。これにより、テーマの`fields.json`ファイル内、HTML/HubLファイル内、CSSファイル内のトークンを使用して、これらのブランド設定にアクセスできるようになります。モジュールの`fields.json`ファイル内でブランドカラーにアクセスすることもできます。 `fields.json`ファイル内にこれらのトークンを追加した後、コンテンツ作成者はテーマ設定エディター内で値を編集できます。HTML、HubL、またはCSSでこれらのトークンを追加すると、値はハードコードされ、コンテンツ作成者がページエディターで変更することはできなくなります。 以下では、利用可能なブランド設定変数と実装例について説明します。 ## ブランド設定変数 `property_value_paths`オブジェクトの値内、またはHTML/HubLファイルとCSSファイル内でブランド設定エリアからアクセスできるオプションを以下に示します。 ### カラー ブランドカラーには、テーマまたはモジュールの[fields.jsonファイル](#fields-json-color)内、および次のHubLトークンを使用してHTML/HubLファイルおよびCSSファイル内からアクセスできます。 * **プライマリー:** * `{{brand_settings.primaryColor}}` * `{{brand_settings.colors[0]}}` ![brand-colors-primary](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/brand-colors-primary.png) * **セカンダリー:**`{{brand_settings.secondaryColor}}` ![brand-colors-secondary](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/brand-colors-secondary.png) * **アクセントカラー:** * `{{brand_settings.accentColor1}}` * `{{brand_settings.accentColor2}}` * `{{brand_settings.accentColor3}}` ![brand-colors-accent](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/brand-colors-accent.png) * **追加の色:** * `{{brand_settings.colors[1]}}` * `{{brand_settings.colors[2]}}` * `{{brand_settings.colors[3]}}` ![brand-colors-additional](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/brand-colors-additional.png) 色の16進コードに直接アクセスするには、トークンに`hex`フィルターを含めます。例:`{{brand_settings.primaryColor.hex}}` テーマまたはモジュールの`fields.json`ファイルにブランド設定カラーを含めるには、次の形式を使用します。 ```json theme={null} //Example of using the primary color in within a theme's // field.json file { "name": "branding_color", "label": "branding_color", "type": "color", "default": { "color": "#26ff55", "opacity": 60 }, "inherited_value": { "property_value_paths": { "color": "brand_settings.primaryColor" } } } ``` > [!WARNING] > > アカウントのブランド設定に追加の色が設定されていない場合があります。コードがブランド設定に存在しない継承色を参照している場合は、次のフォールバックロジックが使用されます。 > > * `secondaryColor`は最初の追加色(`colors[1]`)にフォールバックします。 > * `accentColor1`は2番目の追加色(`colors[2]`)にフォールバックします。 > * `accentColor2`は3番目の追加色(`colors[3]`)にフォールバックします。 > * `accentColor3`は4番目の追加色(`colors[4]`)にフォールバックします。 > * その他の色(`colors[3]`など)は`default`値にフォールバックします。既定のプロパティーの色が設定されていない場合は、`primaryColor`が使用されます。 ### ロゴ ブランドロゴには、モジュールの`fields.json`ファイル内、HTML/HubLファイルおよびCSSファイル内からアクセスできます。 次のトークンを使用して、ブランド設定内でプライマリーロゴセットにアクセスできます: * `{{brand_settings.primaryLogo}}` * `{{brand_settings.logos[0]}}` ![brand-settings-logo0](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/brand-settings-logo0.png) 全ての追加のロゴには、`{{brand_settings.logos[1-19]}}`を使用してアクセスできます。 さらに、次のロゴ属性にアクセスできます。 * **ロゴのURL:**`{{brand_settings.primaryLogo.link}}` * **ロゴのaltテキスト:**`{{brand_settings.primaryLogo.alt}}` * **ロゴの高さ:**`{{brand_settings.primaryLogo.height}}` * **ロゴの幅:**`{{brand_settings.primaryLogo.width}}` * **ロゴの画像へのリンク:**`{{brand_settings.primaryLogo.src}}` ### ファビコン ブランドファビコンには、HTML/HubLファイルおよびCSSファイル内からのみアクセスできます。 次のトークンを使用して、ブランド設定内でプライマリーロゴセットにアクセスできます: * `{{brand_settings.primaryFavicon}}` * `{{brand_settings.favicons[0]}}` ![brand-settings-favicon0](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/brand-settings-favicon0.png) 全ての追加のファビコンには、`{{brand_settings.favicons[1-19]}}`を使用してアクセスできます。 `src`フィルターを含めることで、ロゴのURLに直接アクセスできます。例:`{{brand_settings.primaryFavicon.src}}` # テーマにカスタムフォントを追加 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/fields/custom-fonts # oEmbed Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/fields/oembed # JavaScriptを使用してモジュールとテーマのフィールドを記述 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/fields/write-fields-using-javascript # グローバルコンテンツ Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/global-content グローバルコンテンツは、一貫した情報表示のために複数のテンプレートで再利用可能なコンテンツです。例として、ウェブサイトのヘッダー、フッター、サイドバー、ロゴなどのコンポーネントがあります。 グローバルコンテンツとは、ウェブサイト全体で共有されるコンテンツです。一般的な例としては、ウェブサイトのヘッダー、フッター、サイドバーが挙げられます。開発者はどのコンポーネントをグローバルとして扱うかを指定するために、グローバルパーシャルを使用するか、モジュールをグローバルに指定します。HubSpotを使用すると、グローバルコンテンツを扱うコンテンツエディターは、グローバルコンテンツを編集し、全てのページで編集内容をプレビューする作業を簡単に行えます。グローバルコンテンツの編集方法については、HubSpotナレッジベースで[複数のテンプレートにわたってグローバルコンテンツを使用する方法](https://knowledge.hubspot.com/cms-general/use-global-content-across-multiple-templates)に関するナレッジベース記事を参照してください。 ![グローバル コンテンツ エディター](https://cdn2.hubspot.net/hubfs/53/5Cdocs/global-content/global-content-editor-4.png) ## 概要 グローバルコンテンツの使用は、複数のページにわたって同じ情報を表示する場合に最も効果的です。例えば、以下に示すページの上部にあるヘッダーなど、ウェブサイトのヘッダーやフッターに使用できます。 ![hubspot-developers-header](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/hubspot-developers-header.png) グローバルコンテンツは次のような領域にも使用できます。 * ウェブサイトのセクション別のセカンダリーナビゲーション * 著作権のフッター(またはサブフッター) * ブログ記事のサイドバー(最近の投稿、執筆者リストなどの表示に使用) > [!WARNING] > > グローバルコンテンツはウェブサイトの複数の場所で使用されるので、[アクセシビリティーを考慮してグローバルパーシャルとグローバルモジュールをデザインし、作成する](/docs/cms/best-practices/improve-existing-sites/accessibility)ことが特に重要になります。 ### グローバルパーシャルとグローバルモジュールの比較 開発者は、グローバルパーシャルとグローバルモジュールを作成できます。この2つの間の主な違いは次のとおりです。 * グローバルパーシャルは、HTMLとHubLを使用して作成されたテンプレートの一種であり、ウェブサイト全体にわたって再利用できます。典型的なパーシャルは、ウェブサイトのヘッダー、サイドバー、フッターです。 * グローバルモジュールは、ウェブサイト上の複数のページで使用可能な1つまたは複数のコンテンツ要素で構成されたモジュールです。典型的なグローバルモジュールとしては、ブログの配信登録フォーム、セカンダリーナビゲーション要素、Call-To-Action(CTA)などがあります。 グローバルパーシャル内にグローバルモジュールを含めることは避けてください。コンテンツの編集作業に悪影響を及ぼす可能性があります。 > [!NOTE] > > グローバルパーシャルとグローバルモジュールに含まれる全てのモジュールとフィールドは、[グローバル コンテンツ エディター](https://knowledge.hubspot.com/cms-general/use-global-content-across-multiple-templates)内で簡単に編集できます。 ## グローバルパーシャル ### グローバルパーシャルを作成する グローバルパーシャルはテンプレートの一種であり、HubSpot CLIで以下に示す[createコマンド](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#create)を使用することで、ローカルに作成できます。 ```shell theme={null} hs create template ``` テンプレートのタイプを選択するように求められたら、`global partial`を選択します。 このコマンドを実行すると、指定したディレクトリーにテンプレートが作成され、そのHTMLファイルには以下のテンプレートアノテーションが含まれます。 ```html theme={null} ``` グローバル コンテンツ パーシャルのサンプルを確認するには、[GitHubにあるHubSpotのボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/master/src/templates/partials/header.html)を参照してください。 ### グローバルパーシャルにドラッグ&ドロップエリアを追加する グローバルパーシャル内でコンテンツのドラッグ&ドロップ機能を有効にするには、ページテンプレートで有効にする場合と同様に、`dnd_area`タグを追加します。詳しくは、[ドラッグ&ドロップエリアのドキュメント](/docs/cms/reference/hubl/tags/dnd-areas)を参照してください。 ### 既存のテンプレートにグローバルパーシャルを追加する 既存のテンプレートのいずれかにグローバルパーシャルを追加するには、`global_partial` HubLタグを使用してパーシャルへのパスを参照します。以下に示しているのは、このタグを使用した[CMSボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/master/src/templates/layouts/base.html#L21)の例です。 ```hubl theme={null} {% global_partial path="../partials/header.html" %} ``` グローバルパーシャルが出力の場合は、グローバルパーシャルを`
`で囲みます。これは、そのコンテンツがグローバルパーシャルであることを識別するためにページエディターで使用されます。 ```html theme={null}
``` > [!WARNING] > > \*\*注:\*\*テンプレートの``内では`global_partial`を使用しないでください。使用すると、無効なHTMLになります。 > > ヘッダー内でグローバルパーシャルを使用するような場合は通常、代わりにグローバルモジュールで[`{%require_head%}`](/docs/cms/reference/hubl/tags/standard-tags#require-head)を使用してカスタムコードをheadに挿入し、モジュールフィールドも追加する方法が適切です。 ## グローバルモジュール グローバルモジュールを作成するには、CLIを使用する他のモジュールを作成する場合と同様に、以下に示す`hs create`コマンドを実行します。 ```shell theme={null} hs create module ``` グローバルモジュールは、モジュールの`meta.json`ファイル内にある`global`フラグによって区別されます。 ```json theme={null} // meta.json file { "css_assets": [], "external_js": [], "global": true, "help_text": "", "host_template_types": ["PAGE"], "js_assets": [], "other_assets": [], "smart_type": "NOT_SMART", "tags": [], "is_available_for_new_content": false } ``` また、[HubSpotでデザインマネージャーを使用してグローバルモジュールを作成](https://knowledge.hubspot.com/cos-general/create-and-edit-modules)することもできます。 モジュールの操作方法についての詳細は、以下の関連リソースをご確認ください。 * [モジュールの概要](https://developers.hubspot.jp/docs/guides/cms/content/modules/overview) * [HubSpotの既定のモジュール](/docs/cms/reference/modules/default-modules) * [モジュールを構成する](/docs/cms/reference/modules/configuration) * [テンプレートでモジュールを使用する](/docs/cms/reference/modules/using-modules-in-templates) # コンテンツ検索 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/content-search HubSpotのCMSに搭載されているサイト検索機能「コンテンツ検索」の使い方。HubSpotのCMSには、探しているコンテンツを訪問者が簡単に見つけられるように、サイト検索機能が組み込まれています。 HubSpotのCMSには、探しているコンテンツを訪問者が簡単に見つけられるように、サイト検索機能が組み込まれています。貴社の全てのHubSpotコンテンツはHubSpotの検索エンジンによって自動的にインデックス登録されるため、ウェブサイト向けにサードパーティー検索ツールを設定する労力はなくなります。 ## コンテンツの検索 検索エンジンには[サイト検索API](/docs/api-reference/cms-site-search-v3/guide)からアクセスできます。このAPIは、高度にカスタマイズされた検索機能をウェブサイト上で提供するための多数のフィルタリングオプションをサポートしています。例えば、ブログに検索機能を組み込む場合は、`type=BLOG_POST`を問い合わせるとブログ記事のみが返されます。また、ウェブサイトのスペイン語バージョンに検索を組み込む場合は、`language=es`を問い合わせるとスペイン語のページのみが返されます。 このAPIではJavaScriptで解析しやすいJSONが返されるので、ウェブサイトに結果を表示できます。全てのコンテンツタイプから、ページドメイン、タイトル、URL、言語が返されます。説明として返されるのは、検索語に最も一致するコンテンツのテキストのサンプルです。完全一致テキストを囲む``要素では、CSSを使用して一致テキストを強調表示できます。 検索対象のコンテンツのタイプによって返される結果の情報は多少異なるため、コンテンツタイプに応じて結果の表示を変えることができます。例えばブログ記事では、記事に付けられているタグ、執筆者、公開日の情報が返されます。 ```json theme={null} // json { "total": 850, "offset": 0, "limit": 10, "results": [ { "id": 3761238962, "score": 0.30858153, "type": "SITE_PAGE", "domain": "designers.hubspot.com", "url": "https://developers.hubspot.com/docs/cms/search", "language": "en", "title": "Content Search", "description": "Using HubSpot’s native search engine, content search, to implement search on your website" }, { "id": 3254581958, "score": 0.30858153, "type": "BLOG_POST", "domain": "designers.hubspot.com", "url": "https://designers.hubspot.com/blog/getting-started-with-local-development", "featuredImageUrl":"https://designers.hubspot.com/hubfs/local-development.jpg" "title": "Getting Started with Local Development", "description":"The beta Local Development Tooling connects your local workflow to HubSpot, allowing you to utilize version control, your favorite text editor and various web development technologies when developing on the HubSpot CMS." "authorFullName": "William Spiro", "tags": [ "Website Development", "Local Development" ], "publishedDate": 1447938000000 } } ``` ## ウェブサイトへの検索の実装 [サイト検索API](/docs/api-reference/cms-site-search-v3/guide)を使用する2つの既定のモジュール(`search_input`および`search_results`)を使用すると、簡単にウェブサイトに検索を実装できます。 ### サイト検索入力 訪問者が検索語を入力するフィールド。このモジュールは、ウェブサイト上の任意の場所に配置できます。`{% module "search_input" path="@hubspot/search_input" %}`を使用してこのモジュールをテンプレートに含めることができます。 ```hubl theme={null} {% module "search_input" path="@hubspot/search_input" %} ``` ### サイト検索結果 検索語に基づいてコンテンツのリストを返します。このモジュールは、ウェブサイト上の任意の場所に配置できます。このモジュールは、次のようにテンプレートに含めることができます。 ```hubl theme={null} {% module "search_results" path="@hubspot/search_results" %} ``` このようなモジュールの機能が、自分のウェブサイトに必要な検索機能と合わない場合は、独自の検索モジュールまたは機能を開発できます。既定の検索モジュールは、検索ニーズに応じて拡張できるように設計されています。こうしたモジュールは、ファインダーで名前を検索してデザインマネージャー上で表示および複製したり、[CMS CLI](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli)上で`hs fetch @hubspot/search_input.module`または`hs fetch @hubspot/search_results.module`を実行してローカル環境に取り込むことができます。 ![既定の検索モジュール](https://cdn2.hubspot.net/hubfs/53/default%20search%20module.png) ## 検索結果テンプレート 全てのドメインには、既定で固有の検索結果ページがあります。このページのテンプレートとパスは、特定のドメインの[[システムページ]タブ](https://app.hubspot.com/l/settings/website/pages/all-domains/system-pages)にある[設定]>[ウェブサイト]>[ページ]で設定します。例として、[CMSテーマボイラープレート検索結果テンプレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/master/src/templates/system/search-results.html)を参照してください。検索結果ページに設定されたドメインは、自動的に既定の検索モジュールに接続されます。ただし、[サイト検索API](/docs/api-reference/cms-site-search-v3/guide)を使用すると、ウェブサイトの任意のページ上で独自の検索結果を作成できます。 ## 検索優先順位の決定方法 検索結果の順位は、訪問者の検索語に対して重み付けられたページコンテンツの比較によって決まります。ページコンテンツは、ページのHTML内でのコンテンツの位置に基づいて、さまざまな重みの比較フィールドとして分類されます。比較フィールドは重みの順にグループ化されます。 1. HTMLタイトル 2. メタディスクリプション 3. H1 HTML要素 4. H2 HTML要素 5. H3 HTML要素 6. その他のHTML要素 このリストは変更される場合があります。ご注意ください。 ページ上の特定の要素の重みを高めるようインデクサーに指示するには、該当するコンテンツを`hs-search-keyword`クラスで囲みます。 ## 開発中のインデックスの制御 新しいサイトを開発中は、Google などの検索エンジンによってサイトがインデックス登録されることを心配することなく、サイト検索をテストできると便利です。 [`robots.txt`](https://knowledge.hubspot.com/jp/cos-general/customize-your-robots-txt-file)では、全てをクローリングするようHubSpotに指定しながら、他のボットをブロックすることが可能です。 ```shell theme={null} # Block all bots User-agent: * Disallow: / # Allow HubSpot Site Search Indexing User-agent: HubSpotContentSearchBot Allow: / ``` > [!WARNING] > > 登録しないことを示すメタタグがあるページは、`robots.txt`で許可されていてもインデックス登録されません。 > > また、サイトを公開する前に`robots.txt`を確認して、全てのインデックス登録が意図したとおりに設定されていることを確かめてください。 ## 既定のインデックス登録動作 CMSでは特定のタイプのページの意図が認識されるため、コンテンツ検索によってコンテンツタイプのページが適切に登録されるように、インデックス登録が安全に制御されます。コンテンツタイプのページの例: * サイトページ * ランディングページ * ナレッジ記事 * ブログ記事 \*\*システムページとパスワード保護ページはインデックス登録されません。\*\*CMSアクセス制限ページは、該当するページにサインインしてアクセスできるユーザーのHubSpotコンテンツ検索にのみ表示されます。 ## ページが検索結果で返されないように除外するには? ウェブサイトの[`robots.txt`](https://knowledge.hubspot.com/jp/cos-general/customize-your-robots-txt-file)ファイルまたは`meta`タグを使用して検索エンジンへの登録をブロックしたページは、サイト検索のためのインデックス登録が行われません。 `robots.txt`に`disallow`を追加します。 ```shell theme={null} # Block all bots User-agent: * Disallow: /path-to-page # Block just HubSpot Site Search Indexing User-agent: HubSpotContentSearchBot Disallow: /path-to-page ``` ページまたはテンプレートの``に`NOINDEX, NOFOLLOW`メタタグを追加することもできます。 ```html theme={null} ``` > [!TIP] > > `robots.txt`とメタタグの両方を使用してロボットをブロックする必要はありません。後でページのインデックス登録を許可することにした場合に混乱が生じる可能性があるからです。 ## ページの一部を検索によるインデックス登録から除外する方法 ページによっては、検索結果として返される必要がない領域が含まれています。例えば、ヘッダー、フッター、サイドバーなどのコンテンツです。このような領域のHTMLには`hs-search-hidden`クラスを追加すると、領域内のコンテンツが検索によって無視されます。 # デフォルトのEメールモジュール Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/default-email-modules # HubSpotフォーム Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/forms モジュール、HubL、または埋め込みコードを使用して、HubSpotのウェブサイトまたは外部ページにフォームを追加する方法について説明します。また、フォームにスタイルを設定する方法を説明します。 HubSpotフォームを使用して、HubSpot全体でアクセスできる情報をウェブサイト訪問者から取得します。フォームへのリンクをユーザーと直接共有し、[APIを介してフォームデータを送信](https://developers.hubspot.jp/docs/guides/api/marketing/forms)して、CMSを使用してウェブサイトページに埋め込むことができます。 フォームはHubSpotの中核となる要素であり、どのサブスクリプションレベルのHubSpotアカウントでも作成できます。フォームは顧客のコンバージョンにとって重要であるだけでなく、フォームデータはスマートコンテンツ、リスト、ワークフロー、コンテンツのパーソナライズなど、他のHubSpotツールやアセットでも使用できます。 [作成したHubSpotフォーム](https://knowledge.hubspot.com/ja/forms/create-forms)は、テンプレートやページに追加できます。ユースケースに応じて、フォームをテンプレートに追加する方法はいくつかあります。 * [既定のフォームモジュールを使用する](#the-default-form-module) * [カスタムモジュールにフォームフィールドを追加する](#form-fields-in-custom-modules)[](#using-the-form-hubl-tag) * [フォームの埋め込みコードを使用して埋め込む](#using-the-form-embed-code) ## 既定のフォームモジュール テンプレートに[ドラッグ&ドロップエリア](/docs/cms/reference/hubl/tags/dnd-areas)がある場合、制作担当者はページエディターから[既定のフォームモジュール](/docs/cms/reference/modules/default-modules#form)をページに追加し、左側のサイドバーでフォームオプションを設定できます。 フォームモジュールをドラッグ&ドロップエリアを持つテンプレートに直接コード化するには、フォームモジュールを`dnd_module`として参照します。 ```hubl theme={null} {% dnd_area "dnd_area" class='body-container body-container__landing', label='Main section' %} {% dnd_section vertical_alignment='MIDDLE' %} {% dnd_column width=6, offset=6 %} {% dnd_row %} {% dnd_module path='@hubspot/form' %} {% end_dnd_module %} {% end_dnd_row %} {% end_dnd_column %} {% end_dnd_section %} {% end_dnd_area %} ``` テンプレートのドラッグ&ドロップエリアの外側にフォームを追加するには、代わりに標準の`module`として参照します。 ```hubl theme={null} {% module "form" path="@hubspot/form" form={ "form_id": "9e633e9f-0634-498e-917c-f01e355e83c6", "response_type": "redirect", "message": "Thanks for submitting the form.", "redirect_id": null, "redirect_url": "http://www.google.com" } %} ``` いずれの実装でも、上記のコード例に示すように、モジュールタグにパラメーターを追加して、使用するフォームやリダイレクトオプションなどの設定を指定できます。利用可能なパラメーターの詳細については、[既定のモジュールのドキュメント](/docs/cms/reference/modules/default-modules#form)をご参照ください。 ### 既定のモジュールを複製する 既定のモジュールをそのまま使用することに加えて、複製して編集可能にすることで、必要に応じてカスタマイズできます。例えば、既定のフォームモジュールを複製し、色フィールドを追加してから、モジュールのHTMLをスタイル付きの`
`タグでラップして、背景として色を追加できます。 * 左側のサイドバーのデザインマネージャーで、**@hubspot**フォルダーに移動し、[form.module]を右クリックして、[モジュールを複製]を選択します。 ![フォームモジュールの複製](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/clone-form-module.png) * 右側のサイドバーで[フィールドの追加]をクリックして、[カラー]を選択します。 * HTMLコンテンツの周りに`
`タグを追加し、次のように色フィールドを参照するスタイルを含めます。 `
` ![既定のフォームモジュールのセクション複製](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/default-form-module-clone-section.png) ## カスタムモジュールのフォームフィールド カスタムモジュールを作成するときは、[フォームフィールド](/docs/cms/reference/fields/module-theme-fields#form)を追加し、そのフィールドのコードスニペットをモジュールHTMLに追加することで、フォームを含めることができます。例えば、製品の画像と価値ある提案の説明を含むモジュールに相談依頼フォームを追加することができます。 デザインマネージャーからカスタムモジュールにフォームフィールドを追加するには、以下の手順に従います。 * モジュールエディターの右側のサイドバーで、[フィールドの追加]をクリックし、[フォーム]を選択します。 ![デザインマネージャーでフォームフィールドを選択](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/design-manager-select-form-field.png) * フィールドを追加したら、右側のサイドバーのフィールドにカーソルを合わせ、[アクション]をクリックして[スニペットをコピー]を選択します。 ![モジュールフィールドでスニペットをコピー](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/module-field-copy-snippet.png) * スニペットをモジュールのHTMLフィールドに貼り付けます。 ![モジュールフィールドでスニペットを貼り付け](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/module-field-paste-snippet.png) ### エディターでフォームオプションを制限する ページに追加されると、制作担当者は通常、使用するフォームやフォームフィールド自体など、フォームのさまざまな特徴を制御できます。ただし、フォームモジュールの`fields.json`ファイルを[ローカル](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)に変更して次のフィールドを含めることで、ページエディターで指定される制御の量を制限できます。 | パラメーター | タイプ | 説明 | | - | - | - | | `disable_inline_form_editing` | 文字列 | フォームモジュール内の全てのインラインフォーム編集コントロールを非表示にするには、`disable_inline_form_editing`プロパティーを`true`に設定します。これには、フォームフィールド、送信ボタンのテキスト、データのプライバシーと同意のオプション、CAPTCHAが含まれます。 | | `required_property_types` | 配列 | フォームフィールドのプロパティータイプに基づいて選択できるフォームを指定する配列。値には、`"CONTACT"`、`"COMPANY"`、および`"TICKET"`を使用できます。 | 例えば、訪問者が会社のさまざまなサービス部門に連絡できるフォームのみに使用するモジュールを構築した場合、制作担当者がチケットプロパティーを使用するフォームのみを選択できるようにすることができます。 ```json theme={null} // Form field { "id": "843b4f0f-0ed7-5b10-e86a-5cc8a0f11a0c", "name": "form_field_1", "display_width": null, "label": "Form", "required": false, "locked": false, "type": "form", "disable_inline_form_editing": true, "required_property_types": ["TICKET"], "default": { "response_type": "inline", "message": "Thanks for submitting the form." } } ``` ## フォーム埋め込みコードを使用する モジュールやHubLタグを使用するのが理想的ではない場合や、外部ページにフォームを追加する場合は、代わりに[フォーム埋め込みコード](https://knowledge.hubspot.com/ja/forms/how-can-i-share-a-hubspot-form-if-im-using-an-external-site#add-the-form-embed-code)を使用してフォームを埋め込むことができます。フォーム埋め込みコードをカスタマイズして、フォームの機能を拡張することもできます。全てのフォーム埋め込みコードのカスタマイズオプションなどの詳細は、フォームに関するリファレンスガイドをご覧ください。 > [!WARNING] > > ### 注: > > * フォームのカスタマイズオプションは、[未加工のHTMLとして設定](https://knowledge.hubspot.com/ja/forms/how-can-i-share-a-hubspot-form-if-im-using-an-external-site#with-css-in-your-external-stylesheet-marketing-hub-professional-enterprise-or-legacy-marketing-hub-basic-only)されている、HubSpotで作成されたフォームでのみ使用できます。HubSpotアカウントで、Marketing Hub\*\*\_\_**および***Content Hub***のProfessional**またはEnterprise\*\*エディションを利用している必要があります。 > * HubSpotフォームの読み込みには、HubSpotでホスティングされているJavaScriptファイルを使用する必要があります。フォーム埋め込みコードのコピーを作成して、自社サイトでホスティングすることはできません。HubSpotフォームの埋め込みコードを自社サイトでホスティングした場合、セキュリティー、スパム対策、アクセシビリティー、パフォーマンスの向上を目的としたHubSpotで行われる改善はご使用のフォームに反映されません。 以下に、カスタマイズを行っていないフォーム埋め込みコードのサンプルを示します。 ```html theme={null} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `portalId` | 数値または文字列 | フォーム多作成されたHubSpotアカウントのID。これは、フォーム定義を取得するために使用されます。 | | `formId` | 文字列 | フォームのID。フォーム定義を取得するために使用されます。 | | `region` | 文字列 | フォームが作成されたアカウントの[地域](https://knowledge.hubspot.com/ja/account-security/hubspot-cloud-infrastructure-and-data-hosting-frequently-asked-questions)。これは、フォーム定義を取得するために使用されます。指定可能な値は、`na1`または`eu1`です。 | ### 国際化を追加する HubSpotではデフォルトで、さまざまな言語で検証メッセージが表示されます。言語は、`locale`パラメーターを使用して指定できます。`translation`パラメーターを使用して、カスタム言語を追加したり、フォームに表示されるエラーメッセージや日付入力の月や日を上書きしたりすることもできます。 国際化とフォーム検証のエラーメッセージに関する詳細は、[フォームに関するリファレンスドキュメント](https://developers.hubspot.jp/docs/reference/cms/forms)をご確認ください。 ```js theme={null} hbspt.forms.create({ portalId: "", formId: "", locale: "en", translations: { en: { fieldLabels: { email: "Electronic mail", }, required: "Hey! That's required!", submitText: "Custom Submit Button Text", submissionErrors: { MISSING_REQUIRED_FIELDS: "Please fill in all required fields!", }, }, }, }); ``` ## フォームイベント フォームでは、HubSpotフォーム埋め込みコードのコールバックとグローバル フォーム イベントの2つの方法で機能をイベントにバインドできます。利用可能なフォーム埋め込みコードのコールバックとグローバル フォーム イベントの詳細については、[フォームに関するリファレンス ドキュメント](https://developers.hubspot.jp/docs/reference/cms/forms)をご確認ください。 ```js theme={null} // Example form embed code callback hbspt.forms.create({ portalId: "", formId: "", onBeforeFormSubmit: function ($form) { // YOUR SCRIPT HERE }, }); // Example listener window.addEventListener("message", event => { if (event.data.type === "hsFormCallback" && event.data.eventName === "onFormSubmitted") { someAnalyticsLib("formSubmitted"); console.log("Form Submitted! Event data: ${event.data}"); } }); ``` ## フォームのスタイル設定 HubSpotには[グローバル設定のフォームスタイル](https://knowledge.hubspot.com/ja/forms/set-global-form-colors-and-fonts)と[フォーム固有の設定](https://knowledge.hubspot.com/ja/forms/create-forms#style-and-preview-your-form)がありますが、フォームをどのようにCMSページに追加するかに応じてフォームのスタイルを設定することもできます。 > [!WARNING] > > ### 注: > > CMS Hub上に生成された全てのフォーム(フォーム埋め込みコードを使用した場合を除く)では、グローバルフォーム設定またはフォーム固有の設定に指定された全てのスタイルが無視されます。 ### 既定のフォームモジュールまたはHubLタグを使ってフォームのスタイルを設定する HubSpotページに追加されたHubSpotフォームのスタイルを設定するには、ウェブサイトのCSSを使用します。HubSpotには、生成されるフォームにさまざまなクラスと属性が用意されていて、スタイルを適用できます。出発点として、[HubSpotボイラープレートのフォームCSS](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/css/elements/_forms.css)(英語)をご参照ください。フォームのスタイル設定に関するベストプラクティスが示されています。 ### カスタムモジュールを使ってフォームのスタイルを設定する カスタムモジュール内のフォームのスタイルを設定するには、デザインマネージャー内のモジュールのCSSペインでCSSを使用します。CSSをモジュールに適用したままにすることで、モジュールがページに追加された場合には必ず、スタイル設定も伴うようになります。フォームにラッパーを追加し、そのラッパーをCSSの最上位のセレクターとして使用することをお勧めします。その結果、ウェブサイトのメインのスタイルシートに定義されている追加のスタイルによって、カスタムモジュールのフォームスタイルが上書きされることを防止できます。以下に、上記のカスタムモジュールのスクリーンショットを示します。フォームスタイル設定がCSSペインに追加されています。 ![CSSを使用したカスタムモジュール](https://cdn2.hubspot.net/hubfs/53/5Cdocs/forms/form-module-css-pane-4.jpg) ### 埋め込みフォームのカスタムスタイルを定義する **Marketing Hub**または**CMS Hub** *Professional*または*Enterprise*サブスクリプションをご利用の場合は、CSS変数の定義を使用して、グローバルスタイルの定義、ボタンやその他の入力のカスタマイズ、マルチステップフォームとプログレスバーのスタイル設定を行うことができます。 [埋め込みフォームにカスタムCSS定義を適用する](https://developers.hubspot.jp/docs/reference/cms/forms#define-custom-styling-for-embedded-forms-using-css)方法の詳細をご確認ください。 ### フォーム埋め込みコードを使って追加したフォームのスタイルを設定する フォーム埋め込みコードを使用する場合は、[グローバル フォーム スタイル設定](https://knowledge.hubspot.com/ja/forms/set-global-form-colors-and-fonts)またはウェブサイトのCSSを使用してフォームのスタイルを設定できます。 グローバル フォーム スタイル設定を使用すると、アカウント内の全てのフォームの既定の設定を構成できます。[フォームエディター内の個別のフォームに対し、これらのスタイルを上書き](https://knowledge.hubspot.com/ja/forms/create-forms#style-and-preview-your-form)することもできます。 ![グローバル フォーム スタイル](https://cdn2.hubspot.net/hubfs/53/5Cdocs/forms/global-form-styling-options-4.png) **Marketing Hub**または**CMS Hub**の*Professional*または*Enterprise*サブスクリプションをご利用の場合、フォーム作成時に[未加工のHTMLフォームとして設定]オプションを選択できます。この設定により、フォームはiframeではなくHTMLとして表示されるため、CSSを使用して埋め込みフォームのスタイルを設定するのが簡単になります。 詳しくは[埋め込みフォームのスタイル設定方法](https://knowledge.hubspot.com/ja/forms/how-can-i-share-a-hubspot-form-if-im-using-an-external-site)をご確認ください。 ![未加工のHTMLフォームとして設定する](https://cdn2.hubspot.net/hubfs/53/5Cdocs/forms/set-as-raw-html-form-4.jpg) # ページエディターでモジュールとセクションを非表示 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/hide-modules-and-sections # メニューとナビゲーション Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/menus-and-navigation HubSpotには、このようなメニューを簡単に作成して管理するためのツールが組み込まれています。また、コード面でもメニュー表示の方法が多数用意されているので、実際のウェブサイトに最も適したソリューションを選ぶことができます。 ユーザーが必要な情報を見つけるのに役立つように、ウェブサイトにナビゲーションメニューを含めます。ナビゲーションメニューが配置される場所としては、ウェブサイトのヘッダー、サイドバー、フッターなどがあります。HubSpotは、ユースケースに応じてページにメニューを追加するためのいくつかの組み込みソリューションを提供しますが、必要に応じて独自のメニューを作成することもできます。アカウントには、[メニューを作成および管理するための設定ページ](#navigation-settings)も含まれており、さまざまなメニューメソッドが参照できます。 * \*\*既定のメニュー:\*\*HubSpotには、必要に応じてすぐに使用できる2つの既定のメニュータイプがあります。これらのメニューは、[ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)またはテンプレートのページエディターでモジュールとして追加することも、[HubLタグ](#menu-hubl-tags)を使用してカスタムモジュールに追加することもできます。 * \*\*メニュー:\*\*ウェブサイトのヘッダーやフッターなど、グローバルナビゲーションで一般的に使用されるもので、既定の標準メニューでは、ナビゲーション設定で構成したメニューを選択し、最大レベル、表示設定、方向などのオプションを使用してさらに構成できます。 * \*\*シンプルメニュー:\*\*ピラーページなどのページ固有のナビゲーションで一般的に使用されるもので、シンプルメニューのモジュールを使用すると、ページレベルでメニューを作成できます。シンプルメニューの項目は、ナビゲーション設定で作成したメニューを参照するのではなく、コンテンツエディターで管理され、標準メニューよりも構成オプションが少なくなります。これにより、コンテンツ作成者はグローバルナビゲーションに影響を与えることなく、必要に応じて特定のページのメニューを更新できます。 * \*\*カスタムメニュー:\*\*既定のメニューオプションがニーズに合わない場合は、独自のカスタムソリューションを作成できます。これには、標準[メニューとsimple\_menu HubLタグ](#menu-hubl-tags)を使用して既定のメニューを含むカスタムモジュールを構築することから、[menu() HubL関数](#menu-hubl-function)を使用して、リピーターグループまたはHubDBで完全なカスタムソリューションを構築することまで含まれます。ただし、複雑なカスタムメニューを作成する場合は、エディターのエクスペリエンスを念頭に置く必要があります。多くの場合、カスタムソリューションと直感的な編集エクスペリエンスのバランスを取るために、`menu()`関数と並行して`menu`フィールドと`simple_menu`フィールドを使用する方が理にかなっています。 以下では、ページにメニューを含めるさまざまな方法と、HubSpotでナビゲーション設定を管理する方法について詳しく説明します。 ## ナビゲーション設定 各アカウントには、メニューモジュールとタグで参照するマルチレベルメニューを作成できるように、HubSpotに[ナビゲーション設定](https://knowledge.hubspot.com/cos-general/set-up-your-site-s-navigation-menus)が含まれています。これにより、一連のメニュー商品の信頼できる唯一の情報源が作成されるため、メニューを1回更新するだけで、そのメニューを参照する全てのページを更新できます。必要に応じて多くのメニューを作成でき、各メニューには、クローン作成、削除、名前変更、および変更履歴の表示のオプションが付属しています。 HubSpotでメニューを作成および管理するには、[設定]>[ウェブサイト]>[ナビゲーションメニュー]に移動します。ナビゲーション設定の詳細については、[HubSpotのナレッジベース](https://knowledge.hubspot.com/website-pages/set-up-your-site-s-navigation-menus)をご覧ください。 ![ナビゲーション設定エリア](https://cdn2.hubspot.net/hubfs/53/image2-4.png) HubLでメニューを操作する場合、メニューのIDを参照する必要がある場合があります。これは、メニュー項目がエディターで設定されているため、シンプルなメニューには適用されません。 カスタムモジュールを作成する場合、メニューIDを取得する最も簡単な方法は、メニューフィールドを作成することです。このフィールドを使用すると、コンテンツ作成者はドロップダウンメニューからメニューを選択し、メニューIDを返すことができます。メニューIDをハードコードする必要がある場合は、ナビゲーション設定ページでメニューを表示するときにURLからメニューIDを取得できます。 ![menu-id-in-url](https://www.hubspot.com/hubfs/Knowledge_Base_2023_2024/menu-id-in-url.png) 最初にこのページにアクセスするときには、既定のメニューIDはURLに表示されないことに注意してください。既定のメニューのIDを取得するには、別のメニューを選択してから、既定のメニューを再度選択する必要があります。 > [!NOTE] > > サイトのヘッダーには長いメインナビゲーションが含まれることがよくありますが、["コンテンツへスキップ"するリンク](/docs/cms/best-practices/improve-existing-sites/accessibility#adding-a-skip-to-content-link)を設置すると効果的です。これは長いメニューをキーボード操作でスキップする際に役立ちます。 ## HubLメニュータグ `menu`と`simple_menu` HubLタグを使用して、カスタムモジュールにメニュー機能を追加します。モジュールにタグを追加すると、ページ上のメニューがレンダリングされます。コンテンツ作成者がページエディターでメニューのオプションを設定できるようにするには、モジュールに[メニュー](/docs/cms/reference/fields/module-theme-fields#form)または[シンプル メニュー フィールド](/docs/cms/reference/fields/module-theme-fields#simple-menu)も含める必要があります。 以下では、メニュータグの各タイプについて詳しく説明します。 ### 標準メニュー [HubLメニュータグ](/docs/cms/reference/hubl/tags/standard-tags#menu)では標準的なメニューHTMLが生成され、深さ、アクティブ状態、子項目の有無に関するクラス名も定義されています。メニュータグは[カスタムモジュール](https://developers.hubspot.jp/docs/guides/cms/content/modules/overview)内で使用することが可能で、メインナビゲーションやサイドバーナビゲーションのナビゲーションメニューを簡単に作成できます。このタグには、[メニューID](#menu-id)を指定する必要があります。 ```hubl theme={null} {% menu "menu" %} {% menu "my_menu" id=456, site_map_name='Default', overrideable=False, root_type='site_root', flyouts='true', max_levels='2', flow='horizontal', label='Advanced Menu' %} ``` ### シンプルメニュー [シンプル メニュー](/docs/cms/reference/hubl/tags/standard-tags#simple-menu) タグもメニュータグと同様に機能し、深さ、アクティブ状態、子項目の有無に関するクラス名を備えた[標準的なメニューHTML](https://developers.hubspot.jp/docs/guides/cms/content/default-menu-markup)が生成されます。相違点として、このタグにはメニューIDではなくメニュー構造のディクショナリー(辞書型)が渡されることを想定しています。これが有用なのは、ナビゲーション設定を使う代わりに、モジュールのフィールドによってメニュー構造を決める場合です。例えば、ピラーページの目次にこのタイプのモジュールを使用することができます。 ```hubl theme={null} {% simple_menu menu_tree=[{"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "Home", "linkTarget": null, "linkUrl": "http://www.hubspot.com", "children": [], "isDeleted": false}, {"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "About", "linkTarget": null, "linkUrl": "http://www.hubspot.com/internet-marketing-company", "children": [{"contentType": null, "subCategory": null, "pageLinkName": null, "linkUrl": "http://www.hubspot.com/company/management", "isPublished": false, "children": [], "linkParams": null, "linkLabel": "Our Team", "linkTarget": null, "pageLinkId": null, "categoryId": null, "isDeleted": false}], "isDeleted": false}, {"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "Pricing", "linkTarget": null, "linkUrl": "http://www.hubspot.com/pricing", "children": [], "isDeleted": false}] %} ``` ## 既定のメニューモジュール HubSpotには、コード化されたテンプレートに追加できる既定のモジュールが用意されています。また、テンプレートに[ドラッグ&ドロップエリア](/docs/cms/reference/hubl/tags/dnd-areas)が含まれている場合は、ページエディターを介してページを追加できます。各モジュールには異なる編集エクスペリエンスがあり、標準メニューにはシンプルメニューよりも多くの設定オプションがあります。 モジュールをネストさせることはできないので、他のモジュール内にこれらのモジュールを入れることはできません。代わりに[メニュータグまたはシンプル メニュー タグ](#hubl-menu-tags)を使用してください。 ```hubl theme={null} {% module "main_nav" path="@hubspot/menu", label="Menu" id="123456" %} {% module "menu" path="@hubspot/simple_menu", label="Simple Menu" menu_tree=[{"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "Home", "linkTarget": null, "linkUrl": "http://www.hubspot.com", "children": [], "isDeleted": false}, {"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "About", "linkTarget": null, "linkUrl": "http://www.hubspot.com/internet-marketing-company", "children": [{"contentType": null, "subCategory": null, "pageLinkName": null, "linkUrl": "http://www.hubspot.com/company/management", "isPublished": false, "children": [], "linkParams": null, "linkLabel": "Our Team", "linkTarget": null, "pageLinkId": null, "categoryId": null, "isDeleted": false}], "isDeleted": false}, {"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "Pricing", "linkTarget": null, "linkUrl": "http://www.hubspot.com/pricing", "children": [], "isDeleted": false}] %} ``` ### 標準メニューのマークアップ 既定のメニューモジュールは、それぞれのHubLメニュータグ(`menu`と`simple_menu`)を使用して標準メニューHTMLを生成します。他のHubSpotモジュールと同様に、メニューモジュールはモジュール ラッパー マークアップで囲まれています。これらの`div`タグと`span`タグにより、コンテンツエディターでモジュールを編集できるようになります。メニューモジュールとシンプル メニュー モジュールのメニューマークアップは、ラッパーとメニューコンテナーに適用される一部のクラスを除いて同じです。 ```html theme={null} ``` 上記のように、実際のメニューは、`hs-menu-wrapper`クラスの`div`でラップされた`ul`としてレンダリングされます。このラッパーには、フライアウトの有効化など、ページエディターでのモジュールの構成方法に基づいて追加のクラスがあります。[これらの設定によって追加されるクラス](#classes-added-by-settings)の詳細については、以下をご覧ください。 `ul`内の各メニュー項目は、`li`でラップされた`a`タグです。`li`タグには、メニューツリー内の項目の深さを示すクラスがあります(例:`hs-menu-depth-1`)。メニュー項目にネストされた子項目が含まれている場合、対応する`li`は`hs-item-has-children`の追加クラスを持ちます。子メニューは、クラス`hs-menu-children-wrapper`を使用してネストされた`ul`としてレンダリングされます。 メニュー ツリーに含まれるページを訪問すると、クラス`active-branch`が親`li`項目に追加され、クラス\*\*`active`\*\*がそのページの特定の`li`項目に追加されます。 ### 標準メニューのスタイリング モジュールレベルでは、ページエディターでメニューモジュールを編集する場合でも、カスタムモジュールでメニューフィールドを編集する場合でも、いくつかの構成オプションがあります。[メニュー]**、[詳細メニュータイプ]**、および[最大レベル数]フィールドを使用すると、ページマークアップでメニュー項目が`li`としてレンダリングされるように制御できます。ただし、方向とフライアウトのオプションは、メニューラッパーの`div`に追加されたCSSセレクターに影響します。CSSでこれらのセレクターを対象にすることができます。 ![menu-options-in-editor](https://www.hubspot.com/hubfs/Knowledge_Base_2023_2024/menu-options-in-editor.png) 以下では、これらのフィールド設定に応じて、メニューラッパーの`div`に追加されるクラスの詳細について説明します。 | クラス | 説明 | | - | - | | `hs-menu-flow-horizontal` | メニューが水平方向に設定されている場合、ラッパーの`div`に追加されます。 | | `hs-menu-flow-vertical` | メニューが垂直方向に設定されている場合、ラッパーの`div`に追加されます。 | | `flyouts` | [フライアウトを有効にする]が選択されている場合、ラッパーの`div`に追加されます。 | | `no-flyouts` | [フライアウトを有効にする]が選択されていない場合、ラッパーの`div`に追加されます。 | メニューのスタイリングを開始するために、メニュータグと既定のメニューモジュールのスタイルを設定するために使用できるCSSセレクターの例を以下に示します。 ```css theme={null} /* Menus */ .hs-menu-wrapper ul { /* Targets all unordered lists within HubSpot menus */ } /* Horizontal Menu ========================================================================== */ .hs-menu-wrapper.hs-menu-flow-horizontal ul { /* Targets all unordered lists within horizontal menus */ } .hs-menu-wrapper.hs-menu-flow-horizontal ul li { /* Targets all list items within horizontal menus */ } .hs-menu-wrapper.hs-menu-flow-horizontal ul li a { /* Targets all links within horizontal menus */ } .hs-menu-wrapper.hs-menu-flow-horizontal > ul { /* Targets the top-level unordered list within horizontal menus */ } .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-menu-depth-1 { /* Targets top-level list items within the top-level unordered list */ } .hs-menu-wrapper.hs-menu-flow-horizontal > ul li a { /* Targets top-level list links within the top-level unordered list */ } .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-item-has-children { /* Targets list items with children with the top-level unordered list */ } .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts > ul li.hs-item-has-children ul.hs-menu-children-wrapper { /* Targets second-level unordered lists when flyouts are enabled (for styling dropdowns) */ } .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-item-has-children ul.hs-menu-children-wrapper li a { /* Targets links within second-level unordered lists */ } .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts > ul li.hs-item-has-children ul.hs-menu-children-wrapper li.hs-item-has-children ul.hs-menu-children-wrapper { /* Targets third-level unordered lists (for styling dropdowns)*/ } .hs-menu-wrapper.hs-menu-flow-horizontal.flyouts > ul li.hs-item-has-children:hover > ul.hs-menu-children-wrapper { /* Targets second-level unordered list when top-level menu item is hovered (use to reveal dropdowns) */ } .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-item-has-children.active-branch { /* Targets top-level active branch unordered list */ } .hs-menu-wrapper.hs-menu-flow-horizontal > ul li.hs-item-has-children.active-branch > ul.hs-menu-children-wrapper { /* Targets second-level unordered list within active branch */ } .hs-menu-wrapper.hs-menu-flow-horizontal li.active a { /* Targets the link within the active list item */ } /* Vertical Menu ========================================================================== */ .hs-menu-wrapper.hs-menu-flow-vertical ul { /* Targets all unordered lists within vertical menus */ } .hs-menu-wrapper.hs-menu-flow-vertical ul li a { /* Targets all list items within vertical menus */ } .hs-menu-wrapper.hs-menu-flow-vertical ul li a { /* Targets all links within vertical menus */ } .hs-menu-wrapper.hs-menu-flow-vertical > ul { /* Targets the top-level unordered list within vertical menus */ } .hs-menu-wrapper.hs-menu-flow-vertical > ul li.hs-menu-depth-1 > a { /* Targets top-level links in vertical menus */ } .hs-menu-wrapper.hs-menu-flow-vertical > ul li.hs-item-has-children { /* Targets top-level list items with children */ } /* No flyouts ========================================================================== */ .hs-menu-wrapper.hs-menu-flow-vertical.no-flyouts .hs-menu-children-wrapper { /* Targets child menus when flyouts are disabled */ } .hs-menu-wrapper.hs-menu-flow-horizontal.no-flyouts > ul li.hs-item-has-children ul.hs-menu-children-wrapper { /* Targets second-level child menus when flyouts are disabled */ } ``` ## HubL menu()関数 [menu()](/docs/cms/reference/hubl/functions#menu)関数を使用すると、完全にカスタマイズされたメニュー構造を作成できます。そこから返される1つのオブジェクトを反復処理するとメニューを生成できます。[メニュー項目用のプロパティー](/docs/cms/reference/hubl/variables#menu-node-variables)が多数提供されています。メニュー関数を使用する場合は、メニューの構造、スタイル設定、[メニューのアクセスに関する責任があります](/docs/cms/best-practices/improve-existing-sites/accessibility)。 ```hubl theme={null} {% set node = menu(987) %} {% for child in node.children %} {{ child.label }}
{% endfor %} {% set default_node = menu("default") %} {% for child in default_node.children %} {{ child.label }}
{% endfor %} ``` [HubSpot CMSテーマボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate)には、[menu()関数を使って構築したサンプル メニュー モジュール](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/modules/menu.module/module.html)が含まれています。実際のニーズに合わせて変更することで、複雑なメニューを作成できます。 # モジュールの概要 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview HubSpot CMSとその機能性を理解するには、モジュールを理解することが重要です。モジュールとは、テンプレートで使用したり、ドラッグ&ドロップエリアおよびフレキシブルカラムを使用してページに追加したりできる、再利用可能なコンポーネントのことです。 HubSpot CMSとその機能性を理解するには、モジュールを理解することが重要です。モジュールとは、テンプレートで使用したり、[ドラッグ&ドロップエリア](/docs/cms/start-building/building-blocks/drag-and-drop/tutorial)および[フレキシブルカラム](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/standard-tags#flexible-column)を使用してページに追加したりできる、再利用可能なコンポーネントのことです。HubSpot提供のモジュールを使用できるだけでなく、開発者は独自のモジュールを作成して、お客様の声やフォトギャラリーといったあらゆる目的で使用できます。モジュールを作成するには、[ローカルの開発ツールを使用](/docs/cms/start-building/building-blocks/modules/overview)するか、[デザインマネージャーを使用](https://knowledge.hubspot.com/cos-general/create-and-edit-modules)します。 モジュールは2つの要素で構成されています。 1. 一連のフィールドを使用して作成された[ユーザーインターフェイス](#the-user-interface-for-editing)。ユーザーがモジュールインスタンスを編集するときに表示されます。 2. CSSとJSが関連付けられたHTML+HubLテンプレートフラグメント。これによりHTMLの出力が定義されます。 ## 例 モジュールの理解を深めるために、シンプルな「チームメンバー」モジュールを例として説明します。このモジュールは、写真、チームメンバーの名前と役職、簡単な自己紹介からなります。CMSウェブページに組み込まれると、次のように表示されます。 ![チーム メンバー モジュール インスタンス](https://cdn2.hubspot.net/hubfs/53/team-member-module-instance.png) ### 編集用ユーザーインターフェイス 開発者はフィールドを使用して、モジュールのユーザーインターフェイス(UI)を構築します。続いて、開発するモジュールの種類、必要なデータ、編集方法に基づいて、使用するフィールドを選択します。この例では、モジュールに次のフィールドを使用しています。 1. チームメンバーの写真に使用する画像フィールド 2. チームメンバーの名前と役職に使用する2つのテキストフィールド 3. 簡単な自己紹介に使用するリッチ テキスト フィールド 制作担当者がモジュールを編集する際のUIは、開発者がモジュールに追加したフィールドと各フィールドの設定方法に基づいて組み立てられます。 ![チーム メンバー モジュール エディター](https://cdn2.hubspot.net/hubfs/53/team-member-editor.png) ## モジュールとモジュールインスタンス モジュールに関する2つの頻出用語があります。その違いを理解することが重要です。 * **モジュール** - :テンプレートやページに追加できる、再利用可能な構成要素。 * **モジュールインスタンス** - :ページ上にレンダリングされた個々のモジュール。モジュールインスタンスはそれぞれ別個のフィールド値を使用できるため、同じモジュールであっても、モジュールインスタンスによっては外観が異なる場合があります。 ## fields.json モジュールのフィールドはオブジェクト配列としてJSONで定義されます。各フィールドに、名前、型、既定値があります。編集方法を制御するフィールドのタイプによっては、他にもプロパティーがあります。 ```json theme={null} // fields.json [ { "name": "team_member_photo", "label": "Team Member Photo", "required": true, "responsive": true, "resizable": true, "type": "image", "default": { "src": "", "alt": "" } }, { "name": "team_member_name", "label": "Team member name", "required": true, "type": "text", "default": "Joshua Beck" }, { "name": "team_member_position", "label": "Team member position", "required": true, "type": "text", "default": "CEO, Co-Founder" }, { "name": "team_member_bio", "label": "Team member bio", "required": true, "type": "richtext", "default": "

Joshua has over 20 years of experience in the tech industry. He helped start this company in 2015 with the mission of helping people grow. In his spare time he loves hanging out with his kids, going to the beach, and cooking.

" } ] ``` 使用可能な全てのフィールドの詳細については、[モジュールとテーマのフィールド](https://developers.hubspot.jp/docs/reference/cms/fields/module-theme-fields)を参照してください。 ### モジュール フィールド データを使用してHTMLをレンダリングする 各フィールドの値は、モジュールのHTML+HubLフラグメントで`module`変数を介して使用できます。各フィールドのデータにアクセスするには、module変数のプロパティーを使用します。チーム メンバー モジュールの例では、チームメンバーの名前にアクセスするために`{{ module.team_member_name }}`プロパティーを使用します。 ```hubl theme={null}
{{ module.team_member_image.alt }}

{{ module.team_member_name }}

{{ module.team_member_position }}

{{ module.team_member_bio }}
``` ## テンプレートでのモジュールの使用 モジュールをテンプレートに追加するには、[module](https://developers.hubspot.jp/docs/reference/cms/modules/using-modules-in-templates#basic-module-syntax)、[module\_block](https://developers.hubspot.jp/docs/reference/cms/modules/using-modules-in-templates#block-syntax)、または[dnd\_module](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas)タグを使用し、パラメーターとしてモジュールのパスを指定します。モジュールに含まれるフィールドの既定値は、テンプレートレベルでのオーバーライドもできます。下の例の後半部分のように、フィールド名に対応するmoduleタグにパラメーターを追加してください。 ```hubl theme={null} {% module "unique_identifier" path="/modules/team-member.module" %} {# override default values in a module instance #} {% module "unique_identifier" path="/modules/team-member.module", team_member_name="Brian Halligan", team_member_position="CEO" %} ``` > [!NOTE] > > モジュールを相互にネストすることはできません。ほとんどの場合、モジュール同士をネストさせる必要が生じるのはレイアウト上の理由からです。その場合の対処法として、通常は[ドラッグ&ドロップエリア](/docs/cms/start-building/building-blocks/drag-and-drop/overview)内のセクションを使用するのが適切です。 ## アクセシビリティーの向上にも役立つモジュール モジュールはウェブサイト全体で使用されます。複数のページで使用されたり、同じページ上で複数回使用されたりすることもあります。このことから、[アクセシビリティーを念頭にモジュールのHTML、CSS、JSを作成](https://developers.hubspot.jp/docs/guides/cms/content/accessibility)すると、障害がある人とない人の両方にとって非常に使いやすいサイトを実現できる可能性があります。 ## モジュールによってローカライズが容易に アクセシビリティーの場合と同様に、モジュール内の全てのコンテンツがフィールドによって構築されるようにモジュールを作成しておくと、後でローカライズできます。例えば、「Featured articles」というモジュールがあるとします。「Featured articles」というテキストをハードコードする代わりに、テキストフィールドまたはリッチ テキスト フィールドを使用します。その結果、テキストを他の言語に変更することが可能になります。CMSのローカライズの詳細については、[多言語](https://developers.hubspot.jp/docs/guides/cms/content/multi-language-content)を参照してください。 ## はじめに モジュールを使い始めるには、[モジュールの基本操作](/docs/cms/start-building/building-blocks/modules/overview)チュートリアルを参照してください。 ## 関連情報 * [モジュールの設定](https://developers.hubspot.jp/docs/reference/cms/modules/configuration) * [テンプレートでモジュールを使用する](https://developers.hubspot.jp/docs/reference/cms/modules/using-modules-in-templates) * [既定のモジュール](https://developers.hubspot.jp/docs/reference/cms/modules/default-modules) * [モジュールエディター](/docs/cms/start-building/building-blocks/modules/overview) # テーマの概要 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/overview 制作担当者向け作業環境としてのデザインシステムを開発者が構築するためのHubSpot CMSテーマの作成について紹介します。 テーマは、移植可能な形式に統合されたさまざまな開発アセットであり、柔軟なコンテンツ編集環境の提供に役立ちます。[HubSpot CLIを使用してローカル環境でテーマを作成](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)する際には、使い慣れたツール、テクノロジー、ワークフローを使用できます。テーマと、テーマ内の全てのファイルも、環境間およびアカウント間で移植可能です。テーマの開発方法に関する動画については、以下のHubSpotアカデミーの動画をご覧ください。 ## パッケージとしてのテーマ テーマはパッケージであり、HubSpotアプリ全体に適用されるので、効率的なコンテンツ作成が可能になります。開発者はテーマを使用して、制作担当者向けのデザインシステムを構築できます。柔軟なテーマに、一定の基準を組み込んでビジネスニーズに合わせることもできます。 ### ページの作成 制作担当者が新しいページの構築を始めるとき、ページ作成の出発点にするテーマを選択し、そのテーマ内のテンプレートを選択して開始するよう指示されます。 ![HubSpot内でのテーマの選択](https://cdn2.hubspot.net/hubfs/53/theme%20selection.gif) テーマのプレビュー画像などのテーマ設定は、[theme.jsonファイル](#theme-json)に設定されます。 ### テーマフィールド 開発者はテーマを使ってモジュールフィールドに類似した[テーマフィールド](#fields-json)のセットを作成できます。これにより制作担当者は、開発者がデザインしたさまざまなノブやダイヤルを調整し、CSSを編集せずにウェブサイト全体のスタイルを制御できます。開発者はCSS全体の[テーマフィールドの値にHubLを使用してアクセス](#using-theme-field-values)します。制作担当者はテーマエディターを使用して、テーマフィールドの値を変更し、テーマに含まれる既存のテンプレートに対する変更をプレビューしてから、その変更を公開します。 ![テーマ](https://cdn2.hubspot.net/hubfs/53/themes.gif) テーマフィールドは[テーマのfields.jsonファイル](#fields-json)で決まります。 [テストモード](/docs/cms/start-building/building-blocks/overview#test-mode)でテーマを編集するときには、テーマの設定JSONをコピーすることもできます。こうすると、更新内容をテーマのローカル`fields.json`ファイルに貼り付けることができます。 ![copy-theme-settings-test-mode](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/copy-theme-settings-test-mode.png) ### テーマモジュール テーマ内のモジュールは、テーマ内のテンプレート内で使用するように設計する必要があります。テーマモジュールはコンテンツエディター上で強調表示されるので、制作担当者は作成しているページにそのページのコンテキストで正しく機能するようにデザインされたモジュールを素早く簡単に追加できます。既定のモジュールおよび残りのモジュールは引き続きHubSpotアカウントで利用できます。 ![テーマ内のテーマモジュール](https://cdn2.hubspot.net/hubfs/53/theme%20modules.png) テーマを開発するときに、[ページエディターでモジュールとセクションを非表示](/docs/cms/start-building/building-blocks/modules/hide-modules-and-sections)にできます。こうすると、より合理的なコンテンツ作成エクスペリエンスが実現します。 ## テーマファイルの構造 テーマはファイルを含む1つのディレクトリーです。親テーマフォルダーのサブディレクトリー内にはHTML、CSS、JavaScriptファイル、モジュールなどのファイルを含めることができ、任意の方法で整理できます。テーマを作成するには、`theme.json`と`fields.json`の2つのJSONファイルが必要です。これらのファイルをルート テーマ フォルダーに含める必要があります。 サンプルから始めるには、[HubSpot CMSボイラーテンプレート](https://github.com/HubSpot/cms-theme-boilerplate)を参照してください。 ![テーマファイルの構造](https://designers.hubspot.com/hs-fs/hubfs/theme%20file%20structure.png?width=599\&height=452\&name=theme%20file%20structure.png) > [!NOTE] > > 現時点では、.jsonファイルの作成とHubSpotアカウントへのアップロードは[ローカル開発ツール](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)を通じてのみ行えます。 ### theme.json `theme.json`ファイルには、テーマの読み取り可能なラベル、プレビュースクリーンショット、テーマの動作のためのさまざまな設定など、テーマディレクトリーのメタ情報が含まれます。`theme.json`ファイルの例を次に示します。 ```json theme={null} // theme.json { "label": "Cool Theme", "preview_path": "./templates/home-page.html", "screenshot_path": "./images/templates/homepage.jpg", "enable_domain_stylesheets": false, "version": "1.0", "author": { "name": "Jon McLaren", "email": "noreply@hubspot.com", "url": "https://theme-provider.com/" }, "documentation_url": "https://theme-provider.com/cool-theme/documentation", "license": "./license.txt", "example_url": "https://theme-provider.com/cool-theme/demo", "is_available_for_new_content": true } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `label` | 文字列 | テーマの読み取り可能なラベル。テンプレート選択画面やテーマエディターなど、HubSpotアプリ全体にわたってテーマが表示されるさまざまな箇所で使用されます。 | | `preview_path` | 文字列 | テーマ内のテンプレートファイル(既定のテンプレート)への相対パス。これはテーマエディターでテーマをプレビューする際に使用されます。 | | `screenshot_path` | 文字列 | 画像ファイルへの相対パス。この画像は、テーマが選択されるさまざまな箇所(テンプレート選択画面など)で、テーマの外観を示すスナップショットの提供に使用されます。 | | `enable_domain_stylesheets` | ブール値 | ウェブサイト設定でドメインに添付されたスタイルシートをテーマ内のテンプレートに含めるかどうかを指定します。既定値は`false`です。 | | `version` | 文字列 | `.`に対応した整数のバージョン番号。 | | `Author` | オブジェクト | テーマプロバイダーとしての開発者自身に関する情報を提示するオブジェクト。`name` プロバイダーの名前。 `email` プロバイダーのサポート担当のEメールアドレス。 `url` プロバイダーのウェブサイト。 | | `documentation_url` | 文字列 | テーマドキュメントのリンク。 | | `example_url` | 文字列 | テーマの実例リンク。 | | `license` | 文字列 | 有効な[SPDX ID](https://spdx.org/licenses/)またはテーマ内のライセンスの相対パス。このライセンスは、テーマの作成者に対してどのような使用と変更を許可するかを規定します。マーケットプレイスに提出する場合に便利です。 | | `is_available_for_new_content` | ブール値 | 制作担当者のページにテーマが選択対象として表示されるかどうかを指定するブール値。既定値は`true`です。 | ### fields.json `fields.json`ファイルは、テーマエディターで利用可能なフィールドとフィールドグループ([スタイルフィールド](https://developers.hubspot.jp/docs/guides/cms/content/fields/overview#style-fields)を含む)を制御します。含めるフィールドは、ページエディターでの制作担当者による制御をどの程度可能にするかに応じて異なります。テーマ内で利用可能なフィールドの数は、モジュールと比べて限られています。これは、[グローバルコンテンツ](/docs/cms/start-building/building-blocks/global-content)がテーマのコンテンツに適している一方、テーマフィールドはスタイルオプションとして最適なためです。 例えば、テーマの`field.json`にサイトのタグラインのテキストフィールドを追加する代わりに、それをグローバルモジュールとして追加します。これにより、制作担当者はテーマエディターではなくページエディター内でタグラインを更新できるようになります。 テーマ内で使用できるフィールドを次に示します。 * [ブール値](/docs/cms/reference/fields/module-theme-fields#boolean) * [境界線](/docs/cms/reference/fields/module-theme-fields#border) * [選択](/docs/cms/reference/fields/module-theme-fields#choice) * [カラー](/docs/cms/reference/fields/module-theme-fields#color) * [フォント](/docs/cms/reference/fields/module-theme-fields#font) * [画像](/docs/cms/reference/fields/module-theme-fields#image) * [数値](/docs/cms/reference/fields/module-theme-fields#number) * [間隔](/docs/cms/reference/fields/module-theme-fields#spacing) テーマフィールドで使用できるオプションに関する包括的なドキュメントについては、[モジュールとテーマフィールドのドキュメント](/docs/cms/reference/fields/module-theme-fields)を参照してください。 #### テーマのフィールド値の使用 フィールド値にアクセスするには、`fields.json`の値へのパスにthemeを使用したドット表記とプレフィックスを使用します。スタイルシートでテーマフィールド値を`{{ theme.path.to.value }}`のような構文で使用できます。例えば、以下のフォントフィールドで説明します。 ```json theme={null} // fields.json [ { "type": "group", "name": "typography", "label": "Typography", "children": [ { "type": "font", "name": "h1_font", "label": "Heading 1", "load_external_fonts": true, "default": { "color": "#000", "font": "Merriweather", "font_set": "GOOGLE", "variant": "700", "size": "48" } } ] } ] ``` これを次のようなCSSで参照します。 ```css theme={null} h1 { font-size: {{ theme.typography.h1_font.size }}px; font-family: {{ theme.typography.h1_font.font }}; color: {{ theme.typography.h1_font.color }}; text-decoration: {{ theme.typography.h1_font.styles.text-decoration }}; font-style: {{ theme.typography.h1_font.styles.font-style }}; font-weight: {{ theme.typography.h1_font.styles.font-weight }}; } ``` ## テーマのプレビュー 開発者は、テーマフィールドの正常な動作をテストする必要が生じる場合がありますが、実際のページに影響を与えないようにもする必要があります。ここでテーマ テスト モードを使います。 ### テストモード テストモードを使用するとテーマのフィールドを操作できる安全な環境が提供され、期待どおりに機能することを確かめることができます。インターフェイスは[制作担当者が表示できるテーマプレビュー/エディター](https://knowledge.hubspot.com/website-pages/edit-your-global-theme-settings#edit-theme-settings)とまったく同様の表示ですが、実際のウェブサイトの設定は変更されないので安心です。誤ってテーマ設定が更新されないように保護されるため、テストモードでは公開がブロックされています。テストモードになっているかどうかはアドレスバーに`?testmode=true`と表示されることで分かります。また、テーマエディターのヘッダーにはテスト モード アイコンが表示されます。 ![テーマテスト/プレビューモード](https://f.hubspotusercontent00.net/hubfs/53/theme-test-mode.png) テストモードを有効にするには、次の2つの方法があります。 * デザインマネージャーからテストモードを有効にするには: * デザインマネージャーのファインダーで、該当する**テーマ**を選択します。 * 左側のサイドバーの上部にある[プレビュー]ボタンをクリックします。 ![copy-theme-settings-test-mode-design-manager (1)](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/copy-theme-settings-test-mode-design-manager%20\(1\).png) * ページエディターからテストモードを有効にするには: * ページエディターで、左側のサイドバーの[デザイン]タブをクリックして、[テーマ設定を編集]をクリックします。 ![page-editor-edit-theme](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/page-editor-edit-theme.png) * URLに`?testmode=true`を追加して、**Enter**キーを押します。その後、テストモードになります。 ページエディター内でテーマ設定を開く方法もあります。開いたら次に、クエリーパラメーター`?testmode=true`をアドレスバーのURLに追加します。 ## 関連リソース * [テーマを使ってみる](/docs/cms/start-building/building-blocks/themes/getting-started) * [テーマ機能を既存のサイトに追加する方法](/docs/cms/best-practices/improve-existing-sites/add-theme-features-to-existing-sites) * [HubSpotテーマボイラープレート](/docs/cms/start-building/building-blocks/themes/hubspot-cms-boilerplate) # セクション Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/sections/sections セクションは、 dnd_areaの最も外側にある子要素です。セクションは、セクションテンプレートを使用することも、ページエディター内で保存して再利用することもできます。 [ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)の最も外側にあるコンテナーはセクションと呼ばれます。セクションは他の[dnd](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview#drag-and-drop-areas-and-their-elements)要素内にネスト(入れ子構造に)することはできませんが、モジュール、[行](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview#row)、[列](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview#column)を含めることができます。制作担当者はページエディター上でセクションを追加し、必要に応じて変更やスタイル設定を行うことができます。また、同じテーマ内の他のページで使用するセクションを作成して保存することもでき、コンテンツ作成がより効率的になります。 この記事では、セクションの詳細とページエディターでの使用方法について説明します。テーマを開発する際は、コンテンツ作成の作業効率を向上できるよう、ページエディターで[モジュールとセクションを非表示](/docs/cms/start-building/building-blocks/modules/hide-modules-and-sections)にする方法に関するガイドをご覧ください。 ![ページエディターで再利用可能なセクションを追加するUI](https://www.hubspot.jp/hubfs/page%20editor%20add%20reusable%20section%20UI.gif) ## 概要 セクションは[制作担当者がコンテンツエディターで作成](https://knowledge.hubspot.com/ja/website-pages/edit-page-content-in-a-drag-and-drop-area#create-a-section)するか、または開発者が[`dnd_section`](/docs/cms/reference/hubl/tags/dnd-areas#drag-and-drop-section-code-dnd-section-code-)タグを使用して[`dnd_area`](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)に構築することができます。 エディター内で使用できるスタイル設定オプションは、テンプレートのコーディング時にも使用できます。以下に例を示します。 ```hubl theme={null}
{% dnd_area 'dnd_area' label='Main section', %} {% dnd_section background_image={ 'backgroundPosition': 'MIDDLE_CENTER', 'backgroundSize': 'cover', 'imageUrl': 'https://example.com/path/to/image.jpg' }, margin={ 'top': 32, 'bottom': 32 }, padding={ 'top': '1em', 'bottom': '1em', 'left': '1em', 'right': '1em' }, max_width=1200, vertical_alignment='MIDDLE' %} {% end_dnd_section %} {% end_dnd_area %}
``` 利用可能な全てのドラッグ&ドロップ要素パラメーターと使用例の一覧については、 [dnd\_areaタグ](/docs/cms/reference/hubl/tags/dnd-areas)に関する詳細をご確認ください。 セクションを使用すると、読みやすいテンプレートを簡単に作成できます。コンテキストでテンプレート固有のインスタンスが異なる場所のみを指定するため、戻ってそのセクションテンプレートを変更することができます。 > [!WARNING] > > **注**: セクションを変更すると、そのセクションを参照するテンプレートを使用している既存のページを除くセクションの全てのインスタンスでセクションが更新されます 。セクションがインクルードされたテンプレートを使って以前に作成されたページは、代わりに手動で更新して新しいバージョンのセクションを使用する必要があります。これにより、破損につながる変更ミスが防止されます。セクションを最新バージョンに更新するには、制作担当者がページエディターに移動して新しいセクションをページに追加してから、古いバージョンを削除します。 ## 再利用可能なセクションを作成 テーマ内には事前設定済みのセクションを含めることができます。制作担当者はこのセクションを、ページエディター内でそのテーマを使用するページに追加できます。このような再利用可能なセクションはセクション テンプレート ファイルとして作成され、 `dnd_area`内で使用されるのと同じ構文でコーディングされます。 > [!WARNING] > > **注**: セクションを複数のテーマで利用できるようにするには、各テーマにセクション テンプレート ファイルを追加する必要があります。同様に、制作担当者がコンテンツエディター内で作成したセクションは、そのテーマ内でのみ利用可能です。 以下では、セクション テンプレート ファイルを作成し、そのファイルを別のテンプレートファイルで参照する方法を説明します。 ### セクション テンプレート ファイル セクションテンプレートは、その[テンプレートアノテーション](/docs/cms/start-building/building-blocks/templates/html-hubl-templates#template-annotations)に含まれる`templateType: section`によって指定されます。 ```html theme={null} ``` | パラメーター | タイプ | 説明 | 既定値 | | - | - | - | - | | `templateType` | String | テンプレートの使用箇所とテンプレートでの使用データを決める、テンプレートタイプを設定します。 | `section` | | `label` | String | ページエディターで、人間に分かりやすいセクション名を指定するために使用します。 | | | `description` | String | ラベルに収まらない、セクションに関する詳しい説明です。ページエディター内に表示されます。最大255文字です。 | | | `screenshotPath` | String/path | セクションのスクリーンショットのパスです。セクションがどのように表示されるかを示すビジュアルリファレンスを制作担当者に提供するために使用します。 | | セクションテンプレートの開始と終了には`dnd_section`タグを使用する必要があります。セクションテンプレート内に配置できる`dnd_section`は1つのみです。このセクションの内部には、 [ページテンプレート](/docs/cms/reference/hubl/tags/dnd-areas#dnd-area)にdnd\_areaを追加するときと同じ`dnd_area`ルールに従って、モジュール、行、列を配置できます。例外として、定義は1つのセクションのコンテンツとその子ドラッグ&ドロップ要素が対象になります。 ```hubl theme={null} {% dnd_section padding={ 'top': 200, 'right': 20, 'bottom': 200, 'left': 20 }, background_image={ 'backgroundPosition': 'MIDDLE_CENTER', 'backgroundSize': 'cover', 'imageUrl': context.backgroundImage || get_asset_url('../images/blank-page-banner.png') }, max_width=778, vertical_alignment='MIDDLE' %} {% dnd_column %} {% dnd_row %} {% dnd_module path='@hubspot/rich_text' %} {% module_attribute 'html' %}
{{ context.content || '

Communicate Your Way

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus dapibus posuere mi, in pretium ante posuere a. Aliquam a risus at eros molestie pretium.

' }}
{% end_module_attribute %} {% end_dnd_module %} {% end_dnd_row %} {% dnd_row %} {% dnd_module path='../modules/button', button_text={{ context.buttonText || 'Subscribe' }} horizontal_alignment='CENTER' %} {% end_dnd_module %} {% end_dnd_row %} {% end_dnd_column %} {% end_dnd_section %} ``` ### テンプレートにセクションパーシャルを追加する セクションを作成した後、 `include_dnd_partial`タグを使用して`dnd_area`内でセクションを参照できます。このタグは、次に示すように、セクション ファイルを指すパスを提供します。 ```hubl theme={null} {% dnd_area 'dnd_area' class='body-container body-container--home-page', label='Main section' %} {# Banner Section #} {% include_dnd_partial path='../sections/banner.html' context={} %} {# End Banner Section #} {% end_dnd_area %} ``` > [!NOTE] > > 上記の例では、 `include_dnd_partial`タグのコンテキスト引数に注目してください。このタグにより、ページテンプレートからセクションにインスタンス固有の変数を渡すことができ、セクションファイルのデフォルト値よりも優先されます。詳細については、[セクションコンテキスト](#section-context)を参照してください。 ### セクションコンテキスト セクションコンテキスト変数を使用して、セクションとモジュールのデフォルト値を変更できます。セクションコンテキスト変数は開発者が定義します。つまり、モジュールとそのフィールドには直接関連付けられていません。 ページテンプレートでは、`include_dnd_partial`タグ内で`context`パラメーターを使用してこれらのコンテキスト変数を設定できます。 ```hubl theme={null} {% dnd_area 'dnd_area' class='body-container body-container--home-page', label='Main section' %} {# Banner Section #} {% include_dnd_partial path='../sections/banner.html' context={ 'content': '

Home Page

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus dapibus posuere mi, in pretium ante posuere a. Aliquam a risus at eros molestie pretium.

', 'buttonText': 'Buy Now' } %} {# End Banner Section #} {% end_dnd_area %} ``` `context`パラメーターに追加する変数は、セクションテンプレート内で参照できるようになります。次の例は、画像 URL、リッチ テキスト エリア、およびコンテキストに設定されたボタン コンテンツ (存在する場合) を設定する方法を示しています。 ```hubl theme={null} {% dnd_section background_image={ 'backgroundPosition': 'MIDDLE_CENTER', 'backgroundSize': 'cover', 'imageUrl': context.backgroundImage || get_asset_url('../images/blank-page-banner.png') }, max_width=778 %} {% dnd_column %} {% dnd_row %} {% dnd_module path='@hubspot/rich_text' %} {% module_attribute 'html' %}
{{ context.content || '

Communicate Your Way

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus dapibus posuere mi, in pretium ante posuere a. Aliquam a risus at eros molestie pretium.

' }}
{% end_module_attribute %} {% end_dnd_module %} {% end_dnd_row %} {% dnd_row %} {% dnd_module path='../modules/button', button_text={{ context.buttonText || 'Subscribe' }} horizontal_alignment='CENTER' %} {% end_dnd_module %} {% end_dnd_row %} {% end_dnd_column %} {% end_dnd_section %} ``` > [!NOTE] > > コンテキスト変数が使用されているすべての場所に、何も指定されない場合にフォールバックのデフォルトのコンテンツを提供する「OR」(`||`)フィルターがあることに注意してください。例えば、ボタンモジュールでは、 `context.buttonText`に値があれば、その値がページに使用されます。それ以外の場合、テキストは`Subscribe`に設定されます。 ### セクションクラス セクションテンプレートでは、classパラメーターを使用してセクションラッパーにクラスを追加できます。これにより、dndセクションのhtml要素のclassフィールドに、指定したクラスが追加されます。可能な限り、スタイル設定コントロールをセクションに組み込んで、セクションを制作担当者が変更できるようにしておくことをお勧めします。 > [!WARNING] > > **注**: セクションクラスはセクションテンプレートでのみサポートされます。 ```hubl theme={null} {% dnd_section class='my-hero-section' padding={ 'top': 200, 'right': 20, 'bottom': 200, 'left': 20 }, background_image={ 'backgroundPosition': 'MIDDLE_CENTER', 'backgroundSize': 'cover', 'imageUrl': context.backgroundImage || get_asset_url('../images/blank-page-banner.png') }, max_width=778, vertical_alignment='MIDDLE' %} ... ``` > [!WARNING] > > 制作担当者は、クラスの編集、追加、または削除を行うことはできません。エディター内でセクションを手動で再作成することによってのみ、取り除くことが可能です。 > > また、CSSまたはJavaScriptを使用してセクションの子のレイアウトを変更することは避けてください。制作担当者がページエディター内で作業しにくくなるためです。 ### セクションのプレビュー 開発中にセクションをプレビューする最も簡単な方法は、デザインマネージャーを使用することです。[`dnd_area`](/docs/cms/reference/hubl/tags/dnd-areas)を含むテンプレートを開きます。これにより、`include_dnd_partial`タグを使用してセクションテンプレートが呼び出されます。右上にあるプレビューをクリックします。これにより、セクションを更新すると変更がすぐに反映されるようになります。これは、変更のたびに新しいページを作成するよりも大幅に効率的です。 ## セクションのHubLをコピーする ページエディターでは、HubLマークアップをコピーして、必要に応じてコードを再利用できます。これは、コードファイル内でドラッグ&ドロップセクションを再作成する場合に便利です。 セクションのHubLマークアップをコピーするには、次の手順に従います。 * コンテンツを開きます。 * **ウェブサイトページ**:HubSpotアカウントで、 [マーケティング]>[ウェブサイト]>[ウェブサイトページ]に移動します。 * **ランディングページ**:HubSpotアカウントで、[マーケティング]>[ランディングページ]の順に移動します。 * ページにマウスポインターを合わせ、[ページを編集]をクリックします。 * ページエディターで、URLに`?developerMode=true`というパラメーターを追加してから、**Enter**を押します。 * ページが再読み込みされ、開発者モードになります。右上の[開発者モードを終了]をクリックすれば、いつでも開発者モードを終了できます。 ![exit-developer-mode0 (終了開発者モード 0)](https://www.hubspot.jp/hubfs/exit-developer-mode0.png) * コピーするセクションの上にカーソルを置き、 **下矢印アイコン**をクリックします。[HubLとしてコピー]を選択します。HubLマークアップがクリップボードにコピーされます。 ![copy-section-hubl-menu](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/copy-section-hubl-menu.png) ## 関連コンテンツ * [ドラッグ&ドロップエリアの概要](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview) * [ドラッグ&ドロップエリアのHubLタグ](/docs/cms/reference/hubl/tags/dnd-areas) * [テンプレートでモジュールを使用する](/docs/cms/reference/modules/using-modules-in-templates) * [ドラッグ&ドロップエリアを使ってみる](/docs/cms/start-building/building-blocks/drag-and-drop/tutorial) * [CMS Hubのページエディタでデベロッパーモードを有効にする方法 - YouTube](https://www.youtube.com) # ブログテンプレート Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/templates/blog ブログ リスト ページ テンプレートとブログ記事テンプレートは、ウェブサイト上でのブログのレイアウトをカスタマイズするために使用できます。 > **サポートされる製品** HubSpotのブログは、ブログ リスト ページと個別のブログ記事で構成されます。ブログ リスト ページ テンプレートは個別のブログ記事をリスト化するために使用されるほか、執筆者およびタグのリストページをレンダリングするためにも使用されます。リストページ用とブログ記事用にそれぞれ個別のテンプレートを作成することも、両方を含めて全てのページをレンダリングする共通のテンプレートを作成することも可能です。 この記事では、ブログテンプレートのマークアップ、テンプレートを構成する要素、そしてカスタマイズのオプションについて説明します。 ## リストページと記事の共通テンプレートを作成する リストページと記事の両方をレンダリングする共通のテンプレートを作成するには、テンプレートファイルの先頭に`templateType: blog`[アノテーション](/docs/cms/start-building/building-blocks/templates/html-hubl-templates#template-annotations)を追加します。共通のテンプレートを両方のレンダリングに使用する場合は、[if文](/docs/cms/reference/hubl/if-statements)を使用して、ユーザーがリストページと個別の記事のどちらを表示しているかを評価します。デザインマネージャーの[ドラッグ&ドロップレイアウト](/docs/cms/start-building/building-blocks/drag-and-drop/drag-and-drop-templates)を使用している場合、ブログ コンテンツ モジュール ボタンのUIにこの`if`文が組み込まれます。 `if is_listing_view`ステートメントを使用すると、記事とリストのコードを別々に書くことができます。 ```hubl theme={null} {% if is_listing_view %} Markup for blog listing template {% else %} Markup for blog post template {% endif %} ``` ## リストページ用と記事用に個別のテンプレートを作成する [ブログ記事](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#blog-post)と[リストページ](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#blog-listing)に別々のテンプレートを用意することも可能です。個別のテンプレートを使用することにより、開発者はコードがすっきりして読みやすく、コンテンツ作成者はテンプレートを選びやすくなります。共通のテンプレートでは先頭に`templateType: blog`アノテーションを挿入しますが、各ページ用に個別のテンプレートを作成する場合はそれに代わり、テンプレートの先頭にそれぞれ以下の[アノテーション](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#template-types)を追加します。 * **ブログ記事テンプレート**`templateType: blog_post` * **ブログ リスト テンプレート**`templateType: blog_listing` ![template - annotation - blog - listing](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/template-annotation-blog-listing.png) 記事テンプレートとリスト ページ テンプレートを別々に作成する場合、`is_listing_view`チェックは必要ありません。代わりに、アカウントのブログ設定で[個別のテンプレートを手動で選択します](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#select-your-blog-templates)。 また、[共通のブログテンプレートを、リストページ用もしくは記事用のテンプレートに移行する](https://developers.hubspot.jp/docs)ことも可能です。 ### リスト ページ テンプレート テンプレートに`templateType: blog_listing`アノテーションを挿入すると、[[ブログ設定]の下のセクション](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings)でリストページ用のテンプレートとして選択できるようになります。コンテンツ作成者はこのテンプレートタイプを使用して、ページエディター内でリストページを編集することも可能です。さらに、テンプレートに[ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)も含めることで、他のCMSページと同様にページエディターにおけるモジュールの追加や削除が可能になります。ドラッグ&ドロップエリアの追加例に関して、詳しくは[CMSボイラープレートのブログテンプレート](https://github.com/HubSpot/cms-theme-boilerplate/pull/349)をご覧ください。 記事のリストは、ブログ記事を反復処理する[forループ](/docs/cms/reference/hubl/loops)によって生成されます。`contents`は、そのブログに含まれる全ての記事を含む事前定義されたコンテンツシーケンスです。 ```hubl theme={null} {% for content in contents %}
Post item markup that renders with each iteration.
{% endfor %} ``` > [!NOTE] > > ブログ リスト ページ テンプレートの全てのテキスト文字列は、フィールドで制御することをお勧めします。これにより、[多言語](/docs/cms/start-building/features/multi-language-content)ブログの作成が容易になり、コンテンツ作成者の操作性が向上します。 ## ブログ リスト ページ モジュールを作成する コンテンツ作成者がモジュールをブログ リスト ページ内コンテンツの周囲(側面や上下など)に配置することを許可できます。これを有効にするには、[ブログリストのforループ](/docs/cms/start-building/building-blocks/templates/blog#blog-listing-for-loop)を使用したブログ リスト モジュールを作成することをお勧めします。例については、[CMSボイラープレートのブログ リスト ページ モジュール](https://github.com/HubSpot/cms-theme-boilerplate/tree/main/src/modules/blog-listings.module)をご参照ください。[](https://github.com/HubSpot/cms-theme-boilerplate/tree/main/src/modules/blog-listings.module) HubSpotは、サマリーの表示やキービジュアルを使用するための[ブログ設定](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#select-your-blog-templates)を提供していますが、これらの機能をモジュールに組み込むこともできます。モジュールへの組み込みにより、コンテンツ作成者はブログの設定ページへ切り替えることなく、ページエディター内で必要な機能を使用できるようになります。 ## ブログ執筆者、タグ、シンプル リスト ページ HubSpotブログにはブログ記事とブログ リスト ページに加えて、ブログ執筆者用のページ、ブログ記事のタグ用のページ、シンプル リスト ページもあります。こうした追加ページは、ブログ リスト ページと同じテンプレートを使用してコンテンツが表示されます。 > [!NOTE] > > リストページのテンプレートはブログ執筆者、タグ、簡単なリストページでも共有されるため、テンプレートに公開された更新内容もこれらのページに適用されます。 追加ページのレイアウトを個別に構成するには、`if`文を使用して、各タイプのページのコンテンツを条件付きでレンダリングします。 ### Ifblog\_author 標準的なHubSpotブログ リスト ページのマークアップには、`if blog_author`ステートメントが含まれます。このステートメントは、執筆者が公開した全ての記事を一覧にした執筆者の個別ページを表示する際に[true]と評価されます。ボイラープレートテンプレートには、執筆者の名前、プロフィール、およびソーシャル メディア アカウントが含まれています。 ```hubl theme={null} {% if blog_author %}
{% if blog_author.avatar %}
{% endif %}

{{ blog_author.display_name }}

{{ blog_author.bio }}

{% if blog_author.has_social_profiles %} {% endif %}
{% else %} ``` ### If tag `if tag`ステートメントを使用すると、ブログのトピックページにのみコードをレンダリングできます。訪問者がウェブサイト上でブログトピックをクリックすると、その値が表示されます。以下の例は、ページタイトル変数を使用してタグ リスト ページ上部にタグ名を自動出力するスニペットです。 ```hubl theme={null} {% if tag %}

Posts about {{ page_meta.html_title|split(" | ")|last }}

{% endif %} ``` ### If not simple\_list\_page ブログ記事の一覧を表示するためにレンダリングされるブログ リスト ページには、標準のリストページとシンプル リスト ページの2種類があります。 * 標準のリストページでは、記事リストのブログ設定で指定された記事の数だけレンダリングが反復し、それに応じてページ番号も付与されます。 * シンプル リスト ページは全ての記事の一覧で、ページ番号には対応していません。シンプル リスト ページは、[ブログ設定の記事数制限](/docs/cms/start-building/introduction/developer-environment/website-settings#number-of-posts-per-listing-page)の影響を受けることなく、通常は直近200件のブログ記事へのリンクが格納されます。シンプル リスト ページのアドレスは、ブログURLのパスの末尾に`/all`を追加したものです。 `if not simple_list_page`ステートメントを使用して、シンプル リスト ページと標準のリストページのどちらをレンダリングするかを指定できます。このステートメントを簡略化したものを以下でご参照ください。 > [!NOTE] > > この`if`文ではロジックが反転している点にご注意ください。つまり、`else`でシンプル リスト ビューを定義しています。必要に応じて、代わりに[unless文](/docs/cms/reference/hubl/if-statements#unless-statements)を使用することもできます。 ```hubl theme={null} {% if not simple_list_page %} Iterated post markup for regular listing {% else %}

{{ content.name }}

{% endif %} ``` ## リストのページ送り ブログ リスト ページではページ番号が自動生成されます。リスト ページ テンプレートには、訪問者がブログ記事内でページを簡単に切り替えられるようにするロジックを含めることが可能です。[ボイラープレートのブログ](https://boilerplate.hubspotcms.com/blog)では、[次のマークアップ](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/modules/blog-pagination.module/module.html)を使って数値によるシンプルなページ送りを実現しています。 ```hubl theme={null} {% if contents.total_page_count > 1 %}
{% set page_list = [-2, -1, 0, 1, 2] %} {% if contents.total_page_count - current_page_num == 1 %}{% set offset = -1 %} {% elif contents.total_page_count - current_page_num == 0 %}{% set offset = -2 %} {% elif current_page_num == 2 %}{% set offset = 1 %} {% elif current_page_num == 1 %}{% set offset = 2 %} {% else %}{% set offset = 0 %}{% endif %} {% icon name="chevron-left" style="SOLID", width="13", no_wrapper=True %} Prev {% for page in page_list %} {% set this_page = current_page_num + page + offset %} {% if this_page > 0 and this_page <= contents.total_page_count %} {{ this_page }} {% endif %} {% endfor %} Next {% icon name="chevron-right" style="SOLID", width="13", no_wrapper=True %}
{% endif %} ``` ## ボイラープレートマークアップ 以下で、ブログ記事とブログ リスト ページ テンプレートのボイラープレートマークアップをご覧ください。各セクションに記載されているように、GitHubのCMSボイラープレートでこのマークアップを表示することもできます。 ### 記事テンプレートマークアップ ブログ内の全てのブログ記事は、1つのブログテンプレートによって生成されます。 `Content`は、リクエストされたブログ記事に関する情報を含む事前定義されたデータオブジェクトです。[ボイラープレート記事](https://boilerplate.hubspotcms.com/blog)は、[次のマークアップ](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/blog-post.html)を使ってレンダリングされます。 ```hubl theme={null}

{{ content.name }}

{{ content.post_body }}
{% if content.tag_list %} {% endif %}
{% module "blog_comments" path="@hubspot/blog_comments", label="Blog Comments" %}
``` また、ブログ記事の執筆者情報も`content`contentデータの中に含まれます。 ```hubl theme={null} {{ content.blog_post_author.display_name }}

Written by {{ content.blog_post_author.display_name }}

{{ content.blog_post_author.bio }}

{% if content.blog_post_author.has_social_profiles %}
{% endif %} ``` ### リスト ページ テンプレートのマークアップ [ボイラープレート ブログ リスト ページ](https://boilerplate.hubspotcms.com/blog)のコンテンツのforループは、[次のマークアップ](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/blog-index.html)によってレンダリングされます。 ```hubl theme={null} {% for content in contents %} {# On the blog homepage the first post will be featured above older posts #} {% if (loop.first && current_page_num == 1 && !topic) %}

{{ content.name }}

{{ content.post_list_content }}
{% else %}

{{ content.name }}

{{ content.post_list_content|truncatehtml(100) }}
{% endif %} {% endfor %} ``` ## 関連コンテンツ * [ブログの変数](/docs/cms/reference/hubl/variables#blog-variables) * [ブログテンプレート](/docs/cms/start-building/building-blocks/templates/blog) * [HubSpotテーマボイラープレート](/docs/cms/start-building/building-blocks/themes/hubspot-cms-boilerplate) * [ブログの作成方法](https://knowledge.hubspot.com/ja/blog/create-a-new-blog) * [ブログをHubSpotにインポートする](https://knowledge.hubspot.com/ja/blog/import-your-content-into-hubspot) # Eメールテンプレートのマークアップ Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/templates/email-template-markup この記事では、標準的なHubSpot Eメールテンプレートのコーディング方法について説明します。EメールクライアントでサポートされるHTML機能とCSS機能は限られているため、クライアント間で一貫して表示されるEメールテンプレートをコーディングするには、ある程度の経験と忍耐力が必要です。HubSpotのEメールテンプレートは、ユーザーフレンドリーなテンプレートレイアウトまたはコードファイルとして作成できるようになっています。 > **サポートされる製品** この記事では、標準HubSpot Eメールテンプレートのコーディング方法について説明します。カスタムEメールテンプレートを作成する際は、Eメールクライアントが[特定のHTMLおよびCSS機能](http://www.campaignmonitor.com/css/)のみをサポートしていることに注意してください。このため、クライアント間で一貫して表示されるEメールテンプレートをコーディングするには、ある程度の経験と忍耐力が必要です。 [アプリ内でテンプレートレイアウトを作成する](https://knowledge.hubspot.com/ja/design-manager/create-page-email-and-blog-templates-in-the-layout-editor)方法と既存の[Eメールをテンプレートとして保存](https://knowledge.hubspot.com/ja/marketing-email/save-your-marketing-email-as-a-template)する方法については、HubSpotのナレッジベースをご覧ください。 ## Eメールテンプレートの必須変数 HubSpotでEメールを送信するには、テンプレートに所定の情報を含める必要があります。詳しくは[Eメールの必須HubL変数](/docs/cms/reference/hubl/variables#required-email-template-variables)をご参照ください。コードテンプレートを使用する場合は、Eメールごとに内容を簡単に編集できるように、[モジュール](https://developers.hubspot.jp/docs/guides/cms/content/modules/overview)も使用する必要があります。 ## hs-inline-cssとdata-hse-inline-css 全てのクライアントで正しく表示されるEメールテンプレートをコーディングする際には、``内の` {# coded OR drag-and-drop email templates: #}
Column 1 Column 2
``` ```text 出力.txt theme={null}
Column 1 Column 2
``` ## レスポンシブEメールテンプレート HubSpotのデフォルトのEメールテンプレートレイアウトでは、以下のマークアップが使用されます。レスポンシブレイアウトには、画像やテーブルをレスポンシブにするメディアクエリーが含まれています。レスポンシブレイアウトでは、[設定]>[マーケティング]>[Eメール]に接続する[色とフォントの変数](/docs/cms/reference/hubl/variables#color-and-font-settings)が使用されます\*\*。 \*\* > [!WARNING] > > HubSpotのレスポンシブレイアウトを使用する場合は、テキストの「列」を含むクラスが指定された``がレスポンシブになります。 ```hubl theme={null} {% if content.html_title and content.html_title != "" %}{{ content.html_title }}{% else %}{{ content.body.subject }}{% endif %} {% if content.meta_description %}{% endif %}
{% text "preview_text" label="Preview Text This will be used as the preview text that displays in some email clients", value="", no_wrapper=True %}
{% if content.create_page %}
Not rendering correctly? View this email as a web page here.
{% endif %}
{% content_attribute "email_body" %}

Hi {{ contact.firstname }},

Describe what you have to offer the customer. Why should they read? What did you promise them in the subject line? Tell them something cool. Make them laugh. Make them cry. Well, maybe don't do that...

Use a list to:

  • Explain the value of your offer
  • Remind the reader what they’ll get out of taking action
  • Show off your skill with bullet points
  • Make your content easy to scan

LINK TO A LANDING PAGE ON YOUR SITE (This is the really important part.)

Now wrap it all up with a pithy little reminder of how much you love them.

Aw. You silver-tongued devil, you.

Sincerely,

Your name

{% end_content_attribute %}
{% text "social_sharing_label" label='Social Sharing Label' %}
{% widget_block social_sharing "Social Sharing" label="Social Sharing", use_page_url=False %} {% end_widget_block %}
{% hubspot_footer %}
``` ## 基本Eメールテンプレート HubSpotの基本テンプレートレイアウトでは、異なるマークアップが使用され、Eメールをレスポンシブにするメディアクエリーは挿入されません。基本レイアウトでも、[設定]>[マーケティング]>[Eメール]に接続する[色とフォントの変数](/docs/cms/reference/hubl/variables#color-and-font-settings)が使用されます\*\*。 \*\* ```hubl theme={null} {% if content.html_title and content.html_title != "" %}{{ content.html_title }}{% else %}{{ content.body.subject }}{% endif %} {% if content.meta_description %}{% endif %}
{% text "preview_text" label="Preview Text This will be used as the preview text that displays in some email clients", value="", no_wrapper=True %}
{% if content.create_page %}
Not rendering correctly? View this email as a web page here.
{% endif %}
{% content_attribute "email_body" %}

Hi {{ contact.firstname }},

Describe what you have to offer the customer. Why should they read? What did you promise them in the subject line? Tell them something cool. Make them laugh. Make them cry. Well, maybe don't do that...

Use a list to:

  • Explain the value of your offer
  • Remind the reader what they’ll get out of taking action
  • Show off your skill with bullet points
  • Make your content easy to scan

LINK TO A LANDING PAGE ON YOUR SITE (This is the really important part.)

Now wrap it all up with a pithy little reminder of how much you love them.

Aw. You silver-tongued devil, you.

Sincerely,

Your name

{% end_content_attribute %}
{% text "social_sharing_label" overrideable=True, label="Social Sharing Label" %}
{% widget_block social_sharing "Social Sharing" label='Social Sharing', overrideable=True, use_page_url=False %} {% end_widget_block %}
{% hubspot_footer %}
``` ## ゼロから作成する デザインマネージャーで.htmlのEメールをゼロから作成すると、以下のマークアップが自動生成されます。 ```hubl theme={null} {% if content.html_title and content.html_title != '' %}{{ content.html_title }}{% else %}{{ content.body.subject }}{% endif %} {% if content.meta_description %}{% endif %}
{% text "preview_text" label="Preview Text This will be used as the preview text that displays in some email clients", value="", no_wrapper=True %}
{% if content.create_page %}
Not rendering correctly? View this email as a web page here.
{% endif %} ``` # HTML+HubLテンプレート Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/templates/html-hubl-templates CMS Hubのテンプレートは、HTMLとHubLで作成されています。これらのテンプレートには、制作担当者が自力で簡単に編集できる領域を含めることができます。 HTML+HubLテンプレートは、CMS Hubの[どのテンプレートのタイプ](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#template-types)にも使用できます。このテンプレートは[HubLテンプレート作成言語](/docs/cms/reference/hubl/operators-and-expression-tests)をサポートする.htmlファイルです。このようなHubL対応のコードテンプレートのプレビューには、[デザインマネージャーのテンプレートプレビュー](https://knowledge.hubspot.com/ja/website-pages/understand-a-hubspot-template-setup)またはサンドボックスアカウントを使用するのが最適です。HTML+HubLテンプレートには[パーシャル](#partials)を含めることができます。パーシャルはヘッダーやフッターなど、共通の要素に使用するコードを分ける際に使用できます。 HTML+HubLテンプレートを使用すると、開発者は[ビジュアル デザイン マネージャーのドラッグ&ドロップ方式のテンプレート](/docs/cms/start-building/building-blocks/drag-and-drop/drag-and-drop-templates)を使用する場合よりも柔軟に制御できます。これにより、開発者は[ドラッグ&ドロップ機能](/docs/cms/reference/hubl/tags/dnd-areas)を使用して、HTML+HubLテンプレートでなければ実現できない、快適な編集環境を制作担当者に提供できます。 ![image1-2](https://cdn2.hubspot.net/hubfs/53/image1-2.png) > [!NOTE] > > 上記のテンプレートは、[HubSpotのCMSボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/layouts/base.html)に含まれている[base.htmlテンプレート](/docs/cms/start-building/building-blocks/themes/hubspot-cms-boilerplate)(英語)です。HubSpotで開発を行う際にはこのボイラープレートから始めると便利です。 ## 習熟度とツール選び HTML+HubLテンプレートはコード化されたファイルであるため、お好みのツールを使用してローカル環境でも編集できます。推奨されるのは、HubSpot独自の[ローカル開発ツール](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli)の使用です。HubSpotの開発ツールでは、デベロッパー ファイル システムとファイルマネージャーのファイルを安全に管理し、[アップロード](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#upload)、[取得](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#fetch)、[監視](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#watch)、[作成](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#create)することができます。 以前に他のテンプレート言語を使用した経験がある場合は、それと同様の方法で、HubSpotでもHTML+HubLテンプレートを構築できます。主な違いは、HubSpotでは、制作担当者にとって最適な編集環境を実現するために注力していること、そしてメンテナンスとパフォーマンス最適化の開発者の作業負担の大部分を軽減していることです。 例えば、特定のモジュールを対象に所定のページでCSSファイルを読み込む必要がある場合、``を使用する代わりに、[モジュールのmeta.jsonファイル](/docs/cms/reference/modules/configuration#adding-css-and-javascript-dependencies)内にある`css_assets`を使用してスタイルシートをインクルードします。これにより、HubSpotは、モジュールがページに存在する場合にのみCSSを条件付きで読み込むため、不必要に読み込まれるCSSの量を最小限に抑えることができます。 詳しくは、[HubSpot開発ワークフローの最適化方法](/docs/cms/start-building/introduction/developer-environment/creating-an-efficient-development-workflow)をご確認ください。 ## テンプレートアノテーション テンプレートの上部に含まれるテンプレートアノテーションは、重要なテンプレート設定を構成するためのもので、テンプレートのタイプや新しいコンテンツの作成に使用できるかどうかなどを設定できます。テンプレートアノテーションは、開発プロセス中にいつでも変更できます。利用可能なテンプレートアノテーションの詳細については、以下をご覧ください。 ```html theme={null} ... ``` | アノテーション | タイプ | 説明 | | - | - | - | | `templateType` | 文字列 | ファイルのテンプレートタイプを指定します。指定可能な値は、次のとおりです。
  • 標準テンプレート:
    • [page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#page)
    • [email](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#email)
    • [blog\_listing](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#blog-listing)
    • [blog\_post](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#blog-post)
    • [blog](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#blog)
  • パーシャル:[global\_partial](/docs/cms/start-building/building-blocks/templates/html-hubl-templates#global-partials)
  • システムテンプレート:
    • [error\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#error-pages)
    • [password\_prompt\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#password-prompt)
    • [membership\_login\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#membership-login)
    • [membership\_register\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#membership-register)
    • [membership\_reset\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#membership-password-reset)
    • [membership\_reset\_request\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#membership-reset-request)
    • [email\_subscription\_preferences\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#email-subscription-preferences)
    • [email\_backup\_unsubscribe\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#email-backup-unsubscribe)
    • [email\_subscriptions\_confirmation\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#email-subscription-unsubscribe-confirmation)
    • [search\_results\_page](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#search-results-page)
| | `isAvailableForNewContent` | 文字列 | コンテンツ作成プロセスでテンプレートを選択できるかどうかを指定します。指定可能な値は、`true`および`false`です。このアノテーションが`false`に設定されているテンプレートには、[必須の変数](/docs/cms/reference/hubl/variables#required-page-template-variables)を含める必要はありません。このアノテーションがfalseに設定されている、`page`タイプのテンプレートは、[標準パーシャル](#partials)としても使用できます。 | | `enableDomainStylesheets` | 文字列 | テンプレートで[ドメインスタイルシート](https://knowledge.hubspot.com/ja/design-manager/create-edit-and-attach-css-files-to-style-your-site#attach-or-remove-stylesheets-on-a-domain-level)を読み込むかどうかを指定します。指定可能な値は、`true`、`false`です。 | | `Label` | 文字列 | テンプレート選択画面に表示される、テンプレートについての分かりやすい説明文。例:`About Page`、`Homepage`、`Pricing`。 | | `screenshotPath` | 文字列 | 制作担当者がテンプレートを選択しているときに表示されるスクリーンショット。このスクリーンショットによってテンプレートが区別しやすくなります。 | ## ヘッダーとフッターのインクルード ファイルがテンプレートパーシャルでない限り、HubSpotのテンプレートを使用するには2つのタグが必要です。この2つのタグを次に示します。 * `{{ standard_header_includes }}`必要なCSSを結合してミニフィケーションし、自動的に追加するために使用します。 * `{{ standard_footer_includes }}`HubSpotトラッキングスクリプトやモジュールなどの要素で使用するJavaScriptをページの下部に動的に追加するために使用します。 これらのタグは、テンプレート内に存在するか、またはテンプレートの子[パーシャル](#partials)として公開して使用する必要があります。 ## パーシャル テンプレートパーシャルは、他のコードファイルにインクルードできるHTML+HubLファイルです。パーシャルを使用して複数のテンプレートの間でマークアップを共有することで、モジュール方式の開発アプローチをとることができます。例えば、ヘッダーをパーシャルにすれば、コンポーネントとして簡単にインクルードでき、再度コード化する必要がなくなります。 ### 標準パーシャル 標準パーシャルとは、個々のページで編集できるコンテンツを含む、再利用可能なテンプレートまたはコンポーネントのことです。常にコンテンツを共有するグローバルパーシャルとは異なり、標準パーシャルでは、制作担当者が個々のページで必要に応じてコンテンツを変更できます。例えば下記のコードでは、サイドバーモジュールが別のテンプレートファイルに取り込まれます。 標準パーシャルの場合、テンプレートファイルの先頭に次の[アノテーション](/docs/cms/start-building/building-blocks/templates/html-hubl-templates#template-annotations)を組み込む必要があります。 * `templateType: page` * `isAvailableForNewContent: false` ```hubl theme={null} {% include "../partial/sidebar.html" %} ``` ### グローバルパーシャル グローバルパーシャルとは、そのパーシャルの全てのインスタンスで共有されるコンテンツを含む一種の[グローバルコンテンツ](/docs/cms/start-building/building-blocks/global-content#global-partials)であり、複数のテンプレートで使用できます。多くの場合、ヘッダーとフッターにはグローバルパーシャルが使用されます。その一例として、HubSpotのCMSボイラープレートの[ヘッダー](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/partials/header.html)(英語)と[フッター](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/partials/footer.html)(英語)をご確認ください。これらのパーシャルは、[base.html](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/layouts/base.html)内で`global_partial`タグを使用して呼び出されます。 グローバルパーシャルの場合、ファイルの先頭に[アノテーション](/docs/cms/start-building/building-blocks/templates/html-hubl-templates#template-annotations)として`templateType: global_partial`を組み込む必要があります。 ```hubl theme={null} {% global_partial path="../partials/header.html" %} ``` ### ブロックと拡張 複雑なテンプレートを作成するときは、親テンプレートを拡張する区画となるブロックを作成できます。 例えば、必須の変数である[`standard_header_includes`](/docs/cms/reference/hubl/variables#required-page-template-variables)と[`standard_footer_includes`](/docs/cms/reference/hubl/variables#required-page-template-variables)を含む親テンプレートを作成できます。このテンプレート内で、以下の構文を使用して一意のブロックを定義します。`body`は一意の名前です。 ```hubl theme={null} {% block body %} {% endblock body %} ``` これにより、子テンプレート内で親テンプレートを拡張して、`body`ブロックにさらにコンテンツを挿入することができます。 ```hubl theme={null} {% extends "./layouts/base.html" %} {% block body %}

Page Content

  • Bullet 1
  • Bullet 2
  • Bullet 3
{% endblock %} ``` この方法は、HubSpotのCMSボイラープレートに含まれる[base.html](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/layouts/base.html)(英語)テンプレートで使用されています。このテンプレートが、[templatesフォルダー](https://github.com/HubSpot/cms-theme-boilerplate/tree/main/src/templates)(英語)内の他のテンプレートによって拡張されるようになっています。 ### グローバルグループ デザインマネージャーのドラッグ&ドロップ テンプレート ビルダーを使用して作成された[グローバルグループ](https://knowledge.hubspot.com/ja/design-manager/use-global-content-across-multiple-templates)を含めることもできます。以下に構文を示します。 ```hubl theme={null} {% include "/path/to/global_header.template.json" %} ``` # テンプレートの概要 Source: https://developers.hubspot.jp/docs/cms/start-building/building-blocks/templates/overview テンプレートは再利用可能なページラッパーまたはEメールラッパーです。通常はテンプレートによってモジュールやパーシャルがレイアウトに配置されます。制作担当者は使用するテンプレートを選択してから、ページやEメールの作成を始めます。 テンプレートは、HubSpotのページ、Eメール、テーマのレイアウトを定義するものです。テンプレートはモジュールとパーシャルで構成され、スタイルシートやJavaScriptファイルなどのアセットを参照できます。テンプレートの作成には、[HubSpot CLI](/docs/cms/start-building/introduction/react-plus-hubl/react-plus-hubl-quickstart)または[HubSpotのデザインマネージャー](https://knowledge.hubspot.com/ja/design-manager/create-page-email-and-blog-templates-in-the-layout-editor)を使用できます。制作担当者がページまたはEメールを作成するときに最初に選ぶのが、テンプレートです。 ここではテンプレートの作成方法、テンプレートの種類、テンプレートに含まれる内容について説明します。 ## テンプレートを作成する テンプレートを作成するには、[HubSpotのデザインマネージャー](https://knowledge.hubspot.com/ja/design-manager/create-page-email-and-blog-templates-in-the-layout-editor)を使用するか、`hs create template`のCLIコマンドを実行します。 ```shell theme={null} hs create template [dest] ``` | パラメーター | 説明 | | - | - | | `name` | テンプレートの名前 | | `dest` | テンプレートを作成するローカルディレクトリーのパス。このパラメーターが含まれない場合、テンプレートは現在のディレクトリーに作成されます。 | * 矢印キーを使用して、作成する[テンプレートのタイプ](#template-types)に移動し、**Enter**キーを押します。 その後、テンプレートはローカルで作成されます。ご使用のHubSpotアカウント上でテンプレートを使用するには、アカウントにテンプレートを[アップロード](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#upload)します。[Watch](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#watch)コマンドを使用して、現在の作業ディレクトリーと子ディレクトリー内の新しいファイルおよび既存のファイルの編集内容を自動的にアップロードすることも可能です。 ## テンプレートをプレビューする テンプレートを更新したら、プレビューで期待通りに表示されて動作することを確認できます。次のように、HubSpotにはテンプレートをプレビューする方法がいくつかあります。 * **デザインマネージャーでテンプレートをプレビューする**: 簡単な目視チェックを行う場合や、ブログ記事、リスト、統合テンプレートをプレビューする必要がある場合に最適です。 * **テンプレートから新しいアセットを作成する**: ドラッグ&ドロップエディターとコンテンツ作成エクスペリエンスのテストに最適です。 ### デザインマネージャーでプレビューする デザインマネージャーによるテンプレートのプレビューは、簡単な目視チェックを行う際に特に便利です。テンプレートプレビューアーでは、ビューポートの寸法などの表示オプションも設定できます。 デザインマネージャーでテンプレートをプレビューするには、次の手順に従います。 * HubSpotアカウントにて、[マーケティング]>[ファイルとテンプレート]>[デザインマネージャー]の順に進みます\*\*。 \*\*\*\* \*\*\*\* \*\* * 左サイドバーのファイルエクスプローラーを使用して、プレビューする**テンプレート**をクリックします。 * 右上にある[プレビュー]をクリックします\*\*。 \*\* * [表示オプションを使用したライブプレビュー]を選択し、応答性とドメイン設定(スタイルシートなど)のテストを実行するオプションを含むテンプレートをプレビューします\*\*。 \*\*このオプションでは、iframe内のページが表示されます。ブログテンプレート用にブログとブログ記事、またはリストビューを選択することもできます。 * [表示オプションを使用せずにプレビュー]を選択し、追加オプションのないテンプレートをプレビューします\*\*。 \*\* ![テンプレートのプレビューオプション](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/template-preview-options.png) ### 新しいページでプレビューする ドラッグ&ドロップエリアを変更する場合、モジュールに設定されているデフォルトのパラメーター値を変更する場合、またはその他に大きな変更を加える場合は、テンプレートを使用して、[ウェブサイトページ](https://knowledge.hubspot.com/ja/website-and-landing-pages/create-and-customize-pages)、[ブログ](https://knowledge.hubspot.com/ja/blog/create-a-new-blog)、[ブログ記事](https://knowledge.hubspot.com/ja/blog/create-and-publish-blog-posts)、または[Eメール](https://knowledge.hubspot.com/ja/marketing-email/create-marketing-emails-in-the-drag-and-drop-email-editor)を作成するのが最適です。その上でモジュールのさまざまなフィールド値を試し、テンプレートが実際にどのように表示されるかをテストして、制作担当者にとって使いやすくなるように最適化できます。これらのアセットを公開することも、テスト用に下書きモードのままにすることもできます。 さらに、[コンテンツのステージング](https://knowledge.hubspot.com/ja/website-pages/redesign-and-relaunch-your-site-with-content-staging#new)または[開発者サンドボックスアカウント](https://offers.hubspot.com/free-cms-developer-sandbox)を使用して、本番アカウントに影響を与えることなくアセットを作成および表示できます。 ## テンプレートのタイプ ウェブサイトページやブログ記事など、さまざまなタイプのコンテンツでテンプレートを使用できます。コードテンプレートでは、ファイルの先頭部分にアノテーションを追加してテンプレートのタイプを指定します。 さまざまなタイプのテンプレートと、各タイプを指定するためのアノテーションについて、以下で説明します。 > [!WARNING] > > ### 注: > > 制作担当者は、テンプレートに[dnd\_area](https://developers.hubspot.jp/docs/reference/cms/hubl/tags/dnd-areas)タグが使用されているかどうかに応じて、ページのテンプレートを同じタイプの別のテンプレートと入れ替えることができます。 > > * ドラッグ&ドロップ方式のビジュアルレイアウトエディター上で作成したテンプレートは、`dnd_area`タグの有無に関係なく、他のドラッグ&ドロップテンプレートまたはコードテンプレートと入れ替えることができます。 > * Dnd*areaタグを含むコードテンプレートは、`dnd_area`タグを含む他のコードテンプレートとのみ入れ替えることができます。* \_ > * `dnd_area`タグが使用されていないコードテンプレートは、`dnd_area`タグが使用されていない他のコードテンプレートとのみ入れ替えることができます。 ### ページ ```html theme={null} templateType: page ``` ページテンプレートは最も自由度の高いテンプレートタイプです。任意のウェブページまたは[ランディングページ](https://blog.hubspot.com/blog/tabid/6307/bid/7177/what-is-a-landing-page-and-why-should-you-care.aspx)として使用できます。ページの[レイアウト](#layout-css)に事前に取り込まれるコンポーネントはありません。コードページテンプレートには、わずかなマークアップ(メタ情報に提案されるHubLタグ、タイトル、必須のヘッダーまたはフッターの[インクルード](#included-cms-files)など)が事前に取り込まれます。ページテンプレートを使用するページには通常、次の要素が含まれますが、これらに限定されません。 * [ホームページ](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/home.html) * [会社概要](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/about.html) * [お問い合わせ先](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/templates/contact.html) ### Eメール ```html theme={null} templateType: email ``` Eメールテンプレートは、[Eメールツール](https://www.hubspot.jp/products/marketing/email)で使用します。Eメールテンプレートはさまざまなメールクライアントで表示されること、そして到達性を担保するためのベストプラクティスに従わなければならないことから、さまざまな厳しい条件に対応する必要があります。[HTML+HubL](/docs/cms/start-building/building-blocks/templates/html-hubl-templates)とデザインマネージャーのドラッグ&ドロップEメールテンプレートにはいずれも、作成時に基本コンポーネントが取り込まれます。以下の`templateType`を指定して作成したテンプレートは、[Eメールを作成](https://knowledge.hubspot.com/ja/marketing-email/create-and-send-marketing-emails-with-the-updated-classic-editor)するときにだけテンプレート選択画面に表示されます。 [CAN-SPAM](https://knowledge.hubspot.com/ja/marketing-email/edit-office-location-information-in-email-footers)に準拠するためには、Eメールテンプレートに必要な[必須の変数](https://developers.hubspot.jp/docs/reference/cms/hubl/variables#required-email-template-variables)を含める必要があります。 Eメールテンプレートには、特殊なクラス名またはデータ属性を設定して` {% end_require_css %} {##### Module HTML #####} ``` ### スタイルとJavascript * スタイル: * モジュールには空でないスタイルグループが含まれる必要があります。 * モジュール内でインラインスタイルをハードコーディングすることは推奨されません。代わりに、フィールドでスタイルを制御できるようにして、動的インラインスタイルを使用してください。 * JavaScript: * JavaScriptは、モジュールの複数インスタンスを表すことができる必要があります。JSペインのJavaScriptは、モジュールの使用回数にかかわらず、1ページにつき1度だけ読み込まれます。 * JavaScriptではモジュール固有のクラス名でDOM要素を参照して、モジュール外部の要素に意図しない影響が及ばないようにする必要があります。 モジュールを作成する際には、`{{name}}`という組み込み変数を使用できます。この変数は、複雑なモジュールのCSSとJSマークアップで役立つ、モジュールのインスタンスID(HTML+HubLパネルでのみ使用可能)を取得します。詳しくは[開発者ドキュメント](/docs/cms/reference/modules/files#require-css-block)をご覧ください。 ## フィールドの構成 以下のフィールドの構成とグループ化の要件を満たす必要があります。 ### コンテンツタブ * フィールドグループ内に少なくとも1つの制御設定がある場合は、全ての制御設定を、その機能によってラベル付けされたカテゴリーにグループ化する必要があります。 * [コンテンツ]タブに追加されるモジュールフィールドで、モジュールのコンテンツをカスタマイズできるようにする必要があります。\_ \_例えば、画像、アイコン、代替(Alt)テキストのコントロールや、リンク制御設定などです。 ### スタイルタブ モジュールのスタイル フィールド グループは一貫性を持ち、パターンに従う必要があります。以下は、スタイル フィールド グループの推奨される順序です。これらのグループは、トップレベルに配置することも、[1つのグループにネスト](#multi-level-grouping)することもできます。また、空のグループは削除できます。 * [プリセット](#presets) * テキスト * 背景 * 境界線 * Hover * 角 * 間隔 * 位置合わせ * 上記以外のカスタムスタイルグループ * 詳細 次のフィールドタイプが存在する場合は、[スタイル]タブに含める必要があります。\_ \_ * [位置合わせ](/docs/cms/reference/fields/module-theme-fields#alignment) * [背景画像](/docs/cms/reference/fields/module-theme-fields#background-image) * [境界線](/docs/cms/reference/fields/module-theme-fields#border) * [カラー](/docs/cms/reference/fields/module-theme-fields#color) * [フォント](/docs/cms/reference/fields/module-theme-fields#font) * [グラデーション](/docs/cms/reference/fields/module-theme-fields#gradient) * [間隔](/docs/cms/reference/fields/module-theme-fields#spacing) * [テキストの位置合わせ](/docs/cms/reference/fields/module-theme-fields#text-alignment) [コンテンツ]タブから[スタイル]タブにフィールドを移動する場合は、[エイリアスマッピングを使用](/docs/cms/start-building/building-blocks/fields/alias-mapping)して、公開中ページですでに使用されているモジュールのスタイルを維持する方法を確認してください。 * アニメーションオプションは、常にフィールドグループリストの末尾近くに置く必要があります。 * コンテンツクリエイターがコードスニペットまたはCSSを追加できるようにするオプションは、フィールドグループリストの末尾にある「詳細」というラベルのフィールドにグループ化する必要があります。\_ \_ * コントロールは、全てのモジュールで標準化する必要があります。例えば、境界線の半径のコントロールを持つことができる全ての要素は、そのコントロールを提供する必要があります。一部のモジュールで、他のモジュールに存在しないコントロールを提供することは避けてください。 * [スタイル]タブに追加されたモジュールフィールドは、モジュールのスタイルを設定する方法を提供する必要があります。\_ \_以下に例を示します。 * 色、テキストスタイル、位置合わせ、間隔、境界線、角の半径などのスタイルオプション。 * ホバー効果やスライドイン効果などのアニメーション。 * さまざまなスタイルを同時に変更することを目的とする、ダークテーマとライトテーマなどのプリセット。 ### フィールドの構成の例 #### プリセット プリセットは、限られたオプションのセットをコンテンツクリエイターに提供したい場合に使用でき、通常テーマ設定に紐付けられています。例えば、Growthテーマに含まれている「Icon(アイコン)」モジュールには「ダーク」カラーと「ライト」カラーのプリセットが含まれており、ウェブサイト全体で使用すると一貫性を提供できます。 #### 複数レベルのグループ化 スタイルフィールドをトップレベルに配置するかネストするかを決定する際には、次の例を考慮してください。 Growthテーマに含まれている「Icon(アイコン)」モジュールは、単一のコンポーネントであるため、全てのスタイルオプションがトップレベルに配置されます。したがって、全てのスタイルオプションがこの1つのコンポーネントに影響します。\_ \_ ![growth-theme-icon-module](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/growth-theme-icon-module.png) Growthテーマに含まれている「スピーカーカード」モジュールには、カードの画像とテキストコンテンツという複数のコンポーネントが含まれています。\_ \_したがって、モジュールスタイルはコンポーネントごとにグループ化されており、コンテンツクリエイターが各コンポーネントのスタイルを設定するためのプロセスが明確化されます。 ![growth-theme-speaker-card](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/growth-theme-speaker-card.png) #### 個々のフィールドのグループ化 以下のボタンモジュールには、[プリセット]、[テキスト]、[背景]などのグループが含まれています。[角]フィールドグループには角の半径のコントロールしか含まれていませんが、一貫性のあるコンテンツ作成体験を提供するためにグループ化されています。 ![module-requirements-2\_1](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/module-requirements-2_1.png)![button-styles](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/button-styles.png) # HubSpotテンプレート マーケットプレイス ガイドライン Source: https://developers.hubspot.jp/docs/cms/marketplace/template-guidelines HubSpotテンプレートマーケットプレイスでは、開発者に直接依存することなくオンラインプレゼンスを強化できるよう、何千ものお客さまを支援しています。アセットマーケットプレイスは、美しく使いやすいテーマ、テンプレート、モジュールを作成している開発者の皆さまによって運営されています。 'HubSpotテンプレートマーケットプレイスでは、開発者に直接依存することなくオンラインプレゼンスを強化できるよう、何千ものお客さまを支援しています。アセットマーケットプレイスは、美しく使いやすいテーマ、テンプレート、モジュールを作成している開発者の皆さまによって運営されています。'; [HubSpotテンプレートマーケットプレイス](https://ecosystem.hubspot.com/marketplace/templates)では、開発者に直接依存することなくオンラインプレゼンスを強化できるよう、何千ものお客さまを支援しています。テンプレートマーケットプレイスは、ユーザー向けの使いやすいテンプレートを作成している開発者によって運営されています。 HubSpotテンプレートマーケットプレイスで販売できるテンプレートの種類には、[テーマ](https://ecosystem.hubspot.com/marketplace/website)と[モジュール](https://ecosystem.hubspot.com/marketplace/modules)の2つがあります。 ## マーケットプレイスでテンプレートを販売する意義 新しい収益源を創出しようと目指している開発者や代理店にとって、HubSpotマーケットプレイスは大きなチャンスになります。 * **非排他的:** 皆さまの多大な労力を注いで生み出されたテンプレートを、1つのマーケットプレイスだけに縛り付けるべきではありません。HubSpotのマーケットプレイスに掲載するテンプレートは、このマーケットプレイスの他でも独自のプロジェクトのために自由に使用していただけます。 * **一度作成すれば何度でも販売可能:** テンプレートがマーケットプレイスに掲載されると、1対多の機会が生まれます。つまり、テンプレートを一度作成するだけで、複数の顧客に再販することができます。 * **ビジネスの成長:** テンプレート(無料と有料)を作成してHubSpotマーケットプレイスで販売している多くの開発者は、マーケットプレイスでの収益と、購入者からリクエストされる追加のサービスでの収益によってビジネスを成長させています。 * **制作者のコミュニティーに参加して、自分のスキルをアピール:** 成長を続ける協力的なエコシステムとつながって、HubSpotテンプレートマーケットプレイスの未来の形作りを支援しながら、提供するサービスに注目を集めることができます。 ## 概要と要件 テンプレートマーケットプレイスでの販売を開始するには、[テンプレート マーケットプレイス プロバイダー アカウントを作成](https://app.hubspot.com/signup-hubspot/asset-provider)します。 ご提出いただくテンプレートは、コンプライアンス、設計、およびコード品質の要件を満たしている必要があります。テンプレートの種類ごとに、マーケットプレイスに掲載するために満たさなければならない固有の要件もあります。以下で、これらの要件を確認できます。 マーケットプレイス用のテンプレートを作成する前に、[HubSpotテンプレートマーケットプレイス用のテンプレートの作成](https://www.hubspot.com/template-providers)(英語)、[ブランディング](https://www.hubspot.com/providers/template/branding-guidelines)(英語)、[HubSpot商標の使用](https://legal.hubspot.com/tm-usage-guidelines)、[コンテンツの使用](https://www.hubspot.com/content-usage-guidelines)に関するガイドラインを必ずお読みください。これらのガイドラインに違反しているテンプレートは、HubSpotの追加規約に記載されているとおり、直ちにマーケットプレイスから削除されます。 ### テーマの要件 マーケティング担当者が快適にコンテンツを編集できるよう、テーマには、連携して機能するように設計されたテンプレート、モジュール、グローバルコンテンツ、スタイルの設定が移植可能な形で統合されています。 [テーマの要件を確認](https://developers.hubspot.com/docs) ### モジュールの要件 提出するテーマにはモジュールを含めます。モジュールとは、テンプレートで使用したり、ドラッグ&ドロップエリアおよびフレキシブルカラムを使用してページに追加したりできる、再利用可能なコンポーネントのことです。スタンドアロンのモジュールを提出することもできます。スタンドアロンのモジュールとは、HubSpotのコンテンツエディターで任意のテーマに追加できるモジュールのことです。 [モジュールの要件を確認](https://developers.hubspot.com/docs) ### リストページの要件 HubSpotテンプレートマーケットプレイスに提出する時点で、テンプレートとそのリストページが従っていなければならない要件。これらの基準は、マーケットプレイスの全てのテンプレートに適用されます。 [リストページの要件を確認](https://developers.hubspot.com/docs) ### テンプレート マーケットプレイス ポリシー テンプレートマーケットプレイスにテンプレートを掲載するための要件とコンプライアンスの詳細。 [テンプレート マーケットプレイス ポリシーを確認](https://developers.hubspot.com/docs) ## テンプレートマーケットプレイスでのテーマの掲載と更新 テンプレートを作成したら、HubSpotテンプレートマーケットプレイスに掲載するための承認を得るために、テンプレートを送信してください。送信されたテンプレートに対して、HubSpotテンプレート マーケットプレイス チームが審査と承認プロセスを実施します。[テンプレートマーケットプレイスでのテンプレートの掲載方法と更新方法をご確認ください](https://developers.hubspot.com/docs)。 ## サポートされている支払いゲートウェイ HubSpotは現在、マーケットプレイスプロバイダーが次の支払いゲートウェイに接続して支払いを受け取れるようにしています。 * PayPal([サポートされている国](https://www.paypal.com/us/webapps/mpp/country-worldwide) | [国際決済](https://www.paypal.com/us/cshelp/article/what-are-the-cross-border-fees-when-selling-internationally-help550)) * Stripe ([サポートされている国](https://stripe.com/global) | [国際決済](https://docs.stripe.com/connect/cross-border-payouts)) 顧客からの支払いは、マーケットプレイス プロバイダー アカウントで接続されている支払い方法を通じて受け取ります。 * HubSpotアカウントで、[マーケットプレイス]**>[プロバイダー情報]** に移動します。 * [お支払い情報]\_\_セクションで、支払い情報を確認し、必要に応じて更新します。 購入プロセス中に発生する可能性のある支払いゲートウェイの問題について、HubSpotは責任を負いません。HubSpotは取引手数料を頂いていません。全ての取引はHubSpotプラットフォームとは関係なく処理されます。何らかの理由で支払い方法が機能しなくなった場合は、顧客満足度の低下を回避するために、アセットがリストから一時的に除外されることがあります。 HubSpotは、世界中のお客さまに活用していただいています。そのため、支払いゲートウェイを設定する際には、国際通貨による支払い(国際決済)を許可することを強くお勧めします。 HubSpotは、テンプレート マーケットプレイス プロバイダーが自国でStripe支払いゲートウェイを利用いただける場合には、Stripe支払いゲートウェイを使用することを強く推奨します。Stripeが[お住まいの国で利用いただけない](https://stripe.com/global)場合は、PayPal支払いゲートウェイの使用をお勧めします。 ## 払い戻し申請 場合によっては購入者から払い戻しが請求されることがあります。掲載情報で返金ポリシーについて明確に説明し、返金ポリシーに関するドキュメントへのリンクを記載してください。HubSpotでは、正当な返金請求を受け入れることを、プロバイダーの皆さまに奨励しています。詳細は、[返金請求のガイドライン](https://knowledge.hubspot.com/resources/marketplace-refund-guidelines)でご確認いただけます。 ## トランザクションの管理 顧客がダウンロードしたテンプレートごとに、テンプレート マーケットプレイス プロバイダー アカウントに取引レコードが作成されます。全ての取引は、「マーケットプレイストランザクション」**という取引パイプラインの「トランザクション」取引ステージ**に取り込まれます。トランザクションに対する払い戻しが行われると、取引レコードに[Refunded at(払い戻し日時)]\_\_プロパティーが設定されます。 プロバイダーは、[取引パイプラインと取引ステージをカスタマイズ](https://knowledge.hubspot.com/object-settings/set-up-and-customize-pipelines)し、[取引のプロパティーをワークフローで使用](https://knowledge.hubspot.com/workflows/choose-your-workflow-actions#property-management)[](https://knowledge.hubspot.com/object-settings/set-up-and-customize-pipelines)できます。 ## テンプレート掲載情報の削除 HubSpotは、以下に示す理由(ただしこれらに限られません)により、マーケットプレイスの掲載情報を削除する権利を留保します。 * テンプレートにバグがある。 * 提出物に含まれるサードパーティーのテンプレートが破損している。 * テンプレートに、[HubSpotのサポート対象ブラウザー](https://knowledge.hubspot.com/account-security/browsers-supported-by-hubspot)との互換性がない。 * 配布ライセンスのない画像、アイコン、フォント、音声、動画など、著作権で保護された素材を使用している。 * ユーザーに十分な情報を提供した上で明示的なオプトインの同意を得ずに、ユーザーを追跡するテンプレート。 * 以下を含むテンプレート(テンプレートマーケットプレイスまたはテンプレートのデモからのコンテンツへのリンクを含む): * 違法行為の促進や関与 * 名誉棄損や中傷を含むコンテンツ、悪意のあるコンテンツ * 不誠実な、または虚偽の記載 * 特定の人種、宗教、年齢、性別、性的指向を侮辱するようなコンテンツ * モジュールが追加先のページ/メール上の他の要素に影響を与える場合、モジュールは削除されます。 ## よくある質問 > **欧州連合のP2B規制(2020年7月12日)はアプリマーケットプレイスとテンプレートマーケットプレイスに適用されますか?** > > いいえ。2020年7月12日に施行された最新の欧州連合P2B規制は、HubSpotアプリおよびテンプレート マーケット プレイスには適用されません。[詳細](https://wayback.archive-it.org/12090/*/https://ec.europa.eu/digital-single-market/en/business-business-trading-practices)をご確認ください。 > **マーケットプレイスに提出する必要がある特定のHubSpotアカウントタイプはありますか?** > > テンプレートマーケットプレイスに提出するには[マーケットプレイス プロバイダー アカウント](https://www.hubspot.com/template-providers) が必要です。 > > 同じアカウントでテンプレートを使用できるように、パートナーアカウントでマーケットプレイスリストを管理しているパートナーもいます。逆に、デザインマネージャーツールの他のテンプレートと分けるために、個別のマーケットプレイスアカウントでリストを管理しているパートナーもいます。 > **マーケットプレイスに公開されている製品は、自分のアカウントまたはHubSpotのMarketplaceシステムに存在しますか?** > > マーケットプレイスに提出または公開された製品は、HubSpot マーケットプレイスシステム内に存在します。このため、プロバイダーが自分のアカウントで製品の編集を続けても、変更によって顧客の購入に影響が出ることはありません。マーケットプレイスの掲載情報を更新するには、掲載情報の審査と再公開が行われるように、プロバイダーは掲載情報を再提出する必要があります. > > マーケットプレイスに掲載されている製品の旧バージョンを購入した顧客は、無料で[最新バージョンに更新](https://knowledge.hubspot.com/resources/marketplace-customers-frequently-asked-questions#update)できます。 > **会社名を更新するにはどうすればよいですか?** > > テンプレートをマーケットプレイスに掲載した後、会社名を変更するには、 [ HubSpotサポート](https://help.hubspot.com/)までお問合せいただく必要があります。 > **掲載情報を作成しようとした際に全ての製品が表示されないのはなぜですか?** > > 掲載情報を作成しようとした際に全ての製品が表示されない理由として、以下の場合が考えられます。 > > * テンプレートが現在マーケットプレイスに掲載されているか、現在掲載されているテンプレートの要素が含まれている場合 > * マーケットプレイスが対応していないテンプレート(トランザクションEメール、チケットEメールなど)の場合 > * テンプレートがマーケットプレイスのテンプレートの複製である場合 > **プレビューリンクとして何を使用したらよいでしょうか?** > > プレビューURLを作成する場合は、利用可能であれば独自のドメイン名を使用する必要があります。利用可能なドメインがない場合、HubSpotは以下のURL構造のシステムドメインを各アカウントに提供します。 `[AccountID].hs-sites.com` > > \*\*注 \*\*:HubSpotでは、`preview.hs-sites.com`サブドメインを使用するテンプレートのプレビューはサポートされていません。 > **1つのテンプレートを複数のテーマで使用できますか?** > > はい。1つのテンプレートを複数のテンプレートで使用できます。複数のテーマで1つのテンプレートを使用できる最も代表的な例は、プロバイダーが同じテーマのStarterとPremiumの2つのバージョンを提供している場合です。 > **テーマまたはモジュールに変更を加えた場合、再提出する必要がありますか?** > > はい。テーマまたはモジュールに対する全ての変更は、品質チームによる事前検証と承認を受けるために、マーケットプレイスに再提出する必要があります。変更が承認されると、マーケットプレイスでお客さま向けに掲載情報とテンプレートが更新されます。 > **テーマまたはモジュールの価格を調整するには、どうすればよいですか?** > > 提出済み製品の価格を調整するには、更新された情報と共にマーケットプレイスに再提出する必要があります。テンプレートの公開後は、無料から有料へ、または有料から無料への価格変更はできません。 > **マーケットプレイスの支払いを受け取るにはどうすればよいですか?** > > 支払いは、マーケットプレイスプロバイダープロファイルで接続している支払い方法を通じて受け取ります。HubSpotアカウントで、[マーケットプレイス]>[プロバイダー情報]に移動します。[お支払い情報]セクションで、支払い情報を確認し、必要に応じて更新します。 > > HubSpotは取引手数料を頂いていません。全ての取引はHubSpotプラットフォームとは関係なく処理されます。 > **他のユーザーからフィードバックを得たり、他のマーケットプレイスプロバイダーと交流したりするには、どこにアクセスすればよいですか?** > > [https://developers.hubspot.com/slack](https://developers.hubspot.com/community)に登録して、HubSpotの開発者Slackの#marketplaceチャンネルに参加し てください。 > **顧客が払い戻しを申請した場合、ダウンロードされたファイルはHubSpotアカウントに残りますか?** > > 払い戻しが開始されると、テンプレートに関連付けられている全てのファイル、および依存項目(テンプレート、複製されたテンプレート、モジュールなど)も削除されます。 > **開発者向けの最新の要件や変更点を常に把握するには、どうすればよいですか?** > > 変更に関する最新情報を把握するには、[HubSpot Developer Changelog(HubSpot開発者変更ログ)](https://developers.hubspot.com/changelog)にアクセスして、配信にご登録ください。 # HubSpotテンプレートマーケットプレイスポリシー Source: https://developers.hubspot.jp/docs/cms/marketplace/template-policies # HubSpotテンプレートマーケットプレイスでのテーマの要件 Source: https://developers.hubspot.jp/docs/cms/marketplace/theme-requirements アセットマーケットプレイスにテーマを提出する際に満たす必要がある要件について説明します。 'アセットマーケットプレイスにテーマを提出する際に満たす必要がある要件について説明します。'; HubSpotテンプレートマーケットプレイスへの提出のために、テーマが満たす必要のある要件について、詳しくご確認ください。 テーマ作成の取り組みを始めたばかりの場合は、HubSpotの無料のCMSテーマボイラープレートを利用することを強くお勧めします。このテンプレートは、HubSpotの[Gitリポジトリー](https://github.com/HubSpot/cms-theme-boilerplate)からダウンロードすることも、[アカウントのデザインマネージャーUI内でインポート](https://www.youtube.com)することもできます。 また、テンプレートをHubSpotテンプレートマーケットプレイスに提出する際は、[テンプレート掲載ページの要件](https://developers.hubspot.com/docs)をご確認ください。 ## テーマの制限 テーマごとに以下の制限が適用されます。 * 無料の**CMS Hub**アカウントでは、サイト検索、CTA機能、ネイティブHubSpot動画を使用できません。**CMS Hub**サブスクリプションでご利用可能な機能の詳細については、[HubSpot製品・サービスカタログ](https://legal.hubspot.com/hubspot-product-and-services-catalog)をご覧ください。 * テーマに含めるコンポーネントの数の上限は次のとおりです。 * 50件のテンプレート[(最小ページが必要)](#templates-css%2C-sections%2C-page-templates%2C-etc.) * 50モジュール(最小5件) * 50セクション(最小5個) * テーマに次のコンポーネントを含めることは**できません**。 * Eメールテンプレート * HubDB機能 * サーバーレス関数 * CRMオブジェクトフィールド * [テンプレート内のフレキシブルカラム](https://developers.hubspot.com/docs#flexible-columns) **モジュールとセクション** セクションは、コンテンツ制作者がページ上の全幅ドロップゾーンにのみドロップできるため、開発者が質の高い最終製品を保証するのに役立ちます。 特に固定レイアウトセクションは、コンテンツ制作者がセクション内の要素を移動できないため、ドラッグ&ドロップエディターでは実現できないクリエイティブな書式設定やレイアウトを提供するための優れたツールとなります。 セクションには、コンテンツ制作者にとっての使いやすさというメリットもあります。セクション内で個々のモジュールを選択できるため、モジュールフォームが短くなり、編集中の要素に絞って設定できるようになります。 ## 全体的なテーマの要件 * 提出される全てのテーマは、明確に区別できるオリジナルのものでなければなりません。例えば、コピーやプレースホルダーの内容が異なるだけのテーマは、別のテーマとは見なされません。詳細は[HubSpotテンプレートマーケットプレイスのコンプライアンス](https://developers.hubspot.com/docs#template-marketplace-compliance)をご確認ください。 * テーマの作成には、HTMLおよびHubLテンプレートと、[dnd\_area](/docs/cms/reference/hubl/tags/dnd-areas)タグを使用する必要があります。 * テーマは、12列グリッドに準拠する必要があります。 ### テーマファイルの構造 全てのテーマは、適切なフォルダー構造を持ち、製品掲載情報を表す単一の親フォルダーにまとめられている必要があります。例えば、マーケットプレイス用に「SuperAwesome」というテーマを作成する場合は、以下の図のような構造になります。詳細は[テーマファイルの構造](https://developers.hubspot.com/docs#theme-file-structure)をご確認ください。 ![template-name](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/template-name.png) ![file-structure](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/file-structure.png) ### テンプレートの相対ローカルファイルパス テーマアセットを参照する際には、相対ローカルファイルパスを使用する必要があります。相対パスを含める際の最善の方法は、[get\_asset\_url関数](/docs/cms/reference/hubl/functions#get-asset-url)を使用することです。この関数は、アセット、ファイル、テンプレートの公開URLを返します。また、**ファイル**を右クリックして**公開URLをコピー**を選択するか、**アクション**をクリックして**公開URLをコピー**を選択することで、[この関数を生成](/docs/cms/reference/hubl/functions#get-asset-url)することもできます。 例えば、`require_css`と`get_asset_url`で参照されるスタイルシートを次のように書式設定する必要があります。 **入力** ```hubl theme={null} {{require_css(get_asset_url('../../css/main.css')) }} ``` **出力** ```html theme={null} //cdn2.hubspot.net/hub/1234567/hub_generated/template_assets/1565970767575/custom/styles/style.min.css ``` 以下の動画で、開発者アカウント内のファイルとマーケットプレイスの顧客に配信されるファイルとのファイル構造の違いをご確認ください。 ## テーマのパフォーマンス Google Lighthouseを使用する場合は、テーマのスコアが次のしきい値を上回る必要があります。 * **デスクトップのアクセシビリティー**: 65 * **デスクトップのベストプラクティス**: 80 * **デスクトップのパフォーマンス**: 70 * **モバイルのパフォーマンス**: 40 詳しくは[CLIを使用してテーマのGoogle Lighthouseレポートを生成する方法](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)をご確認ください。 * テーマファイルはミニフィケーション可能でなければなりません。 * 全ての画像ファイルはサイズが1MB未満である必要があります。 * 全ての画像タグは`alt`属性を持つ必要があります(値`""`は使用可能です)。 * 全ての画像タグは`loading`属性を持つ必要があります(値`""`は使用可能です)。 ### テーマのプレビューURL プレビューURLを作成する場合は、独自のドメイン名を使用する必要があります。次のような構造を持つHubSpot提供のドメインを使用することはできません:`[AccountID].hs-sites.com` デモサイトの画像ではなく、公開中のウェブサイトを使用する必要があります。 ライブデモにアクセスできなくなった場合、HubSpotはプロバイダーに通知した上で、再びアクセスできるようになるまでテーマの掲載を停止または削除する権利を留保します。 ## jQueryの使用 jQueryは、お客さまのHubSpotアカウントで[デフォルトでは有効になっていません](https://knowledge.hubspot.com/ja/website-pages/include-jquery-across-your-hubspot-pages)。テーマがjQueryに依存している場合は、テーマが想定通りに機能するように、jQueryのバージョンを含める必要があります。 例えば、jQueryを必要とするモジュールを組み込むが、サイトの他の部分ではJQueryが不要な場合、次のコードを使ってjQueryを読み込む必要があります。 ```hubl theme={null} {# this checks if the "Include jQuery" option in Settings > CMS > Pages is checked #} {% if not site_settings.include_jquery %} {{ require_js("../jquery-3.4.1.js", "footer") }} {% endif %} ``` ## テーマ構成(teme.json) `theme.json`ファイルには、次のパラメーターを含める必要があります。 ```json theme={null} // theme.json { "label": "Cool Theme", "preview_path": "./templates/home-page.html", "screenshot_path": "./images/templates/homepage.jpg", "enable_domain_stylesheets": false, "version": "1.0", "author": { "name": "Jon McLaren", "email": "noreply@hubspot.com", "url": "https://theme-provider.com/" }, "documentation_url": "https://theme-provider.com/cool-theme/documentation", "license": "./license.txt", "example_url": "https://theme-provider.com/cool-theme/demo", "is_available_for_new_content": true } ``` `theme.json`ファイルをチェックして、次のことを確認してください。 * ラベル名が、テーマ掲載情報での名前と一致していること。 * HubSpotの無料のCMSテーマボイラープレートを使用している場合は、ボイラープレートの値が存在していないこと。これには、作成者情報、ドキュメントURL、サンプルURLなどが含まれます。 * ドキュメントURLが解決され、このURLにテーマの使い方に関するドキュメントが用意されていること。 * プレビューパスがテーマ内の有効なファイルを指していること。 * スクリーンショットパスが有効なファイルを指していて、テーマに関連していること。 * サンプルURLが正しく解決され、テーマのデモページが表示されること。サンプルURLで`preview.hs-sites.com`サブドメインや`[AccountID].hs-sites.com`サブドメインが使用されていないこと。 詳細は[Theme.jsonのパラメーター](https://developers.hubspot.com/docs#theme-json)をご確認ください。 ## テーマ設定(fields.json) `fields.json`ファイルは、テーマエディターで利用可能なフィールドとフィールドグループ(スタイルフィールドを含む)を制御します。含めるフィールドは、ページエディターでの制作担当者による制御をどの程度可能にするかに応じて異なります。 * `fields.json`ファイルに少なくとも3つの色フィールドが含まれている必要があります。 * テーマと独立したモジュールの互換性を確保するには、テーマにフォントおよび色の標準命名規則として、`primary_color`、`secondary_color`、`heading_font`、`body_font`を含める必要があります。詳細は[モジュールとテーマの互換性](https://developers.hubspot.com/docs#module-compatibility-with-themes)をご確認ください。 テーマフィールドに`primary_color`、`secondary_color`、`heading_font`、`body_font`フィールドがない場合は、`alternate_names`フィールドを使用できます。 詳細は、[fields.jsonのパラメーター](https://developers.hubspot.com/docs#fields-json)と、HubSpot CMSボイラープレートの[サンプルfields.jsonファイル](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/fields.json)をご確認ください。 テーマ設定には次の要件も適用されます。 * エディタースタイルまたはモジュールを通じて設定されたスタイルと競合しないこと。例えば、CSSスタイルシートでは`!important`を使用しないでください。このプロパティーを使用すると、エンドユーザーによる上書きが困難になり、競合の原因となる可能性があります。 * コンテンツ制作者が更新内容を把握できるよう、テーマ設定では各設定に分かりやすい説明ラベルを使用すること。 * テーマ設定を、テーマに含まれる全てのテンプレートに適用すること(ただし、追加のスタイルに特定の用途がある場合を除きます)。例えば、テーマ設定で`h1`見出しのスタイルとサイズを変更した場合は、テーマに含まれる全ての`h1`タグにその変更を適用する必要があります。 テーマには、少なくとも次のテーマフィールドを含める**必要があります**。 **タイポグラフィーフィールド**: * 本文テキストのフォントフィールド(`p`タグ) * `h1`~`h6`のフォントフィールド * ホバースタイルの設定を含むハイパーリンクの色(`a`タグ) **フォームフィールド**: * フォームの背景色 * フォーム境界線の色 * フォームラベルの色 * フォームフィールドの境界線の色 * フォームボタン(ボタンテキスト、背景色、ホバースタイルの設定を含む) さらに、次の要件も適用されます。 * テーマ内のフィールドは、必要に応じて論理的にグループ化する必要があります。例えば、タイポグラフィーに関連する複数のフィールドを`Typography`グループとしてグループ化します。 * テーマフィールドには、ボタンとフォーム用の個別の色とフォントの制御設定に加えて、ヘッダーとフッター用の個別の色、ロゴ、フォントの制御設定が必要です。 * テーマ内のモジュールでロゴが使用されている場合、少なくとも1つのロゴフィールドは、アカウントの[ブランド設定](/docs/cms/start-building/building-blocks/fields/brand-and-settings-inheritance)を継承する必要があります。画像フィールドを使用してロゴをレンダリングする場合、画像フィールドはブランド設定を継承する必要はありません。 ## テンプレート(CSS、セクション、ページテンプレートなど) ### セクション * 適用可能な場合は常に[セクション](https://developers.hubspot.com/docs#reusable-sections)を使用する必要があります。テーマにはそれぞれ少なくとも5個のセクションが**必要です**。 * セクションには固有の実用的なスクリーンショットが必要です。 * セクションとモジュールを冗長にしないでください。 ### ページテンプレート テーマには、少なくとも次のテンプレートタイプを含める必要があります。 * ウェブサイトページテンプレートまたはランディングページテンプレート。 * 複数のページテンプレートを含める場合、各テンプレートは別個の目的を持つ必要があります。例えばホームページ、会社概要\_\_ページ、全幅ランディングページ、右サイドバー付きランディングページなどです。 * 1つのテーマに少なくとも8個のページテンプレートを含めることをお勧めします。 * 別個のブログリストテンプレートとブログ記事テンプレート。 * **ブログリストテンプレート**: リスト形式で全てのブログ記事を表示するページ(「ブログロール」と呼ばれる)。テンプレートのタイトルは、リストページ用であることを示す必要があります。 * **ブログ記事テンプレート**: 個々のブログ記事を表示する、ブログ記事の詳細ページ。テンプレートのタイトルは、ブログ記事ページ用であることを示す必要があります。 * さらに、ブログコメント欄とブログ執筆者欄のスタイルを、テーマに合わせて設定する必要があります。 * 次のシステムページテンプレート: * **404エラーテンプレート**: 存在しないページに訪問者がアクセスしようとしたときに表示されます。 * **500エラーテンプレート**: ウェブサイトで内部エラーが発生したときに表示されます。 * **パスワード プロンプト テンプレート**: ページがパスワードで保護されているときに表示されます。 * **サブスクリプションテンプレート**: 配信(サブスクリプション)設定ページ。このページで、Eメール受信者は配信登録するEメールの種類を管理できます。 * **サブスクリプション更新テンプレート**: Eメール受信者が配信設定を更新したときに表示される確認ページ。 * **配信登録解除バックアップテンプレート**: 配信登録を解除しようとしているEメール受信者に対し、HubSpotがそのEメールアドレスを判断できない場合に表示されるページ。 * **検索結果テンプレート**: [サイト検索](/docs/cms/start-building/building-blocks/modules/content-search)を使用したときに返される検索結果を表示します。有料の***CMS Hub***アカウントでのみご利用いただけます。 ### ページテンプレートの命名 * 類似した名前のテンプレートがある場合は、それぞれの違いが分かる説明的な単語を名前に追加します。 * 大文字と小文字の一貫性を保ち、ハイフンを削除し、短縮形を使用しないようにします(例えば、「bg」を使用する代わりに「background」とスペルアウトします)。 * 会社名やテーマ名をテンプレート名に含める必要はありません。 ## モジュール テーマモジュールと個々のモジュールの要件については、[こちら](https://developers.hubspot.com/docs)で詳細をご確認ください。 ## グローバルコンテンツ ### グローバルパーシャル [グローバルパーシャル](/docs/cms/start-building/building-blocks/global-content)は、HTMLとHubLを使用して作成されたテンプレートの一種であり、ウェブサイト全体で再利用できます。典型的なパーシャルは、ウェブサイトのヘッダー、ページのサイドバー、ウェブサイトのフッターです。詳しくは[グローバルパーシャルを作成する](/docs/cms/start-building/building-blocks/global-content#creating-a-global-content-partial-template-using-local-development-tools)方法をご確認ください。 * テーマにはグローバルパーシャルが含まれている必要があります。 * グローバルパーシャルには、使用可能な[ドラッグ&ドロップエリア](https://developers.hubspot.com/docs)を含める必要があります。例えば、ドラッグ&ドロップエリアを「非表示」クラスで非表示にすることはできません。 * 使用可能なドラッグアンドドロップエリアをヘッダーとフッターに組み込む必要があります。 * また、サイト全体でグローバルに使用されるメニューについては、ユーザーがアカウント設定で作成した[HubSpotナビゲーションメニューを選択](/docs/cms/start-building/building-blocks/modules/menus-and-navigation)できるようにする必要もあります。 注:グローバルパーシャル内にグローバルモジュールを含めることは避けてください。エンドユーザーのユーザーエクスペリエンスに悪影響を及ぼす可能性があります。 ## 多言語サポート テーマは複数の言語バージョンに対応できる必要があり、対応可能な言語も明記する必要があります。グローバルヘッダー内で[言語切り替えモジュール](/docs/cms/reference/modules/default-modules#language-switcher)を追加すると、顧客が簡単に言語のオプションを見つけて目的の言語を選択できるようになります。 * 1度に表示できる言語は1つのみにしてください。例えば、UIに英語とスペイン語の両方が同時に表示されないようにしてください。 * ハードコーディングされたテキストを使用しないでください。例えば、ブログリストボタンのテキストを「続きを読む」とハードコーディングするのではなく、エンドユーザーがコードに触れずにテキストを更新できるように、フィールド内でテキストを設定します。 ## モバイルおよびレスポンシブ要素 テーマでは、コンテンツの閲覧に使用されるデバイスに合わせたコンテンツの適応に対応できる必要があります。また、さまざまなデバイスで一貫して優れたユーザーエクスペリエンスを提供できるテーマである必要もあります。これに該当する要素には以下のものが含まれますが、これらに限定されません。 * メインナビゲーション * スライダーとタブ * 大きな画像 * 水平スクロールは使用しないようにします(意図的な場合を除く) # モジュールとテーマのフィールド Source: https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields HubSpotにはさまざまなフィールドがあります。これらのフィールドを使用して、テーマやモジュールを柔軟にカスタマイズできるようになっています。 モジュールとテーマにフィールドを追加することで、コンテンツ作成者はページエディター内でページのさまざまな要素を制御できます。モジュールとテーマで使用できる全てのフィールドと使用可能なプロパティーについて、以下で説明します。 モジュールとテーマのフィールド(フィールドグループや繰り返しフィールドを含む)の実装に関しては、[モジュールとテーマのフィールドの概要ぺージ](https://developers.hubspot.jp/docs/cms/reference/fields/overview)で詳しくご確認いただけます。 ## 全てのフィールドで使用されるプロパティー 全てのフィールドは、一般的なプロパティーセットを共有しています。これらはフィールドの名前、またはモジュールやテーマのフィールドを使用するコンテンツ作成者に表示されるヘルプテキストなど、一般的なフィールドです。 ```json theme={null} { "name" : "is_teaser_img", "label" : "Enable Teaser Image", "required" : false, "locked" : false, "type" : "boolean", "inline_help_text" : "Shows Teaser image when toggled on", "help_text" : "Teaser images are used to help provide visual context to the post.", "default" : false "alias_mapping": { "property_aliases_paths": { "is_teaser_img": ["old_boolean_field_name"] } } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `name` | 文字列 | フィールドの名前。モジュールまたはテーマにフィールドとその値を組み込むときに、これを参照します。スペースや特殊文字を含めることはできません。 | `richtext_field, date_field, etc.` | | `label` | 文字列 | コンテンツ作成者に表示されるフィールドの説明テキスト。スペースを含めることができます。 | `Rich text field, Date field, etc.` | | `required` | ブール値 | エディターでフィールドを空白のままにできるかどうかを設定します。`true`の場合、フィールドに値がない状態でコンテンツを公開することはできません。 | `false` | | `locked` | ブール値 | フィールドがコンテンツエディターで編集可能かどうかを設定します。`true`の場合、フィールドはコンテンツエディターに表示されません。 | `false` | | `type` | 文字列 | フィールドのタイプ。フィールドタイプはフィールドごとに固有で、以下の各フィールドに関する資料に記載されています。 | | | `inline_help_text` | 文字列 | フィールドのラベルの下にインラインで表示されるテキスト(最大400文字)。フィールドを使用する際の必須情報を示すのに最適です。次のHTMLタグを含めることができます(他のタグはレンダリング時に無視されます):`a`、`b`、`br`、`em`、`i`、`p`、`small`、`strong`、`span` | | | `help_text` | 文字列 | コンテンツ作成者へのヒントとして、カーソルを置いたときにエディターに表示されるテキスト(最大300文字)。フィールドを使用するのに必須ではない補足情報を示すのに最適です。次のHTMLタグを含めることができます(他のタグはレンダリング時に無視されます):`a`、`b`、`br`、`em`、`i`、`p`、`small`、`strong`、`span` | | | `id` | 文字列 | HubSpotによって設定される、フィールドの一意のID。ローカル環境で開発するときにはこのIDを指定する必要はありません。 | | | `visibility` | 配列 | フィールドの表示条件を設定します。例えば、別のチェックボックスフィールドが選択されている場合にのみ表示するようにフィールドを設定できます。詳しくは[表示](https://developers.hubspot.jp/docs/cms/reference/fields/overview#field-visibility)についてご確認ください。 | | | `display_width` | 文字列 | デフォルトでは、フィールドはエディター内で全幅表示されます。`fields.json`ファイル内の連続する2つのフィールドが`half_width`に設定されている場合、それらのフィールドはエディター内で互いに隣接して表示されます。 | | | `alias_mapping` | 文字列 | フィールドのエイリアス。既存のコンテンツを壊すことなく、既存のフィールド値を新しい場所にマッピングします。これは、[コンテンツ]タブから[スタイル]タブにフィールドを移動するなど、公開中のコンテンツで現在使用されているフィールドを更新する必要がある場合に役立ちます。\* \_\_ \*詳しくは、[エイリアスマッピング](/docs/cms/start-building/building-blocks/fields/alias-mapping)についてご参照ください。 | `False` | ## 位置合わせ コンテンツ作成者が要素をコンテナー内に配置できるようにします。テキストの位置合わせを有効にするには、代わりに[テキスト位置合わせフィールド](/docs/cms/reference/fields/module-theme-fields#text-alignment)を使用します。 位置合わせフィールドは[モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)でサポートされており、[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)としてのみ使用可能です。 ![位置合わせフィールド](https://www.hubspot.jp/hubfs/Alignment-field.png) **JSON** ```json theme={null} { "name": "img_position", "label": "Position Image", "help_text": "Position the image within it's container.", "required": false, "type": "alignment", "default": { "horizontal_align": "CENTER", "vertical_align": "TOP" } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | `horizontal_align`および`vertical_align`を含むオブジェクト。 | | | `alignment_direction` | 文字列 | 水平方向のみ、垂直方向のみ、または両方の位置合わせコントロールを表示するかどうかを指定します。例:
  • `HORIZONTAL`
  • `VERTICAL`
  • `BOTH`
| `BOTH` | **React** ```jsx theme={null} import { ModuleFields, AlignmentField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | `horizontal_align`および`vertical_align`を含むオブジェクト。 | | | `alignmentDirection` | 文字列 | 水平方向のみ、垂直方向のみ、または両方の位置合わせコントロールを表示するかどうかを指定します。例:
  • `HORIZONTAL`
  • `VERTICAL`
  • `BOTH`
| `BOTH` | ## 背景画像 このフィールドは、背景位置と背景サイズのサブフィールドを備える背景画像フィールドを提供します。背景画像フィールドには、フィールドの値に基づいてCSSを返す`.css`プロパティーがあります。詳しくは[生成されるCSSプロパティー](https://developers.hubspot.jp/docs/cms/reference/fields/overview#generated-css)についてご確認ください。 配置フィールドは[モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)でサポートされており、[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)としてのみ使用可能です。 ![背景画像フィールド](https://www.hubspot.jp/hubfs/bg_field.png) **JSON** ```json theme={null} { "name": "bg_image", "label": "Background image", "required": false, "type": "backgroundimage", "default": { "src": "https://example.com/img.png", "background_position": "MIDDLE_CENTER", "background_size": "cover" } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | 画像のsrc、背景位置、背景サイズを含むオブジェクト。 | `null` | **React** ```jsx theme={null} import { ModuleFields, BackgroundImageField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | 画像のsrc、背景位置、背景サイズを含むオブジェクト。 | `null` | ## ブログ コンテンツ作成者はこのフィールドを使用してブログを選択し、開発者にブログIDを提示することができます。モジュール内でティーザーとして扱うブログの情報を呼び出す場合などに便利です。ブログIDは、ブログ関連の[HubL関数](/docs/cms/reference/hubl/functions)で使用して、[ブログ執筆者](/docs/cms/reference/hubl/functions#blog-authors)、[最近のブログ記事](/docs/cms/reference/hubl/functions#blog-recent-posts)、[特定のタグが付いた最近のブログ記事](/docs/cms/reference/hubl/functions#blog-recent-tag-posts)などの情報を取得できます。 ブログフィールドはモジュール内でサポートされます。 ![ブログフィールドのスクリーンショット](https://cdn2.hubspot.net/hubfs/53/Blog%20field.png) **JSON** ```json theme={null} { "name": "blog", "label": "Blog", "required": false, "locked": false, "type": "blog", "default": 1234567890 } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | "default"またはブログID | デフォルトで選択されるブログを指定します。このパラメーターには「default」、または(ブログダッシュボードのURLで取得できる)特定のブログIDを指定できます。 | `null` | **React** ```jsx theme={null} import { ModuleFields, BlogField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | "default"またはブログID | デフォルトで選択されるブログを指定します。このパラメーターには'default'、または(ブログダッシュボードのURLで取得できる)特定のブログIDを指定できます。 | `null` | ## ブール値 このフィールドを使うと、コンテンツ作成者は機能をオンまたはオフに切り替えることができます。ブール値として可能な値は`true`または`false`のみです。グループまたはフィールドに、ブール型フィールドに基づく条件を設定することが適切なケースは少なくありません。将来的に2つの状態では足りなくなることが想定される場合は、[選択](#choice)フィールドを使用した方が、後で状態を追加する際の変更作業が軽減されます。 ブール型フィールドはテーマとモジュールの両方でサポートされます。ブール型フィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)として使用できます。 ![ブール型フィールドのスクリーンショット](https://cdn2.hubspot.net/hubfs/53/Boolean.png) **JSON** ```json theme={null} { "name": "is_teaser_img", "label": "Enable Teaser Image", "required": false, "locked": false, "type": "boolean", "display": "checkbox", "inline_help_text": "Shows Teaser image when toggled on", "help_text": "Teaser images are used to help provide visual context to the post.", "default": false } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | ブール値 | このフィールドのデフォルトの状態が`true`または`false`のどちらであるかを設定します。 | `false` | | `display` | 文字列 | フィールドの視覚表示スタイルを選択します。`toggle`または`checkbox`として表示できます。 | `checkbox` | **React** ```jsx theme={null} import { ModuleFields, BooleanField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | ブール値 | このフィールドのデフォルトの状態が`true`または`false`のどちらであるかを設定します。 | `false` | | `display` | 文字列 | フィールドの視覚表示スタイルを選択します。`toggle`または`checkbox`として表示できます。 | `checkbox` | > [!TIP] > > 切り替えスイッチが適しているのは、フィールドの値によって、条件付きで表示されている他のフィールドを有効化または無効化する場合です。他にも切り替えスイッチが役立つケースとしては、フィールドに基づいてモジュールのデザインが大きく変化する場合です。 > > チェックボックスが適しているのは、小さな個別要素の表示または非表示など、モジュールの表示に大きな影響を及ぼすことがない、軽微な変化の場合です。 ## 境界線 このフィールドは、コンテンツ作成者が要素の周囲に境界線を作成するためのユーザーインターフェイスを提供します。境界線フィールドには、フィールドの値に基づいてCSSを返す`.css`プロパティーがあります。詳しくは[生成されるCSSプロパティー](https://developers.hubspot.jp/docs/cms/reference/fields/overview#generated-css)についてご確認ください。 境界線フィールドは[モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)内でサポートされます。境界線フィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)としてのみ使用できます。 ![ページエディターの境界線モジュールフィールドのスクリーンショット](https://www.hubspot.com/hs-fs/hubfs/border-module-field.png?width=326\&quality=low) **JSON** ```json theme={null} { "id": "styles.border", "name": "border", "label": "border", "required": false, "locked": false, "allow_custom_border_sides": false, "type": "border", "default": { "top": { "width": { "value": 1, "units": "px" }, "opacity": 100, "style": "solid", "color": "#ffffff" }, "bottom": { "width": { "value": 1, "units": "px" }, "opacity": 100, "style": "solid", "color": "#ffffff" }, "left": null, "right": null } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | ブール値 | 境界線の半径、上部、下部、左側、右側のキーを含むオブジェクト。 | `{}` | **React** ```jsx theme={null} import { ModuleFields, BorderField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | ブール値 | 境界線の半径、上部、下部、左側、右側のキーを含むオブジェクト。 | `{}` | ## 選択 オプションのリストから、コンテンツ作成者が1つ以上の項目を選択するためのフィールドです。`display`プロパティーを使用すると、ドロップダウンメニュー、ラジオ選択、チェックボックス、またはさまざまなボタンで表示オプションを設定できます。[選択フィールドの表示オプション](#choice-button-presets)の詳細については、以下をご参照ください。 選択フィールドはテーマとモジュールの両方でサポートされます。選択フィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)として使用できます。 ![選択フィールドドロップダウン](https://cdn2.hubspot.net/hubfs/53/5Cdocs/choice-field-dropdown-4.jpg) **JSON** ```json theme={null} { "name": "img_position", "label": "Image Position", "required": false, "locked": false, "multiple": "true", "display": "select", "choices": [ ["img--left", "Image Left - Text Right"], ["img--right", "Text Left - Image Right"] ], "type": "choice", "default": "img--left" } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `choices` | 配列 | 一意の内部値とそれに続くラベルという形式の、選択可能なオプションを含む配列。 | `[ [ "value 1", "Label 1" ], [ "value 2", "Label 2" ] ]` | | `default` | 値 | 選択肢の配列の中から、デフォルトで選択される値を設定します。 | | | `multiple` | ブール値 | 任意指定フィールド。`true`に設定すると、複数のオプションを選択できるようになります。フィールドをチェックボックスのリストまたはドロップダウンメニューとして表示するかどうかを設定するには、`display`を`checkbox`または`select`に設定します。 | `false` | | `display` | 文字列 | 次のいずれかの値を使用して、フィールドの外観を設定します。
  • `select`:ドロップダウンメニューをレンダリングします。`multiple`が`true`に設定されている場合、複数のオプションを選択できます。
  • `checkbox`:選択可能なチェックボックスのリストをレンダリングします。`multiple`が`true`に、かつ`reordering_enabled`が`false`に設定されている場合、複数のオプションを選択できます。
  • `radio`:ラジオボタンオプションのリストを表示します。複数のオプションを選択することはできません。
  • `buttons`:指定された`preset`に基づいてボタンのセットを表示します。複数のオプションを選択することはできません。
| `"select"` | | `reordering_enabled` | ブール値 | `true`に設定すると、コンテンツ作成者がエディターでフィールドのオプションを並べ替えることができます。これを有効にするには、`multiple`も`true`に設定する必要があります。 | `false` | | `preset` | 文字列 | `display`が`buttons`に設定されている場合に使用するボタンのプリセットを設定します。プリセットごとに、特定の値のセットに一致するように`choices`ラベルを設定する必要があります。これらの[プリセットオプション](#choice-button-presets)の詳細については、以下をご参照ください。 | | **React** ```jsx theme={null} import { ModuleFields, ChoiceField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `choices` | 配列 | 一意の内部値とそれに続くラベルという形式の、選択可能なオプションを含む配列。 | `[ [ "value 1", "Label 1" ], [ "value 2", "Label 2" ] ]` | | `default` | 値 | 選択肢の配列の中から、デフォルトで選択される値を設定します。 | | | `multiple` | ブール値 | 任意指定フィールド。`true`に設定すると、複数のオプションを選択できるようになります。フィールドをチェックボックスのリストまたはドロップダウンメニューとして表示するかどうかを設定するには、`display`を`checkbox`または`select`に設定します。 | `false` | | `display` | 文字列 | 次のいずれかの値を使用して、フィールドの外観を設定します。
  • `select`:ドロップダウンメニューをレンダリングします。`multiple`が`true`に設定されている場合、複数のオプションを選択できます。
  • `checkbox`:選択可能なチェックボックスのリストをレンダリングします。`multiple`が`true`に、かつ`reordering_enabled`が`false`に設定されている場合、複数のオプションを選択できます。
  • `radio`:ラジオボタンオプションのリストを表示します。複数のオプションを選択することはできません。
  • `buttons`:指定された`preset`に基づいてボタンのセットを表示します。複数のオプションを選択することはできません。
| `"select"` | | `reorderingEnabled` | ブール値 | `true`に設定すると、コンテンツ作成者がエディターでフィールドのオプションを並べ替えることができます。これを有効にするには、`multiple`も`true`に設定する必要があります。 | `false` | | `preset` | 文字列 | `display`が`buttons`に設定されている場合に使用するボタンのプリセットを設定します。プリセットごとに、特定の値のセットに一致するように`choices`ラベルを設定する必要があります。これらの[プリセットオプション](#choice-button-presets)の詳細については、以下をご参照ください。 | | ### 選択ボタンのプリセット ドロップダウンメニュー、チェックボックス、またはラジオ選択の代わりにボタンを表示する選択フィールドを設定するには、以下のプリセットのいずれかを使用します。各プリセットでは、特定のオプションラベルのセットを使用でき、それを`choices`配列に含める必要があります。これらのラベルはカスタマイズできません。 ```json example.json theme={null} { "name": "layout", "type": "choice", "label": "Layout", "required": false, "locked": false, "display": "buttons", "preset": "layout", "choices": [ ["cards_value", "cards"], ["tiles_value", "tiles"], ["minimal_value", "minimal"] ] } ``` ```text react.txt theme={null} import { ModuleFields, ChoiceField } from '@hubspot/cms-components/fields'; ``` | プリセット | 選択ラベル | 例 | | - | - | - | | `case` | `none` \| `upper` \| `lower` | | ![大/小文字プリセット](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/choice-field-case-type.png) \| | `expand_icon` | `caret` | `plus` | `chevron` | ![展開アイコンプリセット](https://developers.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/expand_icon-choice-type.png) \| | `icon_background_shape` | `none` | `square` | `rounded` | `circle` | ![アイコンの背景形状プリセット](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/choice-button-presets_3.png) \| | `icon_size` | `small` | `medium` | `large` | ![アイコンプリセット](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/choice-button-presets_5.png) \| | `layout` | `cards` | `tiles` | `minimal` | ![レイアウトプリセット](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/choice-button-presets_6.png) \| | `social_icon_background_shape` | `none` | `square` | `rounded` | `circle` | ![ソーシャルアイコンの背景プリセット](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/choice-button-presets_2.png) \| | `social_icon_size` | `small` | `medium` | `large` | ![ソーシャルアイコンサイズのプリセット](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/choice-button-presets_4.png) | ## 色 色フィールドを使用して、コンテンツ作成者はカラーピッカーのインターフェイスで色を指定することができます。このフィールドは無地と透明に対応します。コンテンツ作成者がモジュール内で色を調整できるようにするには、このフィールドが最適です。 一部のEメールクライアントでは不透明度ルールが適用されないため、デフォルトではEメールモジュールの色フィールドの不透明度入力が非表示になっています。`show_opacity`を`true`に設定すると、Eメールモジュールの不透明度フィールドを表示できます。 色フィールドはテーマとモジュールの両方に対応します。色フィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)として使用できます。 ![色フィールド](https://cdn2.hubspot.net/hubfs/53/colorfield.png) **JSON** ```json theme={null} { "name": "bg_color", "label": "Background color", "required": false, "locked": false, "type": "color", "default": { "color": "#ff0000", "opacity": 100 }, "limited_options": ["#000000", "#ffffff"] } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | デフォルトで選択される色と不透明度を設定します。 | `{ "color" : "#ffffff", "opacity" : 100 }` | | `show_opacity` | ブール値 | 不透明度入力が表示されるかどうかを設定します。
  • `true`:不透明度入力が表示されます。
  • `false`:不透明度入力が非表示になります。
  • 未定義のままにすると、不透明度入力はEメールモジュールでは表示されませんが、他のモジュールタイプでは表示されます。
| `undefined` | | `limited_options` | 配列 | デフォルトのカラーグリッドを非表示にし、お気に入りの色の一覧をオーバーライドする文字列の配列(「Favorites」ラベルは「Available colors」になります)。配列内の値は、任意の継承パスで16進コードまたは`color`16進値のいずれかである必要があります。 | `undefined` | **React** ```jsx theme={null} import { ModuleFields, ColorField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | デフォルトで選択される色と不透明度を設定します。 | `{ "color" : "#ffffff", "opacity" : 100 }` | | `showOpacity` | ブール値 | 不透明度入力が表示されるかどうかを設定します。
  • `true`:不透明度入力が表示されます。
  • `false`:不透明度入力が非表示になります。
  • 未定義のままにすると、不透明度入力はEメールモジュールでは表示されませんが、他のモジュールタイプでは表示されます。
| `undefined` | | `limitedOptions` | 配列 | デフォルトのカラーグリッドを非表示にし、お気に入りの色の一覧をオーバーライドする文字列の配列(「Favorites」ラベルは「Available colors」になります)。配列内の値は、任意の継承パスで16進コードまたは`color`16進値のいずれかである必要があります。 | `undefined` | ## CTA CTA(Call-To-Action)フィールドは、表示するCTAを選択する方法をユーザーに提供します。CTAは基本的に、追跡可能なボタンまたはリンクです。コンテンツ作成者は、サイト全体で使用できる[CTAを作成](https://knowledge.hubspot.com/ja/ctas/create-calls-to-action-ctas)することができます。 CTAフィールドはモジュール内でサポートされます。CTAフィールドは、**CMS Hub** ProfessionalおよびEnterpriseで利用可能です。\_ \_\_ \_ ![Call To Actionフィールド](https://cdn2.hubspot.net/hubfs/53/Screen%20Shot%202020-02-26%20at%2010.24.18%20PM.png) **JSON** ```json theme={null} { "name": "cta", "label": "CTA", "required": false, "locked": false, "type": "cta", "default": null } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | デフォルトで選択されるCTA。想定される値は、[CTAマネージャー](https://app.hubspot.com/l/ctas)でCTAを編集する際にURLに表示されるCTA IDです。 | `null` | **React** ```jsx theme={null} import { ModuleFields, CTAField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | デフォルトで選択されるCTA。想定される値は、[CTAマネージャー](https://app.hubspot.com/l/ctas)でCTAを編集する際にURLに表示されるCTA IDです。 | `null` | ## CRMオブジェクト CRMオブジェクトフィールドは、表示するCRMオブジェクトの個別のインスタンスを選択する方法をユーザーに提供します。 `module.fieldname.properties`は、このオブジェクトインスタンスからフェッチ(取得)されたプロパティーを返します。そのため、選択したオブジェクトインスタンスのデータを取得するために`crm_object()`関数を使用する必要はありません。 `module.fieldname.id`は、オブジェクトインスタンスIDを返します。 CRMオブジェクトフィールドはモジュール内でサポートされます。CRMオブジェクトフィールドは、**CMS Hub** ProfessionalおよびEnterpriseで利用可能です。\_ \_\_ \_ ![CRMオブジェクトフィールド](https://f.hubspotusercontent00.net/hubfs/53/CRM%20Object%20Field.png) **JSON** ```json theme={null} { "name": "crmobject_field", "label": "CRM object", "required": false, "locked": false, "object_type": "CONTACT", "properties_to_fetch": [], "type": "crmobject", "default": { "id": 1 } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `object_type` | 文字列 | ユーザーが選択できるCRMオブジェクトのタイプ。[サポートされるCRMオブジェクトタイプ](/docs/cms/start-building/features/data-driven-content/crm-objects#supported-crm-object-types) | | | `properties_to_fetch` | 配列 | オブジェクトタイプに関連付けられているプロパティー名の配列(文字列の形式)。例えば`"date_of_birth"`は、コンタクトに関連付けられたプロパティーです。これを使用すると、必要な情報だけを限定的にページで利用可能にすることができます。 | | | `default` | オブジェクト | デフォルトで選択されるオブジェクトインスタンスのIDを含むオブジェクト。コンタクトID、会社IDなど。 | `null` | **React** ```jsx theme={null} import { ModuleFields, CRMObjectField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `objectType` | 文字列 | ユーザーが選択できるCRMオブジェクトのタイプ。[サポートされるCRMオブジェクトタイプ](/docs/cms/start-building/features/data-driven-content/crm-objects#supported-crm-object-types) | | | `propertiesToFetch` | 配列 | オブジェクトタイプに関連付けられているプロパティー名の配列(文字列の形式)。例えば`"date_of_birth"`は、コンタクトに関連付けられたプロパティーです。これを使用すると、必要な情報だけを限定的にページで利用可能にすることができます。 | | | `default` | オブジェクト | デフォルトで選択されるオブジェクトインスタンスのIDを含むオブジェクト。コンタクトID、会社IDなど。 | `null` | ## CRMオブジェクトプロパティー CRMオブジェクトのプロパティーフィールドは、指定されたオブジェクトタイプからラベルやプロパティー名などのプロパティーメタデータにアクセスするために使用します。これにより、コンテンツ作成者は、ページ上にプロパティーの詳細を表示する必要がある場合に、オブジェクトプロパティーから選択することができます。 例えば、このフィールドをカスタムのテーブルモジュールに追加して、選択されたプロパティーに基づいてテーブルの見出しを入力することができます。 CRMオブジェクトフィールドはモジュール内でサポートされます。 ![CRMオブジェクトプロパティーのドロップダウンメニュー0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/crm-object-property-dropdown-menu0.png) **JSON** ```json theme={null} { "name": "crmobjectproperty_field", "label": "CRM object property", "required": true, "locked": false, "object_type": "contact", "type": "crmobjectproperty", "default": { "property": "field_of_study" } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `object_type` | 文字列 | ユーザーが選択できるCRMオブジェクトのタイプ。詳しくは[サポートされるCRMオブジェクトタイプ](/docs/cms/start-building/features/data-driven-content/crm-objects#supported-crm-object-types)をご確認ください。 | | `default` | オブジェクト | 表示するデフォルトのプロパティーが含まれます。 | 加えて、以下のスニペットを使用すると、他のプロパティーの詳細を返すことができます。 * `{{ module.fieldname.property }}`:プロパティーの内部名を返します。 * `{{ module.fieldname.property_definition.label }}`:プロパティーのラベルを返します。 * `{{ module.fieldname.property_definition.type }}`:プロパティータイプ(文字列など)を返します。 **React** ```jsx theme={null} import { ModuleFields, CRMObjectPropertyField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | | - | - | - | | `objectType` | 文字列 | ユーザーが選択できるCRMオブジェクトのタイプ。詳しくは[サポートされるCRMオブジェクトタイプ](/docs/cms/start-building/features/data-driven-content/crm-objects#supported-crm-object-types)をご確認ください。 | | `default` | オブジェクト | 表示するデフォルトのプロパティーが含まれます。 | ## 日付 日付フィールドでは、日付入力用インターフェイスを提供できます。コンテンツ作成者はこのインターフェイスを使用して簡単に日付を選択できます。このフィールドから返されるタイムスタンプは、コード内で使用できます。 日付フィールドはモジュール内でサポートされます。 ![日付フィールド(カレンダーを開いた状態)](https://cdn2.hubspot.net/hubfs/53/date%20field.png) **JSON** ```json theme={null} { "name": "event_start_date", "label": "Event Date", "required": false, "locked": false, "type": "date", "default": 1577854800000 } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | タイムスタンプ | 日時のデフォルトとして使用するUnixエポック時間のタイムスタンプ。日付入力の開始時に現在の日時をコンテンツ作成者に提示するには、nullのままにします。 | `null` | **React** ```jsx theme={null} import { ModuleFields, DateField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | タイムスタンプ | 日時のデフォルトとして使用するUnixエポック時間のタイムスタンプ。日付入力の開始時に現在の日時をコンテンツ作成者に提示するには、nullのままにします。 | `null` | ## 日時 日時フィールドでは、日付フィールドと同じ日付インターフェイスだけでなく、時刻入力用インターフェイスも提供できます。コンテンツ作成者はこれらのインターフェイスを使用して簡単に日付と時刻を選択できます。このフィールドから返されるタイムスタンプは、コード内で使用できます。 日時フィールドはモジュール内でサポートされます。 ![イベント開始](https://cdn2.hubspot.net/hubfs/53/Event%20Start.png) **JSON** ```json theme={null} { "name": "event_start", "label": "Event Start", "required": false, "locked": false, "type": "datetime", "default": 1577854800000 } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | タイムスタンプ | 日時のデフォルトとして使用するUnixエポック時間のタイムスタンプ。日付入力の開始時に現在の日時をコンテンツ作成者に提示するには、nullのままにします。 | `null` | **React** ```jsx theme={null} import { ModuleFields, DateTimeField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | タイムスタンプ | 日時のデフォルトとして使用するUnixエポック時間のタイムスタンプ。日付入力の開始時に現在の日時をコンテンツ作成者に提示するには、nullのままにします。 | `null` | ## Eメールアドレス Eメールアドレスのフィールドを実装すると、ユーザーが複数のEメールアドレスを選択できるようになります。例えばコンタクト情報の表示に、このフィールドを使用します。Eメールフィールドからは、選択されたEメールアドレスの配列が返されます。この配列をループ処理できます。 Eメールフィールドはモジュール内でサポートされます。 ![Eメールフィールド](https://f.hubspotusercontent00.net/hubfs/53/email-field.png) **JSON** ```json theme={null} { "name": "emails", "label": "Email address", "required": false, "locked": false, "type": "email", "default": null } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 配列 | Eメールアドレス文字列の配列`["bob@example.com", "dennis@example.com"]` | `null` | **React** ```jsx theme={null} import { ModuleFields, EmailField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 配列 | Eメールアドレス文字列の配列`["bob@example.com", "dennis@example.com"]` | `null` | ## 埋め込み 埋め込みフィールドを使用すると、ユーザーは[oEmbed対応サイト](https://oembed.com/#section7)からURLを追加したり、他のサイトから埋め込みコードを貼り付けたりできます。HubSpotでのoEmbedの使用法や使用事例については、[oEmbedのドキュメント](/docs/cms/start-building/building-blocks/fields/oembed)をご参照ください。 ![埋め込みフィールド](https://f.hubspotusercontent00.net/hubfs/53/Developer%20Site/assets/images/module-theme-fields/embed-field.jpg) **JSON** ```json theme={null} { "name": "embed_field", "label": "Embed", "required": false, "locked": false, "supported_source_types": ["oembed", "html"], "supported_oembed_types": ["photo", "video", "link", "rich"], "type": "embed", "default": { "source_type": "oembed" } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `supported_source_types` | 配列 | サポートされるソースタイプ。oEmbed URL(`oembed`)、HTML埋め込みコード(`html`)、またはメディアブリッジ(`media_bridge`)のいずれか。 | `["oembed", "html"]` | | `supported_oembed_types` | 配列 | サポートされるoEmbedタイプ(`"photo"`、`"video"`、`"link"`、`"rich"`など)。HTMLのsupported\_source\_typesには適用されません。 | `[ "photo", "video", "link", "rich" ]` | | `supported_media_bridge_providers` | 配列 | どのメディアブリッジプロバイダーからコンテンツを選択できるかを決定するプロバイダーIDの配列。なお、[メディアブリッジプロバイダーアプリケーション](https://ecosystem.hubspot.com/marketplace/apps/apps-for-media)のインストール時にも、このパラメーターに入力されます。 | | | `type` | 文字列 | このパラメーターは常に`"embed"`に設定されます。 | `"embed"` | | `default` | ディクショナリー | `"source_type"`パラメーターを含む配列。このパラメーターには、`"supported_source_types"`パラメーターで指定された文字列ベースの値のオプションのうちの1つが含まれます。 | `oembed` | **React** ```jsx theme={null} import { ModuleFields, EmbedField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `supportedSourceTypes` | 配列 | サポートされるソースタイプ。oEmbed URL(`oembed`)、HTML埋め込みコード(`html`)、またはメディアブリッジ(`media_bridge`)のいずれか。 | `["oembed", "html"]` | | `supportedOembedTypes` | 配列 | サポートされるoEmbedタイプ(`"photo"`、`"video"`、`"link"`、`"rich"`など)。HTMLのsupported\_source\_typesには適用されません。 | `[ "photo", "video", "link", "rich" ]` | | `supportedMediaBridgeProviders` | 配列 | どのメディアブリッジプロバイダーからコンテンツを選択できるかを決定するプロバイダーIDの配列。なお、[メディアブリッジプロバイダーアプリケーション](https://ecosystem.hubspot.com/marketplace/apps/apps-for-media)のインストール時にも、このパラメーターに入力されます。 | | | `type` | 文字列 | このパラメーターは常に`"embed"`に設定されます。 | `"embed"` | | `default` | ディクショナリー | `"source_type"`パラメーターを含む配列。このパラメーターには、`"supported_source_types"`パラメーターで指定された文字列ベースの値のオプションのうちの1つが含まれます。 | `oembed` | ## ファイル ファイルフィールドを実装すると、ユーザーがファイルマネージャーまたはドキュメントマネージャーにファイルをアップロードできるようになります。また、これらのマネージャー内にある項目を簡単に添付できます。PDFファイルや他の形式のファイルにリンクする際に役立ちます。ページ上に画像を表示するには、画像フィールドを使用する必要があります。 ファイルフィールドはモジュール内でサポートされます。 ![ファイルフィールド](https://f.hubspotusercontent00.net/hubfs/53/File%20field.png) **JSON** ```json theme={null} { "name": "file_field", "label": "File", "required": false, "locked": false, "type": "file", "picker": "file", "default": null } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | ファイルURL。 | `null` | | `picker` | 文字列 | 利用可能な値は、「file」、「document」、「image」です。 このパラメーターに応じて、ファイルマネージャーまたはドキュメントマネージャーにアップロードされたアセットがファイル選択画面に表示されます。 | `file` | **React** ```jsx theme={null} import { ModuleFields, FileField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | ファイルURL。 | `null` | | `picker` | 文字列 | 利用可能な値は、"file"、"document"、"image"です。 このパラメーターに応じて、ファイルマネージャーまたはドキュメントマネージャーにアップロードされたアセットがファイル選択画面に表示されます。 | `file` | ## フォローアップEメール フォローアップEメールフィールドを実装すると、フォーム送信への応答として送信するEメールをコンテンツ作成者が指定できるようになります。これは、`simple_email_campaign_id`パラメーターを介して[HubLフォームタグ](/docs/cms/reference/hubl/tags/standard-tags#form)と連携して機能します。 フォローアップEメールフィールドはモジュール内でサポートされます。 ![フォローアップEメールフィールド](https://f.hubspotusercontent00.net/hubfs/53/followup%20email%20field.png) **JSON** ```json theme={null} { "name": "followup_email", "label": "Followup email", "required": false, "locked": false, "type": "followupemail", "default": null } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | EメールID | `null` | **React** ```jsx theme={null} import { ModuleFields, FollowUpEmailField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | EメールID | `null` | ## フォント フォントフィールドを使用すると、コンテンツ作成者は基本的なフォントスタイルを設定できます。コンテンツ作成者はサイズ、色、フォントファミリー、書式(太字、イタリック、下線付き)を選択することが可能です。リストに表示されるフォントは全て、標準的なウェブ対応フォントです。これらのフォントは[Google フォント](https://fonts.google.com/)から取得されますが、ページが読み込まれるドメインでHubSpotによって直接提供されます。 フォントフィールドはテーマとモジュールの両方でサポートされます。フォントフィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)として使用できます。 ![フォントフィールド](https://cdn2.hubspot.net/hubfs/53/font%20field.png) > [!WARNING] > > ### 注: > > * フォントファミリーは、`font`および`font_set`プロパティーの組み合わせによって決まります。フォントを読み込むには、両方を含める必要があります。つまり、[フィールドを継承](https://developers.hubspot.jp/docs/cms/reference/fields/overview#inherited-fields)する場合、両方の値を継承する必要があります。 > * CSS関連のサブフィールドを`visibility`で非表示にしても、フィールドオブジェクトで返されるスタイルでそのCSSが出力されるのを防ぐことはできません。この場合も、`styles`オブジェクトに手動でCSSを含める必要があります。 **JSON** ```json theme={null} { "name": "font", "label": "Font", "required": false, "locked": false, "load_external_fonts": true, "type": "font", "default": { "size": 12, "font": "Merriweather", "font_set": "GOOGLE", "size_unit": "px", "color": "#000", "styles": {} }, "visibility": { "hidden_subfields": { "font": true, "size": true } } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | サイズ、サイズ設定単位、色の設定と、太字、イタリック、下線のスタイル設定を含むフォントオブジェクト。 | `{ "size" : 12, "size_unit" : "px", "color" : "#000", "styles" : { } }` | | `load_external_fonts` | ブール値 | スタイルシートまたはモジュール内のHubLによって選択または参照されたウェブフォントが、HubSpotにより自動的にページに読み込まれます。既にページにフォントが読み込まれている場合は、これをfalseに設定しておくことでフォントが二重に読み込まれるのを回避できます。 | `true` | | `visibility` | オブジェクト | `hidden_subfields`のネストされたオブジェクトを使用して、非表示にするフォントフィールドを制御するブール値を設定できます。サブフィールドには、`font`、`size`、`bold`、`italic`、`underline`、`color`が含まれます。 | | | `variant` | 文字列 | ウェブフォントを使用する場合の、フォントのバリエーションです。例えば、フォントの太さを700にして使用するには、これを`"700"`に設定します。フォントをイタリックの太さ400にして使用するには、これを`"400i"`に設定します。 | | | `limited_options` | 配列 | 全てのフォントオプションのリストをオーバーライドする文字列の配列。配列内の値は、ハードコーディングされたフォント名または任意の継承パスでフォントの`name`プロパティーを使用する必要があります。例:`theme.typography.body_text.name`。 | `undefined` | **React** ```jsx theme={null} import { ModuleFields, FontField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | サイズ、サイズ設定単位、色の設定と、太字、イタリック、下線のスタイル設定を含むフォントオブジェクト。 | `{ "size" : 12, "size_unit" : "px", "color" : "#000", "styles" : { } }` | | `loadExternalFonts` | ブール値 | スタイルシートまたはモジュール内のHubLによって選択または参照されたウェブフォントが、HubSpotにより自動的にページに読み込まれます。既にページにフォントが読み込まれている場合は、これをfalseに設定しておくことでフォントが二重に読み込まれるのを回避できます。 | `true` | | `visibility` | オブジェクト | `hidden_subfields`のネストされたオブジェクトを使用して、非表示にするフォントフィールドを制御するブール値を設定できます。サブフィールドには、`font`、`size`、`bold`、`italic`、`underline`、`color`が含まれます。 | | | `variant` | 文字列 | ウェブフォントを使用する場合の、フォントのバリエーションです。例えば、フォントの太さを700にして使用するには、これを`"700"`に設定します。フォントをイタリックの太さ400にして使用するには、これを`"400i"`に設定します。 | | | `limitedOptions` | 配列 | 全てのフォントオプションのリストをオーバーライドする文字列の配列。配列内の値は、ハードコーディングされたフォント名または任意の継承パスでフォントの`name`プロパティーを使用する必要があります。例:`theme.typography.body_text.name`。 | `undefined` | ## フォーム フォームフィールドを実装すると、アカウント内にある特定のフォームをコンテンツ作成者が指定できるようになります。その情報に基づいて、[HubLフォームタグ](/docs/cms/reference/hubl/tags/standard-tags#form)を使用してページにフォームをレンダリングできます。 フォームフィールドはモジュール内でサポートされます。 ![フォームフィールド-2020年8月21日-08-09-55-35-PM](https://f.hubspotusercontent00.net/hubfs/53/form%20field-Aug-21-2020-08-09-55-35-PM.png) **JSON** ```json theme={null} { "id": "idNumber", "name": "form_field_name", "display_width": null, "label": "Form", "required": false, "locked": false, "type": "form", "disable_inline_form_editing": true, "required_property_types": ["TICKET"], "support_all_webinar_types": true, "embed_versions": ["v2", "v4"], "default": { "response_type": "inline", "message": "Thanks for submitting the form." } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `default` | オブジェクト | フォーム送信応答の詳細を含むオブジェクト。次のパラメーターが含まれます。
  • `response_type`:次のいずれかが可能です。
    • `inline:`:インライン テキスト メッセージ。
    • `redirect`:送信後に訪問者をリダイレクトします。
  • `message`:フォーム送信後に表示するテキスト。
  • `redirect_id`:リダイレクトされるフォームの場合、これをHubSpotコンテンツIDに設定すると、フォーム送信者がHubSpotページにリダイレクトされます。
  • `redirect_url`リダイレクトされるフォームの場合、これを特定のURLに設定すると、フォーム送信者がページにリダイレクトされます。
| | `disable_inline_form_editing` | 文字列 | フォームモジュール内の全てのインラインフォーム編集コントロールを非表示にするには、`disable_inline_form_editing`プロパティーを`true`に設定します。これには、フォームフィールド、送信ボタンのテキスト、データのプライバシーと同意のオプション、CAPTCHAが含まれます。 | | `required_property_types` | 配列 | フォームフィールドのプロパティータイプに基づいて選択できるフォームを指定する配列。値には、`"CONTACT"`、`"COMPANY"`、および`"TICKET"`を使用できます。 | | `support_all_webinar_types` | ブール値 | `true`に設定すると、より包括的なウェビナーセレクターがフォームに表示され、GoToWebinarに加えてMicrosoft Teamsウェビナーも選択可能になります。また、フォームフィールドの値が若干変更され、`gotowebinar_webinar_key`ではなく`webinar_id`と`webinar_source`が保存されます。これらの包括的なプロパティー値を`gotowebinar_webinar_key`と共に[Formタグ](/docs/cms/reference/hubl/tags/standard-tags#form)に戻す必要があります。 | | `embed_versions` | 配列 | フォームのバージョンに基づいて選択できるフォームを指定する配列。値には、旧フォームの`"v2"`と新しいエディターフォームの`"v4"`を使用できます。 | **React** ```jsx theme={null} import { ModuleFields, FormField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | | - | - | - | | `default` | オブジェクト | フォーム送信応答の詳細を含むオブジェクト。次のパラメーターが含まれます。
  • `response_type`:次のいずれかが可能です。
    • `inline:`:インライン テキスト メッセージ。
    • `redirect`:送信後に訪問者をリダイレクトします。
  • `message`:フォーム送信後に表示するテキスト。
  • `redirect_id`:リダイレクトされるフォームの場合、これをHubSpotコンテンツIDに設定すると、フォーム送信者がHubSpotページにリダイレクトされます。
  • `redirect_url`リダイレクトされるフォームの場合、これを特定のURLに設定すると、フォーム送信者がページにリダイレクトされます。
| | `disableInlineFormEditing` | 文字列 | フォームモジュール内の全てのインラインフォーム編集コントロールを非表示にするには、`disableInlineFormEditing`プロパティーを`true`に設定します。これには、フォームフィールド、送信ボタンのテキスト、データのプライバシーと同意のオプション、CAPTCHAが含まれます。 | | `requiredPropertyTypes` | 配列 | フォームフィールドのプロパティータイプに基づいて選択できるフォームを指定する配列。値には、`"CONTACT"`、`"COMPANY"`、および`"TICKET"`を使用できます。 | | `supportAllWebinarTypes` | ブール値 | `true`に設定すると、より包括的なウェビナーセレクターがフォームに表示され、GoToWebinarに加えてMicrosoft Teamsウェビナーも選択可能になります。また、フォームフィールドの値が若干変更され、`gotowebinar_webinar_key`ではなく`webinar_id`と`webinar_source`が保存されます。これらの包括的なプロパティー値を`gotowebinar_webinar_key`と共に[Formタグ](/docs/cms/reference/hubl/tags/standard-tags#form)に戻す必要があります。 | | `embedVersions` | 配列 | フォームのバージョンに基づいて選択できるフォームを指定する配列。値には、旧フォームの`"v2"`と新しいエディターフォームの`"v4"`を使用できます。 | ## グラデーション このフィールドによって、コンテンツ作成者はグラデーションを作成および設定できます。現時点では、線形グラデーションで色の分岐点を最大5つまで指定できます。グラデーションフィールドには、フィールドの値に基づいてCSSを返す`.css`プロパティーがあります。詳しくは[生成されるCSSプロパティー](https://developers.hubspot.jp/docs/cms/reference/fields/overview#generated-css)についてご確認ください。 グラデーションフィールドは[モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)内でサポートされます。グラデーションフィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)としてのみ使用できます。 ![グラデーションフィールド](https://www.hubspot.com/hs-fs/hubfs/gradient_field.png?width=348\&quality=low) **JSON** ```json theme={null} { "name": "bg_gradient", "label": "Background gradient", "help_text": "Sets a gradient behind the content", "required": false, "type": "gradient", "default": { "colors": [ { "color": { "r": 0, "g": 0, "b": 0, "a": 1 } }, { "color": { "r": 255, "g": 255, "b": 255, "a": 1 } } ], "side_or_corner": { "verticalSide": "BOTTOM", "horizontalSide": null } } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `default` | オブジェクト | グラデーションの方向性の設定("side\_or\_corner")およびグラデーションの色の分岐点がオブジェクトの配列として含まれます。 | **React** ```jsx theme={null} import { ModuleFields, GradientField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | | - | - | - | | `default` | オブジェクト | グラデーションの方向性の設定("side\_or\_corner")およびグラデーションの色の分岐点がオブジェクトの配列として含まれます。 | ## HubDB行 HubDB行フィールドによって、コンテンツ作成者は定義されたテーブルから個別の行(またはリピーターフィールドを使用する場合は複数行)を選択できます。このフィールドは、ユーザー定義のリスト、テーブル、リソースなどの作成に使用できます。 HubDB行フィールドはモジュール内でサポートされます。HubDB行フィールドは、**CMS Hub** ProfessionalおよびEnterpriseで利用可能です。\_ \_\_ \_ ![HubDB行フィールド](https://f.hubspotusercontent00.net/hubfs/53/Developer%20Site/assets/images/module-theme-fields/hubdb-row-field.png) **JSON** ```json theme={null} { "name": "hubdbrow_field", "label": "HubDB row", "required": false, "locked": false, "table_name_or_id": "3096859", "columns_to_fetch": ["name", "price", "desc"], "display_columns": ["name", "price", "desc"], "display_format": "%0 - %1 :::: %2", "type": "hubdbrow", "default": { "id": 4450468943 } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `table_name_or_id` | 文字列 | HubDBテーブルの名前またはID。このフィールドは必須です。 | | | `columns_to_fetch` | 配列 | テーブルから取得する列名の配列。空白にした場合、テーブル内の全ての列が返されます。 | `[]` | | `display_columns` | 配列 | 選択ラベルに使用する列名の配列。空白にした場合、テーブルの最初の列のみが返されます。 | `[]` | | `display_format` | 文字列 | HubDB行セレクターで列データを表示する形式。パーセント記号と数値を使用して列を指定します。 **例**: 「%0 (%1)」は、「Column0Value (Column1Value)」と表示されます。\_ \_ | `""` | | `default` | オブジェクト | デフォルトのHubDB行を設定するためのIDを含むオブジェクト。 | `{ "id" : null }` | **React** ```jsx theme={null} import { ModuleFields, HubDBRowField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `tableNameOrId` | 文字列 | HubDBテーブルの名前またはID。このフィールドは必須です。 | | | `columnsToFetch` | 配列 | テーブルから取得する列名の配列。空白にした場合、テーブル内の全ての列が返されます。 | `[]` | | `displayColumns` | 配列 | 選択ラベルに使用する列名の配列。空白にした場合、テーブルの最初の列のみが返されます。 | `[]` | | `displayFormat` | 文字列 | HubDB行セレクターで列データを表示する形式。パーセント記号と数値を使用して列を指定します。 **例**: 「%0 (%1)」は、「Column0Value (Column1Value)」と表示されます。\_ \_ | `""` | | `default` | オブジェクト | デフォルトのHubDB行を設定するためのIDを含むオブジェクト。 | `{ "id" : null }` | ## HubDBテーブル HubDBテーブルフィールドを使用すると、コンテンツ作成者がアカウント内の特定のHubDBを指定できるようになります。その情報に基づいて、[HubLフォームタグ](/docs/cms/reference/hubl/tags/standard-tags#form)を使用してページにフォームをレンダリングできます。このフィールドからはテーブルIDが返されます。このIDを[HubDB HubL関数](/docs/cms/start-building/features/storage/hubdb#access-hubdb-data-using-hubl))で使用できます。 HubDBテーブルフィールドはモジュール内でサポートされます。HubDBテーブルフィールドは、**CMS Hub** ProfessionalおよびEnterpriseで利用可能です。\_ \_\_ \_ ![HubDBフィールド](https://cdn2.hubspot.net/hubfs/53/HubDB%20field.png) **JSON** ```json theme={null} { "name": "recipe_table", "label": "Recipe Table", "required": false, "locked": false, "type": "hubdbtable", "default": 2010782 } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | HubDBテーブルID | `null` | **React** ```jsx theme={null} import { ModuleFields, HubDBTableField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | HubDBテーブルID | `null` | ## アイコン アイコンフィールドでは、アイコン選択用UIを提供できます。コンテンツ作成者はこのインターフェイスを使用して簡単にアイコンをモジュールに追加できます。アイコンフィールドにはFontAwesomeアイコンがあらかじめ読み込まれます。 アイコンフィールドはモジュール内でサポートされます。アイコンフィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)として使用できます。 ![アイコンフィールド](https://cdn2.hubspot.net/hubfs/53/icon%20field.png) **JSON** ```json theme={null} { "name": "icon_field", "label": "Icon", "required": false, "locked": false, "icon_set": "fontawesome-6.4.2", "type": "icon", "default": { "name": "accessible-icon", "unicode": "f368", "type": "REGULAR" } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | アイコンオブジェクト | | | `icon_set` | 文字列 | 使用するFontAwesomeアイコンセット。指定可能な値は以下の通りです。
  • `fontawesome-6.4.2`
  • `fontawesome-5.14.0`
  • `fontawesome-5.0.10`
| `fontawesome-5.0.10` | **React** ```jsx theme={null} import { ModuleFields, IconField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | アイコンオブジェクト | | | `iconSet` | 文字列 | 使用するFontAwesomeアイコンセット。指定可能な値は以下の通りです。
  • `fontawesome-6.4.2`
  • `fontawesome-5.14.0`
  • `fontawesome-5.0.10`
| `fontawesome-5.0.10` | ## 画像 画像フィールドでは、コンテンツ作成者は簡単なインターフェイスを使用して画像をモジュールまたはテーマに追加できます。画像フィールドのファイル選択用インターフェイスには、ファイルマネージャーに保管されている画像のリストが表示されます。画像はさまざまな方法で使用および表示される可能性があることから、開発者は、コンテンツ作成者がUIで選択できるサイズ設定オプションの制限ができ、さらに[画像の遅延読み込み](/docs/cms/best-practices/testing-staging-performance/lazy-loading)の許可もできます。 ![画像フィールド](https://cdn2.hubspot.net/hubfs/53/Image%20Field.png) 画像フィールドはモジュール内でサポートされます。画像は[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)として使用できます。メッセージ性のない単なるイメージ画像で、[背景画像](#background-image)でもない場合は、画像フィールドをスタイルフィールドとしてのみ使用してください。これにより、[アクセシビリティー](/docs/cms/best-practices/improve-existing-sites/accessibility)のベストプラクティスに従うことができます。 **JSON** ```json theme={null} { "name": "image_field", "label": "Image", "required": false, "locked": false, "responsive": true, "resizable": true, "show_loading": false, "type": "image", "default": { "size_type": "exact", "src": "", "alt": "image-alt-text", "loading": "lazy", "width": 128, "height": 128, "max_width": 128, "max_height": 128 } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | 画像サイズ、代替テキストなどのプロパティーを設定します。以下のプロパティーを含めることができます。
  • `size_type`:画像のサイズを自動または手動のどちらで設定するか。
    • `"auto"`:元のサイズを基準に、HubSpotによって画像サイズが自動調整されます。
    • `"auto_custom_max"`:`"max_height"`および`"max_width"`プロパティーで指定された最大サイズを基準に、HubSpotによって画像サイズが自動調整されます。
    • `"exact":`:`"height"`および`"width"`プロパティーで指定されたサイズを基準に、HubSpotによって画像サイズが設定されます。
  • `src`:デフォルトの画像のURL。画像の絶対パスにする必要があります。
  • `alt`:画像のデフォルトの代替テキスト。
  • `loading`:画像の[遅延読み込みオプション](/docs/cms/best-practices/testing-staging-performance/lazy-loading)。`"disabled"`(デフォルト)、`"eager"`、`"lazy"`のいずれかを設定できます。
| `{ "size_type" : "auto", "src" : "", "alt" : null, "loading": "disabled" }` | | `responsive` | ブール値 | 画像がレスポンシブ対応か、それとも高さと幅が固定されるかを指定します。 | `true` | | `show_loading` | ブール値 | 画像の[遅延読み込み](/docs/cms/best-practices/testing-staging-performance/lazy-loading)を選択するためのコントロールをページエディターに表示するかどうかを指定します。 | `false` | **React** ```jsx theme={null} import { ModuleFields, ImageField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | 画像サイズ、代替テキストなどのプロパティーを設定します。以下のプロパティーを含めることができます。
  • `size_type`:画像のサイズを自動または手動のどちらで設定するか。
    • `"auto"`:元のサイズを基準に、HubSpotによって画像サイズが自動調整されます。
    • `"auto_custom_max"`:`"max_height"`および`"max_width"`プロパティーで指定された最大サイズを基準に、HubSpotによって画像サイズが自動調整されます。
    • `"exact":`:`"height"`および`"width"`プロパティーで指定されたサイズを基準に、HubSpotによって画像サイズが設定されます。
  • `src`:デフォルトの画像のURL。画像の絶対パスにする必要があります。
  • `alt`:画像のデフォルトの代替テキスト。
  • `loading`:画像の[遅延読み込みオプション](/docs/cms/best-practices/testing-staging-performance/lazy-loading)。`"disabled"`(デフォルト)、`"eager"`、`"lazy"`のいずれかを設定できます。
| `{ "size_type" : "auto", "src" : "", "alt" : null, "loading": "disabled" }` | | `responsive` | ブール値 | 画像がレスポンシブ対応か、それとも高さと幅が固定されるかを指定します。 | `true` | | `showLoading` | ブール値 | 画像の[遅延読み込み](/docs/cms/best-practices/testing-staging-performance/lazy-loading)を選択するためのコントロールをページエディターに表示するかどうかを指定します。 | `false` | ## リンク リンクフィールドでは、コンテンツ作成者がURLやEメールアドレスへのリンクを記載できるよう、簡単なインターフェイスを提供できます。外部リンクの場合、コンテンツ作成者は[外部]を選択します。Eメールリンクの場合は、[Eメールアドレス]を選択します。CMS Hubでホスティングされているコンテンツの場合、[コンテンツ]を使用して、アカウント内の全てのページとブログ記事のリスト、ファイルアセットが記載されたファイル、ブログ、またはアカウント内のブログリストを表示することができます。リンクフィールドはURLフィールドと同様ですが、主な違いとして、リンクフィールドには、[新しいウィンドウで開く]よう指示したり、[検索エンジンに追跡しない]ように指示したりするためのユーザーインターフェイスが表示されます。コンテンツ作成者にこのような制御を行わせるのが適切でない場合は、[URLフィールド](#url)を使用してください。 リンクフィールドはモジュール内でサポートされます。 ![リンクフィールド](https://cdn2.hubspot.net/hubfs/53/link%20field.png) **JSON** ```json theme={null} { "name": "link_field", "display_width": null, "label": "Link", "required": false, "locked": false, "supported_types": [ "EXTERNAL", "CONTENT", "FILE", "EMAIL_ADDRESS", "BLOG", "CALL_TO_ACTION", "PHONE_NUMBER", "WHATSAPP_NUMBER", "PAYMENT" ], "show_advanced_rel_options": true, "type": "link", "default": { "url": { "content_id": null, "type": "EXTERNAL", "href": "" }, "open_in_new_tab": false, "no_follow": false } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | デフォルトのURLと「リンクを開く」動作。このオブジェクトには次のものが含まれます。
  • 次のものが含まれる1つの`url`オブジェクト
    • `content_id`:HubSpotコンテンツにリンクする場合、そのコンテンツのID。外部コンテンツにリンクする場合は`null`に設定されます。
    • `type`:URLのタイプ。サポートされるタイプについては下記をご参照ください。
    • `href`:コンテンツのURL。HubSpotコンテンツにリンクする場合はこれを`null`に設定し、代わりに`content_id`を使用します。
| `{ "url" : { "content_id" : null, "type" : "EXTERNAL", "href" : "" }, "open_in_new_tab" : false, "no_follow" : false, "sponsored" : false, "user_generated_content" : false }` | | `supported_types` | 配列 | コンテンツ作成者が選択できるリンクのタイプ。コンテンツ作成者が利用しないタイプはこのリストから削除してください。有効なタイプは次の通りです。
  • `EXTERNAL`
  • `CONTENT`
  • `FILE`
  • `EMAIL_ADDRESS`
  • `BLOG`
  • `CALL_TO_ACTION`
  • `PHONE_NUMBER`
  • `WHATSAPP_NUMBER`
  • `PAYMENT`
| `[ "EXTERNAL", "CONTENT", "FILE", "EMAIL_ADDRESS", "BLOG", "CALL_TO_ACTION", "PHONE_NUMBER", "WHATSAPP_NUMBER", "PAYMENT" ]` | | `show_advanced_rel_options` | ブール値 | デフォルトでは、制作担当者は`no_follow`オプションのみを選択できます。`true`に設定すると、コンテンツ作成者は以下を選択することもできます。
  • `sponsored`:有料広告リンクなどのスポンサー付きリンク。
  • `user_generated_content`:フォーラムなどの、ユーザーが生成したコンテンツ。
詳しくは[リンク属性](https://moz.com/blog/nofollow-sponsored-ugc)をご参照ください。 | `false` | **React** ```jsx theme={null} import { ModuleFields, LinkField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | デフォルトのURLと「リンクを開く」動作。このオブジェクトには次のものが含まれます。
  • 次のものが含まれる1つの`url`オブジェクト
    • `content_id`:HubSpotコンテンツにリンクする場合、そのコンテンツのID。外部コンテンツにリンクする場合は`null`に設定されます。
    • `type`:URLのタイプ。サポートされるタイプについては下記をご参照ください。
    • `href`:コンテンツのURL。HubSpotコンテンツにリンクする場合はこれを`null`に設定し、代わりに`content_id`を使用します。
| `{ "url" : { "content_id" : null, "type" : "EXTERNAL", "href" : "" }, "open_in_new_tab" : false, "no_follow" : false, "sponsored" : false, "user_generated_content" : false }` | | `supportedTypes` | 配列 | コンテンツ作成者が選択できるリンクのタイプ。コンテンツ作成者が利用しないタイプはこのリストから削除してください。有効なタイプは次の通りです。
  • `EXTERNAL`
  • `CONTENT`
  • `FILE`
  • `EMAIL_ADDRESS`
  • `BLOG`
  • `CALL_TO_ACTION`
  • `PHONE_NUMBER`
  • `WHATSAPP_NUMBER`
  • `PAYMENT`
| `[ "EXTERNAL", "CONTENT", "FILE", "EMAIL_ADDRESS", "BLOG", "CALL_TO_ACTION", "PHONE_NUMBER", "WHATSAPP_NUMBER", "PAYMENT" ]` | | `showAdvancedRelOptions` | ブール値 | デフォルトでは、制作担当者は`no_follow`オプションのみを選択できます。`true`に設定すると、コンテンツ作成者は以下を選択することもできます。
  • `sponsored`:有料広告リンクなどのスポンサー付きリンク。
  • `user_generated_content`:フォーラムなどの、ユーザーが生成したコンテンツ。
詳しくは[リンク属性](https://moz.com/blog/nofollow-sponsored-ugc)をご参照ください。 | `false` | ## ロゴ ロゴフィールドでは、ページ内で使用するロゴ画像を指定する機能をコンテンツ作成者に提供できます。指定しない場合、デフォルトでドメインのロゴが使用されます。サイトのヘッダーやフッターに会社のロゴが表示されるようにするには、このフィールドが役立ちます。ロゴフィールドでは、[遅延読み込み](/docs/cms/best-practices/testing-staging-performance/lazy-loading)も可能です。 ロゴフィールドはモジュール内でサポートされます。 ![ロゴフィールド](https://cdn2.hubspot.net/hubfs/53/logo%20field.png) **JSON** ```json theme={null} { "name": "logo", "label": "Logo", "required": false, "locked": false, "type": "logo", "show_loading": true, "default": { "override_inherited_src": false, "src": null, "alt": null, "loading": "lazy" } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `show_loading` | 文字列 | 画像の[遅延読み込み](/docs/cms/best-practices/testing-staging-performance/lazy-loading)を選択するためのコントロールをページエディターに表示するかどうかを決定します。 | `false` | | `default` | オブジェクト | ロゴオブジェクト。`show_loading`が`true`に設定されている場合は、`loading`プロパティーを含めることで、画像の[遅延読み込みオプション](/docs/cms/best-practices/testing-staging-performance/lazy-loading)を設定できます。次のオプションがあります。
  • `"disabled"`(デフォルト)
  • `"eager"`
  • `"lazy"`
| `{ override_inherited_src: false, src: "", alt: null, width: null, height: null, loading: "disabled" suppress_company_name: false }` | **React** ```jsx theme={null} import { ModuleFields, LogoField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `showLoading` | 文字列 | 画像の[遅延読み込み](/docs/cms/best-practices/testing-staging-performance/lazy-loading)を選択するためのコントロールをページエディターに表示するかどうかを決定します。 | `false` | | `default` | オブジェクト | ロゴオブジェクト。`show_loading`が`true`に設定されている場合は、`loading`プロパティーを含めることで、画像の[遅延読み込みオプション](/docs/cms/best-practices/testing-staging-performance/lazy-loading)を設定できます。次のオプションがあります。
  • `"disabled"`(デフォルト)
  • `"eager"`
  • `"lazy"`
| `{ override_inherited_src: false, src: "", alt: null, width: null, height: null, loading: "disabled" suppress_company_name: false }` | ## メニュー メニューフィールドには、コンテンツ作成者が他のページで再利用できる[ナビゲーションメニュー](/docs/cms/start-building/building-blocks/modules/menus-and-navigation)を作成、編集、選択できるよう、簡単にインターフェイスが表示されます。メインナビゲーション、フッターナビゲーションなどの複数のページに表示されるメニューや、他の[グローバルコンテンツ](/docs/cms/start-building/building-blocks/global-content)で使用されるメニューには、このフィールドを使用すると非常に役立ちます。モジュール内にメニューをレンダリングするには、[メニュータグ](/docs/cms/reference/hubl/tags/standard-tags#menu)または[menu()関数](/docs/cms/reference/hubl/functions#menu)と併せてこのフィールドを使用します。 他のページで再利用するのに適さないメニュー(目次メニューなど)の場合は、[シンプルメニューフィールド](#simple-menu)を使用してください。 メニューフィールドはモジュール内でサポートされます。 ![メニューフィールド](https://cdn2.hubspot.net/hubfs/53/menu%20field.png) **JSON** ```json theme={null} { "name": "menu", "label": "Menu", "required": false, "locked": false, "type": "menu", "default": 12345678911 } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 整数 | メニューの[メニューID](/docs/cms/start-building/building-blocks/modules/menus-and-navigation#get-your-menu-id)。デフォルト値の`null`の場合、ナビゲーション下のデフォルトのメニューが設定されます。 | `null` | **React** ```jsx theme={null} import { ModuleFields, MenuField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 整数 | メニューの[メニューID](/docs/cms/start-building/building-blocks/modules/menus-and-navigation#get-your-menu-id)。デフォルト値の`null`の場合、ナビゲーション下のデフォルトのメニューが設定されます。 | `null` | ## 数値 数値フィールドには、コンテンツ作成者が数値やオプションを入力または調整できるよう、簡単なインターフェイスが表示されます。パーセンテージに基づく項目を作成する場合や、数値を入力する必要があるものには、このフィールドを使用できます。 数値フィールドはモジュール内でサポートされます。数値フィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)として使用できます。 ![数値フィールド](https://cdn2.hubspot.net/hubfs/53/5Cdocs/number-field-example-4.jpg) **JSON** ```json theme={null} { "name": "number_field", "label": "Number", "required": false, "locked": false, "display": "slider", "min": 1, "max": 10, "step": 1, "type": "number", "prefix": "", "suffix": "", "default": null, "placeholder": "50" } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 数値 | デフォルトとして使用する数値。 | `null` | | `prefix` | 文字列 | 数値フィールドの前に追加するプレフィックス。 | | | `suffix` | 文字列 | 数値フィールドの後に追加するサフィックス。 | | | `placeholder` | 文字列 | フィールドにプレースホルダー値を追加します。 | | **React** ```jsx theme={null} import { ModuleFields, NumberField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 数値 | デフォルトとして使用する数値。 | `null` | | `prefix` | 文字列 | 数値フィールドの前に追加するプレフィックス。 | | | `suffix` | 文字列 | 数値フィールドの後に追加するサフィックス。 | | | `placeholder` | 文字列 | フィールドにプレースホルダー値を追加します。 | | > [!NOTE] > > サフィックスパラメーターとプレフィックスパラメーターは、コンテンツエディターでの表示を目的としたもので、フィールドの数値には影響しません。 ## ページ ページフィールドには、コンテンツ作成者がサイトのページやランディングページを選択するためのインターフェイスが表示されます。 ページフィールドから返される値は、選択したページのページIDです。このフィールドを[content\_by\_id](/docs/cms/reference/hubl/functions#content-by-id)関数または[content\_by\_ids](/docs/cms/reference/hubl/functions#content-by-ids)関数と併せて使用すると、選択したページのデータを現在のページで使用できます。 ページフィールドはモジュール内でサポートされます。 ![ページフィールド](https://www.hubspot.jp/hubfs/Page%20field.png) **JSON** ```json theme={null} { "name": "page_field", "label": "Page", "help_text": "Pulls data from the selected page.", "required": false, "locked": false, "placeholder": "Page to pull from", "type": "page", "default": null } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 整数 | デフォルトで選択するページのID。 | `null` | **React** ```jsx theme={null} import { ModuleFields, PageField } from "@hubspot/cms-components/fields"; ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 整数 | デフォルトで選択するページのID。 | `null` | ## リッチテキスト リッチテキストフィールドによって、コンテンツ作成者はWYSIWYGテキストエディターの操作感を活用できます。リッチテキストフィールドの値は、HTMLとして出力されます。コンテンツ作成者にフォーマット設定機能を使用させない場合は、[テキストフィールド](#text)を使用してください。 リッチテキストフィールドはモジュール内でサポートされます。 ![リッチテキストフィールド](https://f.hubspotusercontent00.net/hubfs/53/Rich%20Text%20field.png) **JSON** ```json theme={null} { "name": "description", "label": "Description", "required": false, "locked": false, "type": "richtext", "default": null } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | 表示するコンテンツの文字列はHTMLをサポートします。注:このデフォルトのプロパティー内では`get_asset_url`[関数](/docs/cms/reference/hubl/functions#get-asset-url)を使用できません。 | `""` | | `enabled_features` | 配列 | この項目配列を使用すると、[リッチテキストエディターのツールバー](/docs/cms/reference/fields/rich-text-editor)でコンテンツ編集者に利用可能にするオプションを設定できます。 | | **React** ```jsx theme={null} import { ModuleFields, RichTextField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | 表示するコンテンツの文字列はHTMLをサポートします。注:このデフォルトのプロパティー内では`get_asset_url`[関数](/docs/cms/reference/hubl/functions#get-asset-url)を使用できません。 | `""` | | `enabledFeatures` | 配列 | この項目配列を使用すると、[リッチテキストエディターのツールバー](/docs/cms/reference/fields/rich-text-editor)でコンテンツ編集者に利用可能にするオプションを設定できます。 | | ## シンプルメニュー シンプルメニューフィールドには、コンテンツ作成者がナビゲーションメニューを作成できるよう、簡単なインターフェイスが表示されます。このフィールドで作成する[ナビゲーションメニュー](/docs/cms/start-building/building-blocks/modules/menus-and-navigation)は他のページで再利用できません。再利用可能にしなければならないメニューの場合は、[メニューフィールド](#menu)を使用してください。このフィールドは、目次メニューを非常に長いページの見出しにリンクする場合や、コンテンツへのリンクの一覧を同じページ内に表示させなければならない場合に必要となります。 シンプルメニューフィールドはモジュール内でサポートされます。 ![シンプルメニューフィールド](https://cdn2.hubspot.net/hubfs/53/Screen%20Shot%202020-02-28%20at%207.33.17%20AM.png) **JSON** ```json theme={null} { "name": "toc_menu", "label": "Table of Contents", "required": false, "locked": false, "type": "simplemenu", "default": [ { "isPublished": false, "pageLinkId": null, "pageLinkName": null, "isDeleted": null, "categoryId": null, "subCategory": null, "contentType": null, "state": null, "linkLabel": "Why is product marketing important?", "linkUrl": null, "linkParams": null, "linkTarget": null, "type": "NO_LINK", "children": [ { "isPublished": false, "pageLinkId": null, "pageLinkName": null, "isDeleted": null, "categoryId": null, "subCategory": null, "contentType": null, "state": null, "linkLabel": "Product Marketing Responsibilities", "linkUrl": "#product-marketing-responsibilities", "linkParams": null, "linkTarget": null, "type": "URL_LINK", "children": [] }, { "isPublished": false, "pageLinkId": null, "pageLinkName": null, "isDeleted": null, "categoryId": null, "subCategory": null, "contentType": null, "state": null, "linkLabel": "1. Identify the buyer personas and target audience for your product.", "linkUrl": "#step1", "linkParams": null, "linkTarget": null, "type": "URL_LINK", "children": [] }, { "isPublished": false, "pageLinkId": null, "pageLinkName": null, "isDeleted": null, "categoryId": null, "subCategory": null, "contentType": null, "state": null, "linkLabel": "2. Successfully create, manage and carry out your product marketing strategy.", "linkUrl": "#step2", "linkParams": null, "linkTarget": null, "type": "URL_LINK", "children": [] } ] }, { "isPublished": false, "pageLinkId": null, "pageLinkName": null, "isDeleted": null, "categoryId": null, "subCategory": null, "contentType": null, "state": null, "linkLabel": "How HubSpot can help", "linkUrl": "https://hubspot.com", "linkParams": null, "linkTarget": null, "type": "URL_LINK", "children": [] } ] } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクトの配列 | メニューと子メニューを表すJSON構造。 | `[]` | **React** ```jsx theme={null} import { ModuleFields, SimpleMenuField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクトの配列 | メニューと子メニューを表すJSON構造。 | `[]` | ## 間隔 このフィールドは、コンテンツ作成者がパディングとマージンを設定するためのユーザーインターフェイス(UI)を提供します。間隔フィールドには、フィールドの値に基づいてCSSを返す`.css`プロパティーがあります。詳しくは[生成されるCSSプロパティー](https://developers.hubspot.jp/docs/cms/reference/fields/overview#generated-css)についてご確認ください。 間隔フィールドは[モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)内でサポートされます。間隔フィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)としてのみ使用できます。 ![ページエディターで展開された間隔スタイルフィールドのスクリーンショット](https://www.hubspot.com/hs-fs/hubfs/spacing%20style%20field%20expanded.png?width=320\&quality=low) **JSON** ```json theme={null} { "name": "img_spacing", "label": "Spacing around image", "required": false, "type": "spacing", "limits": { "padding": { "top": { "max": 50, "min": 25, "units": ["px", "pt", "em"] }, "left": { "max": 50, "units": ["px", "pt", "em"] }, "bottom": { "max": 50, "units": ["px", "pt", "em"] } }, "margin": { "top": { "max": 50, "min": 25, "units": ["px", "pt", "em"] }, "bottom": { "max": 25, "units": ["Q", "rem", "em"] } } }, "default": { "padding": { "top": { "value": 57, "units": "px" }, "bottom": { "value": 57, "units": "px" }, "left": { "value": 57, "units": "px" }, "right": { "value": 57, "units": "px" } }, "margin": { "top": { "value": 20, "units": "px" }, "bottom": { "value": 20, "units": "px" } } } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | デフォルトの間隔値を設定します。`padding`および`margin`オブジェクトを含んでいます。
  • `padding`には`top`、`right`、`bottom`、`left`の各オブジェクトを含めることができます。
  • `margin`には`top`および`bottom`オブジェクトを含めることができます。
`units`は、HubSpotでコンテンツ作成者が使用できる単位を設定します。単位について詳しくは、下記をご参照ください。 | `{}` | | `limits` | オブジェクト | 間隔の`min`量と`max`量のガイドラインを設定します。`padding`オブジェクトと`margin`オブジェクトを含んでいます。
  • `padding`には`top`、`right`、`bottom`、`left`の各オブジェクトを含めることができます。
  • `margin`には`top`および`bottom`オブジェクトを含めることができます。
`units`は、HubSpotでコンテンツ作成者が使用できる単位を設定します。単位について詳しくは、下記をご参照ください。 | | **React** ```jsx theme={null} import { ModuleFields, SpacingField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | デフォルトの間隔値を設定します。`padding`および`margin`オブジェクトを含んでいます。
  • `padding`には`top`、`right`、`bottom`、`left`の各オブジェクトを含めることができます。
  • `margin`には`top`および`bottom`オブジェクトを含めることができます。
`units`は、HubSpotでコンテンツ作成者が使用できる単位を設定します。単位について詳しくは、下記をご参照ください。 | `{}` | | `limits` | オブジェクト | 間隔の`min`量と`max`量のガイドラインを設定します。`padding`オブジェクトと`margin`オブジェクトを含んでいます。
  • `padding`には`top`、`right`、`bottom`、`left`の各オブジェクトを含めることができます。
  • `margin`には`top`および`bottom`オブジェクトを含めることができます。
`units`は、HubSpotでコンテンツ作成者が使用できる単位を設定します。単位について詳しくは、下記をご確認ください。 | | 間隔フィールドを使用する場合は、次の点に注意してください。 * `min`または`max`を設定するときには`units`リストを含める必要があります。 * `units`プロパティーがサポートする単位タイプは`%`、`ch`、`em`、`ex`、`in`、`lh`、`pc`、`pt`、`px`、`Q`、`rem`、`vh`、`vmax`、`vmin`、`vw`です。 * コンテンツ作成者が全てのパディングをまとめて編集する場合、HubSpotでは最も高い`min`値と最も低い`max`値が使用されます。また、コンテンツ作成者が使用できるのは、全てのサイドで共有されている単位のみとなります。 ## タグ タグフィールドには、コンテンツ作成者用のブログ タグ ピッカーが表示されます。このタグピッカーからは、ブログタグIDが返されます。このIDを、ブログタグ関連の関数([blog\_tag\_url](/docs/cms/reference/hubl/functions#blog-tag-url)、[blog\_recent\_tag\_posts](/docs/cms/reference/hubl/functions#blog-recent-tag-posts)など)で使用できます。 タグフィールドはモジュール内でサポートされます。 ![タグフィールド](https://cdn2.hubspot.net/hubfs/53/tag%20field.png) **JSON** ```json theme={null} { "id": "c3395cd3-8e60-7e47-2f1b-b7ccf4d669c9", "name": "blog_tag", "label": "Blog Tag", "required": false, "locked": false, "tag_value": "SLUG", "type": "tag", "default": null } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | タグのID。 | `null` | | `tag_value` | 文字列 | 出力値。次のいずれかを使用できます。
  • `ALL`:タグの名前、一意のID、URLスラッグが含まれるオブジェクト。
  • `ID`:タグの一意のID。
  • `NAME`:タグの名前。
  • `SLUG`:タグのURLスラッグ。
| `SLUG` | **React** ```jsx theme={null} import { ModuleFields, TagField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | タグのID。 | `null` | | `tagValue` | 文字列 | 出力値。次のいずれかを使用できます。
  • `ALL`:タグの名前、一意のID、URLスラッグが含まれるオブジェクト。
  • `ID`:タグの一意のID。
  • `NAME`:タグの名前。
  • `SLUG`:タグのURLスラッグ。
| `SLUG` | ## テキスト テキストフィールドを使用して、コンテンツ作成者はリッチテキスト機能を使用せずに、単純にテキストを編集できます。初期状態のテキストフィールドは1行のフィールドとして表示されますが、実際にはテキストエリアに拡大して複数の行を使用できます。コンテンツ作成者に書式を制御させたくない場合、このフィールドを使用可能です。書式設定コントロールを提供する場合は、[リッチテキストフィールド](#rich-text)を使用してください。 テキストフィールドはモジュール内でサポートされます。 ![テキストフィールド](https://cdn2.hubspot.net/hubfs/53/text%20field.png) **JSON** ```json theme={null} { "name": "product_name", "label": "Product Name", "required": false, "locked": false, "validation_regex": "", "allow_new_line": false, "show_emoji_picker": false, "type": "text", "default": "" } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | テキスト文字列。 | `""` | **React** ```jsx theme={null} import { ModuleFields, TextField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | 文字列 | テキスト文字列。 | `""` | ## テキストの位置合わせ このフィールドを使用すると、コンテンツ作成者はテキストコンテンツをコンテナー内の適切な位置に配置できます。このフィールドは他のアセットの位置合わせには使用できません。[他のアセットの位置合わせ用のフィールドタイプ](#alignment)をご利用ください。 テキストの位置合わせフィールドは[モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)内でサポートされます。テキストの位置合わせフィールドは[スタイルフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/overview#style-fields)としてのみ使用できます。 ![テキスト位置合わせフィールド](https://www.hubspot.jp/hubfs/Text%20Alignment%20field.png) **JSON** ```json theme={null} { "name": "heading_align", "label": "Heading alignment", "required": false, "type": "textalignment", "default": { "text_align": "LEFT" } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | `horizontal_align`および`vertical_align`を含むオブジェクト。 | | | `alignment_direction` | 文字列 | 水平方向のみ、垂直方向のみ、または両方の位置合わせコントロールを表示するかどうかを指定します。例:
  • `HORIZONTAL`
  • `VERTICAL`
  • `BOTH`
| `BOTH` | **React** ```jsx theme={null} import { ModuleFields, TextAlignmentField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | `horizontal_align`および`vertical_align`を含むオブジェクト。 | | | `alignmentDirection` | 文字列 | 水平方向のみ、垂直方向のみ、または両方の位置合わせコントロールを表示するかどうかを指定します。例:
  • `HORIZONTAL`
  • `VERTICAL`
  • `BOTH`
| `BOTH` | ## URL URLフィールドは、リンクフィールドと同様の操作感を提供します。このフィールドには、制作担当者がリンクを追加できるよう、UIが表示されます。ただし、URLフィールドには、新しいウィンドウで開くよう指示したり、検索エンジンに追跡しないよう指示したりするためのUIは表示されません。開発者は、このフィールドで使用する値を指定できます。ユーザーが制御できるようにする場合は、代わりに[リンクフィールド](#link)を使用してください。 URLフィールドはモジュール内でサポートされます。 ![URLフィールド](https://cdn2.hubspot.net/hubfs/53/URL%20field.png) **JSON** ```json theme={null} { "name": "url", "label": "URL", "required": false, "locked": false, "supported_types": ["EXTERNAL", "CONTENT", "FILE", "EMAIL_ADDRESS", "BLOG", "PHONE_NUMBER", "WHATSAPP_NUMBER"], "type": "url", "default": { "content_id": null, "href": "http://example.com", "type": "EXTERNAL" } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | タイプ、href、コンテンツID(コンテンツがHubSpotのページまたは投稿である場合)を伴うURLオブジェクト。 | `{ "content_id" : null, "href" : "", "type" : "EXTERNAL" }` | | `supported_types` | 配列 | このフィールド上でコンテンツ作成者が選択できるリンクタイプのリスト。コンテンツ作成者が利用しないタイプはこのリストから削除してください。次のタイプがあります。
  • `EXTERNAL`:外部URLのテキスト入力フィールドをレンダリングします。
  • `CONTENT`:アカウントのウェブサイトとランディングページを含むドロップダウンメニューをレンダリングします。
  • `FILE`:ファイルセレクターをレンダリングします。
  • `EMAIL_ADDRESS`:Eメールアドレスのテキスト入力フィールドをレンダリングします。
  • `BLOG`:アカウントのブログ リスト ページを含むドロップダウンメニューを表示します。
  • `PHONE_NUMBER`:電話番号のテキスト入力フィールドをレンダリングします。番号は`+`で始まり、(国コードを除いて)7~15桁の間でなければなりません。
  • `WHATSAPP_NUMBER`:アカウントの[接続済みWhatsApp電話番号](https://knowledge.hubspot.com/ja/inbox/connect-whatsapp-to-the-conversations-inbox)を含むドロップダウンメニューをレンダリングします。
| `[ "EXTERNAL", "CONTENT", "FILE", "EMAIL_ADDRESS", "BLOG" ]` | **React** ```jsx theme={null} import { ModuleFields, UrlField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | タイプ、href、コンテンツID(コンテンツがHubSpotのページまたは投稿である場合)を伴うURLオブジェクト。 | `{ "content_id" : null, "href" : "", "type" : "EXTERNAL" }` | | `supportedTypes` | 配列 | このフィールド上でコンテンツ作成者が選択できるリンクタイプのリスト。コンテンツ作成者が利用しないタイプはこのリストから削除してください。次のタイプがあります。
  • `EXTERNAL`:外部URLのテキスト入力フィールドをレンダリングします。
  • `CONTENT`:アカウントのウェブサイトとランディングページを含むドロップダウンメニューをレンダリングします。
  • `FILE`:ファイルセレクターをレンダリングします。
  • `EMAIL_ADDRESS`:Eメールアドレスのテキスト入力フィールドをレンダリングします。
  • `BLOG`:アカウントのブログ リスト ページを含むドロップダウンメニューを表示します。
  • `PHONE_NUMBER`:電話番号のテキスト入力フィールドをレンダリングします。番号は`+`で始まり、(国コードを除いて)7~15桁の間でなければなりません。
  • `WHATSAPP_NUMBER`:アカウントの[接続済みのWhatsApp電話番号](https://knowledge.hubspot.com/ja/inbox/connect-whatsapp-to-the-conversations-inbox)を含むドロップダウンメニューをレンダリングします。
| `[ "EXTERNAL", "CONTENT", "FILE", "EMAIL_ADDRESS", "BLOG" ]` | ## 動画 動画フィールドは、リッチテキストフィールドを使用せずにHubSpot動画をモジュールコンテンツに追加するための場所を、コンテンツ作成者に提供します。 ![動画フィールド](https://f.hubspotusercontent00.net/hubfs/53/Developer%20Site/assets/images/module-theme-fields/video-field.png) **JSON** ```json theme={null} { "id": "ca4a319e-5b58-422e-47ac-49ce1b51b507", "name": "videoplayer_field", "label": "Video", "required": false, "locked": false, "type": "videoplayer", "show_advanced_options": false, "default": { "player_id": 32173842991, "height": 1224, "width": 1872, "conversion_asset": { "type": "CTA", "id": "c3e4fa03-2c69-461d-b9af-22b2fde86bc7", "position": "POST" }, "loop_video": false, "mute_by_default": false, "autoplay": false, "hide_control": false } } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | 動画オブジェクト。`player_id`、`height`、`width`、`size_type`、`conversion_asset`、`loop_video`、`mute_by_default`、`autoplay`、`hide_control`の設定を含んでいます。 | `[]` | | `show_advanced_options` | ブール値 | 高度なデフォルトのオプションをコンテンツ作成者に対して表示するかどうかを指定します。 | `false` | **React** ```jsx theme={null} import { ModuleFields, VideoField } from "@hubspot/cms-components/fields"; ``` | プロパティー | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `default` | オブジェクト | 動画オブジェクト。`player_id`、`height`、`width`、`size_type`、`conversion_asset`、`loop_video`、`mute_by_default`、`autoplay`、`hide_control`の設定を含んでいます。 | `[]` | | `showAdvancedOptions` | ブール値 | 高度なデフォルトのオプションをコンテンツ作成者に対して表示するかどうかを指定します。 | `false` | ### conversion\_assetオブジェクトパラメーター | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `type` | 文字列 | `"FORM"`、`"CTA"`、または`""`を指定できます。 | `""` | | `id` | 文字列 | フォームまたはCTAタイプのID | `""` | | `position` | 文字列 | 動画の開始前または終了後にコンバージョンアセットを表示するかどうかを指定します。「PRE」または「POST」のいずれかを指定できます。 | `""` | ``` ``` # モジュールとテーマのフィールドの概要 Source: https://developers.hubspot.jp/docs/cms/reference/fields/overview HubSpotのモジュールとテーマは、制作担当者がフィールドを使用してカスタマイズできます。開発者はfields.jsonファイルを駆使してフィールドの作成と整理を行います。 [モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)と[テーマ](/docs/cms/start-building/building-blocks/overview)内では、フィールドを使用して、制作担当者がモジュールとテーマのスタイルや機能をウェブサイト上で制御できます。モジュールまたはテーマを開発する場合は、`fields.json`ファイルにフィールドを組み込み、テーマエディターとコンテンツエディターに変換します。 ![テーマ設定モジュール](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/theme-settings-fields.png) この記事では、モジュールとテーマのフィールドのオプションを、作成および管理する方法を詳しく説明します。特定のフィールドタイプの詳細については、[モジュールとテーマのフィールドに関するリファレンスガイド](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields)をご覧ください。 ## フィールドの作成と管理 [モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)の`fields.json`ファイルには、[HubSpot CLI](/docs/developer-tooling/local-development/hubspot-cli/reference)を使用してローカル環境で、またはアプリ内のモジュールエディター上でフィールドを追加できます。[テーマ](/docs/cms/start-building/building-blocks/overview)にフィールドを追加するには、CLIを使用してテーマの`fields.json`ファイルをローカル環境で更新する必要があります。 ### HubSpot CLI モジュールフィールドとテーマフィールドを[ローカル環境で構築](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)する場合、モジュールまたはテーマのフォルダー内にある`fields.json`ファイル経由で編集できます。モジュールの場合、[`hs create module`](/docs/developer-tooling/local-development/hubspot-cli/reference)コマンドを使用すると、このファイルが自動作成されます。モジュールエディターで利用可能な全てのフィールドオプションは、`fields.json`ファイルで追加または編集できるプロパティーとして使用できます。これには、リピーターフィールド、グループ、条件が含まれます。ローカル編集の利点の1つとして、[gitのようなバージョン管理システムにモジュールを含め](/docs/cms/start-building/introduction/developer-environment/github-integration)やすくなることが挙げられます。 ### モジュールエディター [デザインマネージャー](/docs/cms/start-building/introduction/developer-environment/design-manager)には組み込みのモジュールエディターUIがあり、モジュールフィールドの[作成](https://knowledge.hubspot.com/ja/design-manager/create-and-edit-modules)、グループ化、[編集](https://knowledge.hubspot.com/ja/design-manager/create-and-edit-modules)に使用できます。モジュールエディターにはモジュールのプレビューがあるため、外観の確認とフィールドのテストが可能です。モジュールは何もないところでは動作しないので、必ず使用予定のテンプレートでテストし、テンプレートレベルのスタイルがモジュールにどのような影響を与えるかを確認する必要があります。なお、ロックされたフォルダーにモジュールが含まれている場合は、この方法で編集できないことに注意しましょう。 ![デザインマネージャーのモジュールエディター](https://cdn2.hubspot.net/hubfs/53/Module%20Editor-1-1.png) > [!WARNING] > > **注**: 主にローカル環境で作業し、フィールドの設定にモジュールエディターを使用する場合は、必ず変更を[fetch(フェッチ)](/docs/developer-tooling/local-development/hubspot-cli/reference#fetch)してください。Gitのようなバージョン管理システムを使用する場合には、特に重要です。 ## フィールドの横配置 デフォルトでは、コンテンツエディターでモジュールフィールドは縦方向に配置されます。ただし、`fields.json`ファイルのフィールドに`display_width`プロパティーを追加し、値を`half_width`に設定して、モジュールフィールドを横並びに配列することもできます。 ![横並びのモジュール](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/side-by-side-modules0.png) `display_width`を`half_width`に設定した単一フィールドは、コンテンツエディターでは半分の幅で表示されます。`fields.json`内でこのフィールドの上または下にあるフィールドを`half_width`に設定すると、フィールドが横並びに配置されます。 ```json theme={null} // Example module fields.json file [ { "name": "number_field", "label": "Number", "required": false, "locked": false, "display": "slider", "min": 1, "max": 10, "step": 1, "type": "number", "prefix": "", "suffix": "", "default": null, "display_width": "half_width" }, { "label": "Description", "name": "description", "type": "text", "required": true, "default": "Add a description", "display_width": "half_width" } ] ``` ## フィールドグループ フィールドが互いに関連している場合、視覚的にグループ化することが適切な場合が少なくありません。これは、モジュールとテーマの両方でサポートされているフィールドグループを作成すれば実現できます。ローカルでフィールドグループを作成するには、`fields.json`で`"group"`という`type`のオブジェクトを作成します。次に、グループ化したいフィールドを格納する`children`配列を含めます。 ![シンプルなフィールドグループのサンプル](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/field-group-example-expanded-burrata.png) ```json theme={null} [ { "id": "9c00985f-01db-ac5d-73f5-80ed6c0c7863", "name": "my_text", "display_width": null, "label": "Text", "required": true, "locked": false, "validation_regex": "", "allow_new_line": false, "show_emoji_picker": false, "type": "text", "default": "Add text here" }, { "type": "group", "name": "recipe_summary_group", "label": "Recipe summary", "expanded": true, "inline_help_text": "Summarize the recipe (title and description)", "children": [ { "type": "text", "label": "Recipe title", "name": "recipe_title", "placeholder": "Burrata salad" }, { "type": "text", "label": "Recipe description", "name": "recipe_description", "placeholder": "fig mostarda, hazelnuts, arugula, vincotto, prosciutto, toasted sourdough" } ] } ] ``` 最初の`children`パラメーター内に別の`"group"`タイプのオブジェクトを追加することで、グループ内にさらにフィールドグループを作成できます。それから、上記と同じ方法でフィールドグループを構築し、`children`を使ってフィールドを格納します。フィールドグループは3レベルでネストできます。 ![2次グループを含むフィールドグループ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/field-group-example-secondary-group.png) ```json theme={null} [ { "type": "group", "name": "recipe_summary_group", "label": "Recipe summary", "inline_help_text": "Summarize the recipe (title and description)", "display": "inline", "children": [ { "type": "text", "label": "Recipe title", "name": "recipe_title", "placeholder": "Burrata salad" }, { "type": "text", "label": "Recipe description", "name": "recipe_description", "placeholder": "fig mostarda, hazelnuts, arugula, vincotto, prosciutto, toasted sourdough" }, { "type": "group", "name": "secondary_group", "label": "Secondary group", "expanded": false, "children": [ { "name": "bg_color", "label": "Background color", "sortable": false, "required": false, "locked": false, "type": "color", "default": { "color": "#ff0000", "opacity": 100 } } ] } ] } ] ``` #### フィールドグループの表示オプション 次のフィールドグループの表示動作をカスタマイズできます。 * **展開**: デフォルトでは、フィールドグループはエディター内で折りたたまれた状態で表示されます。ネストされたグループを含むグループはドリルダウンボタンとして表示され、独自のビューで開き、最も内側のグループには区切り線が表示されます。 ![デフォルト折りたたみグループ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/field-group-collapsed-default.png) * **表示タイプ**: デフォルトでは、ネストされたグループを含まないグループは、子グループの周囲に視覚的な区切り線が付いた折りたたみ可能なセクションとして表示されます。ネストされたグループを含むグループはドリルダウンボタンとして表示され、独自のビューで開き、最も内側のグループは区切り線付きで表示されます。 * **グループアイコン**: 必要に応じて、ラベルの左側に表示する「Font Awesome」アイコンを含めることができます。 ![アイコンの例](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/field-group-icon-example.png) ```json theme={null} [ { "type": "group", "name": "recipe_summary_group", "label": "Recipe summary", "display": "drilldown", "inline_help_text": "Summarize the recipe (title and description)", "icon": { "name": "star", "set": "fontawesome-5.14.0", "type": "SOLID" }, "children": [ { "type": "text", "label": "Recipe title", "name": "recipe_title", "placeholder": "Burrata salad" }, { "type": "text", "label": "Recipe description", "name": "recipe_description", "placeholder": "fig mostarda, hazelnuts, arugula, vincotto, prosciutto, toasted sourdough" } ] } ] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `display` | 文字列 | フィールドグループの表示スタイル。次のいずれかになります。
  • `drilldown`:折りたたまれたグループに、子グループを独自のパネルで開くためのボタンが表示されます。これは、ネストされたグループを含むグループのデフォルト表示です。
  • `accordion`:折りたたまれたグループの下に、子グループを展開するボタンを展開可能なセクションとして表示します。これは、ネストされたグループがないグループのデフォルト表示です。
  • `inline`:グループと子グループをインラインで表示し、グループを折りたたむオプションはありません。
| | `icon` | オブジェクト | ラベルの左側にアイコンを追加します。次のパラメーターがあります。
  • `name`:Font Awesomeアイコンの識別子。
  • `set`:Font Awesomeの[アイコンセット](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#icon)(英語)。
  • `type`:アイコンのスタイル(例:`SOLID`、`REGULAR`)。
| | `expanded` | ブール値 | フィールドグループがデフォルトで展開されるかどうかを指定します。 | #### フィールドグループ内のフィールド値の出力 フィールドグループでは、出力するフィールド値を含むディクショナリー(辞書型)が作成されます。フィールドグループをネストした場合、ネストされたフィールドグループは外側のフィールド グループ ディクショナリー内にディクショナリーとして格納されます。このデータにアクセスするには、状況に応じてルートのテーマまたはモジュール変数からツリー内を走査する必要があります。 ```html example.html theme={null}
{# printing a value from a field group `recipe_summary` is the field group, `title` is the text field. #} {{module.recipe_summary.title}}
``` ```css example.css theme={null} /* Printing a Font field's color value, when the font field is within a field group. `typography` is the field group, `h1_font` is the field */ h1{ color: {{ theme.typography.h1_font.color }}; } ``` #### フィールドグループの特集項目 フィールドグループが繰り返される状況では、出現するフィールドグループのうち1つ以上をキービジュアル項目として指定できます。これにより、項目を個別にスタイル設定して目立たせることができます。例えば、強調表示したいおすすめの製品を表示する製品ページで特に便利です。 フィールドグループあたりの特集項目の最大数を指定できます。その後、制作担当者はエディターで必要に応じて項目を特集項目としてマークできます。 ![cms-field-group-featured-in-app (1)](https://knowledge.hubspot.com/hubfs/Knowledge_Base_2023_2024/cms-field-group-featured-in-app%20\(1\).png) ) フィールドグループ内で特集項目を有効にするには、フィールドグループの設定に`group_occurrence_meta`プロパティーを含めます。このプロパティーには次のプロパティーが格納されます。 * `featured_enabled`:`true`に設定すると、特集項目が有効になります。 * `featured_limit`:使用できる特集項目の最大数。 フィールドグループには`occurrence`プロパティーも含める必要があります。 ```json theme={null} // Field group example { "label": "Card", "name": "card", "type": "group", "occurrence": { "default": 2, "min": 1, "sorting_label_field": "card.title" }, "group_occurrence_meta": { "featured_enabled": true, "featured_limit": 3 }, "children": [ { "label": "Image", "name": "image", "type": "image", "responsive": true, "resizable": true, "show_loading": true, "default": { "loading": "lazy" } }, { "label": "Content", "name": "text", "type": "richtext", "enabled_features": [ "advanced_emphasis", "alignment", "block", "emoji", "font_family", "font_size", "lists", "standard_emphasis" ], "default": "

This is a title

Contextual advertising can be profitable. It can either pay for your hosting and maintenance costs for you website or it can pay for a lot more.

" } ], "default": [ { "image": { "loading": "lazy" }, "text": "

This is a title

Contextual advertising can be profitable. It can either pay for your hosting and maintenance costs for you website or it can pay for a lot more.

" }, { "image": { "loading": "lazy" }, "text": "

This is a title

Contextual advertising can be profitable. It can either pay for your hosting and maintenance costs for you website or it can pay for a lot more.

" } ] } ``` 繰り返しグループ内の項目がキービジュアルであるかどうかを確認するには、`hs_meta`プロパティーを照会します。以下のコードでは、[forループ](https://developers.hubspot.jp/docs/cms/reference/hubl/loops)を使用して、特集項目に設定されているフィールドグループ項目を確認し、各項目のタイトルを`h3`ヘッダーとして表示しています。 `{{ repeated_group_item.hs_meta.occurrence.featured }}` ```hubl theme={null}

Check out this week's featured items:

{% for item in module.card %} {% if item.hs_meta.occurrence.featured %}

{{item.title}}

{% endif %} {% endfor %}
``` ## スタイルフィールド スタイルフィールドは、モジュールまたはテーマの`fields.json`ファイルの特殊なフィールド グループ タイプで、これによって制作担当者がモジュールやテーマのスタイルをページエディターとテーマエディター上で制御できるようになります。モジュールまたはテーマにスタイルフィールドを追加する方法を以下に示します。[スタイルフィールドの使用と整理に関するベストプラクティス](https://developers.hubspot.jp/docs/cms/best-practices/fields)をご参照ください。 ### モジュールのスタイルフィールド モジュールに追加したスタイルフィールドは、モジュール編集時のページエディターの[スタイル]タブに表示されます。 ![スタイルフィールド-モジュールエディター](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/style-field-module-editor0.png) スタイルフィールドをモジュールの`fields.json`ファイルに追加する場合は、全てのフィールドを1つのスタイルグループ内に追加します。ただし、次のようにこのグループ内に複数のグループを含めることができます。 ```json theme={null} // Module style fields [ { "type": "group", "name": "styles", "tab": "STYLE", "children": [ { "name": "img_spacing", "label": "Spacing around image", "required": false, "type": "spacing", "default": { "padding": { "top": { "value": 10, "units": "px" }, "bottom": { "value": 10, "units": "px" }, "left": { "value": 10, "units": "px" }, "right": { "value": 10, "units": "px" } }, "margin": { "top": { "value": 10, "units": "px" }, "bottom": { "value": 10, "units": "px" } } } } ] } ] ``` モジュールのスタイルフィールドとして使用できるフィールドを以下に示します。各フィールドタイプについては、[モジュールとフィールドタイプのガイド](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields)をご確認ください。 * [位置合わせ](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#alignment) * [グラデーション](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#gradient) * [間隔](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#spacing) * [背景画像](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#background-image) * [境界線](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#border) * [ブール値](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#boolean) * [選択](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#choice) * [数値](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#number) * [カラー](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#color) * [アイコン](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#icon) * [画像](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#image) * [フォント](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#font) * [テキストの位置合わせ](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#text-alignment) 詳しくは[モジュールとテーマのフィールドタイプ](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields)をご覧ください。 モジュールの`fields.json`ファイル内のスタイルフィールドの例については、[CMSボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/modules/card.module/fields.json)(英語)をご参照ください。 ### テーマのスタイルフィールド テーマに追加したスタイルフィールドは、テーマエディターの左のサイドバーに表示されます。 ![スタイルフィールド-テーマエディター](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/style-field-theme-editor0.png) 以下のように、テーマの`fields.json`ファイル内にある全てのスタイルフィールドは、テーマエディターの左のサイドバーに追加され、スタイルグループに追加する必要はありません。 ```json theme={null} // Theme style fields [ { "label": "Global colors", "name": "global_colors", "type": "group", "children": [ { "label": "Primary", "name": "primary", "type": "color", "visibility": { "hidden_subfields": { "opacity": true } }, "default": { "color": "#494A52" } }, { "label": "Secondary", "name": "secondary", "type": "color", "visibility": { "hidden_subfields": { "opacity": true } }, "default": { "color": "#F8FAFC" } } ] }, { "label": "Global fonts", "name": "global_fonts", "type": "group", "children": [ { "label": "Primary", "name": "primary", "type": "font", "visibility": { "hidden_subfields": { "size": true, "styles": true } }, "inherited_value": { "property_value_paths": { "color": "theme.global_colors.primary.color" } }, "default": { "fallback": "sans-serif", "font": "Lato", "font_set": "GOOGLE" } }, { "label": "Secondary", "name": "secondary", "type": "font", "visibility": { "hidden_subfields": { "size": true, "styles": true } }, "inherited_value": { "property_value_paths": { "color": "theme.global_colors.primary.color" } }, "default": { "fallback": "serif", "font": "Merriweather", "font_set": "GOOGLE" } } ] }, { "name": "branding_color", "label": "branding_color", "type": "color", "default": { "color": "#3b7bc0", "opacity": 60 }, "inherited_value": { "property_value_paths": { "color": "brand_settings.primaryColor" } } }, { "name": "secondary_branding_color", "label": "Secondary Branding color", "type": "color", "default": { "color": "#ff6b6b", "opacity": 60 }, "inherited_value": { "property_value_paths": { "color": "brand_settings.colors[2]" } } } ] } ] ``` テーマのスタイルフィールドとして使用できるフィールドを以下に示します。各フィールドタイプについては、[モジュールとフィールドタイプのガイド](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields)をご確認ください。 * [ブール値](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#boolean) * [境界線](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#border) * [選択](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#choice) * [カラー](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#color) * [フォント](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#font) * [画像](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#image) * [数値](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#number) * [間隔](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#spacing) 詳しくは[モジュールとテーマのフィールドタイプ](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields)をご覧ください。 テーマの`fields.json`ファイル内のスタイルフィールドの例については、[CMSボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/main/src/fields.json)(英語)をご参照ください。 > [!WARNING] > > **注**: マーケットプレイスプロバイダーは、既存のモジュールの既存のコンテンツフィールドをスタイルフィールドで置き換えることはできません。`fields.json`ファイルのフィールド階層を変更すると、既存のモジュールインスタンスのデータが失われることがあります。代わりに、新しいスタイルフィールドの追加、またはフィールドを適切にグループ化した新しいリストの作成ができます。これにより、貴社の更新によって、貴社のテーマを利用している顧客のコンテンツが破損するような変更は避けられます。以前のモジュールの移行パスについては、[HubSpotアイデアフォーラム](https://community.hubspot.com/t5/HubSpot-Ideas/Create-a-path-to-make-it-possible-to-migrate-existing-fields-to/idi-p/450311#M85938)(英語)をご参照ください。 ### 生成されるCSS 一部のスタイルフィールドには、フィールドの値に基づいてCSSを直接出力する仕組みがあります。これは、グラデーションなどの複雑なスタイルを制御できるフィールドの場合に特に役立ちます。次のスタイルフィールドでは、生成された`.css`プロパティーが使用されます。 * [背景画像](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#background-image) * [境界線](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#border) * [カラー](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#color) * [フォント](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#font) * [グラデーション](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#gradient) * [間隔](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#spacing) * [テキストの位置合わせ](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#text-alignment) ```hubl theme={null} {% require_css %} {% end_require_css %} ``` ## リピーター 情報を形成するモジュールを作成する際には、繰り返し使用される情報があります。例えば、レシピモジュールに「材料」のフィールドがあるとします。ほとんどのレシピの材料は1つにとどまりません。リッチ テキスト フィールドを利用した場合、スタイルの一貫性を確保したり、材料別の機能を追加したりすることはできなくなります。このような状況ではリピーターが役に立ちます。HubSpotには繰り返しフィールドと繰り返しグループという2つの形式のリピーターがあります。 ### 繰り返しフィールド 繰り返しフィールドは通常のフィールドですが、制作担当者がフィールドのインスタンスを追加、削除、再配置できます。上記のレシピモジュールの例では、各材料を繰り返しテキストフィールドにできます。 ![繰り返しフィールド](https://cdn2.hubspot.net/hubfs/53/repeater%20field.png) これにより、制作担当者は必要な数の材料を追加できます。開発者の観点からは、ループ処理によって材料のリストを出力できる配列を使用して、必要な書式と機能を適用できます。 繰り返しフィールドは非常にシンプルな状況に最適です。一般的には、[繰り返しグループ](#repeating-groups)が適切なケースが多くあります。 > [!WARNING] > > **注**: 現在のところ、繰り返しフィールドでデフォルトの順序を設定することはできません。 #### Fields.json内の繰り返しフィールド ```json theme={null} // Repeating field example { "name": "ingredient", "label": "Ingredient", "required": false, "locked": false, "occurrence": { "min": 1, "max": null, "sorting_label_field": null, "default": 1 }, "allow_new_line": false, "show_emoji_picker": true, "type": "text", "default": ["1 cup water"] } ``` #### モジュールのHTML+HubLでの項目のループ ```html theme={null}
    {% for item in module.ingredient %}
  • {{ item }}
  • {% endfor %}
``` ### 繰り返しグループ 繰り返しグループは、繰り返しに対応したフィールドグループです。繰り返しグループを使用すると、制作担当者がフィールドのグループを追加、削除、再配置できるようになります。レシピモジュールの例で、材料リストをショッピングリスト機能と連携する状況を考えてみます。 ![フィールドの繰り返しグループ](https://cdn2.hubspot.net/hubfs/53/Screen%20Shot%202020-02-26%20at%205.19.14%20PM.png) ショッピングリストでは、材料の数量が重要です。数量がテキストフィールドに入力されると同時に、このモジュールがテキストフィールドを解析して、材料から数量が正常に分離されるようにする必要があります。そこで役立つのが、繰り返しグループです。こうしたフィールドの出力に対し、ループ処理を行うことができます。 #### Fields.json内の繰り返しグループ ```json theme={null} // Repeating field group example { "id": "ingredients", "name": "ingredients", "label": "Ingredients", "required": false, "locked": false, "occurrence": { "min": 1, "max": null, "sorting_label_field": "ingredients.ingredient", "default": null }, "children": [ { "id": "ingredients.ingredient", "name": "ingredient", "label": "Ingredient", "required": false, "locked": false, "validation_regex": "", "allow_new_line": false, "show_emoji_picker": false, "type": "text", "default": "Water" }, { "id": "ingredients.quantity", "name": "quantity", "label": "Quantity", "required": false, "locked": false, "display": "text", "min": 0, "step": 1, "type": "number", "default": 1 }, { "id": "ingredients.measurement", "name": "measurement", "label": "Measurement", "help_text": "Unit of measurement (cups, tbsp, etc.)", "required": false, "locked": false, "allow_new_line": false, "show_emoji_picker": false, "type": "text", "default": "cups" } ], "type": "group", "default": [ { "ingredient": "Water", "quantity": 1, "measurement": "cups" } ] } ``` #### モジュール内の繰り返しフィールドのループ処理 ```html theme={null}

Ingredients

    {% for ingredient in module.ingredients %}
  • {{ ingredient.quantity }} {{ ingredient.measurement }} {{ ingredient.ingredient }}
  • {% endfor %}
``` ### リピーターオプション 編集時の利便性を向上すると共に、プログラム側で未対応の値が入力できないように、繰り返しフィールドや繰り返しグループには、制作担当者による追加可能項目数の最小値と最大値を設定できます。 繰り返しグループでは、リピーターを表示するときに、その項目のラベルとして機能するフィールドを設定することもできます。 ![最大出現数](https://cdn2.hubspot.net/hubfs/53/Screen%20Shot%202020-02-26%20at%205.35.29%20PM.png) ```json theme={null} "occurrence" : { "min" : 1, "max" : 4, "sorting_label_field" : "ingredients.ingredient", } ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `max` | 整数 | このグループの最大出現回数。制作担当者がUIにこの数以上のアイテムを追加できないようにします。 | `null` | | `min` | 整数 | このフィールドグループの最小出現数。UIに表示されるアイテムがこの数より少なくなるのを防ぎます。 | `null` | | `sorting_label_field` | 文字列 | ドラッグ操作可能なカード上のUIに表示するテキストを取得できるフィールドのIDです。デフォルト値は、グループ内の最初のフィールドです。 | | ## 継承フィールド `inherited_value`プロパティーは、他のフィールドからデフォルト値を継承するようにフィールドを設定できます。フィールドのデフォルト値全体を別のフィールド値から設定するには、`default_value_path`にターゲットフィールドのフィールド名パスを指定します。`default_value_path`を設定すると、フィールドに設定された`default`は全て無視されます。 他のフィールドの値にアクセスするには、モジュールのHubLコードでのアクセスと同様に、パスの先頭に`module.`を含める必要があります。 ```json theme={null} // Inherited fields { "name": "body_font", "type": "font", "default": { "font": "Helvetica", "color": "#C27BA0" } }, { "name": "h1_font", "type": "font", "default": {}, "inherited_value": { "default_value_path": "module.body_font", "property_value_paths" : { "font": "module.body_font.font", "font_set": "module.body_font.font_set" } } } ``` > [!NOTE] > > フォントファミリーは`font`と`font_set`の組み合わせによって決まるため、フォントフィールドの継承にはこの両方を含める必要があります。詳しくは[フォントフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88)をご確認ください。 複雑なフィールド(値がオブジェクトのフィールド)の場合、ユーザーは`property_value_path`に継承するプロパティーを細かく指定できます。`inherited_value`で参照されるパスにも、複雑なフィールドのフィールド値からのキーを含めることができます。 例えば、色フィールドには、色自体と不透明度を含むオブジェクト値があります。そのため、不透明度なしで色自体の値を取得するには、パスの末尾に`.color`を指定します。例えばフォントフィールドは、個別の色フィールドから色だけを継承できます。 ```json theme={null} // Inherited fields with objects { "name": "secondary_color", "type": "color", "default": { "color": "#C27BA0", "opacity": 100 } }, { "name": "h1_font", "type": "font", "default": { "font": "Helvetica", "size": 12, "size_unit": "px" }, "inherited_value": { "property_value_paths": { "color": "module.secondary_color.color" } } } ``` `default_value_path`と`property_value_paths`の効果を組み合わせて、あるフィールドからデフォルト値を継承しながら、別のフィールドから特定のプロパティー値を継承することもできます。 ```json theme={null} // combining default_value_path and property_value_paths { "name": "body_font", "type": "font", "default": { "font": "Helvetica", "color": "#000000" } }, { "name": "secondary_color", "type": "color", "default": { "color": "#C27BA0", "opacity": 100 } }, { "name": "h1_font", "type": "font", "default": {}, "inherited_value": { "default_value_path": "module.body_font", "property_value_paths": { "color": "module.secondary_color.color" } } } ``` 別のフィールドから継承したフィールドが、ページまたはテーマ設定によって直接変更される場合、制御元のフィールドとの接続は失われます。このフィールドの値に、`default_value_path`または`property_value_paths`によって関連付けられた他のフィールドから影響を与えることはできなくなります。 ## フィールドの可視性 カスタムモジュールとテーマフィールドを定義する際に、`fields.json`ファイル内のフィールドに`visibility`オブジェクトを追加することで、フィールドが表示される条件を構成できます。例えば、サンキューメッセージが選択されているときにはリッチテキスト領域を表示する一方で、リダイレクトが選択されているときはページセレクターを表示するようにフォームモジュールを設定できます。 表示条件は`controlling_field_path`の値を基準に設定することも、`property`パラメーターを使用してフィールド内の特定のプロパティーを基準に設定することもできます。また、個々のフィールドに表示条件を適用したり、フィールドのグループに表示条件を適用して、そのグループ内の全ての要素の表示条件を管理したりすることもできます。 ```json theme={null} "visibility" : { "controlling_field_path" : "field_name", "controlling_value_regex" : "regular_expression_in_controlling_field", "property": "src", "operator" : "EQUAL" } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `controlling_field_path` | 文字列 | 表示条件を制御するフィールドのパス。
  • フィールドがフィールドグループ内にネストされていない場合は、フィールドの名前(つまり`field_name`)を使用します。
  • グループ内にネストされたフィールドの場合、パスはピリオドで区切られたグループ化構造と一致する必要があります。例:
    • `field_group_name.field_name`
    • `parent_group.child_group.field_name`
| | `controlling_value_regex` | 文字列 | フィールドを表示するために存在する必要がある制御フィールドの正規表現。正規表現は(部分文字列ではなく)文字列全体に一致する必要があり、大文字と小文字も区別されます。 | | `operator` | 文字列 | `controlling_value_regex`値との一致方法を定義する演算子。次のいずれかの演算子を使用できます。
  • `NOT_EQUAL`
  • `EQUAL`
  • `EMPTY`
  • `NOT_EMPTY`
  • `MATCHES_REGEX`
| | `property` | 文字列 | 文字列ターゲットフィールドの特定のプロパティーに基づいて表示条件を設定します。例えば、画像フィールドの`src`プロパティーが特定の値と等しい場合に、このフィールドが表示されるようにできます。デフォルトでは、このフィールドに値が指定されていない場合、表示条件は文字列に変換された`controlling_value_regex`値に基づくことになります。 | `visibility`オブジェクト内に`occurrence_options`オブジェクトを含めると、繰り返されるフィールドの値数をターゲットにすることもできます。このオブジェクトには、比較する`count`と`operator`の定義を含める必要があります。例えば、別の繰り返しフィールドに少なくとも2つの項目がある場合にのみテキストフィールドを表示するには、`visibility`を次のように定義します。 ```json theme={null} [ { "type": "group", "name": "ingredients", "label": "Recipe ingredients", "display": "drilldown", "children": [ { "name": "ingredient", "label": "Ingredient", "occurrence": { "min": 1, "max": null, "default": 1 }, "type": "text", "default": ["1 cup water"] }, { "type": "text", "label": "Conditional field", "name": "conditional_field", "visibility": { "controlling_field_path": "ingredients.ingredient", "occurrence_options": { "count": 2, "operator": "GREATER_THAN_OR_EQUAL" } } } ] } ] ``` 次のいずれかの`operater`の値を使用できます。 * `"NOT_EQUAL"` * `"EQUAL"` * `"EMPTY"` * `"NOT_EMPTY"` * `"GREATER_THAN"` * `"GREATER_THAN_OR_EQUAL"` * `"LESS_THAN"` * `"LESS_THAN_OR_EQUAL"` ### 高度な可視性 `visibility`属性で同時に複数の条件をサポートすることはできません。複数の演算子を使用して複数の条件を追加し、演算の順序も指定するには、`advanced_visibility`を使用します。 ```json theme={null} "visibility_rules" : "ADVANCED", "advanced_visibility" : { "boolean_operator" : "AND", "criteria" : [{ "controlling_field_path" : "field_name", "controlling_value_regex" : "regular_expression_in_controlling_field", "operator" : "MATCHES_REGEX" }, { "controlling_field_path" : "field_name", "controlling_value_regex" : "regular_expression_in_controlling_field", "operator" : "EQUAL" }] } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `visibility_rules` | 文字列 | デフォルトでは、このパラメーターの値は`SIMPLE`に設定されます。`advanced_visibility`を使用する場合は、`ADVANCED`に設定します。 | | `boolean_operator` | 文字列 | 条件付き基準のブール演算子。`AND`または`OR`のいずれかにできます。 | | `criteria` | 配列 | フィールドを表示するために一致する必要がある条件付き基準を定義する、visibilityオブジェクトからなる配列。 | | `controlling_field_path` | 文字列 | 表示条件を制御するフィールドのドットパス。
  • フィールドがフィールドグループ内にネストされていない場合は、フィールドの名前(つまり`field_name`)を使用します。
  • グループにネストされたフィールドの場合、パスはピリオドで区切られたグループ化構造と一致する必要があります。例:
    • `field_group_name.field_name`
    • `parent_group.child_group.field_name`
| | `controlling_value_regex` | 文字列 | フィールドを表示するために一致する必要がある、制御フィールドの値。`MATCHES_REGEX`演算子を使用する場合、正規表現は(部分文字列ではなく)文字列全体に一致する必要があり、大文字と小文字も区別されます。`controlling_field_path`が設定されている一方、`controlling_value_regex`は設定されていないフィールドは、制御フィールドの値がnullでも空白でもない場合に表示されます。 | | `operator` | 文字列 | `controlling_value_regex`値との一致方法を定義する演算子。次のいずれかの演算子を使用できます。
  • `NOT_EQUAL`
  • `EQUAL`
  • `EMPTY`
  • `NOT_EMPTY`
  • `MATCHES_REGEX`
`MATCHES_REGEX`を使用する場合は、正規表現の構文が必要です。 | 一例として、以下に[デフォルトの支払いモジュール](https://developers.hubspot.jp/docs/cms/reference/modules/default-modules)の最初の部分を記載します。完全なコードを確認するには、HubSpotでこのモジュールを複製してからローカル環境にダウンロードして、モジュールの`fields.json`ファイルを表示してください。 ```json theme={null} [ { "id": "payment", "name": "payment", "display_width": null, "label": "Payment", "required": true, "locked": false, "type": "payment", "default": { "id": null, "properties": {} } }, { "id": "checkout_location", "name": "checkout_location", "display_width": null, "label": "Checkout behavior", "required": false, "locked": false, "visibility": { "controlling_field_path": "payment", "controlling_value_regex": "id\":\\d+", "operator": "MATCHES_REGEX" }, "display": "radio", "choices": [ ["new_tab", "Open in a new tab"], ["overlay", "Sliding overlay"] ], "type": "choice", "default": "new_tab" }, { "id": "button_text", "name": "button_text", "display_width": null, "label": "Button text", "required": true, "locked": false, "validation_regex": "", "visibility": { "controlling_field_path": "payment", "controlling_value_regex": "id\":\\d+", "operator": "MATCHES_REGEX" }, "allow_new_line": false, "show_emoji_picker": false, "type": "text", "default": "Checkout" }, { "id": "icon", "name": "icon", "display_width": null, "label": "Icon", "required": false, "locked": false, "visibility_rules": "ADVANCED", "advanced_visibility": { "boolean_operator": "AND", "criteria": [ { "controlling_field_path": "payment", "controlling_value_regex": "id\":\\d+", "operator": "MATCHES_REGEX" }, { "controlling_field_path": "add_icon", "controlling_value_regex": "true", "operator": "EQUAL" } ], "children": [] }, "children": [ { "id": "icon.icon", "name": "icon", "display_width": null, "label": "Icon", "required": true, "locked": false, "icon_set": "fontawesome-5.0.10", "type": "icon", "default": { "name": "hubspot", "type": "SOLID", "unicode": "f3b2" } }, { "id": "icon.position", "name": "position", "display_width": null, "label": "Position", "required": true, "locked": false, "display": "select", "choices": [ ["left", "Left"], ["right", "Right"] ], "type": "choice", "default": "left" } ], "tab": "CONTENT", "expanded": false, "type": "group" } // rest of fields.json code ] ``` 上記のコードによって、次のような動作になります。 最初のフィールド(`payment`)は、コンテンツ制作担当者が特定の支払いリンクを作成するために使用する、必須のフィールド(ドロップダウンメニュー)です。HubSpotでは、コンテンツ制作担当者が最初にこのモジュールをページに追加すると、次のUIが表示されます。 ![支払いリンクの選択肢](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/payment-link-selector.png) 支払いリンクを選択すると、上記のUIの後に続いて3つのフィールド(`checkout_location`、`button_text`、`icon`)が表示されます。このようになるのは、`payment`フィールドによって制御され、paymentフィールドの`id`パラメーターのID値を必要とする`visibility`属性が、これらのフィールドに設定されているためです。 `icon`フィールド自体は`advanced_visibility`を使用しており、`payment`フィールドに支払いリンクが存在し、かつ、`add_icon`チェックボックスがオンにされている場合にのみ表示されます。 `fields.json`内で可視性を設定するだけでなく、デザインマネージャーでフィールドの「表示条件」オプションを編集して可視性を設定することもできます。 ![表示条件オプション](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/display-conditions-property.png) デザインマネージャーで表示条件を設定した後は、[CLIを使用](/docs/developer-tooling/local-development/hubspot-cli/reference#fetch)してこのモジュールを[フェッチ](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)し、モジュールの`fields.json`ファイル内で`visibility`属性を確認できます。 ## 条件付きフィールドの無効化 フィールドに条件を追加して、指定された条件が満たされたときに編集不可にすることができます。フィールドを無効にした場合、コンテンツエディターでコンテキストを提供するために、フィールドの上に表示するメッセージを設定することもできます。 ![Screenshot 2023-05-23 at 4.10.28 PM](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/Screenshot%202023-05-23%20at%204.10.28%20PM.png) 条件とメッセージは、フィールドの`disabled_controls`オブジェクトで設定されます。フィールドを編集可能にするための条件は、`rules`オブジェクト内で設定され、[advanced\_visibility](#field-visibility)と同じ形式に従います。 以下のコードは、`rules`基準の単純な実装と高度な実装の両方を示しています。 * `simple_page`フィールドには、`text_field`が`testing`に設定されている場合にフィールドを無効にするロジックが含まれています。 * `fancy_page`フィールドには、`text_field`または`text_field_2`のいずれかがそれぞれ`testing`と`testing2`に等しくない値に設定されている場合にフィールドを無効にするロジックが含まれています。 ```json theme={null} // example fields.json [ { "type": "text", "name": "text_field", "label": "Text field" }, { "type": "text", "name": "text_field_2", "label": "Text field 2" }, { "type": "page", "label": "Simple Page", "name": "simple_page", "disabled_controls": { "message": "This field is disabled", "rules": { "criteria": [ { "controlling_field_path": "text_field", "operator": "EQUAL", "controlling_value_regex": "testing" } ] } } }, { "type": "page", "label": "Fancy Page", "name": "fancy_page", "disabled_controls": { "message": "This field is disabled", "rules": { "boolean_operator": "OR", "criteria": [ { "controlling_field_path": "text_field", "operator": "NOT_EQUAL", "controlling_value_regex": "testing" }, { "controlling_field_path": "text_field_2", "operator": "NOT_EQUAL", "controlling_value_regex": "testing2" } ] } } } ] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `message` | 文字列 | フィールドが無効な場合にコンテンツエディターに表示するメッセージ。 | | `rules` | オブジェクト | フィールドの編集を有効にするための条件。 | | `criteria` | 配列 | フィールドを表示するために満たす必要がある基準を定義する条件オブジェクトの配列。この配列には、`boolean_operator`パラメーターを使用して`AND`または`OR`ロジックで区切られた複数の条件オブジェクトを含めることができます。 | | `boolean_operator` | 文字列 | 条件付き基準のブール演算子。`AND`または`OR`のいずれかにできます。指定しなかった場合、デフォルトで`AND`になります。 | | `controlling_field_path` | 文字列 | 表示条件を制御するフィールドのドットパス。
  • フィールドがフィールドグループ内にネストされていない場合は、フィールドの名前(つまり`field_name`)を使用します。
  • グループにネストされたフィールドの場合、パスはピリオドで区切られたグループ化構造と一致する必要があります。例:
    • `field_group_name.field_name`
    • `parent_group.child_group.field_name`
| | `controlling_value_regex` | 文字列 | フィールドを表示するために一致する必要がある、制御フィールドの値。`MATCHES_REGEX`演算子を使用する場合、正規表現は(部分文字列ではなく)文字列全体に一致する必要があり、大文字と小文字も区別されます。`controlling_field_path`が設定されている一方、`controlling_value_regex`は設定されていないフィールドは、制御フィールドの値がnullでも空白でもない場合に表示されます。 | | `operator` | 文字列 | `controlling_value_regex`値との一致方法を定義する演算子。次のいずれかの演算子を使用できます。
  • `NOT_EQUAL`
  • `EQUAL`
  • `EMPTY`
  • `NOT_EMPTY`
  • `MATCHES_REGEX`
`MATCHES_REGEX`を使用する場合は、正規表現の構文が必要です。 | ## テーマ エディター フィールドのハイライト機能 テーマエディターでプレビューハイライト機能を使用すると、コンテンツ作成者が、どのフィールドがどのページ要素を制御しているかを理解するのに役立ちます。プレビューハイライト機能は、テーマフィールドをそのフィールドの影響を受けるCSSセレクターにマッピングすることによって機能します。テーマエディターでフィールドにカーソルを合わせると、そのフィールドがマッピングされている要素がボックスで囲んで表示されるという仕組みです。 テーマフィールドのプレビューハイライト機能を構成するには、テーマのルートディレクトリー内に、テーマフィールドとCSSセレクターのリストとのマッピングを指定するための`editor-preview.json`ファイルを追加します。このファイルで、関連するCSSセレクターが含まれる、ハイライト表示する対象のスタイルフィールドごとに、次の形式を使用して配列を含めます。 ```json theme={null} // editor-preview.json { "selectors": { "theme.settings.path.1": [ ], "theme.settings.path.2": [ ], } } ``` 例えば、以下のコードは、プライマリー フォント フィールドによって制御されるページ要素をハイライト表示します。完全な例については、デフォルトのGrowthテーマの`editor-preview.json`ファイルでご確認ください。 ```json theme={null} // editor-preview.json { "selectors": { "fonts.primary": [ "button, .button, .hs-button", "form input[type='submit'], form .hs-button", ".error-page:before", "p", "blockquote > footer", "form td.is-today .pika-button", "form .is-selected .pika-button", "th, td", ".blog-listing__post-tag", ".blog-listing__post-author-name, .blog-post__author-name", ".pagination__link-icon svg", ".tabs__tab", "a", ".button.button--simple", ".pagination__link .pagination__link-icon svg", ".card--dark", ".card--light", ".card--light summary, .card--light p, .card--light h1, .card--light h2, .card--light h3, .card--light h4, .card--light h5, .card--light h6, .card--light a:not(.button), .card--light span, .card--light div, .card--light li, .card--light blockquote", ".card--light .accordion__summary:before", "tfoot th, tfoot td", ".header__language-switcher-current-label > span", ".header__language-switcher-child-toggle svg", ".header__language-switcher .lang_list_class a:not(.button)", ".header__menu-link", ".header__menu-item--depth-1 > .header__menu-link:not(.button)", ".header__menu-item--depth-1 .header__menu-child-toggle svg", ".header__menu-toggle svg", ".header__language-switcher .header__language-switcher-current-label > span", ".header p, .header h1, .header h2, .header h3, .header h4, .header h5, .header h6, .header a:not(.button), .header span, .header li, .header blockquote, .header .tabs__tab, .header .tabs__tab, .header .tabs__tab, .header .tabs__tab", ".footer .hs-menu-wrapper a", ".footer h1, .footer h2, .footer h3, .footer h4, .footer h5, .footer h6, .footer p, .footer a:not(.button), .footer span, .footer div, .footer li, .footer blockquote, .footer .tabs__tab, .footer .tabs__tab, .footer .tabs__tab, .footer .tabs__tab", ".footer hr", "form label", "#email-prefs-form, #email-prefs-form h1, #email-prefs-form h2", "form legend", "form input[type='text'], form input[type='email'], form input[type='password'], form input[type='tel'], form input[type='number'], form input[type='search'], form select, form textarea", ".backup-unsubscribe input[type='email']", "form .legal-consent-container, form .legal-consent-container .hs-richtext, form .legal-consent-container .hs-richtext p", "form .hs-richtext, form .hs-richtext *, form .hs-richtext p, form .hs-richtext h1, form .hs-richtext h2, form .hs-richtext h3, form .hs-richtext h4, form .hs-richtext h5, form .hs-richtext h6", "button, button, button, .button, .button, .button, .hs-button, .hs-button, .hs-button", "button, .button, .hs-button", ".button.button--secondary, .button.button--secondary, .button.button--secondary", ".button.button--secondary", ".header__menu-item--depth-1 > .header__menu-link, .header__menu-item--depth-1 > .header__menu-link", ".header__menu-item--depth-1 > .header__menu-link", ".header__menu-submenu .header__menu-link, .header__menu-submenu .header__menu-link", ".header__language-switcher .lang_list_class a, .header__language-switcher .lang_list_class a", ".header__menu-submenu .header__menu-link:not(.button)", ".footer .hs-menu-wrapper a, .footer .hs-menu-wrapper a", ".footer .hs-menu-wrapper a", "form .hs-richtext a", ".header__menu-item--depth-1 > .header__menu-link--active-link:not(.button)", ".footer .hs-menu-wrapper .active > a" ] } } ``` ![Growthテーマ-hover](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/growth-theme-hover.png) このファイルを作成するには、まず、次の[CLIコマンド](/docs/developer-tooling/local-development/hubspot-cli/reference#generate-theme-field-selectors-for-in-app-highlighting)を実行してファイルを生成します。ファイルの生成中にスクリプトが実行されて、初期フィールド セレクター マッピングが設定されます。 ```shell theme={null} hs theme generate-selectors ``` | パラメーター | 説明 | | - | - | | `theme-directory-path` | テーマディレクトリーへのパス。 | このコマンドを実行した後、`editor-preview.json`ファイルを確認し、フィールドとセレクターが適切にマッピングされるように調整する必要があります。[Generate-selectors](/docs/developer-tooling/local-development/hubspot-cli/reference#generate-theme-field-selectors-for-in-app-highlighting)コマンドでは、どのフィールドがどのセレクターに影響するかについて基本的な推測が行われるだけなので、テーマがどのように作成されているかに基づいて修正する必要があります。例えばこのコマンドでは、モジュールがスタイル設定をオーバーライドしていたり、マクロが使用されたりしていても検出できません。 設定されているマッピングをテストするには、テーマをアカウントにアップロードし、そのアカウント内でテーマエディターを表示します([設定]>[ウェブサイト]>[テーマ]>[テーマを表示])。 # リッチ テキスト エディターの設定 Source: https://developers.hubspot.jp/docs/cms/reference/fields/rich-text-editor カスタムモジュール内のリッチ テキスト エディターの機能として、設定ツールバーのコンポーネントを開発者が削除できる機能が用意されました。 開発者の方なら、WYSIWYGエディターの機能によっては使い方を誤ると、ブランドの一貫性を確保できなくなり、コンテンツのデザインとフローに影響が生じたという経験があるはずです。カスタムモジュール内のリッチ テキスト エディターの機能として、fields.jsonファイルの中の`enabled_features`プロパティーを使用して、設定ツールバーのコンポーネントを開発者が削除できる機能が用意されました。 > [!WARNING] > > 注:以下は、ローカル開発においてリッチ テキスト フィールドを使用するカスタムモジュールにのみ該当します。この機能を使用しても、リッチ テキスト エディターから削除されたオプションの機能が無効になることはなく、オプションが表示されなくなるだけです。既存のコンテンツが影響を受けないように下位互換性を維持することが目的です。 ## enabled\_featuresを使用する方法 リッチ テキスト フィールド オブジェクトを使用しているfields.jsonファイルの中で、以下のように、有効なツールバーオプションを`enabled_features`プロパティーの配列に追加することにより、特定の機能を有効化できます。 ```json theme={null} // Rich text field with only Bold, Link, and Image available in the Toolbar { "name": "description", "label": "Description", "required": false, "locked": false, "type": "richtext", "default": null, "enabled_features": ["bold", "link", "image"] } ``` これにより制作担当者には、以下の画像のように、追加されたオプションのみが有効化された状態でリッチ テキスト エディターが表示されます。 > [!NOTE] > > 注:エディターの既定のスタイルに戻す[スタイルをクリア]ボタンなど、一部の機能は常に有効で、削除はできません。`enabled_features`プロパティーを省略すると、全ての機能が表示されます。 ![さまざまな機能を有効にしたRTEツールバーの例。](https://f.hubspotusercontent00.net/hubfs/53/Developer%20Site/assets/images/custom_rte_toolbar.jpg) ## 機能リスト 以下に、`enabled_features`プロパティーを使用する場合に、個別に有効化できる機能を示します。 ### コントロールのグループ | オプション | Description | | - | - | | `colors` | テキスト色と背景色のコントロール。 | | `fonts` | フォントファミリーとフォントサイズのコントロール。 | | `indents` | アウトデントとインデントのコントロール。 | | `lists` | 箇条書きと番号リストのコントロール。 | | `standard_emphasis` | 太字、イタリック、下線のコントロール。 | | `advanced_emphasis` | 打ち消し線、上付き文字、下付き文字、コード書式設定のコントロール。 | | `glyphs` | 絵文字、特殊文字、アイコンのコントロール。 | ### テキスト書式設定 | オプション | Description | | - | - | | `block` | スタイル切り替えのドロップダウンメニューを表示します。 | | `font_family` | フォント切り替えのドロップダウンメニューを表示します。 | | `font_size` | フォントサイズのドロップダウンメニューを表示します。 | | `bold` | 太字ボタンを表示します。 | | `italic` | イタリックのボタンを表示します。 | | `underline` | 下線ボタンを表示します。 | | `text_color` | テキスト色ボタンを表示します。 | | `background_color` | 背景色ボタンを表示します。 | | `alignment` | 位置合わせボタンを表示します。 | | `bulleted_list` | 箇条書きリストボタンを表示します。 | | `numbered_list` | 番号リストボタンを表示します。 | | `lineheight` | 行の高さボタンを表示します。 | | `outdent` | アウトデントボタンを表示します。 | | `indent` | インデントボタンを表示します。 | | `strikethrough` | 取り消し線ボタンを表示します。 | | `superscript` | 上付き文字ボタンを表示します。 | | `subscript` | 下付き文字ボタンを表示します。 | | `code_format` | コード書式設定ボタンを表示します。 | ### 挿入ボタン | オプション | Description | | - | - | | `link` | リンクボタンを表示します。 | | `image` | 画像ボタンを表示します。 | | `emoji` | 絵文字ボタンを表示します。 | | `personalize` | パーソナライズのツールバー項目を表示します。 | | `cta` | 挿入メニューの下にCTAメニュー項目を表示します。 | | `embed` | 挿入メニューの下に埋め込みメニュー項目を表示します。 | | `video` | 挿入メニューの下に動画メニュー項目を表示します。 | | `table` | 挿入メニューの下にテーブルメニュー項目を表示します。 | | `charmap` | 挿入メニューの下に特殊文字メニュー項目を表示します。 | | `anchor` | 挿入メニューの下にアンカーメニュー項目を表示します。 | | `hr` | 挿入メニューの下に水平線メニュー項目を表示します。 | | `nonbreaking_space` | 挿入メニューの下に、改行しないスペース(nbsp)のメニュー項目を表示します。 | | `icon` | 挿入メニューの下にアイコンメニュー項目を表示します。 | ### 詳細オプション | オプション | Description | | - | - | | `source_code` | 詳細メニューの下にソース コード メニュー項目を表示します。 | | `visual_blocks` | 詳細メニューの下にブロック表示メニュー項目を表示します。 | # HubLフィルター Source: https://developers.hubspot.jp/docs/cms/reference/hubl/filters HubSpotのCMS開発者向けのHubLフィルターの一覧と例。 フィルターはHubLの最終出力に影響を与えます。さまざまなHubL文と式にフィルターを適用することで、サーバーから出力されるテンプレートマークアップを変更できます。 フィルターの基本構文は`|filtername`です。フィルターは文または式のすぐ後に、区切り記号で囲んで追加します。パラメーターを括弧内に追加指定できるフィルターもあります。文字列、数値、およびブール値のパラメーターを使用するフィルターの基本構文は、`|filtername("stringParameter", 10, true)`です。文字列パラメーターについては、引用符で囲む必要があることに注意してください。また、HubLフィルターにはエイリアスが存在し、それをプライマリーフィルターと同じ目的に使用できます。 以下にて、サポートされる全てのHubLフィルターを示します。 > [!WARNING] > > ### 注: > > CMS Hub上のページやブログ記事では、コンタクトトークンや会社トークンなどの[パーソナライズトークン](https://knowledge.hubspot.com/ja/website-pages/personalize-your-content)にHubLフィルターを適用できますが、Eメールでは適用できません。 ## abs 数値の絶対値を取得します。このフィルターを使用すると、常に正の数値が得られます。 ```text hubl.txt theme={null} {% set my_number = -53 %} {{ my_number|abs }} ``` ```text レンダリングされる出力.txt theme={null} 53 ``` ## add 1つの数値を別の数値に加算します。このフィルターは[+演算子](/docs/cms/reference/hubl/operators-and-expression-tests#math)と同じように機能します。括弧内のパラメーターは、最初の数値に合わせる加算値です。 ```text hubl.txt theme={null} {% set my_num = 40 %} {{ my_num|add(13) }} ``` ```text 出力のレンダリング.txt theme={null} 53 ``` ## attr ディクショナリー(辞書型)の属性をレンダリングします。このフィルターの機能は、`content.absolute_url`など、ディクショナリーに含まれる変数を出力する機能と同等です。 ```text hubl.txt theme={null} {{ content|attr("absolute_url") }} ``` ```text 出力のレンダリング.txt theme={null} https://developers.hubspot.com/docs/cms/hubl/filters ``` | パラメーター | 説明 | | - | - | | `attribute_name` | どの属性を出力するかを指定します | ## batch 1つのシーケンス内の複数項目をグループ化します。 以下の例では、フルーツの種類からなるシーケンスが変数に格納されています。`batch`フィルターは、シーケンスを反復処理するループに適用されます。入れ子ループが3回実行され、行ごとに3種類のフルーツを出力した後、外側のループが再び実行されます。フルーツが5種類しかないので、最終的な出力では最後の項目が` `(2番目のパラメーター)に置き換えられる点にご注目ください。 ```html example.html theme={null} {% set rows = ["apples", "oranges", "pears", "grapes", "blueberries"] %} {% for row in rows|batch(3, " ") %} {% for column in row %} {% endfor %} {% endfor %}
{{ column }}
``` ```html example.html theme={null}
apples oranges pears
grapes blueberries  
``` | パラメーター | タイプ | 説明 | | - | - | - | | `linecount` | 数値 | バッチに含める項目の数。 | | `fill_with` | 文字列 | 項目の欠落がある場合に何で埋めるかを指定します。 | ## between\_times 指定された時間単位を使用して、2つの日時オブジェクト間の差異を計算します。 > [!WARNING] > > ### 注: > > このフィルターは、日付を返す変数でのみ使用してください。2024年9月30日以降、このフィルターはnull値が渡された場合に現在の日付を返さなくなります。この日付を過ぎると、フィルター内のnull値は2024年9月30日を返します。 ```text hubl.txt theme={null} {% set begin = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {% set end = "2018-07-20T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {{ begin|between_times(end, "days") }} ``` ```text 出力のレンダリング.txt theme={null} 6 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `end` | 日時オブジェクト | 終了日時オブジェクト。 | | `timeunit` | 文字列 | 有効な時間単位は、`nanos`、`micros`、`millis`、`seconds`、`minutes`、`hours`、`half_days`、`days`、`weeks`、`months`、`years`、`decades`、`centuries`、`millennia`、`eras`です。 | ## bool テキスト文字列の値をブール値に変換します。 ```text hubl.txt theme={null} {% if "true"|bool == true %}hello world{% endif %} ``` ```text 出力のレンダリング.txt theme={null} hello world ``` ## capitalize 変数値の最初の文字を大文字にします。最初の文字が大文字になり、その他の文字は全て小文字になります。スペースまたはハイフンで区切られている後続の単語について、最初の文字は大文字になりません。 ```text hubl.txt theme={null} {% set sentence = "the first letter of a sentence should always be capitalized." %} {{ sentence|capitalize }} ``` ```text 出力のレンダリング.txt theme={null} The first letter of a sentence should always be capitalized. ``` ## center 空白を使用して、指定されたフィールドの長さ内でテキストを中央に配置します。HubSpotのHTMLコンパイラーは自動的に空白を除去するので、このフィルターは推奨されず、特に役立つわけでもありませんが、包括的な説明のためにここで説明しています。 以下の例では、空白が除去されないようにpreタグ内の変数にこのフィルターを適用しています。 ```html example.html theme={null}
{% set var = "string to center" %}
before{{ var|center(80) }}after
``` ```html example.html theme={null}
before                                string to center                                after
``` | パラメーター | タイプ | 説明 | | - | - | - | | `width` | 数値 | テキストを中央揃えするための空白の長さを指定します。 | ## convert\_rgb HEX値をRGB文字列に変換します。色変数をRGBに変換して、RGBA CSS宣言で使用する必要がある場合に便利です。以下の例では、色モジュールによって設定された値がRGB値に変換され、RGBA CSS宣言で使用されます。 ```html example.html theme={null} {% set my_color = "#FFFFFF" %} {{ my_color|convert_rgb }} {% set my_color2="#000000" %}
``` ```html example.html theme={null} 255, 255, 255
``` ## cut 値から文字列を除去します。このフィルターを使用すると、一致する特定の部分文字列を切り取ることができます。パラメーターには、削除対象となる部分文字列を指定します。以下の例では、スペースと単語「world」が元の変数値から除去されます。 ```text hubl.txt theme={null} {% set my_string = "Hello world." %} {{ my_string|cut(" world") }} ``` ```text 出力のレンダリング.txt theme={null} Hello. ``` | パラメーター | タイプ | 説明 | | - | - | - | | `characters_to_cut` | 文字列 | 削除対象となる部分文字列。 | ## datetimeformat(非推奨) > [!WARNING] > > ### 注: > > このフィルターは[非推奨](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions#datetimeformat-function)になりました。代わりに、より標準化された構文を使用する[format\_datetime](#format-datetime)フィルターを使用してください。 ## default 値が未定義の場合に、最初のパラメーターを返します。それ以外の場合、変数の値が出力されます。Falseと評価される変数でdefaultを使用するには、2番目のパラメーターを`true`に設定する必要があります。 以下の1つ目の例では、変数が未定義の場合にメッセージが出力されます。2つ目の例では、未定義ではない空の文字列にフィルターを適用していますが、2番目のパラメーターが原因でメッセージが出力されます。 ```text hubl.txt theme={null} {{ my_variable|default("my_variable is not defined") }} {{ ""|default("the string was empty", true) }} ``` ```text 出力のレンダリング.txt theme={null} my_variable is not defined the string was empty ``` | パラメーター | タイプ | 説明 | | - | - | - | | `default_value` | 文字列 | 変数が未定義の場合に返される値。変数が定義されている場合は、変数の値が返されます。 | | `truthy` | ブール値 | `false`と評価される変数で使用するには、`true`に設定します。 | ## dictsort ディクショナリー(辞書型)を並べ替えて「キー、値」のペアを生成します。ディクショナリーはデフォルトでは並べ替えられませんが、キーまたは値を基準に並べ替えてディクショナリーを出力できます。最初のパラメーターは、並べ替えで大文字と小文字を区別するかどうかを決定するブール値です。2番目のパラメーターは、キーと値のどちらを基準にディクショナリーを並べ替えるかを決定します。以下の例では、コンタクトについて確認済みの詳細情報を全て含む、並べ替えられたコンタクトディクショナリーを出力します。 ```text hubl.txt theme={null} {% for item in contact|dictsort(false, "value") %} {{item}} {% endfor %} ``` ```text 出力のレンダリング.txt theme={null} A sorted contact dictionary ``` | パラメーター | タイプ | 説明 | | - | - | - | | `case_sensitive` | ブール値 | 並べ替えの際に大文字と小文字を区別するかどうかを指定します。 | | `sort_by` | `"key"` \| `"value"` | `key`または`value`のどちらを基準に並べ替えるかを指定します。 | ## difference このフィルターは、2つのセットまたはリストの差異を返します。フィルターから返されるリストには、最初のリストに含まれ、2番目には含まれない一意の要素が全て格納されます。 ```text hubl.txt theme={null} {{ [1, 2, 3]|difference([2, 3, 4, 5]) }} ``` ```text 出力のレンダリング.txt theme={null} [1] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `list` | 配列 | 最初のリストとの差異を見つけるために比較する2番目のリスト。 | ## divide 現在の値を除数で割ります。渡すパラメーターは除数です。このフィルターは、/演算子の代わりになります。 ```text hubl.txt theme={null} {% set numerator = 106 %} {{ numerator|divide(2) }} ``` ```text 出力のレンダリング.txt theme={null} 53 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `divisor` | 数値 | 変数を除算するための数値。 | ## divisible Divisibleフィルターは、`divisibleby`式評価の代わりになります。値を特定の数で割り切れる場合、trueと評価されます。 ```text hubl.txt theme={null} {% set num = 10 %} {% if num|divisible(2) %} The number is divisible by 2 {% endif %} ``` ```text 出力のレンダリング.txt theme={null} The number is divisible by 2 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `divisor` | 数値 | 値を割り切れるかどうかを評価するために使用する数値。 | ## escape\_html HTML入力の内容をエスケープします。文字列を受け入れ、`&`、`<`、`>`、`‘`、`”`、および`escape_jinjava`文字をHTMLで安全に使用できるシーケンスに変換します。HTMLで使用されているものの、HTMLを許可しないHubL変数には、このフィルターを使用します。 ```html example.html theme={null} {% set escape_string = "
This markup is printed as text
" %} {{ escape_string|escape_html }} ``` ```html example.html theme={null}
This markup is printed as text
``` ## escape\_attr HTML属性入力の内容をエスケープします。文字列を受け入れ、`&`、`<`、`‘`、`”`、および`escape_jinjava`文字をHTMLで安全に使用できるシーケンスに変換します。このフィルターは、HTML属性に追加されるHubL変数に使用します。 `href`など、URLを受け入れる属性の値をエスケープする場合は、代わりに`escape_url`フィルターを使用してください。 ```html example.html theme={null} {% set escape_string = "This
markup is printed as text" %} {{escape_string|escape_attr}} ``` ```html example.html theme={null} This <br> markup is printed as text ``` ## escape\_jinjava 文字列内の`{`および`}`文字を、Jinjavaで安全に使用できるシーケンスに変換します。このような文字が含まれる可能性のあるテキストをJinjavaで表示する際にこのフィルターを使用します。 ```text hubl.txt theme={null} {% set escape_string = "{{This markup is printed as text}}" %} {{ escape_string|escape_jinjava }} ``` ```text 出力のレンダリング.txt theme={null} {{This markup is printed as text}} ``` ## escape\_js JavaScript変数宣言に文字列を安全に挿入できるように、(`escape_jinjava`を含む)文字列をエスケープ処理します。このフィルターは、HTMLスクリプト要素内で使用されるHubL変数に使用します。 ```text hubl.txt theme={null} {% set escape_string = "\tThey said 'This string can safely be inserted into JavaScript.'" %} {{ escape_string|escape_js }} ``` ```text 出力のレンダリング.txt theme={null} \tThey said \x27This string can safely be inserted into JavaScript.\x27 ``` ## escape\_url URL入力の内容をエスケープし、指定されたプロトコルを実行し、無効で危険な文字を削除し、HTMLエンティティーをエンコードします。URLが有効な場合は空の値を返します。このフィルターは、有効なURLである必要があるHTML属性内で使用されるHubL変数に使用します。 ```text hubl.txt theme={null} {% set escape_string = "http://example.com/with space/" %} ``` ```text 出力のレンダリング.txt theme={null} ``` ## escapejson 文字列をJSON値として使用できるように、文字列をエスケープ処理します。 ```text hubl.txt theme={null} {% set escape_string = "" %} {% require_js position="head" %} {% end_require_js %} ``` ```text 出力のレンダリング.txt theme={null} ``` ## filesizeformat 数値を判読可能なファイルサイズ(13 kB、4.1 MB、102 Bytesなど)に変更します。デフォルトでは10進プレフィックス(MBやGBなど)が使用されますが、Mebi(MiB)やGibi(GiB)などのバイナリープレフィックスを使用するには、`binary`パラメーターを`true`に設定します。 ```text hubl.txt theme={null} {% set bytes = 10000 %} {{ bytes|filesizeformat(binary=true) }} ``` ```text 出力のレンダリング.txt theme={null} 9.8 KiB ``` | パラメーター | タイプ | 説明 | | - | - | - | | `binary` | ブール値 | `true`に設定すると、Mebi(MiB)やGibi(GiB)などのバイナリープレフィックスが使用されます。 | ## first シーケンス内の最初の項目を返します。 ```text hubl.txt theme={null} {% set my_sequence = ["Item 1", "Item 2", "Item 3"] %} {{ my_sequence|first }} ``` ```text 出力のレンダリング.txt theme={null} Item 1 ``` ## float 値を浮動小数点値に変換します。正常に変換できない場合は`0.0`を返します。このデフォルトの動作は、最初のパラメーターを使用することで変更できます。 ```text hubl.txt theme={null} {% set my_text="25" %} {{ my_text|float + 17 }} ``` ```text 出力のレンダリング.txt theme={null} 42.0 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `default` | 数値 | 正常に変換できない場合に返される整数。 | ## forceescape 厳密なHTMLエスケープを実行します。HubSpotの環境では二重にエスケープを行うケースがないため、基本的にはescapeフィルターと同じ動作をします。 ```html example.html theme={null} {% set escape_string = "
This markup is printed as text
" %} {{ escape_string|forceescape }} ``` ```html example.html theme={null}
This markup is printed as text
``` ## format Python文字列の書式設定をオブジェクトに適用します。`%s`を別の変数に置換できます。 ```text hubl.txt theme={null} {{ "Hi %s %s"|format(contact.firstname, contact.lastname) }} ``` ```text 出力のレンダリング.txt theme={null} Hi Monty Python ``` ## format\_currency(非推奨) > [!WARNING] > > ### 注: > > このフィルターは[非推奨](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions)になりました。代わりに、[format\_currency\_value](#format-currency-value)フィルターを使用してください。 ## format\_currency\_value パラメーターとして渡されるポータルのデフォルトの通貨とロケールに基づき、特定の数値の書式を通貨として設定します。非推奨の[format\_currencyフィルター](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions#format-currency)を置き換えるものです。 ```text hubl.txt theme={null} {{ 100 | format_currency_value(locale='en-GB', currency='EUR', maxDecimalDigits=6, minDecimalDigits=1) }} ``` ```text 出力のレンダリング.txt theme={null} €100.0 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `locale` | 文字列 | [Javaローカル言語タグ](https://www.oracle.com/java/technologies/javase/jdk8-jre8-suported-locales.html)(英語)。デフォルトはページの`locale.Format : ISO639LanguageCodeInLowercase-ISO3166CountryCodeInUppercase`です。 | | `currency` | 文字列 | 通貨の[英字のISO 4217コード](https://en.wikipedia.org/wiki/ISO_4217)。デフォルトは、ポータルのデフォルトの通貨です。数値コードは使用できません。 | | `minDecimalDigits` | 数値 | 出力に含める小数桁数の最小値。デフォルトで、通貨のデフォルトの小数桁数に設定されます。 | | `maxDecimalDigits` | 数値 | 出力に含める小数桁数の最大値。デフォルトで、通貨のデフォルトの小数桁数に設定されます。 | ## format\_date 日付オブジェクトの日付コンポーネントを書式設定します。 > [!WARNING] > > ### 注: > > このフィルターは、日付を返す変数でのみ使用してください。2024年9月30日以降、このフィルターはnull値が渡された場合に現在の日付を返さなくなります。この日付を過ぎると、フィルター内のnull値は2024年9月30日を返します。 ```text hubl.txt theme={null} {{ content.publish_date | format_date('long') }} {{ content.publish_date | format_date('yyyy.MMMM.dd') }} {{ content.publish_date | format_date('medium', 'America/New_York', 'de-DE') }} ``` ```text 出力のレンダリング.txt theme={null} November 28, 2022 02022.November.28 28.11.2022 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `format` | `'short'` \| `'medium'` \| `'long'` \| `'full'` \| カスタムパターン | 使用する形式。[Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns)(英語)に従ったカスタムパターンを指定できます。 | | `timeZone` | 文字列 | [IANA TZDB形式](https://data.iana.org/time-zones/tzdb/)(英語)で出力される日付のタイムゾーン。 | | `locale` | 文字列 | ロケール対応の形式に使用するロケール。[サポートされているロケールの一覧](https://www.oracle.com/java/technologies/javase/java8locales.html)(英語)を参照してください。 | ## format\_datetime 日付オブジェクトの日付と時刻のコンポーネント両方を書式設定します。このフィルターは、非推奨になった[datetimeformat](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions#datetimeformat-filter)フィルターの後続となるものです。デフォルトでは、UTC-00:00のタイムゾーンの日時を返します。 > [!WARNING] > > ### 注: > > このフィルターは、日付を返す変数でのみ使用してください。2024年9月30日以降、このフィルターはnull値が渡された場合に現在の日付を返さなくなります。この日付を過ぎると、フィルター内のnull値は2024年9月30日を返します。 ```text hubl.txt theme={null} {{ content.publish_date | format_datetime('medium', 'America/New_York', 'de-DE') }} ``` ```text 出力のレンダリング.txt theme={null} 12/31/69 7:00 PM ``` | パラメーター | タイプ | 説明 | | - | - | - | | `format` | `'short'` \| `'medium'` \| `'long'` \| `'full'` \| カスタムパターン | 使用する形式。[Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns)に従うカスタムパターンを指定できます。`long`または`full`を使用する場合、タイムスタンプにはZが含まれ、オフセットがゼロであるUTC時間(つまり`2:23:00 PM Z`)を示します。Z指定子を削除するには`timeZone`を指定してください。 | | `timeZone` | 文字列 | [IANA TZDB形式](https://data.iana.org/time-zones/tzdb/)(英語)で出力される日付のタイムゾーン。デフォルトではUTC時間を返します。 | | `locale` | 文字列 | ロケール対応の形式に使用するロケール。[サポートされているロケールの一覧](https://www.oracle.com/java/technologies/javase/java8locales.html)(英語)を参照してください。 | ## format\_number 指定されたロケールに基づいて、特定の数値の書式を設定します。小数点以下の最大精度を設定する2番目のパラメーターを含みます。 ```text hubl.txt theme={null} {{ 1000|format_number('en-US') }} {{ 1000.333|format_number('fr') }} {{ 1000.333|format_number('en-US', 2) }} ``` ```text 出力のレンダリング.txt theme={null} 1,000 1 000,333 1,000.33 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `locale` | 文字列 | 書式設定に使用するロケール。[サポートされているロケールの一覧](https://www.oracle.com/java/technologies/javase/java8locales.html)(英語)を参照してください。 | | `maxDecimalDigits` | 数値 | 出力に含める小数桁数の最大値。デフォルトでは、入力値の小数桁数を使用します。 | ## format\_time 日付オブジェクトの時刻コンポーネントを書式設定します。 > [!WARNING] > > ### 注: > > このフィルターは、日付を返す変数でのみ使用してください。2024年9月30日以降、このフィルターはnull値が渡された場合に現在の日付を返さなくなります。この日付を過ぎると、フィルター内のnull値は2024年9月30日を返します。 ```text hubl.txt theme={null} {{ content.updated | format_time('long') }} {{ content.updated | format_time('hh:mm a') }} {{ content.updated | format_time('medium', 'America/New_York', 'de-DE') }} ``` ```text 出力のレンダリング.txt theme={null} 3:25:06 PM Z 03:25 PM 10:25:44 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `format` | `'short'` \| `'medium'` \| `'long'` \| `'full'` \| カスタムパターン | 使用する形式。[Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns)に従うカスタムパターンを指定できます。`long`または`full`を使用する場合、タイムスタンプにはZが含まれ、オフセットがゼロであるUTC時間(つまり`2:23:00 PM Z`)を示します。Z指定子を削除するには`timeZone`を指定してください。 | | `timeZone` | 文字列 | [IANA TZDB形式](https://data.iana.org/time-zones/tzdb/)(英語)で出力される日付のタイムゾーン。デフォルトではUTC時間を返します。 | | `locale` | 文字列 | ロケール対応の形式に使用するロケール。[サポートされているロケールの一覧](https://www.oracle.com/java/technologies/javase/java8locales.html)(英語)を参照してください。 | ## fromjson JSON文字列をオブジェクトに変換します。 ```text hubl.txt theme={null} {% set obj ='{ "name":"Brian","role":"Owner" }' %} {{ obj|fromjson }} ``` ```text 出力のレンダリング.txt theme={null} {role=Owner, name=Brian} ``` ## geo\_distance 地上の2地点間の楕円2D距離を計算します。 ```text hubl.txt theme={null} {{ row.location | geo_distance(37.3435, -122.0344, "mi") }} MI ``` ```text 出力のレンダリング.txt theme={null} 861.1655563461395 MI ``` ## groupby 共通の属性を基準に、一連のオブジェクトをグループ化します。パラメーターで、グループ化の基準となる共通属性を設定します。 ```html example.html theme={null}
    {% for group in contents|groupby("blog_post_author") %}
  • {{ group.grouper }}
      {% for content in group.list %}
    • {{ content.name }}
    • {% endfor %}
  • {% endfor %}
``` ```text 出力のレンダリング.txt theme={null}
  • Blog author 1
    • Post by Blog author 1
    • Post by Blog author 1
    • Post by Blog author 1
  • Blog author 2
    • Post by Blog author 2
    • Post by Blog author 2
    • Post by Blog author 2
  • Blog author 3
    • Post by Blog author 3
    • Post by Blog author 3
    • Post by Blog author 3
``` | パラメーター | 説明 | | - | - | | `attribute` | グループ化の基準となる属性。 | ## indent 空白を使用して、指定されたフィールドの長さ内でテキストをインデントします。HubSpotのHTMLコンパイラーは自動的に空白を除去するので、このフィルターは推奨されず、特に役立つわけでもありませんが、包括的な説明のためにここで説明しています。以下の例では、空白が除去されないように`
`タグ内の変数に`indent`フィルターを適用しています。最初のパラメーターは空白の幅を制御し、2番目のブール値は最初の行をインデントするかどうかを切り替えます。

```html example.html theme={null}
{% set var = "string to indent" %}
{{ var|indent(2, true) }}
``` ```text 出力のレンダリング.txt theme={null} string to indent ``` | パラメーター | タイプ | 説明 | | - | - | - | | `width` | 数値 | 適用される空白の幅。 | | `indent-first` | ブール値 | `true`に設定すると、最初の行がインデントされます。 | ## int 値を整数に変換します。正常に変換できない場合は`0`を返します。このデフォルトの動作は、最初のパラメーターを使用することで変更できます。 ```text hubl.txt theme={null} {% set string="25" %} {{ string|int + 17 }} ``` ```text 出力のレンダリング.txt theme={null} 42 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `default` | 数値 | 正常に変換できない場合に返される整数。 | ## intersect 2つのセットまたはリストの共通部分を返します。フィルターから返されるリストには、両方のリストに含まれる一意の要素が全て格納されます。 ```text hubl.txt theme={null} {{ [1, 2, 3]|intersect([2, 3, 4, 5]) }} ``` ```text 出力のレンダリング.txt theme={null} [2, 3] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `list` | 整列 | 最初のリストとの共通部分を見つけるために比較される2番目のリスト。 | ## ipaddr 値が有効なIPv4またはIPv6アドレスの場合には、`true`と評価されます。 ```text hubl.txt theme={null} {% set ip = "1.0.0.1" %} {% if ip|ipaddr %} The string is a valid IP address {% endif %} ``` ```text 出力のレンダリング.txt theme={null} The string is a valid IP address ``` ## join シーケンスの文字列を連結した1つの文字列を返します。要素間はデフォルトでは空文字列で区切られますが、任意指定のパラメーターを使って区切り文字を定義できます。2番目のパラメーターを使用すると、結合する属性を指定できます。 ```text hubl.txt theme={null} {% set my_list = [1, 2, 3] %} {% set sep = "---" %} {{ my_list|join }} {{ my_list|join("|") }} {{ my_list|join(sep) }} ``` ```text 出力のレンダリング.txt theme={null} 123 1|2|3 1---2---3 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `delimiter` | 文字列 | 文字列の連結に使用する区切り文字。 | | `attribute` | HubL変数 | オブジェクト内で結合する値の属性。 | ## last シーケンスの最後の項目を返します。 ```text hubl.txt theme={null} {% set my_sequence = ["Item 1", "Item 2", "Item 3"] %} {% my_sequence|last %} ``` ```text 出力のレンダリング.txt theme={null} Item 3 ``` ## length シーケンスまたはマッピング内の項目数を返します。 ```text hubl.txt theme={null} {% set services = ["Web design", "SEO", "Inbound Marketing", "PPC"] %} {{ services|length }} ``` ```text 出力のレンダリング.txt theme={null} 4 ``` ## list 値を変換して1つのリストにします。文字列は、角括弧シーケンスの区切り文字`[ ]`で囲まれていない限り、別々の文字として返されます。 ```text hubl.txt theme={null} {% set one = 1 %} {% set two = 2 %} {% set three = "three" %} {% set four = ["four"] %} {% set list_num = one|list + two|list + three|list + four|list %} {{ list_num }} ``` ```text 出力のレンダリング.txt theme={null} [1, 2, t, h, r, e, e, four] ``` ## log 数値の自然対数を計算します。 ```text hubl.txt theme={null} {{ 10|log }} {{ 65536|log(2) }} ``` ```text 出力のレンダリング.txt theme={null} 2.302585092994046 16.0 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `base` | 数値 | 対数計算に使用する基数。 | ## lower 値に含まれる全ての文字を小文字に変換します。 ```text hubl.txt theme={null} {% set text="Text to MAKE LowercaSe" %} {{ text|lower }} ``` ```text 出力のレンダリング.txt theme={null} text to make lowercase ``` ## map オブジェクトのシーケンスにフィルターを適用するか、属性を検索します。オブジェクトリストを扱うとき、その中の特定の値だけに対象を絞り込むには、これが便利です。 基本的な使用法は、属性に対するマッピングです。例えば、ディクショナリーの特定の属性に特定の値が存在するかどうかを検査する条件付きロジックを使用する場合です。または、フィルター名と引数を渡してフィルターを起動することもできます。 ```text hubl.txt theme={null} {# Usage 1 #} Apply a filter to a sequence: {% set seq = ["item1", "item2", "item3"] %} {{ seq|map("upper") }} {# Usage 2 #} Look up an attribute: {{ content|map("currentState")}} ``` ```text 出力のレンダリング.txt theme={null} Apply a filter to a sequence: [ITEM1, ITEM2, ITEM3] Look up an attribute: [DRAFT] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `filter` | 文字列 | オブジェクトのシーケンスに適用するフィルター。 | ## md5 特定のオブジェクトの[md5ハッシュ](https://ja.wikipedia.org/wiki/MD5)を計算します。 ```text hubl.txt theme={null} {{ content.absolute_url|md5 }} ``` ```text 出力のレンダリング.txt theme={null} 923adb4ce05a4c6342c04c80be88d15e ``` ## minus\_time 日時オブジェクトで一定の時間を差し引きます。 ```text hubl.txt theme={null} {% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {{ date }} {{ date|minus_time(2, "months") }} ``` ```text 出力のレンダリング.txt theme={null} 2018-07-14 14:31:30 2018-05-14 14:31:30 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `diff` | 数値 | 差し引く数量。 | | `timeunit` | 文字列 | 有効な時間単位は、`nanos`、`micros`、`millis`、`seconds`、`minutes`、`hours`、`half_days`、`days`、`weeks`、`months`、`years`、`decades`、`centuries`、`millennia`、`eras`です。 | ## multiply 1つの値を数値で乗算します。[\*演算子](/docs/cms/reference/hubl/operators-and-expression-tests)と同じ機能です。 ```text hubl.txt theme={null} {% set n = 20 %} {{ n|multiply(3) }} ``` ```text 出力のレンダリング.txt theme={null} 60 ``` ## plus\_time 日時オブジェクトに一定の時間を加えます。 ```text hubl.txt theme={null} {% set date = "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ") %} {{ date }} {{ date|plus_time(5, "days") }} ``` ```text 出力のレンダリング.txt theme={null} 2018-07-14 14:31:30 2018-07-19 14:31:30 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `diff` | 数値 | 差し引く数量。 | | `timeunit` | 文字列 | 有効な時間単位は、`nanos`、`micros`、`millis`、`seconds`、`minutes`、`hours`、`half_days`、`days`、`weeks`、`months`、`years`、`decades`、`centuries`、`millennia`、`eras`です。 | ## pprint 変数をpprintします。変数の型など、デバッグに役立つ情報を出力します。 ```text hubl.txt theme={null} {% set this_var ="Variable that I want to debug" %} {{ this_var|pprint }} ``` ```text 出力のレンダリング.txt theme={null} (String: Variable that I want to debug) ``` ## random シーケンスからランダムな1つの項目を返します。 > [!WARNING] > > ### 注: > > このフィルターを使用すると、ページコンテンツの更新時ではなく、定期的にページの[プリレンダリング](/docs/cms/best-practices/testing-staging-performance/prerendering)が実行されます。つまり、フィルタリングされたコンテンツは、ページの再読み込みのたびに更新されるわけではありません。 > > これは、ブログ記事のランダムなリストの表示など、特定のタイプのコンテンツでは特に問題ではありません。ただし、ページを読み込むたびにコンテンツをランダムに変更する必要がある場合には、代わりにJavaScriptを使用してコンテンツをクライアント側でランダム化する必要があります。 ```text hubl.txt theme={null} {% for content in contents|random %}
Post item markup
{% endfor %} ``` ```text 出力のレンダリング.txt theme={null}
Random post
``` ## regex\_replace 正規表現パターンを検索して、文字シーケンスで置換します。最初の引数はRE2形式の正規表現パターン、2つ目は置換文字列です。 詳しくは[RE2正規表現の構文](https://github.com/google/re2/wiki/Syntax)(英語)をご確認ください。 ```text hubl.txt theme={null} {{ "contact-us-2"|regex_replace("[^a-zA-Z]", "") }} ``` ```text 出力のレンダリング.txt theme={null} contactus ``` ## reject オブジェクトに[式による検証](/docs/cms/reference/hubl/operators-and-expression-tests)を適用して、該当する要素を拒否することにより、オブジェクトのシーケンスをフィルタリングします。 ```text hubl.txt theme={null} {% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %} {{ some_numbers|reject("even") }} ``` ```text 出力のレンダリング.txt theme={null} [13, 3, 5, 17] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `exp_text` | 文字列 | オブジェクトに適用する[式評価](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests)の名前。 | ## rejectattr オブジェクトの属性を検証して該当する要素を拒否することにより、オブジェクトのシーケンスをフィルタリングします。 ```html example.html theme={null} {% for content in contents|rejectattr("post_list_summary_featured_image") %}
{% if content.post_list_summary_featured_image %} {% endif %} {{ content.post_list_content|safe }}
{% endfor %} ``` ```html example.html theme={null}
Post with no featured image
Post with no featured image
Post with no featured image
``` | パラメーター | タイプ | 説明 | | - | - | - | | `attribute_name` | 文字列 | 選択する属性を指定します。ドット表記を使用すると、ネストされた属性にアクセスできます。 | | `exp_test` | 文字列 | オブジェクトに適用する[式評価](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests)の名前。 | ## render HubLを含む文字列を早期にレンダリングして、出力を他のフィルターに渡すことができるようにします。 ```html example.html theme={null} {{ personalization_token("contact.lastname", "default value")|render|lower }} ``` ```html example.html theme={null} mclaren ``` ## replace 部分文字列の全てのインスタンスを、新しいものに置換します。 ```html example.html theme={null} {% if topic %}

Posts about {{ page_meta.html_title|replace("Blog | ", "") }}

{% endif %} ``` ```html example.html theme={null}

Posts about topic name

``` | パラメーター | タイプ | 説明 | | - | - | - | | `old` | 文字列 | 置換の対象にする部分文字列。 | | `new` | 文字列 | 置換する文字列。 | | `count` | 数値 | 指定した場合、最初の出現数分のみが置換されます。 | ## reverse オブジェクトを反転します。または、オブジェクトを逆順に反復処理するイテレーターを返します。リストを反転するには[.reverse()](/docs/cms/reference/hubl/functions#reverse)を使用します ```text hubl.txt theme={null} {% set nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] %} {% for num in nums|reverse %} {{ num }} {% endfor %} ``` ```text 出力のレンダリング.txt theme={null} 10 9 8 7 6 5 4 3 2 1 ``` ## root 値の平方根を計算します。 ```text hubl.txt theme={null} {{ 16|root }} {{ 625|root(4) }} ``` ```text 出力のレンダリング.txt theme={null} 4 5 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `nth_root` | 数値 | 計算に使用するn乗根。 | ## round 数値を指定された精度で四捨五入します。 ```text hubl.txt theme={null} {{ 52.5|round }} {{ 52.5|round(0, "floor") }} ``` ```text 出力のレンダリング.txt theme={null} 53 52 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `precision` | 数値 | 端数処理の精度を指定します。 | | `rounding_method` | `'common'`(デフォルト) \| `'ceil'` \| `'floor'` | オプションには、`common`(四捨五入:デフォルト)、`ceil`(常に切り上げ)、`floor`(常に切り下げ)があります。 | ## safe 値に「safe」のマークを付けます。つまり、自動エスケープが有効になっている環境で、この変数はエスケープされません。 ```text hubl.txt theme={null} {{ content.post_list_content|safe }} ``` ```html example.html theme={null}

HTML post content that is not escaped.

``` ## sanitize\_html リッチ テキスト コンテンツの出力用にHTML入力のコンテンツをサニタイズ処理します。文字列を受け入れ、許可されていないHTMLタグを削除します。HTMLで使用されており、安全なHTMLを許可するHubL変数に、このフィルターを使用します。 特定のタイプのHTMLタグを許可するパラメーターとして、`FORMATTING`、`BLOCKS`、`STYLES`、`LINKS`、`TABLES`、`IMAGES`を含めることができます。例えば、`sanitize_html(IMAGES)`です。 `sanitize_html`を使用すると、全てのパラメーターがフィルターに含められます。 さらに`STRIP`パラメーターを含めると、全てのHTMLを削除できます。また、ネストされた解釈を防ぐ目的で、全てのコンテンツが`escape_jinjava`を介して実行されます。 ```text hubl.txt theme={null} {% set escape_string = "This
markup is printed as text.
" %} {{ escape_string|sanitize_html("IMAGES") }} ``` ```html example.html theme={null} This markup is printed as text.
``` ## select オブジェクトを検証して該当する要素だけを選ぶことにより、オブジェクトのシーケンスをフィルタリングします。 ```text hubl.txt theme={null} {% set some_numbers = [10, 12, 13, 3, 5, 17, 22] %} {{ some_numbers|select("even") }} ``` ```html example.html theme={null} [10, 12, 22] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `exp_text` | 文字列 | オブジェクトを検証する式。 | ## selectattr オブジェクトの属性を検証して該当する要素だけを選ぶことにより、オブジェクトのシーケンスをフィルタリングします。 ```html example.html theme={null} {% for content in contents|selectattr("post_list_summary_featured_image") %}
{% if content.post_list_summary_featured_image %} {% endif %} {{ content.post_list_content|safe }}
{% endfor %} ``` ```html example.html theme={null}
Post with featured image
``` | パラメーター | タイプ | 説明 | | - | - | - | | `attribute_name` | 文字列 | テストする属性。ドット表記を使用すると、ネストされた属性にアクセスできます。 | | `exp_test` | 文字列 | オブジェクトに適用する[式評価](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests)の名前。 | | `val` | 文字列 | テストの対象となる値。 | ## shuffle シーケンス内の反復の順序をランダムにします。以下の例は、標準的なブログのループをシャッフルします。 > [!WARNING] > > ### 注: > > このフィルターを使用すると、ページコンテンツの更新時ではなく、定期的にページの[プリレンダリング](/docs/cms/best-practices/testing-staging-performance/prerendering)が実行されます。つまり、フィルタリングされたコンテンツは、ページの再読み込みのたびに更新されるわけではありません。 > > これは、ブログ記事のランダムなリストの表示など、特定のタイプのコンテンツでは特に問題ではありません。ただし、ページを読み込むたびにコンテンツをランダムに変更する必要がある場合には、代わりにJavaScriptを使用してコンテンツをクライアント側でランダム化する必要があります。 ```html example.html theme={null} {% for content in contents|shuffle %}
Markup of each post
{% endfor %} ``` ```html example.html theme={null}
Markup of each post 5
Markup of each post 3
Markup of each post 1
Markup of each post 2
Markup of each post 4
``` ## slice イテレーターをスライスして、これらの項目を含むリストの一覧を返します。最初のパラメーターにはスライスされる項目数を指定し、2番目のパラメーターには空白のスライスに埋める文字を指定します。 ```html example.html theme={null} {% set items = ["laptops", "tablets", "smartphones", "smart watches", "TVs"] %}
{% for column in items|slice(3," ") %}
    {% for item in column %}
  • {{ item }}
  • {% endfor %}
{% endfor %}
``` ```html example.html theme={null}
  • laptops
  • tablets
  • smartphones
  • smart watches
  • TVs
``` | パラメーター | タイプ | 説明 | | - | - | - | | `slices` | 数値 | スライスされる項目の数。 | | `filler` | 文字列 | 空白のスライスに埋める文字を指定します。 | ## sort 反復可能データを並べ替えます。このフィルターを使ってHubSpotで属性を基準に並べ替える際には、全てのパラメーターが必須です。最初のパラメーターは、並べ替え順序を逆にするブール値です。2番目のパラメーターは、並べ替えで大文字と小文字を区別するかどうかを決定します。最後のパラメーターは、並べ替え基準となる属性を指定します。以下の例ではブログ内の記事が、名前のアルファベット順でレンダリングされます。 ```html example.html theme={null} {% set my_posts = blog_recent_posts("default", limit=5) %} {% for item in my_posts|sort(False, False, "name") %} {{ item.name }}
{% endfor %} ``` ```html example.html theme={null} A post
B post
C post
D post
E post
``` | パラメーター | タイプ | 説明 | | - | - | - | | `reverse` | ブール値 | 並べ替え順序を逆にするには、`true`に設定します。 | | `case_sensitive` | ブール値 | `true`に設定すると、並べ替えで大文字と小文字が区別されま。 | | `attribute` | 文字列 | 並べ替えの基準となる属性。リストを並べ替えるときには省略します。 | ## split 入力文字列を特定の区切り文字で分割して、リストにします。最初のパラメーターは、変数を分割する基準となる区切り文字を指定します。2番目のパラメーターは、変数の分割回数を決定します。残りの項目が存在する場合、それらはグループ化されたままになります。以下の例では、複数の名前からなる1つの文字列が`;`を基準に最初の4回だけ分割されます。 ```html example.html theme={null} {% set string_to_split = "Mark; Irving; Helly; Dylan; Milchick; Harmony;" %} {% set names = string_to_split|split(";", 4) %}
    {% for name in names %}
  • {{ name }}
  • {% endfor %}
``` ```html example.html theme={null}
  • Mark
  • Irving
  • Helly
  • Dylan; Milchick; Harmony;
``` | パラメーター | タイプ | 説明 | | - | - | - | | `character_to_split_by` | 文字列 | 変数を分割する区切り文字を指定します。 | | `number_of_splits` | 数値 | 変数を分割する回数を指定します。残りの項目(存在する場合)は、グループ化されたままになります。 | ## string 他の型の変数を文字列に変換します。以下の例では、整数が文字列に変換されます(変数の型の変化を確認するために`pprint`を使用しています)。 ```text hubl.txt theme={null} {% set number_to_string = 45 %} {{ number_to_string|string|pprint }} ``` ```text 出力のレンダリング.txt theme={null} (String: 45) ``` ## striptags SGML/XMLタグを除去して、隣接する空白を1つのスペースで置換します。このフィルターは、変数内のHTMLタグを除去する際に使用できます。 ```html example.html theme={null} {% set some_html = "
Some text
" %} {{ some_html|striptags }} ``` ```html example.html theme={null} some text ``` ## strtodate 日付文字列と日付形式を日付オブジェクトに変換します。 ```text hubl.txt theme={null} {{ '3/3/21'|strtodate('M/d/yy') }} ``` ```text 出力のレンダリング.txt theme={null} 2021-03-03 00:00:00 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `dateFormat` | 文字列 | 使用する[日付形式](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)(英語)。 | ## strtotime 日時文字列と日時書式を変換して、日時オブジェクトにします。 ```text hubl.txt theme={null} {{ "2018-07-14T14:31:30+0530"|strtotime("yyyy-MM-dd'T'HH:mm:ssZ")|unixtimestamp }} ``` ```text 出力のレンダリング.txt theme={null} 1531558890000 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `datetimeFormat` | 文字列 | 使用する[日付と時刻の形式](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)(英語)。 | ## sum シーケンス内の数値を全て合算します。最初のパラメーターには任意の属性を指定し、2番目のパラメーターには、変数内に加算するものがない場合に返す値を設定します。 ```text hubl.txt theme={null} // Simple sum {% set sum_this = [1, 2, 3, 4, 5] %} {{ sum_this|sum }} // Sum of attribute {% set items = [15, 10] %} {% set dict_var = [{"name": "Item1", "price": "20"}, {"name": "Item2", "price": "10"}] %} Total: {{ dict_var|sum(attribute="price") }} ``` ```text 出力のレンダリング.txt theme={null} 15 Total: 30 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `attribute` | 文字列 | 合計する属性。 | | `return_if_nothing` | 文字列 | 変数内に加算するものがない場合に返す値。 | ## symmetric\_difference 2つのセットまたはリストの対称差を返します。フィルターから返されるリストには、1つ目のリストに含まれ、2つ目には含まれない一意の要素、または2つ目のリストに含まれ、1つ目には含まれない一意の要素が全て格納されます。 ```text hubl.txt theme={null} {{ [1, 2, 3]|symmetric_difference([2, 3, 4, 5]) }} ``` ```text 出力のレンダリング.txt theme={null} [1, 4, 5] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `list` | 整列 | 1つ目のリストとの対称差を見つけるために比較する2つ目のリスト。 | ## title 見出し表記の値を返します。つまり、英単語の先頭が大文字に、残りの文字は全て小文字になります。 ```text hubl.txt theme={null} {% set my_title="my title should be title case" %} {{ my_title|title }} ``` ```text 出力のレンダリング.txt theme={null} My Title Should Be Title Case ``` ## tojson オブジェクトをJSON文字列として書き出します。 ```text hubl.txt theme={null} {% for content in contents %} {{ content.blog_post_author|tojson }} {% endfor %} ``` ```json example.json theme={null} { "portalId": 1234567, "id": 12312253109, "created": 1566413741989, "updated": 1566414012799, "deletedAt": 0, "fullName": "Sample User", "email": "sampleUser@example.com", "userId": null, "username": null, "slug": "sample-user", "jsonBody": { "avatar": "https://app.hubspot.com/settings/avatar/109d6874a0cb066c1c7263ac5df6ce7a", "bio": "Sample Bio", "facebook": "", "linkedin": "", "twitter": "", "website": "https://www.hubspot.com" }, "bio": "Sample Bio", "facebook": "", "linkedin": "", "avatar": "https://app.hubspot.com/settings/avatar/109d6874a0cb066c1c7263ac5df6ce7a", "gravatarUrl": "https://app.hubspot.com/settings/avatar/108bb5ac667ded34796271437dfe8d58", "twitterUsername": "", "hasSocialProfiles": false, "website": "https://www.hubspot.com", "twitter": "", "displayName": "Sample User" } ``` ## trim 先頭および末尾にある空白を除去します。包括的な説明のためにここで説明していますが、HubSpotでは標準でマークアップから前後の空白が削除されます。 ```text hubl.txt theme={null} {{ " remove whitespace " }} {{ " remove whitespace "|trim }} ``` ```text 出力のレンダリング.txt theme={null} remove whitespace remove whitespace ``` ## truncate 特定の文字数よりも後ろにあるテキストを切り捨てます。デフォルトは255文字です。このカウントにはHTML文字が含まれます。 > [!WARNING] > > **注**: このフィルターは単語間のスペースを使用して文字列を短縮するため、日本語などの文字間にスペースがない言語では期待どおりに機能しないことがあります。 ```text hubl.txt theme={null} {{ "I only want to show the first sentence. Not the second."|truncate(40) }} {{ "I only want to show the first sentence. Not the second."|truncate(35, true, "..........") }} ``` ```text 出力のレンダリング.txt theme={null} I only want to show the first sente.......... ``` | パラメーター | タイプ | 説明 | | - | - | - | | `number_of_characters` | 数値 | テキストが切り捨てられる前の許容文字数。デフォルト値は255文字です。 | | `breakword` | ブール値 | `true`の場合、長さでテキストが切り捨てられます。`false`の場合は、最後の単語が除去されます。 | | `end` | 文字列 | 切り捨て後に付加されるデフォルトの記号「...」を変更します。 | ## truncatehtml HTMLマークアップを考慮しながら(つまり、ネストしている全てのタグが適切に閉じられ)、特定の文字列を切り捨てます。これにより、切り捨て後にタグが開いたままになることが防止されます。HTML文字は、合計文字数にカウントされません。 > [!WARNING] > > **注**: このフィルターは単語間のスペースを使用して文字列を短縮するため、日本語などの文字間にスペースがない言語では期待どおりに機能しないことがあります。 ```html example.html theme={null} {% set html_text = "

I want to truncate this text without breaking my HTML

" %} {{ html_text|truncatehtml(28, "..." , false) }} ``` ```html example.html theme={null}

I want to truncate this..

``` | パラメーター | タイプ | 説明 | | - | - | - | | `number_of_characters` | 数値 | テキストが切り捨てられる前の許容文字数。デフォルト値は255文字です。 | | `end` | 文字列 | 切り捨て後に付加されるデフォルトの記号「...」を変更します。 | | `breakword` | ブール値 | ブール値。`true`の場合、長さでテキストが切り捨てられます。`false`(デフォルト)の場合は、最後の単語が除去されます。任意のパラメーターのうち1つだけを使用する場合は、例えば`truncatehtml(70, breakwords = false)`のようにキーワード引数を使用します。 | ## unescape\_html HTMLエンコードされたエンティティーを含むテキストを同等のUnicodeに変換します。 ```text hubl.txt theme={null} {% set escape_string = "me & you" %} {{ escape_string|unescape_html }} ``` ```text 出力のレンダリング.txt theme={null} me & you ``` ## union 2つのセットまたはリストの共通部分を返します。フィルターから返されるリストには、いずれかのリストに含まれる一意の要素が全て格納されます。 ```text hubl.txt theme={null} {{ [1, 2, 3]|union([2, 3, 4, 5]) }} ``` ```text 出力のレンダリング.txt theme={null} [1, 2, 3, 4, 5] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `list` | 整列 | 1つ目のリストに対して結合される2つ目のリスト。 | ## unique オブジェクトのシーケンスまたはディクショナリーから一意のセットを抽出します。(関数から戻される記事リストなどの)ディクショナリーをフィルタリングする場合、どの属性を基準にディクショナリー項目の重複を削除するかを指定できます。 ```text hubl.txt theme={null} {% set my_sequence = ["one", "one", "two", "three" ] %} {{ my_sequence|unique }} ``` ```text 出力のレンダリング.txt theme={null} [one, two, three] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `attr` | 文字列 | ディクショナリー値を絞り込む際に使用する属性を指定します。 | ## unixtimestamp 日時オブジェクトをUnixタイムスタンプに変換します。 > [!WARNING] > > ### 注: > > このフィルターは、日付を返す変数でのみ使用してください。2024年9月30日以降、このフィルターはnull値が渡された場合に現在の日付を返さなくなります。この日付を過ぎると、フィルター内のnull値は`September 30, 2024`を返します。 ```text hubl.txt theme={null} {{ local_dt }} {{ local_dt|unixtimestamp }} ``` ```text 出力のレンダリング.txt theme={null} 2017-01-30 17:11:44 1485814304000 ``` ## upper 値に含まれる全ての文字を大文字に変換します。 ```text hubl.txt theme={null} {% set text="text to make uppercase" %} {{ text|upper }} ``` ```text 出力のレンダリング.txt theme={null} TEXT TO MAKE UPPERCASE ``` ## urlencode 文字列をエスケープしてUTF-8形式でURLエンコードします。ディクショナリーと通常の文字列、およびペアワイズ反復を受け入れます。 ```text hubl.txt theme={null} {% set encode_value="Escape & URL encode this string" %} {{ encode_value|urlencode }} ``` ```text 出力のレンダリング.txt theme={null} Escape+%26+URL+encode+this+string ``` ## urldecode エンコードされたURL文字列を元のURLにデコードします。ディクショナリーと通常の文字列、およびペアワイズ反復を受け入れます。 ```text hubl.txt theme={null} {% set decode_value="Escape+%26+URL+decode+this+string" %} {{ decode_value|urldecode }} ``` ```text 出力のレンダリング.txt theme={null} Escape & URL decode this string ``` ## urlize プレーンテキスト内のURLを、クリック可能なリンクに変換します。追加的な整数をこのフィルターに渡した場合、URLがその数値に短縮されます。2番目のパラメーターは、リンクをrel="no follow"にするかどうかを指示するブール値です。最後のパラメーターでは、リンクを新しいタブで開くかどうかを指定できます。 | パラメーター | タイプ | 説明 | | - | - | - | | `shorten_text` | 数値 | URLを指定の数に短縮する整数。 | | `no_follow` | ブール値 | `true`に設定すると、リンクに`rel="no follow"`が含まれます。 | | `target="_blank"` | 文字列 | リンクを新しいタブで開くかどうかを指定します。 | ```text hubl.txt theme={null} {{ "http://hubspot.com/"|urlize }} {{ "http://hubspot.com/"|urlize(10,true) }} {{ "http://hubspot.com/"|urlize("",true) }} {{ "http://hubspot.com/"|urlize("",false,target="_blank") }} ``` ```html example.html theme={null} http://hubspot.com/ http://... http://hubspot.com/ http://hubspot.com/ ``` ## wordcount 文字列内の単語数をカウントします。 > [!WARNING] > > HTMLが含まれている文字列の正確なカウントを取得する場合は、`striptags`フィルターを使用します。 ```text hubl.txt theme={null} {% set count_words = "Count the number of words in this variable" %} {{ count_words|wordcount }} ``` ```text 出力のレンダリング.txt theme={null} 8 ``` ## wordwrap 指定された文字数で折り返します。HubSpotではデフォルトで空白が除去されるため、この機能は`
`で特に役立ちます。

```text hubl.txt theme={null}
{% set wrap_text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur, ipsum non sagittis euismod, ex risus rhoncus lectus, vel maximus leo enim sit amet dui. Ut laoreet ultricies quam at fermentum." %}
{{ wrap_text|wordwrap(10) }}
```

```text 出力のレンダリング.txt theme={null}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam efficitur, ipsum
non sagittis euismod, ex risus rhoncus lectus, vel maximus leo enim sit amet
dui. Ut laoreet ultricies quam at fermentum.
```

| パラメーター | 説明 |
| - | - |
| `character_count` | コンテンツを折り返す文字数。 |

## xmlattr

ディクショナリー内の項目に基づいてHTML/XML属性文字列を作成します。「値なし」および未定義値を除き、全ての値が自動的にエスケープされます。最初のパラメーターがfalseの場合以外は、フィルターから返された項目の前に自動的にスペースが追加されます。

```html example.html theme={null}
{% set html_attributes = {"class": "bold", "id": "sidebar"} %}
``` ```html example.html theme={null} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `autospace` | ブール値 | 項目の前にスペースを追加するには、`true`に設定します。 | # HubL関数 Source: https://developers.hubspot.jp/docs/cms/reference/hubl/functions 利用可能な全てのHubL関数の一覧をご参照いただけます。 HubLの関数は、パラメーターを受け入れて値を生成するという点でフィルターに似ています。ただし、全ての関数を初期テンプレート値に適用する必要はなく、HubSpot環境の他の領域とのやりとりに使用できます。 古いウェブサイトを維持している場合は、[非推奨となったHubL関数のリスト](/docs/cms/versions-deprecations/deprecated/hubl/filters-functions)もご確認ください。 この記事では、各HubL関数とその構文について詳しく説明しています。 ## append リストの末尾に1つの項目を追加します。 ```text hubl.txt theme={null} {% set numbers_under_5 = [1,2,3] %} {% do numbers_under_5.append(4) %} {{numbers_under_5}} ``` ```text 出力のレンダリング.txt theme={null} [1, 2, 3, 4] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `item` | Any | リストに付加する項目。 | ## blog\_all\_posts\_url `blog_all_posts_url`関数は、指定されたブログ内の全てのブログ記事のリストページを指す完全なURLを返します。 以下の例は、この関数をアンカーの`href`として使用する方法を示しています。 ```html example.html theme={null} All Marketing blog posts ``` ```html example.html theme={null} All Marketing blog posts ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | ## blog\_author\_url `blog_author_url`関数は、指定されたブログ執筆者のリストページを指す完全なURLを返します。 以下の例は、この関数をアンカーの`href`として使用する方法を示しています。この関数の例に示されているように、これを`blog_authors`関数と組み合わせることが可能です。 ```html example.html theme={null} Brian Halligan ``` ```html example.html theme={null} Brian Halligan ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | 執筆者のリストページがどのブログにあるかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | | `author_slug` | 文字列型またはHubL変数 | どの執筆者にリンクするかを指定します。`content.blog_post_author.slug`またはハイフン付きの小文字の名前を使用できます。例:`"jane-doe"` | ## blog\_authors `blog_authors`関数は、指定されたブログのブログ執筆者オブジェクトから成るシーケンスを、スラッグの昇順に並べ替えて返します。このシーケンスを変数の中に保存して反復処理すると、カスタムの執筆者記事フィルターを作成できます。 各執筆者による公開中の記事数にアクセスするには、`author.live_posts`を使用できます。 > [!WARNING] > > **注**: この関数では執筆者数の上限が250件に設定されています。また、ページ1件につき10回の呼び出しという上限もあります。 以下の例の第1行は、この関数によって執筆者オブジェクトのシーケンスがどのように返されるかを示しています。残りの部分は、シーケンスを変数の中に保存し、執筆者オブジェクトを反復処理して執筆者リストのリンクをいくつか出力する例を示しています。この例は、ブログに4人の執筆者がいることを想定したものです。 ```html example.html theme={null} {{ blog_authors("default", 250) }} {% set my_authors = blog_authors("default", 250) %} ``` ```html example.html theme={null} [ Brian Halligan, Dharmesh Shah, Katie Burke, Kipp Bodnar] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | | `limit` | 整数 | 取得する執筆者数の上限を設定します。 | ## blog\_by\_id `blog_by_id`関数はID別にブログを返します。以下のコード例は、この関数を使ってハイパーリンクされたリスト項目を生成する方法を示しています。 > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき10回に制限されています。 ```html example.html theme={null} {% set my_blog = blog_by_id(47104297) %} ``` ```html example.html theme={null} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | ## blog\_page\_link `blog_page_link`関数は、ページ番号付きのブログリスト表示のURLを生成します。この関数は1つの数値パラメーターを受け入れ、これによって現在のページ、次のページ、前のページ、または特定のページのリンクを生成できます。この関数は通常、ページ番号付きアンカータグの`href`属性で使用され、ブログ一覧テンプレートで使用する必要があります。 以下に示す例では、アンカー`href`としてこの関数を使用しています。最初の例では、現在のページを出力します。2番目の例では、7ページ目を指定する数値7をパラメーターとして受け入れています。3番目の例では、`next_page_num`変数を使用し、現在のページからの相対ページ番号のリンクを生成しています(前のページを指定するには`last_page_num`変数を使用できます)。最後の例では、`current_page_num`変数と`+`演算子を使用して、現在のページより4つ大きい番号のページへのリンクを作成しています。 ```html example.html theme={null} Current page Page 7 Next Page Plus 4 ``` ```html example.html theme={null} Page 1 Page 7 Next Page Plus 4 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `page` | 数値またはHubL変数 | ページ番号のURLまたはHubL変数の生成に使用するページ番号。 | ## blog\_popular\_posts この関数は、特定数の人気のある記事をシーケンスとしてレンダリングします。このシーケンスを変数の中に保存することができ、forループでそれを反復処理すると、人気のある記事のカスタム記事リストを作成できます。 この関数の結果は6時間にわたりキャッシュされます。キャッシュを使用せずにHubLでブログ記事を取得するには、代わりに[blog\_recent\_tag\_posts](#blog-recent-tag-posts)を使用します。 以下のサンプルコードでは、最初の行にこの関数でどのようにシーケンスを取得するかが示されています。シーケンスは変数として保存され、その変数が[forループ](/docs/cms/reference/hubl/loops)で使用されます。[ブログ記事の変数](/docs/cms/reference/hubl/variables#ブログの変数)では例外なく、`content.`ではなく個々のループ項目の名前を使用する必要があります。この例では`pop_post.name`が使用されています。この手法は、ブログテンプレートやウェブサイトページに対して使用できます。 > [!WARNING] > > **注**: この関数では記事数の上限が200件に設定されています。また、ページ1件につき10回の呼び出しという上限もあります。 ```html example.html theme={null} {% set pop_posts = blog_popular_posts("default", 5, ["marketing-tips", "sales-tips"], "popular_past_month", "AND") %} {% for pop_post in pop_posts %}
{{ pop_post.name }}
{% endfor %} ``` ```html example.html theme={null} [Popular post title 1, Popular post title 2, Popular post title 3, Popular post title 4, Popular post title 5]
Popular post title 1
Popular post title 2
Popular post title 3
Popular post title 4
Popular post title 5
``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。 | | `limit` | 整数 | シーケンスに追加する投稿数を指定します(最大200件)。指定しない場合は、デフォルトで10に設定されます。 | | `tag_slug` | 配列 | 投稿を絞り込むための任意のタグのリスト。 | | `time_frame` | 文字列 | アナリティクス上で投稿を絞り込むための任意の期間。デフォルトの値は`"popular_past_year"`です。次のいずれかにする必要があります。
  • `"popular_all_time"`
  • `"popular_past_year"`
  • `"popular_past_six_months"`
  • `"popular_past_month"`
`logical_operator`パラメーターを含める場合、このパラメーターは必須です。 | | `logical_operator` | 文字列 | `tag_slug`に複数のタグが含まれている場合は、この演算子を使用してまたは`AND`ロジックまたは`OR`ロジックで結果をフィルタリングします。デフォルトでは、この関数は`OR`ロジックを使用して、指定されたタグのいずれかでタグ付けされた記事を返します。このパラメーターを含める場合は、`time_frame`が必須です。 | ## blog\_post\_archive\_url `blog_post_archive_url`関数は、指定されたブログ上の特定の日付値に対応するアーカイブのリストページの完全なURLを返します。この関数には2つの必須パラメーターと2つの任意指定パラメーターがあります。最初のパラメーターにはブログIDまたは単にキーワード`"default"`を指定します。2番目は、どの年のアーカイブされた記事を表示するかを指定します。 任意指定パラメーターには、それぞれどの月および日のアーカイブされた記事を表示するかが格納されます。 以下の例は、この関数をアンカーの`href`として使用する方法を示しています。 ```html example.html theme={null} Posts from July 5th, 2017 ``` ```html example.html theme={null} Posts from July 5th, 2017 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。 | | `year` | 整数 | 年。 | | `month` | 整数 | 月(任意)。 | | `day` | 整数 | 日(任意)。 | ## blog\_recent\_author\_posts `blog_recent_author_posts`関数は、指定された執筆者のブログ記事オブジェクトのシーケンスを、新しい順に並べ替えて返します。この記事シーケンスを変数の中に保存することができ、forループでそれを反復処理すると、特定の執筆者のカスタム記事リストを作成できます。 この関数は3つのパラメーターを受け入れます。最初のパラメーターにはどのブログから執筆者の記事を収集するかを指定します。値は`"default"`、または(ブログダッシュボードのURLで取得できる)特定のブログのIDです。2番目のパラメーターには、どの執筆者を使用するかを指定します。このパラメーターでは、\*\*`content.blog_post_author.slug`\*\*を使用して現在の記事の執筆者を指定することも、またはハイフン付きの小文字の名前(`"brian-halligan"`など)を受け入れることもできます。3番目のパラメーターには取得する記事数を指定します。 以下の例の第1行には、関数によってどのように執筆者の記事シーケンスが返されるかが示されています。この例では、執筆者名を正確に指定する代わりに現在の記事執筆者が使用されています。シーケンスは1つの変数に保存され、ループ処理されます。[ブログ記事の変数](/docs/cms/reference/hubl/variables#ブログの変数)では例外なく、`content.`ではなく個々のループ項目の名前を使用する必要があります。この例では`author_post.name`が使用されています。この手法はブログテンプレートとページテンプレートで使用できます。 > [!WARNING] > > **注**: この関数にはページ1件につき200件の記事、10回の呼び出しという上限があります。 ```html example.html theme={null} {{ blog_recent_author_posts("default", content.blog_post_author.slug, 5 ) }} {% set author_posts = blog_recent_author_posts("default", content.blog_post_author.slug, 5) %} {% for author_post in author_posts %}
{{ author_post.name }}
{% endfor %} ``` ```html example.html theme={null} [Post by author title 1, Post by author title 2, Post by author title 3, Post by author title 4, Post by author title 5]
Post by author title 1
Post by author title 2
Post by author title 3
Post by author title 4
Post by author title 5
``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | | `author_slug` | 文字列 | 絞り込む執筆者を指定します。 | | `limit` | 整数 | シーケンスに追加する投稿数を指定します(最大200件)。 | ## blog\_recent\_posts `blog_recent_posts`関数は、指定されたブログでのブログ記事オブジェクトから成るシーケンスを、新しい順に並べ替えて返します。この記事シーケンスを変数の中に保存することができ、forループでそれを反復処理すると、人気のある記事を示すカスタム記事リストを作成できます。 この関数は2つのパラメーターを受け入れます。最初のパラメーターには、どのブログから人気のある記事を収集するかを指定します。値は`"default"`、または(ブログダッシュボードのURLで取得できる)特定のブログのIDです。2番目のパラメーターには取得する記事数を指定します。 以下の例の第1行には、この関数によってどのようにシーケンスが返されるかが示されています。シーケンスは1つの変数に保存され、ループ処理されます。[ブログ記事の変数](/docs/cms/reference/hubl/variables#ブログの変数)では例外なく、`content.`ではなく個々のループ項目の名前を使用する必要があります。この例では`rec_post.name`が使用されています。この手法は、ブログテンプレートだけでなく通常のページに対しても使用できます。 > [!WARNING] > > **注**: この関数にはページ1件につき200件の記事、10回の呼び出しという上限があります。 ```html example.html theme={null} {{ blog_recent_posts("default", 5) }} {% set rec_posts = blog_recent_posts("default", 5) %} {% for rec_post in rec_posts %}
{{ rec_post.name }}
{% endfor %} ``` ```html example.html theme={null} [Recent post title 1, Recent post title 2, Recent post title 3, Recent post title 4, Recent post title 5]
Recent post title 1
Recent post title 2
Recent post title 3
Recent post title 4
Recent post title 5
``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | | `limit` | 整数 | シーケンスに追加する投稿数を指定します(最大200件)。 | ## blog\_recent\_tag\_posts `blog_recent_tag_posts` 関数は、指定されたタグ(複数可)のブログ記事オブジェクトから成るシーケンスを、新しい順に並べ替えて返します。この記事シーケンスを変数の中に保存することができ、forループでそれを反復処理すると、特定のタグのカスタム記事リストを作成できます。 以下のコード例で: * 第1行は、関数がどのようにタグの記事シーケンスを返すかを示しています * 第2行は、関数をシーケンス変数に保存する方法を示しています。コードの残りの部分は、forループを使用して変数値を循環処理します。[ブログ記事の変数](/docs/cms/reference/hubl/variables#ブログの変数)では例外なく、`content.`ではなく個々のループ項目の名前を使用する必要があります。この例では`tag_post.name`が使用されています。この手法は、ブログページとウェブサイトページの両方で使用できます。 [関連するブログ記事リストの作成](/docs/cms/reference/hubl/tags/standard-tags#ブログの関連記事)について詳細をご確認ください。 > [!WARNING] > > **注**: この関数にはページ1件につき100件の記事、10回の呼び出しという上限があります。 ```html example.html theme={null} {{ blog_recent_tag_posts("default", "marketing-tips", 5) }} {% set tag_posts = blog_recent_tag_posts("default", ["marketing", "fun", "inbound"], 3, "AND") %} {% for tag_post in tag_posts %}
{{ tag_post.name }}
{% endfor %} ``` ```html example.html theme={null} [Post about Marketing 1, Post about Marketing 2, Post about Marketing 3, Post about Marketing 4, Post about Marketing 5]
Post about Marketing
Post about Fun
Post about Inbound
``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | | `tag_slug` | 文字列 | 絞り込むタグを指定します。最大10個のタグをカンマ区切りで含めることができます。複数の単語を持つタグは、スペースをハイフンに置き換えた小文字にする必要があります。 | | `limit` | 整数 | シーケンスに追加する投稿数を指定します。`logical_operator`を含める場合、このパラメーターは必須です。 | | `logical_operator` | 文字列 | `tag_slug`に複数のタグが含まれている場合は、この演算子を使用してまたは`AND`ロジックまたは`OR`ロジックで結果をフィルタリングします。デフォルトでは、この関数は`OR`ロジックを使用して、指定されたタグのいずれかでタグ付けされた記事を返します。このパラメーターを含める場合は、`limit`が必須です。 | ## blog\_tag\_url `blog_tag_url`関数は、指定されたブログタグのリストページを指す完全なURLを返します。 この関数は2つのパラメーターを受け入れます。最初のパラメーターには、そのタグのリストページがどのブログ内に存在するかを指定します。2番目のパラメーターには、どのタグにリンクするかを指定します。このパラメーターでは、`content.topic_list`の特定のタグを示す\*\*`topic.slug`\*\*を使用できます。または、`"marketing-tips"`などのハイフン付きの小文字の名前を受け入れることもできます。 以下の例は、この関数をアンカーのhrefとして使用する方法を示しています。 ```html example.html theme={null} Inbound Marketing ``` ```html example.html theme={null} Inbound Marketing ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。特定のブログを指定する場合はIDを、デフォルトのブログを指定する場合は`"default"`を使用します。 | | `tag_slug` | 文字列 | リンク先のタグを指定します。 | ## blog\_tags `blog_tags`関数は、指定したブログで特によく使用されている(関連するブログ記事の数に基づく)250件のタグのシーケンスを、ブログ記事数順に並べ替えて返します。このシーケンスを変数の中に保存して反復処理すると、カスタムのタグ記事フィルターを作成できます。各タグの記事数にアクセスするには、`tag.live_posts`を使用できます。 この関数は2つのパラメーターを受け入れます。最初のパラメーターには、どのブログからタグを取得するかを指定します。2番目のパラメーターには、取得されるタグ数の上限を指定します。 以下の例の第1行は、関数がどのようにタグオブジェクトのシーケンスを返すかを示しています。例の残りの部分では、シーケンスを変数の中に保存し、タグオブジェクトを反復処理してタグのリンクをいくつか出力する例を示しています。この例では、ブログに4つのタグがあることを想定しています。 > [!WARNING] > > **注**: この関数ではタグ数の上限が250件に設定されています。 ```html example.html theme={null} {{ blog_tags("default", 250) }} {% set my_tags = blog_tags("default", 250) %}
    {% for item in my_tags %}
  • {{ item }}
  • {% endfor %}
``` ```html example.html theme={null} [ Blogging, Inbound Marketing, SEO, Social Media] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログを使用するかを指定します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | | `limit` | 整数 | 返されるタグの最大数。 | ## blog\_total\_post\_count この関数は、指定されたブログでの公開済み記事の総数を返します。パラメーターを指定しない場合、デフォルトのブログ記事数をカウントします。または、`"default"`を指定することや、別のブログの記事数をカウントするようにブログIDを指定することもできます。ブログIDは、対象のブログのブログダッシュボードのURLで得られます。 > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき10回に制限されています。 ```text hubl.txt theme={null} {{ blog_total_post_count }} {{ blog_total_post_count(359485112) }} ``` ```text 出力のレンダリング.txt theme={null} 16 54 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `selected_blog` | ブログIDまたは"default" | どのブログをカウントするかを指定します。ブログIDは[モジュールのブログフィールド](/docs/cms/reference/fields/module-theme-fields#ブログ)によって返されます。 | ## clear リストの全ての項目を削除します。`pop()`とは異なり、返されるデータはありません。 ```text hubl.txt theme={null} {% set words = ["phone","home"] %} {% do words.clear() %} {{words}} ``` ```text 出力のレンダリング.txt theme={null} [] ``` ## color\_contrast この関数は、[WCAGの基準](https://www.w3.org/WAI/WCAG21/Understanding/contrast-minimum)(英語)に基づいて色のコントラストを検証します。引数として2つの色を指定する必要があります。また、評価を指定するオプションの引数(`AA`または`AAA`)を含めることもできます。色が基準を満たしているか、基準を超えているかに基づいて、`true`または`false`を返します。 ```text hubl.txt theme={null} {{color_contrast('#FFFFFF','#273749')}} {{color_contrast('rgb(255, 255, 255)','rgb(229, 237, 245)','AAA')}}

Hey there

``` ```text 出力のレンダリング.txt theme={null} true false Hey there ``` | パラメーター | タイプ | 説明 | | - | - | - | | `color_1` | 色 | 比較する第1の色。許容値:
  • 6桁の16進数コード(`#FFFFFF`)
  • 3桁の16進数コード(`#F0A`)
  • RGBカラーコード(`rgb(12,31,1)`)
16進数コードまたはRGBカラーコードを格納する変数を使用することもできます。例:`theme.primary_color.color` | | `color_2` | 色 | 第1の色と比較する第2の色。 | | `rating` | 文字列 | 評価に使用するWCAGの基準。`AA`(デフォルト)または`AAA`のいずれかを指定できます。 | ## color\_variant この関数は、16進数値または色変数の明暗を指定の程度に応じて調整します。最初のパラメーターは16進数表記の色(例えば#FFDDFF)、つまり16進数値を格納する変数です。2番目のパラメーターでは、この色を調整する程度を0~255の範囲で指定します。この関数をCSSファイルで使用すると、色のバリエーションを作成できます。別のケースとして、色モジュールの色パラメーターでこれを使用すると、色バリエーションを自動生成する基本色をユーザーが指定できます。 以下の例では、`base_color`という変数に16進数表記の色#3A539Bが格納されます。色が-80調整され、より濃い青(#00034B)になります。 ```text hubl.txt theme={null} {% set base_color ="#3A539B" %} {{ color_variant(base_color, -80) }} ``` ```text 出力のレンダリング.txt theme={null} #00034b ``` | パラメーター | タイプ | 説明 | | - | - | - | | `base_color` | 16進数カラー文字列 | 変更の始点となる色。例:`#F7F7F7`。 | | `brightness_offset` | 整数 | 基本色の濃淡調整に使用するプラスまたはマイナスの数値。 | ## content\_by\_id `content_by_id`関数は、IDを基準にしてランディングページ、ウェブサイトページ、またはブログ記事を返します。この関数が受け入れるパラメーターは、数値のコンテンツIDのみです。 以下のコード例は、この関数を使ってハイパーリンクされたリスト項目を生成する方法を示しています。 > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき10回に制限されています。 ```html example.html theme={null} {% set my_content = content_by_id(4715624297) %} ``` ```html example.html theme={null} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `id` | ID | 検索するコンテンツのID。 | ## content\_by\_ids 特定のコンテンツIDのリストを基準にして、そのIDにマッチするランディングページ、ウェブサイトページまたはブログ記事から成るディクショナリー(辞書型)を返します。 この関数は1つのパラメーター、つまり検索するページまたはブログ記事のIDから成るリスト(配列)を受け入れます。最大で100個のコンテンツオブジェクトを渡すことができます。以下のコード例は、この関数を使ってハイパーリンクリスト項目を生成する方法を示しています。 > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき10回に制限されています。 ```html example.html theme={null} {% set contents = content_by_ids([4715624297, 4712623297, 5215624284]) %} ``` ```html example.html theme={null} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `ids` | リスト | 検索するページまたはブログ記事のIDのリスト。最大で100個のコンテンツオブジェクトを渡すことができます。 | ## copy リストのシャローコピーを返します。`a[:]`と同等の関数です。 「シャローコピー」では新しい複合オブジェクトが構築され、コピー元のオブジェクトへの「参照」が(可能な限り)それに挿入されます。 ```text hubl.txt theme={null} {% set a = ["ham"] %} {% set b = a.copy() %} a: {{a}} b: {{b}} After Append {% do a.append("swiss") %} a: {{a}} b: {{b}} ``` ```text 出力のレンダリング.txt theme={null} a: [ham] b: [ham] After Append a: [ham, swiss] b: [ham] ``` ## count ある変数がリスト内に出現する回数を返します。 ```html example.html theme={null} {% set attendees = ["Jack","Jon","Jerry","Jessica"] %} {% set jon_count = attendees.count("Jon") %} There are {{jon_count}} Jon's in the list.

After append:

{% do attendees.append("Jon") %} {% set jon_count_after_append = attendees.count("Jon") %} There are now {{jon_count_after_append}} Jon's in the list. ``` ```html example.html theme={null} There are 1 Jon's in the list.

After append:

There are now 2 Jon's in the list. ``` ## crm\_associations レコードID、関連付けカテゴリー、関連付け定義IDによって、別のレコードに関連付けられているCRMレコードのリストを取得します。 この関数は、オブジェクトおよび`has_more`、`total`、`offset`、`results`の属性を返します。 * `has_more`は、このバッチに含まれるよりも多い結果が存在する(totalがoffsetよりも大きい)ことを示します。 * `total`は、得られる結果の総数です。 * `offset`は、この次の結果バッチに使用されるオフセットです。 * \*`results`\*は、関数のパラメーターに一致する特定の関連オブジェクトから成る配列を返します。 > [!WARNING] > > **注**: セキュリティー上の理由から、一般に公開されるページでは、[HubSpotの標準オブジェクトタイプ](https://knowledge.hubspot.com/ja/ja/crm-setup/get-started-with-objects#standard-objects)のうち、`product`オブジェクトと`marketing_event`オブジェクトのみが取得できます。それ以外の標準オブジェクトタイプは、[パスワードで保護](https://knowledge.hubspot.com/ja/cos-pages-editor/how-can-i-password-protect-my-pages)されたページ、または[アクセス権が設定されたCMSのログインを必要とするページでホスティングされる必要があります。](https://knowledge.hubspot.com/ja/articles/kcs_article/cms-pages-editor/control-audience-access-to-pages)カスタムオブジェクトには同様の制約はありません。 ```text hubl.txt theme={null} {% set associated_contacts = crm_associations(847943847, "HUBSPOT_DEFINED", 2, "limit=3&years_at_company__gt=2&orderBy=email", "firstname,email", false) %} {{ associated_contacts }} ``` ```text 出力のレンダリング.txt theme={null} {has_more=true, offset=3, total=203, results=[{firstname=Aimee, id=905, email=abanks@company.com}, {firstname=Amy, id=1056, email=abroma@company.com}, {firstname=Abigael, id=957, email=adonahu@company.com}]} ``` > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき最大10回に制限されています。それぞれの`crm_associations`呼び出しで、最大100個のオブジェクトを取得できます。デフォルトでは10個のオブジェクトに制限されています。 | パラメーター | タイプ | 説明 | | - | - | - | | `id` | ID | 関関連付けの検索元となるレコードのID。 | | `association category` | 文字列 | 関連付け定義のカテゴリー。有効な値は、`HUBSPOT_DEFINED`、`USER_DEFINED`、`INTEGRATOR_DEFINED`です。このパラメーターは、HubSpotによって定義済みの標準の関連付けタイプの場合は省略できます。 | | `association type id` | 整数 | 使用する関連付け定義のID。HubSpotでサポートされる標準オブジェクトについては、[使用する関連付けタイプのID](https://developers.hubspot.jp/docs/guides/api/crm/associations)を参照してください。それ以外の場合、この関連付けIDは[CRMオブジェクトスキーマAPI](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)で確認できます。 | | `query` | 文字列 | `&`で区切った、レコードの`id`またはクエリー文字列。全ての式はANDで互いに結合されます。以下の演算子がサポートされます:
  • `eq`(デフォルト)
  • `neq`
  • `lt`
  • `lte`
  • `gt`
  • `gte`
  • `is_null`
  • `not_null`
  • `in`
  • `nin`
  • `contains`(複数値のプロパティーまたは文字列プロパティーに適用されます。例:"firstname\_\_contains=Tim")
クエリーには以下のパラメーターを含めることができます。
  • `limit`:レスポンスとして返される結果の最大数。例:`limit=50`offset
  • `offset`:返される結果の数がlimitパラメーターを超えている場合、結果ページ送りに使用されます。例:`offset=51`
  • `orderBy`:特定のプロパティーに基づいて結果を並べ替えます。例:`orderBy=email`。
| | `properties` | 文字列 | 任意。返されるカンマ区切りリストのプロパティー。デフォルトでは、一般的なプロパティーから成る小さなセットが返されます。IDプロパティーは常に返されます。プロパティーの一覧は[全てのコンタクトプロパティーの取得](https://developers.hubspot.jp/docs/reference/api/crm/properties/v1-contacts#get-all-contact-properties)(英語)と[全ての会社プロパティーの取得](https://developers.hubspot.jp/docs/reference/api/crm/properties/v1-companies#get-all-company-properties)(英語)のエンドポイントにて確認できます。 | | `formatting` | ブール値 | 任意。ポータル設定に従って日付や通貨などの値の書式を設定します。文字列を未加工のままにするには、これを省略するか`false`を渡します。 | ## crm\_object クエリーまたはIDを使用して1つのCRMレコードを取得します。レコードは、プロパティーと値から成るディクショナリーとして返されます。 この関数は[カスタムオブジェクトおよびインテグレーターオブジェクトで使用](/docs/cms/start-building/features/data-driven-content/crm-objects)することもできます。 > [!WARNING] > > **注**: セキュリティー上の理由から、一般に公開されるページでは、[HubSpotの標準オブジェクトタイプ](https://knowledge.hubspot.com/ja/ja/crm-setup/get-started-with-objects#standard-objects)のうち、`product`オブジェクトと`marketing_event`オブジェクトのみが取得できます。それ以外の標準オブジェクトタイプは、[パスワードで保護](https://knowledge.hubspot.com/ja/cos-pages-editor/how-can-i-password-protect-my-pages)されたページ、または[アクセス権が設定されたCMSのログインを必要とするページでホスティングされる必要があります。](https://knowledge.hubspot.com/ja/articles/kcs_article/cms-pages-editor/control-audience-access-to-pages)カスタムオブジェクトには同様の制約はありません。 > [!TIP] > > `in`と`contains`にはどのような違いがありますか? > > `in`は、プロパティー値が、指定された値のうちいずれかの値と一致するかどうかを返します。一方`contains`は、複数選択プロパティー値が、指定された全ての値を含むかどうかを返します。 ```text hubl.txt theme={null} {% set contact = crm_object("contact", "email=contact@company.com", "firstname,lastname", false) %} {% set contact = crm_object("contact", 123) %} {{ contact.firstname }} {{ contact.lastname }} ``` ```text 出力のレンダリング.txt theme={null} Brian Halligan ``` > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき最大10回に制限されています。 | パラメーター | タイプ | 説明 | | - | - | - | | `object_type` | 文字列 | オブジェクトタイプ名。オブジェクトタイプ名では大文字と小文字が区別されます。ポートされるオブジェクトタイプは、[こちら](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#サポートされるcrmオブジェクトタイプ)で確認できます。アカウントで使用できるアカウント固有オブジェクトタイプとインテグレーター オブジェクト タイプの名前を調べるには、[CRMオブジェクトスキーマAPI](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)を使用してタイプ定義を取得し、名前プロパティーを探します。このプロパティーには、関数内で使用する内部オブジェクトタイプの名前が含まれています。組み込みオブジェクトと同名のfunctionForインテグレーター オブジェクト タイプとアカウント固有オブジェクトタイプの場合は、オブジェクトの[完全修飾名](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)(FQN)を使用します。 | | `query` | 文字列 | 任意。`&`で区切った、レコードの`id`またはクエリー文字列。全ての式はANDで互いに結合されます。以下の演算子がサポートされます:
  • `eq`(デフォルト)
  • `neq`
  • `lt`
  • `lte`
  • `gt`
  • `gte`
  • `is_null`
  • `not_null`
  • `in`
  • `nin`
  • `contains`(複数値のプロパティーまたは文字列プロパティーに適用されます。例:"firstname\_\_contains=Tim")
クエリーには以下のパラメーターを含めることができます。
  • `limit`:レスポンスとして返される結果の最大数。例:`limit=50`offset
  • `offset`:返される結果の数がlimitパラメーターを超えている場合、結果ページ送りに使用されます。例:`offset=51`
  • `orderBy`:特定のプロパティーに基づいて結果を並べ替えます。例:`orderBy=email`。
| | `properties` | 文字列 | 任意。返されるカンマ区切りリストのプロパティー。デフォルトでは、一般的なプロパティーから成る小さなセットが返されます。IDプロパティーは常に返されます。プロパティーの一覧は[全てのコンタクトプロパティーの取得](https://developers.hubspot.jp/docs/reference/api/crm/properties/v1-contacts#get-all-contact-properties)(英語)と[全ての会社プロパティーの取得](https://developers.hubspot.jp/docs/reference/api/crm/properties/v1-companies#get-all-company-properties)(英語)のエンドポイントにて確認できます。 | | `formatting` | ブール値 | 任意。ポータル設定に従って日付や通貨などの値の書式を設定します。文字列を未加工のままにするには、`false`を渡します。 | > [!WARNING] > > **注**: クエリーを作成する際、`range`、`distinct`、`ndistinct`、`startswith`の値は予約済みのキーワードです。これらの名前のいずれかを使用するプロパティーを照会するには、次の形式を使用する必要があります:`range__eq=`(`range=`ではない)。 ## crm\_objects 特定のオブジェクトタイプのレコードのリストをHubSpotのCRMから取得します。 この関数は、オブジェクトおよび`has_more`、`total`、`offset`、`results`の属性を返します。 * `has_more`は、このバッチに含まれるよりも多い結果が存在する(totalがoffsetよりも大きい)ことを示します。 * `total`は、得られる結果の総数です。 * `offset`は、この次の結果バッチに使用されるオフセットです。 * `results`は、関数のパラメーターに一致する特定のオブジェクトから成る配列を返します。 クエリーで少なくとも1つの順序パラメーターを使用することで、結果を並べ替えることができます。例えば`crm_objects("contact", "firstname=Bob&order=lastname&order=createdate")`の場合、`"Bob"`という名(ファーストネーム)のコンタクトが、まず姓の順序、次に`createdate`順で並べ替えられます。逆順で並べ替えるには、例えば`order=-createdate`のようにプロパティー名の前に`-`を付加します。CRMオブジェクト関数は[カスタムオブジェクトおよびインテグレーターオブジェクトで使用](/docs/cms/start-building/features/data-driven-content/crm-objects)することもできます。 > [!WARNING] > > **注**: セキュリティー上の理由から、一般に公開されるページでは、[HubSpotの標準オブジェクトタイプ](https://knowledge.hubspot.com/ja/ja/crm-setup/get-started-with-objects#standard-objects)のうち、`product`オブジェクトと`marketing_event`オブジェクトのみが取得できます。それ以外の標準オブジェクトタイプは、[パスワードで保護](https://knowledge.hubspot.com/ja/cos-pages-editor/how-can-i-password-protect-my-pages)されたページ、または[アクセス権が設定されたCMSのログインを必要とするページでホスティングされる必要があります。](https://knowledge.hubspot.com/ja/articles/kcs_article/cms-pages-editor/control-audience-access-to-pages)カスタムオブジェクトには同様の制約はありません。 ```text hubl.txt theme={null} {% set objects = crm_objects("contact", "firstname__not_null=&limit=3", "firstname,lastname") %} {{ objects }} ``` ```text 出力のレンダリング.txt theme={null} {has_more=true, offset=3, total=331, results=[{firstname=Brian, id=44151, lastname=Halligan}, {firstname=Dharmesh, id=44051, lastname=Shah}, {firstname=George, id=88551, lastname=Washington}]} ``` > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき最大10回に制限されています。それぞれの`crm_objects`呼び出しで、最大100個のオブジェクトを取得できます。デフォルトでは10個のオブジェクトに制限されています。 | パラメーター | タイプ | 説明 | | - | - | - | | `object_type` | 文字列 | オブジェクトのタイプの名前。オブジェクトタイプ名では大文字と小文字が区別されます。標準的なオブジェクトタイプでは、単数形と複数形を使用できます(例:`contact`、`contacts`)。詳しくは、[サポート対象のオブジェクトタイプ](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#サポートされるcrmオブジェクトタイプ)をご確認ください。アカウントで使用できるアカウント固有オブジェクトタイプとインテグレーター オブジェクト タイプの名前を調べるには、[CRMオブジェクトスキーマAPI](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)を使用して、タイプ定義と名前プロパティーを取得します。組み込みオブジェクトと同名のインテグレーター オブジェクト タイプとアカウント固有オブジェクトタイプの場合は、オブジェクトの[完全修飾名](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)(FQN)を使用します。 | | `query` | 文字列 | 任意。`&`で区切った、レコードのIDまたはクエリー文字列。全ての式はANDで互いに結合されます。以下の演算子がサポートされます。
  • `eq`(デフォルト)
  • `neq`
  • `lt`
  • `lte`
  • `gt`
  • `gte`
  • `is_null`
  • `not_null`
  • `in`
  • `nin`
  • `contains`(複数値のプロパティーまたは文字列プロパティーに適用されます。例:"firstname\_\_contains=Tim")
例:`"email=contact@company.com"` | | `properties` | 文字列 | 任意。返されるカンマ区切りリストのプロパティー。デフォルトでは、一般的なプロパティーから成る小さなセットが返されます。IDプロパティーは常に返されます。プロパティーの一覧は[全てのコンタクトプロパティーの取得](https://developers.hubspot.jp/docs/reference/api/crm/properties/v1-contacts#get-all-contact-properties)(英語)と[全ての会社プロパティーの取得](https://developers.hubspot.jp/docs/reference/api/crm/properties/v1-companies#get-all-company-properties)(英語)のエンドポイントにて確認できます。レコードIDは、プロパティーリストに明示的に追加されていない場合でも、返されるオブジェクトプロパティーに常に含まれます。 | | `formatting` | ブール値 | 任意。ポータル設定に従って日付や通貨などの値の書式を設定します。文字列を未加工のままにするには、`false`を渡します。 | > [!WARNING] > > **注**: クエリーを作成する際、`range`、`distinct`、`ndistinct`、`startswith`の値は予約済みのキーワードです。これらの名前のいずれかを使用するプロパティーを照会するには、次の形式を使用する必要があります:`range__eq=`(`range=`ではない)。 ## crm\_property\_definition 指定したオブジェクトタイプと1つのプロパティー名のプロパティー定義を取得します。 サポート対象のオブジェクトタイプは、HubSpot標準オブジェクト(コンタクトなど)、ポータル固有のオブジェクト、インテグレーターオブジェクトです。 **HubL** ```hubl theme={null} {{ crm_property_definition("house_listing", "agent_name") }} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `object_type` | 文字列 | オブジェクトタイプ名。オブジェクトタイプ名では大文字と小文字が区別されます。ポートされるオブジェクトタイプは、[こちら](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#サポートされるcrmオブジェクトタイプ)で確認できます。アカウントで使用できるアカウント固有オブジェクトタイプとインテグレーター オブジェクト タイプの名前を調べるには、[CRMオブジェクトスキーマAPI](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)を使用してタイプ定義を取得し、名前プロパティーを探します。このプロパティーには、関数内で使用する内部オブジェクトタイプの名前が含まれています。組み込みオブジェクトと同名のfunctionForインテグレーター オブジェクト タイプとアカウント固有オブジェクトタイプの場合は、オブジェクトの[完全修飾名](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)(FQN)を使用します。 | | `property_name` | 文字列 | 定義を取得するプロパティーの名前。大文字と小文字は区別されません。 | ## crm\_property\_definitions 指定されたオブジェクトタイプと一連のプロパティー名のプロパティー定義を取得します。 サポート対象のオブジェクトタイプは、HubSpot標準オブジェクト(コンタクトなど)、ポータル固有のオブジェクト、インテグレーターオブジェクトです。 **HubL** ```hubl theme={null} {{ crm_property_definitions("house_listing", "agent_name,address") }} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `object_type` | 文字列 | オブジェクトタイプ名。オブジェクトタイプ名では大文字と小文字が区別されます。ポートされるオブジェクトタイプは、[こちら](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#サポートされるcrmオブジェクトタイプ)で確認できます。アカウントで使用できるアカウント固有オブジェクトタイプとインテグレーター オブジェクト タイプの名前を調べるには、[CRMオブジェクトスキーマAPI](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)を使用してタイプ定義を取得し、名前プロパティーを探します。このプロパティーには、関数内で使用する内部オブジェクトタイプの名前が含まれています。組み込みオブジェクトと同名のfunctionForインテグレーター オブジェクト タイプとアカウント固有オブジェクトタイプの場合は、オブジェクトの[完全修飾名](https://developers.hubspot.com/docs/cms/guides/data-driven-content/crm-objects#カスタム-オブジェクト-タイプの詳細を取得する)(FQN)を使用します。 | | `property_name` | 文字列 | 任意。カンマで区切られた、定義を取得するプロパティーの名前(名前では大文字と小文字は区別されません)。空白の場合、全てのプロパティーの定義が取得されます。 | ## cta CTAモジュールには、コードバリエーションを含むパラメーターが多数あるので、cta関数を使用するとテンプレート、ページ、Eメールの中に特定のCTAを簡単に生成できます。リッチテキストエディターを使ってCTAを追加するとき、エディターはこの関数を使用します。 > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき10回に制限されています。 ```text hubl.txt theme={null} {{ cta("ccd39b7c-ae18-4c4e-98ee-547069bfbc5b") }} {{ cta("ccd39b7c-ae18-4c4e-98ee-547069bfbc5b", "justifycenter") }} ``` ```html example.html theme={null} Start a HubSpot trial Start a HubSpot trial ``` | パラメーター | タイプ | 説明 | | - | - | - | | `guid` | 文字列 | レンダリングするCTAのID。CTAの詳細画面のURLで確認できます。 | | `align_opt` | 列挙 | CTAの位置を調整します。値なし:`justifyleft`、`justifycenter`、`justifyright`、`justifyfull`。 | ## extend 反復可能オブジェクトの全ての項目を付加することで、リストを拡張します。言い換えると、あるリストの全ての項目を別のリストに挿入します。 ```text hubl.txt theme={null} {% set vehicles = ["boat","car","bicycle"] %} {% set more_vehicles = ["airplane","motorcycle"] %} {% do vehicles.extend(more_vehicles) %} {{vehicles}} ``` ```text 出力のレンダリング.txt theme={null} [boat, car, bicycle, airplane, motorcycle] ``` ## file\_by\_id この関数は、IDを基準に1件のファイルのメタデータを返します。唯一のパラメーターとして、検索するファイルを示す数値IDを受け入れます。一度に複数のファイルを取得するには、代わりに[files\_by\_ids](#files_by_ids)関数を使用します。 > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき10回に制限されています。 ```text hubl.txt theme={null} {% set file = file_by_id(123) %} {{ file.friendlyUrl }} ``` ```text 出力のレンダリング.txt theme={null} https://www.hubspot.com/hubfs/HubSpot_Logos/HSLogo_color.svg ``` | パラメーター | タイプ | 説明 | | - | - | - | | `file_id` | 数値 | 検索するファイルのID。 | ## files\_by\_ids IDを基準に複数のファイルのメタデータを返します。ファイルIDの配列を受け入れます。 > [!WARNING] > > **注**: この関数には、1ページあたり10件の呼び出しという制限があります。この関数は、最大100個のファイルIDを受け入れることができます。 ```text hubl.txt theme={null} {% set files = files_by_ids([123,456])%} {% for file in files %} URL:{{file.friendlyUrl}}
{% endfor %} ``` ```text 出力のレンダリング.txt theme={null} URL:https://api-na1.hubspot.com/filemanager/api/v2/files/123/example-file-1 URL:https://api-na1.hubspot.com/filemanager/api/v2/files/456/example-file-2 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `file_id` | 数値 | 検索するファイルのID。カンマ区切りで指定します(最大100個)。 | 例えばこの関数を使用して、コンタクトのアップロードされたファイルをループ処理することができます。結果をループ処理するには、[split HubLフィルター](/docs/cms/reference/hubl/filters#split)を使用する必要があります。これは、CRMプロパティーがセミコロン区切りの文字列として返されるためです。 ```hubl theme={null} {% set objects = crm_objects("contact", "email=bh@hubspot.com", "file").results %} {% for item in objects %} {% set fileIDs = item.file|split(";") %} {% set files = files_by_ids(fileIDs) %} {% for file in files %}
File name: {{file.name}}
Friendly Url: {{file.friendlyUrl }}
Url: {{file.url }}

{% endfor %} {% endfor %} ``` ## flag\_content\_for\_access\_check ブログ記事で[セルフ登録アクセスが設定されている](https://knowledge.hubspot.com/ja/ja/blog/use-self-registration-for-private-blog-content)場合、訪問者は、記事のコンテンツ全体を表示するには登録またはログインする必要があります。HubSpotのデフォルトのブログ リスト アセットには、この機能が自動的に含まれています。また、アクセスするためにセルフ登録が必要な記事のロック アイコン インジケーターも含まれています。[この関数とそれに対応するAPIを使用してカスタムソリューションを構築する](https://developers.hubspot.com/docs/cms/testing-staging-performance/memberships/overview#アクセス権設定のユーザーフロー)方法の詳細をご確認ください。 この関数は、現在の訪問者がブログ記事にアクセスできるかどうかを確認します。呼び出されると、この関数は次の属性に置き換えられます。 `hs-member-content-access=` A value of `true` indicates that the blog post requires the visitor to log in to view the full content. ```text hubl.txt theme={null} {% for content in contents %}
...
{% endfor %} ``` ```text 出力のレンダリング.txt theme={null}
...
``` | パラメーター | タイプ | 説明 | | - | - | - | | `ID` | ID | 現在ログインしている閲覧者に対してチェックされるコンテンツのID。 | ## follow\_me\_links [アカウントで設定されているソーシャル メディア アカウントへのリンク](https://knowledge.hubspot.com/ja/ja/design-manager/add-social-links-to-hubspot-templates#add-social-accounts-to-the-follow-me-module)を返します。[デフォルトのfollow\_meモジュール](/docs/cms/reference/modules/default-modules#既定のウェブモジュール)で使用されます。 ```text hubl.txt theme={null} {% set fm = follow_me_links() %} {{ fm }} ``` ```text 出力のレンダリング.txt theme={null} [FollowMeLink{type=URL, id=5142734, altName=RSS, followMeUrl=http://website.com/rss.xml, iconName=rss, name=http://website.com/rss.xml}] ``` ## format\_address コンテキストのロケールに基づいて住所の書式を設定します。 ```text hubl.txt theme={null} {{ format_address('en-us', { address: "25 First Street", address2: "2nd Floor", city: "Cambridge", state: "MA", country: "United States", zip: "02141"}) }} ``` ```text 出力のレンダリング.txt theme={null} [25 First Street, 2nd Floor, Cambridge, MA 02141, United States] ``` | パラメーター | タイプ | 説明 | | - | - | - | | `locale` | 文字列 | 住所の書式設定に適用するロケール。 | | `address` | 文字列 | 番地。 | | `address2` | 文字列 | 住所の2行目(建物名、階数、部屋番号など)。 | | `city` | 文字列 | 住所の市区町村。 | | `state` | 文字列 | 住所の都道府県。 | | `country` | 文字列 | 住所の国。 | | `zip` | 文字列 | 住所の郵便番号。 | ## format\_company\_name 必要に応じて日本語の敬称を追加するように会社名の書式を設定します。 ```text hubl.txt theme={null} {{ format_company_name("companyName", addJapaneseHonorifics) }} ``` ```text 出力のレンダリング.txt theme={null} HubSpot ``` | パラメーター | タイプ | 説明 | | - | - | - | | `companyName` | 文字列 | 会社の名前。 | | `useHonorificIfApplicable` | ブール値 | `true`に設定されている場合、コンテキストの言語が日本語であれば、必要に応じて会社名に日本語の敬称が追加されます。 | ## format\_name 必要に応じて、姓の後に名を続け、日本語の敬称を追加するように、個人の名前の書式を設定します。 ```text hubl.txt theme={null} {{ format_name("firstName", "surname", addJapaneseHonorifics) }} ``` ```text 出力のレンダリング.txt theme={null} Hobbes Baron ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `firstName` | 文字列 | 個人の名。 | | | `surname` | 文字列 | 個人の姓。 | `False` | | `useHonorificIfApplicable` | ブール値 | `true`に設定されている場合、コンテキストの言語が日本語であれば、必要に応じて日本語の敬称が追加されます。 | | ## format\_datetime HubLフィルター[format\_datetime](/docs/cms/reference/hubl/filters#format_datetime)]\(/reference/cms/hubl/filters#datetimeformat(非推奨))と同様に、日付オブジェクトの日付と時刻の両方のコンポーネントの書式を設定します。この関数は、非推奨の`datetimeformat`関数に置き換わるものです。 ```text hubl.txt theme={null} {{ format_datetime(content.publish_date, "short", "America/New_York", "en") }} ``` ```text 出力のレンダリング.txt theme={null} 12/31/69 7:00 PM ``` | パラメーター | タイプ | 説明 | | - | - | - | | `format` | 文字列 | 使用する形式。次のいずれかを使用できます。
  • `short`
  • `medium`
  • `long`
  • `full`
  • 英語に従ったカスタムパターン[Unicode LDML](https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns)
| | `timeZone` | 文字列 | [IANA TZDB形式](https://data.iana.org/time-zones/tzdb/)(英語)で出力される日付のタイムゾーン。 | | `locale` | 文字列 | ロケール対応の形式に使用するロケール。 | ## geo\_distance この関数には4つのパラメーターがあり、地球上の2地点間の楕円2D距離を計算します。この関数は、HubDBデータを取得するためのフィルタークエリーとして使用します。 ```html example.html theme={null} {% for row in hubdb_table_rows(1234567, "geo_distance(loc,1.233,-5.678,mi)__gt=500") %} {{row.name}}
{% endfor %} ``` ```html example.html theme={null} Cambridge, MA
Salem, MA
San Diego, CA
Chicago, IL
``` | パラメーター | タイプ | 説明 | | - | - | - | | `point1` | 位置 | HubDB列からの位置。 | | `point2_lat` | 緯度 | point2の緯度。 | | `point2_long` | 経度 | point2の経度。 | | `units` | 文字列 | 戻り値の単位。`FT`(フィート)、`MI`(マイル)、`M`(メートル)、`KM`(キロメートル)が使用できます。 | ## get\_asset\_url この関数は、指定したテンプレートまたはコードファイルの公開URLを返します。この関数のパラメーターは、デザインマネージャー内でのアセットのパスです。コードファイルURLは、公開されるたびに更新されます。したがって、この関数を使用すると常にファイルの最新バージョンを使用していることを確認できます。 **ファイル**を右クリックして[公開URLをコピー]を選択するか、[アクション]をクリックして[公開URLをコピー]を選択することで、アプリ内でこの関数を自動的に生成できます。 以下の例では、デザインマネージャーで作成されたJavaScriptファイルのURLを取得します。これを` ``` ## resize\_image\_url ファイルマネージャーに保存された画像のURLを、リクエスト時に画像のサイズを変更するURLに書き換えます。この関数は1つの必須パラメーターと5つの任意指定パラメーターを受け入れます。少なくとも1つの任意指定パラメーターを渡す必要があります。 必須 * **URL**: HubSpotでホスティングされている画像のURL(文字列)。 任意 * **width**: 画像の新しい幅(ピクセル単位の数値)。 * **height**: 画像の新しい高さ(ピクセル単位の数値)。 * **length**: 画像の新しい長辺(ピクセル単位の数値)。 * **upscale**: 画像の元の寸法よりも拡大される場合でもサイズ変更後の寸法を使用するかどうかを示すブール値(画像がぼやけて表示される可能性があります)。 * **upsize**: 元のバイト数よりも増える場合でもサイズ変更後の画像を返すかどうかを示すブール値。 > [!WARNING] > > **注**: 高さまたは幅が4096ピクセルを超える画像は、自動的にサイズ変更されません。代わりに、[手動で画像のサイズを変更](https://knowledge.hubspot.com/ja/ja/files/automatic-image-resizing-on-hubspot-content)する必要があります。 ```text hubl.txt theme={null} {{ resize_image_url("http://your.hubspot.site/hubfs/img.jpg", 0, 0, 300) }} ``` ```text 出力のレンダリング.txt theme={null} http://your.hubspot.site/hubfs/img.jpg?length=300&name=img.jpg ``` | パラメーター | タイプ | 説明 | | - | - | - | | `url` | 文字列 | HubSpotでホスティングされている画像のURL。 | | `width` | 整数(px) | 画像の新しい幅(ピクセル単位)。 | | `height` | 整数(px) | 画像の新しい高さ(ピクセル単位)。 | | `length` | 整数(px) | 画像の新しい長辺(ピクセル単位)。 | | `upscale` | ブール値 | 画像の元の寸法よりも拡大される場合でもサイズ変更後の寸法を使用するかどうかを示すブール値(画像がぼやけて表示される可能性があります)。デフォルト値は`false`です。 | | `upsize` | ブール値 | 元のバイト数よりも増える場合でもサイズ変更後の画像を返すかどうかを示すブール値。デフォルト値は`false`です。 | ## reverse リスト内の項目の順序を逆にします。受け入れるパラメーターはありません。オブジェクトを逆にするか、リスト内を逆に反復処理するイテレーターを返すには、[`|reverse`](/docs/cms/reference/hubl/filters#reverse)を使用します。 ```text hubl.txt theme={null} {% set numbers = [1,2,3,4] %} {% do numbers.reverse() %} {{numbers}} ``` ```text 出力のレンダリング.txt theme={null} [4, 3, 2, 1] ``` ## set\_response\_code レスポンスコードを指定されたコードに設定します。現在、指定できるコードは[404](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404)だけです。これを使用すると、ページから`404`エラーが返されます。 ```text hubl.txt theme={null} {{ set_response_code(404) }} ``` ```text 出力のレンダリング.txt theme={null} ``` | パラメーター | タイプ | 説明 | | - | - | - | | `code` | 整数 | HTTPレスポンスコード。現在、指定できるコードは`404`だけです。 | ## super この関数は、[extends](/docs/cms/reference/hubl/overview#blocks-and-extends)タグを使用して、親テンプレートの内容を子テンプレート内に出力します。 例えば下記のコードでは、`sidebar`という名前のHubLブロックを使って基本HTMLテンプレートが作成され、`parent.html`として保存されます。その親ファイルを拡張する2番目のテンプレートファイルが作成されます。通常、`

`は親HTMLのsidebarブロック内に出力されます。しかし、`super`を使用すると、親テンプレートのsidebarブロックの内容が子テンプレートの内容と結合されます。 ```html example.html theme={null} {% extends "custom/page/web_page_basic/parent.html" %} {% block sidebar %}

Table Of Contents

{{ super() }} {% endblock %} ``` ```html example.html theme={null} This is the parent template

Table of contents

Sidebar content from parent. ``` ## today 今日の始まり(午前0:00)を返します。タイムゾーンをデフォルトのUTCから変更するパラメーターを追加できます(任意)。 ```text hubl.txt theme={null} {{ today() }} {{ today("America/New_York") }} {{ unixtimestamp(today("America/New_York").plusDays(1)) }} ``` ```text 出力のレンダリング.txt theme={null} 2018-10-23T00:00Z 2018-10-23T00:00-04:00[America/New_York] 1540353600000 ``` ## to\_local\_time HubSpotのレポート設定に基づいて、UNIXタイムスタンプをローカル時間に変換します。その後、datetimeformatフィルターを適用して日付の書式を設定できます。 ```text hubl.txt theme={null} {{ to_local_time(eastern_dt) }} ``` ```text 出力のレンダリング.txt theme={null} 2015-05-13 10:37:31 ``` | パラメーター | タイプ | 説明 | | - | - | - | | `date` | 日時 | ローカル時間への変換元となるUNIXタイムスタンプ。 | ## topic\_cluster\_by\_content\_id コンテンツ部分に関連するトピッククラスターを表すHubLディクショナリーを(渡されたコンテンツIDで判別して)返します。これには、関連付けられているピラーページ、コアトピック、サブトピックについてのメタデータが含まれます。これを使用すると、\[関連ピラーページが存在する場合]、それをコンテンツ部分に「自動リンク」させることができます。 取得可能なメタデータがある場所は、attachableContent(現在のコンテンツのメタデータ)、topic(現在のコンテンツの関連トピックメタデータ)、coreTopic(関連クラスターのコアトピックのメタデータ)、およびpillarPage(関連ピラーページのメタデータ)です。 利用可能なプロパティーと属性を全て表示するには、`{{ topicCluster|pprint }}`を使用してください。 ```html example.html theme={null} {{ topic_cluster_by_content_id(content.id) }} {%- if content.id -%} {%- set topicCluster = topic_cluster_by_content_id(content.id) -%} {%- if topicCluster.pillarPage.url.value and topicCluster.pillarPage.publishState == "PUBLISHED" -%} {%- endif -%} {%- endif -%} ``` ```html example.html theme={null} { attachedContent, topic, coreTopic, pillarPage } (AttachedContentWithContext: {attachedContent=AttachedContent{id=1234, topicId=1234, clusterId=1234, portalId=0, attachable=Attachable{contentId=124, url=ValidatedUri{https://www.hubspot.com/}, attachableType=LANDING_PAGE, title=title, publishState=PUBLISHED, deletedAt=null}, isLinkedToPillarPage=null, isPillarPage=null, createdAt=1547238986475, updatedAt=1547238986475, deletedAt=null}, coreTopic=Optional[Topic{id=1234, portalId=0, clusterId=1234, phrase=TOPIC PHRASE, attachedContent=null, isCoreTopic=false, createdAt=1547157062081, updatedAt=1547232313421, deletedAt=null}], pillarPage=Optional[AttachedContent{id=1234, topicId=1234, clusterId=1234, portalId=0, attachable=Attachable{contentId=null, url=ValidatedUri{https://www.hubspot.com.com/}, attachableType=EXTERNAL_URL, title=null, publishState=PUBLISHED, deletedAt=null}, isLinkedToPillarPage=null, isPillarPage=null, createdAt=1547157062086, updatedAt=1547157062086, deletedAt=null}], topic=Optional[Topic{id=1234, portalId=0, clusterId=8345, phrase=topic phrase, attachedContent=null, isCoreTopic=false, createdAt=1547238962703, updatedAt=1547238962703, deletedAt=null}]}) ``` > [!WARNING] > > **注**: この関数の呼び出しは、ページ1件につき10回に制限されています。 | パラメーター | タイプ | 説明 | | - | - | - | | `content_id` | Id | 検索するページのID。 | ## truncate Truncate関数の動作は[truncateフィルター](/docs/cms/reference/hubl/filters#truncate)とまったく同じですが、フィルター構文ではなく関数構文を使用します。最初のパラメーターには、文字列を指定します。2番目のパラメーターには、どこで切り捨てるかを長さで指定します。最後のパラメーターには、切り捨てが発生した場合に追加する文字を指定します。 > [!WARNING] > > **注**: この関数は単語間のスペースを使用して文字列を短縮するため、日本語などの文字間にスペースがない言語では期待どおりに機能しないことがあります。 ```text hubl.txt theme={null} {{ truncate("string to truncate at a certain length", 19, false, "...") }} {% set longString = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sodales ultricies velit sit amet ornare." %} {{ truncate(longString, 40, false, "...") }} ``` ```text 出力のレンダリング.txt theme={null} string to truncate ... Lorem ipsum dolor sit amet, consectetur ... ``` | パラメーター | タイプ | 説明 | | - | - | - | | `string_to_truncate` | 文字列 | 切り詰められる文字列。 | | `length` | 整数 | テキストをどこで切り詰めるかを長さで指定します(HTML文字を含む)。 | | `killwords` | ブール値 | trueの場合、単語の途中であっても、文字列は指定された長さに切り詰められます。 | | `end` | 文字列 | テキストが切り詰められた位置を示すために付加される文字。 | ## type この関数は1つの引数を受け入れ、オブジェクトのタイプを返します。返される値は、`"bool"`、`"datetime"`、`"dict"`、`"float"`、`"int"`、`"list"`、`"long"`、`"null"`、`"str"`、`"tuple"`のいずれかです。 ```text hubl.txt theme={null} {{ type("Blog") }} {% set my_type = type("Blog") %}

{{my_type}}

``` ```text 出力のレンダリング.txt theme={null}

str

``` ## unixtimestamp 日時オブジェクトを指定した場合、この関数はUnixタイムスタンプを返します。 ```text hubl.txt theme={null} {{ unixtimestamp(d) }} ``` ```text 出力のレンダリング.txt theme={null} 1565983117868 ``` ## update 別のディクショナリーオブジェクトから、または反復可能なキーと値のペアからの要素を使って、ディクショナリーを更新します。この機能を使用して、オブジェクトを結合またはマージします。 ```text hubl.txt theme={null} {% set dict_var = {"authorName": "Douglas Judy", "authorTitle": "Mastermind" } %} {% do dict_var.update({"authorFriend": "Jake"}) %} {% do dict_var.update({"authorLocation": "unknown"}) %} {{ dict_var }} ``` ```text 出力のレンダリング.txt theme={null} {authorName=Douglas Judy, authorTitle=Mastermind, authorFriend=Jake, authorLocation=unknown} ``` # if文 Source: https://developers.hubspot.jp/docs/cms/reference/hubl/if-statements HubSpotのHubL if文に関する、CMS開発者向けの実践的なガイド。 モジュールやテンプレートに条件付きロジックを含めるには、HubLの[if文](#basic-if-statement-syntax)と[unless文](#unless-statements)を使用します。if文では、HubLで[サポートされる演算子](/docs/cms/reference/hubl/operators-and-expression-tests)を使用して、[式の検証](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests)を行うことができます。 > [!WARNING] > > \*\*注:\*\*Eメールモジュールの条件文の中で[パーソナライズトークン](/docs/cms/reference/hubl/functions#personalization-token)を使用する場合、[モジュールのプログラマブルEメールをオンにする](/docs/cms/start-building/features/data-driven-content/emails-with-programmable-content)必要があります。 > > [v3](/docs/api-reference/marketing-marketing-emails-v3/guide)または[v4](/docs/api-reference/marketing-single-send-v4/guide)の1回送信APIを介して渡される情報は、`if`文の中では機能しません。これは、情報が入る前にテンプレートがコンパイルされるためです。 ## if文の基本構文 HubLでは、テンプレートのロジックの構築にif文を使用します。HubLのif文の構文は、Pythonの条件付きロジックと似ています。`if`文は[文の区切り文字](/docs/cms/reference/hubl/variables-macros-syntax)に囲まれ、`if`文で始まり`endif`で終わります。 if文の基本構文の例を以下に示します。「condition」は、trueまたはfalseを評価するブール値の条件で置き換えます。 ```hubl theme={null} {% if condition %} If the condition is true print this to template. {% endif %} ``` 基本構文の次は、基本的なif文の実例を示します。以下の例に示すif文では、`my_module`という名前のHubLモジュールと`my_module`という名前の変数がテンプレートに含まれているかどうかをチェックしています。演算子を指定しないif文では、テンプレートのコンテキストにおいてモジュールが定義されているかどうかが評価されることに注意してください。 ```hubl theme={null} {% module "my_module" path="@hubspot/rich_text", label="My rich text module", html="Default module text" export_to_template_context=true %} {% if widget_data.my_module %} A module named "my_module" is defined in this template. {% endif %} {% set my_variable = "A string value for my variable" %} {% if my_variable %} The variable named my_variable is defined in this template. {% endif %} ``` HubLモジュールの評価時には`if`文内のモジュール名が引用符で囲まれている一方で、変数の検証時には変数名が引用符で囲まれていない点に注意してください。上記の例では、モジュールも変数もテンプレート上に存在するため、文が評価された結果、マークアップが出力されます。これらの例では、モジュールと変数が定義済みかどうかだけが確認され、モジュールと変数に値が含まれているかどうかは確認されないことに注意してください。 次に、モジュールがテンプレート上に存在しているかどうかではなく、モジュールに値が含まれているかどうかを評価する`if`文について説明します。この場合は[export\_to\_template\_context](/docs/cms/reference/modules/export-to-template-context)パラメーターを使用する必要があります。以下の例では、コンテンツエディター上でテキストモジュールに値が割り当てられている場合に、マークアップが出力されます。モジュールのテキストフィールドがクリアされている場合は、マークアップがレンダリングされません。カスタムモジュールについては、簡略化された`widget.widget_name`構文があります。この構文については[この例](/docs/cms/reference/modules/configuration)で説明しています。 ```text input.txt theme={null} {% module "product_names" path="@hubspot/text", label="Enter the product names that you would like to render the coupon ad for", value="all of our products", export_to_template_context=True %} {% if widget_data.product_names.value %}

For a limited time, get 50% off {{ widget_data.product_names.value}}!

{% endif %} ``` ```text output.txt theme={null}

For a limited time get 50% off all of our products!

``` ## elifとelseの使用 追加の条件文や、1つ以上の条件がfalseの場合に実行されるルールを使用した高度な`if`文を作成できます。`elif`文を使用すると、直前の条件の後に評価される条件をロジックに追加できます。\*\*`else`\*\*文は、他の全ての条件がfalseの場合に実行されるルールを定義します。1つのif文の中で使用できる`elif`文の数に制限はありませんが、`else`文の使用は1つに限られます。 [`<=`演算子](/docs/cms/reference/hubl/operators-and-expression-tests#comparison)を使用して変数の値をチェックするif文の基本構文の例を以下に示します。この例では、テンプレートで「Variable named number is less than or equal to 6.(変数numberは6以下です)」と出力されます。 ```hubl theme={null} {% set number = 5 %} {% if number <= 2 %} Variable named number is less than or equal to 2. {% elif number <= 4 %} Variable named number is less than or equal to 4. {% elif number <= 6 %} Variable named number is less than or equal to 6. {% else %} Variable named number is greater than 6. {% endif %} ``` もう1つ、choiceモジュールを使用して、ユーザーが選択した部門に従って経歴ページの見出しをレンダリングする例を紹介します。この例では、choiceモジュールの特定の事前定義値のチェックに[== 演算子](/docs/cms/reference/hubl/operators-and-expression-tests#comparison)を使用しています。 ```hubl theme={null} {% choice "department" label="Choose department", value="Marketing", choices="Marketing, Sales, Dev, Services" export_to_template_context=True %} {% if widget_data.department.value == "Marketing" %}

Want to join our amazing Marketing team?!

We have exciting career opportunities on the {{ widget_data.department.value }} team.

{% elif widget_data.department.value == "Sales" %}

Are you a Sales superstar?

We have exciting career opportunities on the {{ widget_data.department.value }} team.

{% elif widget_data.department.value == "Dev" %}

Do you love to ship code?

We have exciting career opportunities on the {{ widget_data.department.value }} team.

{% else %}

Want to work with our awesome customers?

We have exciting career opportunities on the {{ widget_data.department.value }} team.

{% endif %} ``` ## unless文 `unless`文は、`if`文と似た条件文ですが、if文とは逆のロジックとして機能します。1つのブール値条件がtrueと評価されない場合に、初めのタグと終わりのタグで囲まれたコードがレンダリングおよびコンパイルされます。unless文は\*\*`unless`**で始まり**`endunless`で終わります。\*\*`unless`文では`else`を使用できますが、`elif`は使用できません。 以下の例では、リッチ テキスト フィールドに値が割り当てられていない場合に「Under construction」(準備中)という見出しが出力されます。リッチ テキスト フィールドに値が含まれている場合は、その値が表示されます。 ```hubl theme={null} {% module "my_page_content" path="@hubspot/rich_text", label="Enter your page content", html="" export_to_template_context=true %} {{ widget_data.my_page_content.html }} {% unless widget_data.my_page_content.html %}

This page is under construction.

Come back soon!

{% endunless %} ``` ## ifchanged HubLではif文とunless文の他に、`ifchanged`文があります。この文は、このタグを前回呼び出した後で特定の変数が変更された場合にだけマークアップをレンダリングする場合に使用します。 ## インラインif文 HubLではインライン`if`文がサポートされています。[演算子と式の検証](/docs/cms/reference/hubl/operators-and-expression-tests)による簡潔な条件ロジックを作成する際に使用できます。 ```hubl theme={null} {% set color = "Blue" if is_blue is truthy else "Red" %} // color == "blue" {{ "Blue" if is_blue is truthy else "Red" }} // "Blue" {% set dl = true %} Download PDF ``` ## 三項演算子 また[演算子と式の検証](/docs/cms/reference/hubl/operators-and-expression-tests#logical)による条件文を簡単に記述する際には、三項演算子を使用することもできます。 ```hubl theme={null} // If the variable is_blue is true, output "blue", otherwise output"red" {{ is_blue is truthy ? "blue" : "red" }} // Set the variable is_red to false if is_blue is true, otherwise set to true {% set is_red = is_blue is truthy ? false : true %} ``` # forループ Source: https://developers.hubspot.jp/docs/cms/reference/hubl/loops Forループは、HubLでのオブジェクトのシーケンスに対する反復処理に使用できます。 forループは、HubLでのオブジェクトのシーケンスに対する反復処理に使用できます。主に[ブログコンテンツ](/docs/cms/start-building/building-blocks/templates/blog)をリスト形式でレンダリングする場合に使用されますが、他のシーケンス変数を並べ替える場合にも使用できます。 forループは、`{% for %}`文で始まり`{% endfor %}`文で終わります。`{% for %}`文では、シーケンス項目の名前に続き、`in`を使ってシーケンス名を指定します。`for`文の始まりから終わりまでの間のコードが、反復の度に出力されます。このコードには通常、各シーケンス項目の出力変数が含まれます。forループの基本構文は以下のとおりです。 ```hubl theme={null} {% for item in items %} {{ item }} {% endfor %} ``` 変数値のシーケンスをリストに出力する方法を以下の例に示します。 ```html example.html theme={null} {% set languages = ["HTML", "CSS", "Javascript", "Python", "Ruby", "PHP", "Java"] %}

Languages

;
    {% for language in languages %}
  • {{ language }}
  • {% endfor %}
``` ```html example.html theme={null}

Languages

  • HTML
  • CSS
  • Javascript
  • Python
  • Ruby
  • PHP
  • Java
``` ## ループプロパティー ループの反復中に、[条件文](/docs/cms/reference/hubl/if-statements)を使用してループの動作を定義できます。変数プロパティー`loop.index`によって、ループの現在の反復数(イテレーション)がカウントされます。他にも反復数をさまざまな方法でカウントするloop変数プロパティーがあります。これらのプロパティーについては以下に示します。 | 変数 | Description | | - | - | | `loop.cycle` | シーケンスリスト間を循環するヘルパー関数。後述の説明を参照してください。 | | `loop.depth` | 再帰ループでのレンダリングの現在の深さを示します。レベル1から開始します。 | | `loop.depth0` | 再帰ループでのレンダリングの現在の深さを示します。レベル0から開始します。 | | `loop.first` | この変数は、ループの最初の反復である場合にtrueとして評価されます。 | | `loop.index` | ループの現在の反復数。この変数はカウントを1から開始します。 | | `loop.index0` | ループの現在の反復数。この変数はカウントを0から開始します。 | | `loop.last` | この変数は、ループの最後の反復である場合にtrueとして評価されます。 | | `loop.length` | シーケンスの項目の数。 | | `loop.revindex` | ループの終わりまでの反復数。1までカウントダウンします。 | | `loop.revindex0` | ループの終わりまでの反復数。0までカウントダウンします。 | さまざまなループ変数の使用例を以下にいくつか示します。以下の基本的な例では、`loop.index`を使用して、反復の度に出力されるカウントを行います。 ```html example.html theme={null} {% set loopy = ["Content", "Social", "Contacts", "Reports"] %} {% for app in loopy %} {{ loop.index }}. {{app}}
{% endfor %} ``` ```html example.html theme={null} 1. Content
2. Social
3. Contacts
4. Reports
``` 次の例では、条件文を使用して、ループの長さが特定の数で`divisibleby`(割り切れる)かどうかをチェックします。次に、記事項目divの幅をレンダリングします。この例では標準のブログ記事ループを使用し、ループに6件の記事があると仮定しています。 ```html example.html theme={null} {% for content in contents %} {% if loop.length is divisibleby 4 %}
Post content
{% elif loop.length is divisibleby 3 %}
Post content
{% else %}
Post content
{% endif %} {% endfor %} ``` ```html example.html theme={null}
Post content
Post content
Post content
Post content
Post content
Post content
Post content
``` ## ネストしたループ ループを他のループでネストすることもできます。子forループは、親forループが反復される度に実行されます。以下の例では、親項目の`
    `の中でネストしている`
      `に子項目のリストが出力されます。 ```html example.html theme={null} {% set parents = ["Parent item 1", "Parent item 2", "Parent item 3"] %} {% set children = ["Child item 1", "Child item 2", "Child item 3"] %}
        {% for parent in parents %}
      • {{parent}}
          {% for child in children %}
        • {{child}}
        • {% endfor %}
      • {% endfor %}
      ``` ```html example.html theme={null}
      • Parent item 1
        • Child item 1
        • Child item 2
        • Child item 3
      • Parent item 2
        • Child item 1
        • Child item 2
        • Child item 3
      • Parent item 3
        • Child item 1
        • Child item 2
        • Child item 3
      ``` ## cycle 反復の度に一連の文字列値を循環して出力するには、forループでcycleタグを使用します。この手法の実用例として、リスト内のブログ記事に適用するクラスを交互に切り替える処理が挙げられます。このタグは3つ以上の値に使用でき、ループの反復数がcycleの値よりも多い場合にcycleが繰り返されます。以下の例では、`odd`と`even`というクラスがリスト内の記事に適用されます(この例ではループに5件の記事が含まれていると仮定しています)。 カンマ区切りのcycle文字列値の間に**スペースがない**点に注意してください。 ```html example.html theme={null} {% for content in contents %}
      Blog post content
      {% endfor %} ``` ```html example.html theme={null}
      Blog post content
      Blog post content
      Blog post content
      Blog post content
      Blog post content
      ``` ## ループ内の変数 > [!WARNING] > > ループ内で定義した変数は、そのループの範囲内に制限され、ループの外側から呼び出すことはできません。 ループ外で定義した変数をループ内から呼び出すことはできますが、その逆はできません。 ## ループでのキーと値のペア ループの対象にするディクショナリー(辞書型)にキーと値が含まれている場合、単純なforループで参照できるのは値に限られます。forループ内でキーと値の両方を参照するには、次のような形式のHubLを使用します。 ```text input.txt theme={null} {% set dict_var = {"name": "Cool Product", "price": "$20", "size":"XL"} %} {% for key, val in dict_var.items() %} {{ key }}: {{ val }}
      {% endfor %} ``` ```text output.txt theme={null} name: Cool Product
      price: $20
      size: XL
      ``` ## 設定した回数の反復 設定した回数だけを反復する処理は、HTMLやCSSを生成するときに便利です。この処理はrange関数を使用すると実現できます。 ```html example.html theme={null} {% for x in range(0,5) %} {{loop.index}} {% endfor %} ``` ```text rendered output.txt theme={null} 1 2 3 4 5 ``` ## ループでHubLタグを使用する ページにタグを追加すると、HubSpotにより、ラッパー側のHTMLに自動的に`id`が割り当てられます。このタグはタグの「name」ごとに固有です。特定のタグをforループ内で使用する場合に、固有のnameを設定することは現実的ではありません。タグに`unique_in_loop`パラメーターを追加して、固有idを生成してください。このパラメーターによってモジュール名に現在のループの反復数が追加されることで、項目が重複しなくなります。固有idは、HTMLの有効性に必要なだけでなく、[アクセシビリティー](/docs/cms/best-practices/improve-existing-sites/accessibility)においても重要です。 ```hubl theme={null} {% for item in module.icon_field %} {% icon name="{{ item.name }}", style="{{ item.type }}", unicode="{{ item.unicode }}", unique_in_loop=True %} {% endfor %} ``` # 演算子と式評価 Source: https://developers.hubspot.jp/docs/cms/reference/hubl/operators-and-expression-tests HubLでは、テンプレートのロジックと機能を拡張するための主な演算子と式評価をサポートしています。演算子を使用すると、算術関数の実行、比較、テンプレートロジックの複雑化、マークアップのレンダリングの変更を行うことができます。この記事では、HubLで使用できる式評価も含めて紹介します。 HubLでは、テンプレートのロジックと機能を拡張するための主な演算子と式評価をサポートしています。[演算子](/docs/cms/reference/hubl/operators-and-expression-tests#operators)を使用すると、算術関数の実行、比較、テンプレートロジックの複雑化、マークアップのレンダリングの変更を行うことができます。この記事では、HubLで使用できる[式評価](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests)も含めて紹介します。 ## 演算子 演算子は、HubLコンパイラーに対して各種の演算を行うよう指示する記号です。これらの演算の結果、最終出力が生成されます。演算子は、算術関数の実行、比較、ブール式の実装などのために、2つの値を関連付けるためにオペランド間に配置されます。 ![operators-and-operands-diagram](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/operators-and-operands.png) 以下は、HubLで使用できる演算子をタイプ別にまとめたものです。 ### 数学 標準の算術演算子を使用して、テンプレートのコンテキストで値を計算できます。 ```hubl theme={null} {% set my_num = 11 %} {% set my_number = 2 %} {{ my_num + my_number }} {{ my_num - my_number }} {{ my_num / my_number }} {{ my_num % my_number }} {{ my_num // my_number }} {{ my_num * my_number }} {{ my_num ** my_number }} ``` | 記号 | 説明 | | - | - | | `+` | 2つのオブジェクト(通常は数値)を加算します。文字列やリストを連結させるには、代わりに[`~`演算子](#other-hubl-operators)を使用する必要があります。 | | `-` | ある数値を別の数値から減算します。 | | `/` | 数値を除算します。 | | `%` | 数値を除算した余りを返します。 | | `//` | 2つの数値を除算した余りを整数に切り捨てて返します。たとえば、`{{ 20 // 7 }}`は`2`です。 | | `*` | 数値を乗算します。 | | `**` | 左辺のオペランドを右辺のオペランドで累乗します。 | ### 比較 比較演算子を使用すると、テンプレートロジックに対して値を評価できます。[if文](/docs/cms/reference/hubl/if-statements)で、比較演算子の使用例を確認できます。 ```hubl theme={null} {% set my_num = 11 %} {% set my_number = 2 %} {{ my_num == my_number }} {{ my_num != my_number }} {{ my_num > my_number }} {{ my_num >= my_number }} {{ my_num < my_number }} {{ my_num <= my_number }} ``` | 記号 | 省略形 | 説明 | | - | - | - | | `==` | eq | 次の値に等しい。2つのオブジェクトの値が等しい場合、trueと評価されます。 | | `!=` | ne | 次の値に等しくない。2つのオブジェクトが等しくない場合、trueと評価されます。 | | `>` | gt | 次の値より大きい。左辺のオペランドの値が右辺のオペランドの値よりも大きい場合、trueと評価されます。 | | `>=` | gte | 次の値以上。左辺のオペランドが右辺のオペランドと同じかそれよりも大きい場合、trueと評価されます。 | | `<` | lt | 次の値より小さい。左辺のオペランドが右辺のオペランドよりも小さい場合、trueと評価されます。 | | `<=` | lte | 次の値以下。左辺のオペランドが右辺のオペランドと同じかそれより小さい場合、trueと評価されます。 | > [!TIP] > > 短縮形の比較演算子は、[`|selectattr()`](/docs/cms/reference/hubl/filters#selectattr)などの式を評価するHubLフィルターで使用できます。 ### 論理 論理演算子を使用すると、ブール式を実装するだけでなく、複数の式を1つのステートメント(文)に結合できます。 ```text and.txt theme={null} Two non-empty strings: {{ "a" and "b" }} Empty string and non-empty string: {{ "" and "b" }} Two non-zero numbers: {{ 1 and 2 }} Zero and non-zero number: {{ 0 and 1 }} Two non-empty lists: {{ [1] and [2] }} Empty list and non-empty list: {{ [] and [2] }} Two non-empty dicts: {{ {a: 1} and {b: 2} }} Empty dict and non-empty dict: {{ {} and {b: 2} }} ``` ```text or.txt theme={null} Two non-empty strings: {{ "a" or "b" }} Empty string and non-empty string: {{ "" or "b" }} Two non-zero numbers: {{ 1 or 2 }} Zero and non-zero number: {{ 0 or 1 }} Two non-empty lists: {{ [1] or [2] }} Empty list and non-empty list: {{ [] or [2] }} Two non-empty dicts: {{ {a: 1} or {b: 2} }} Empty dict and non-empty dict: {{ {} or {b: 2} }} ``` ```text is / is not.txt theme={null} Conditional using `is` operator: {% set string = "strings are a cat's best friend" %} {% if string is string_containing "cat" %} Meow {% else %} Woof {% endif %} Conditional using `not` operator: {% set string = "strings are a cat's best friend" %} {% if string is not string_containing "cat" %} Meow {% else %} Woof {% endif %} ``` ```text (expr).txt theme={null} {% set my_num = 10 %} {% set my_variable = 5 %} {{ (my_num + 2) * my_variable }} ``` ```text ?.txt theme={null} {% set date = local_dt %} {{ date ? date : 'No date'}} {{ todays_date ? todays_date : 'No date'}} ``` | 記号 | 説明 | | - | - | | `and` | 左辺のオペランドと右辺のオペランドの両方がtruthyの場合に`true`を返します。それ以外の場合は、`false`を返します。 この演算子は、Pythonの`and`演算子やJavaScriptの`&&`演算子のようには動作しません。`and`演算子の使用の詳細については、以下をご覧ください。 | | `or` | 第1オペランドがtruthyの場合に、そのオペランドを返します。それ以外の場合は、第2オペランドを返します。 この演算子は、PythonおよびJavaScriptの`or`に `\|\|` 相当します。`or`演算子の使用の詳細については、以下をご覧ください。 | | `is` | 肯定文の2つのオペランドを結合します。 | | `not` | ステートメント(文)を`is`と組み合わせて否定します。 | | `(expr)` | 演算順を示すために、式をグループ化します。例:`(10 - 2) * variable`。 | | `?` | [三項演算子](/docs/cms/reference/hubl/if-statements)を使用すると、条件付きロジックをすばやく記述できます。3つの引数(式、true条件、false条件)を受け入れます。式を評価し、該当した条件を返します。 | **AND/OR演算子の使用** HubLでは、`or`演算子はPythonの`or`演算子やJavaScriptの`||`演算子のように動作します。式がtrueと評価された場合は第1オペランドを返し、それ以外の場合は第2オペランドを返します。`or`演算子の一般的な使用例は、変数値が定義されていない場合のフォールバック値の設定です。 ```hubl theme={null} Two non-empty strings: {{ "a" or "b" }} Empty string and non-empty string: {{ "" or "b" }} Defining a fallback value: {{ some_variable or "default value" }} ``` ただし、`and`演算子は、Pythonの`and`演算子やJavaScriptの`&&`演算子とは異なる動作をします。HubLでは、`and`は常にブール値を返します。式がtrueと評価された場合は`true`が返され、それ以外の場合は`false`が返されます。一方、PythonとJavaScriptの演算子は、ステートメント(文)がtrueとfalseのどちらとして評価されるかに基づいてオペランド値を返します。 ```hubl theme={null} Two non-empty strings: {{ "a" and "b" }} Empty string and non-empty string: {{ "" and "b" }} ``` HubLでは、空のリスト(`[]`)と空のディクショナリー(`{}`)はfalsyと見なされます。これはPythonでの動作と同等ですが、`[]`と`{}`がtruthyであるJavaScriptとは異なります。 ```hubl theme={null} Empty list and non-empty list: {{ [] or [2] }} Empty dict and non-empty dict: {{ {} and {b: 2} }} ``` ### その他のHubL演算子 以下に、さまざまなタスクを実行するために使用できる、その他の重要なHubL演算子を示します。 | 記号 | 説明 | | - | - | | `in` | 値がシーケンス内に含まれているかどうかをチェックします。 | | `is` | [式評価](/docs/cms/reference/hubl/operators-and-expression-tests#expression-tests)を実行します。 | | `\|` | フィルターを適用します。 | | `~` | 値を連結します。 | ## 式評価 式評価は、論理演算子を使用して評価できる各種のブール条件です。 ### boolean オブジェクトがブール値かどうかを評価します(厳密なチェックであり、truthy式の評価ではありません)。 ```text hubl.txt theme={null} {% set isActive = false %} {% if isActive is boolean %} isActive is a boolean {% endif %} ``` ```text 出力のレンダリング.txt theme={null} isActive is a boolean ``` ### containing 変数のリストに値が含まれているかどうかを評価します。 ```text hubl.txt theme={null} {% set numbers = [1, 2, 3] %} {% if numbers is containing 2 %} Set contains 2! {% endif %} ``` ```text 出力のレンダリング.txt theme={null} Set contains 2! ``` ### containingall 変数のリストに別のリストの全ての値が含まれているかどうかを評価します。 ```text hubl.txt theme={null} {% set numbers = [1, 2, 3] %} {% if numbers is containingall [2, 3] %} Set contains 2 and 3! {% endif %} {% if numbers is containingall [2, 4] %} Set contains 2 and 4! {% endif %} ``` ```text 出力のレンダリング.txt theme={null} Set contains 2 and 3! ``` ### defined 変数がテンプレートのコンテキスト内で定義済みかどうかを評価します。演算子を使わずにif文を記述してこの式評価を使用することもできますが、その場合は既定で、変数が定義されているかどうかだけがチェックされます。 以下の例では、カラーモジュールのcolorパラメーターがテストされます。Colorパラメーターに値がない場合、テンプレートは既定の背景色として黒をレンダリングします。値が定義されている場合、ユーザーが設定した背景色がテンプレートによってレンダリングされます。 ```text hubl.txt theme={null} {% color "my_color" color="#930101", export_to_template_context=True %} ``` ```html example.html theme={null} ``` ### divisibleby オブジェクトを別の数値で割り切れるかどうかを評価します。 例えば、以下のforループは、動物の種類のリストを反復処理するために作成されています。動物の各種類がdiv内に出力され、5つ目ごとのdivに異なるインラインスタイルが適用されます(幅: 100%)。このコンセプトをブログに適用すると、特定のパターンの記事に別のマークアップをレンダリングできます。Forループとloop.indexの詳細については、[こちらの記事を参照してください](/docs/cms/reference/hubl/loops)。 ```text hubl.txt theme={null} {% set animals = ["lions", "tigers", "bears", "dogs", "sharks"] %} {% for animal in animals %} {% if loop.index is divisibleby 5 %}
      {{animal}}
      {% else %}
      {{animal}}
      {% endif %} {% endfor %} ``` ```html example.html theme={null}
      lions
      tigers
      bears
      dogs
      sharks
      ``` ### equalto 変数の値が定数または別の変数の値と等しいかどうかを評価します。これと同じ評価は、`==`演算子を使用して行うこともできます。 以下の例では、ループ内の投稿の合計数に応じてブログ記事の幅を調整します。この出力例では、ブログに4件の記事があると仮定しています。 ```html example.html theme={null} {% for content in contents %} {% if loop.length is equalto 2 %}
      Post content
      {% elif loop.length is equalto 3 %}
      Post content
      {% elif loop.length is equalto 4 %}
      Post content
      {% else %}
      Post content
      Post content
      Post content
      Post content
      ``` ### even 数値型変数の値が偶数かどうかを評価します。 以下の例は、単純化したブログリストのループを示しています。この例では、ループの現在の反復処理での値が偶数の場合、その投稿アイテムのdivに`even-post`クラスを割り当てます。それ以外の場合は、`odd-post`クラスを割り当てます。 ```html example.html theme={null} {% for content in contents %} {% if loop.index is even %}
      Post content
      {% else %}
      Post content
      {% endif %} {% endfor %} ``` ```html example.html theme={null}
      Post content
      Post content
      Post content
      Post content
      ``` ### float 数値型変数の値が浮動小数点数かどうかを評価します。 ```html example.html theme={null} {% set quantity = 1.20 %} {% if quantity is float %} quantity is a floating point number {% endif %} ``` ```html example.html theme={null} quantity is a floating-point number ``` ### integer 変数が整数かどうかを評価します。 ```html example.html theme={null} {% set quantity = 120 %} {% if quantity is integer %} Quantity is an integer {% endif %} ``` ```html example.html theme={null} Quantity is an integer ``` ### iterable 変数がループ処理を適用できるかどうかを評価します。 以下の例では、`jobs`という変数が反復可能かどうかをチェックします。この変数にジョブのリストが格納されている場合、[if文](/docs/cms/reference/hubl/if-statements)が`true`と評価されて、ループが実行されます。変数に1つの値しか格納されていない場合は、if文により、別のマークアップを使用してその値が出力されます。[ループの詳細については、こちらを参照してください](/docs/cms/reference/hubl/loops)。 ```html example.html theme={null} {% set jobs = ["Accountant", "Developer", "Manager", "Marketing", "Support"] %} {% if jobs is iterable %}

      Available positions

        {% for job in jobs %}
      • {{ job }}
      • {% endfor %}
      {% else %}

      Available position

      {{ jobs }}
      {% endif %} ``` ```html example.html theme={null}

      Available positions

      • Accountant
      • Developer
      • Manager
      • Marketing
      • Support
      ``` ### lower 文字列が小文字かどうかを評価します。 以下の例では、[unless文](/docs/cms/reference/hubl/if-statements#unless-statements)と小文字フィルターを使用して、テキストモジュールに入力されるテキストの文字列が常に小文字になるようにしています。 ```html example.html theme={null} {% module "my_text" path="@hubspot/text" label="Enter text", value="Some TEXT that should be Lowercase", export_to_template_context=True %} {% unless widget_data.my_text.value is lower %} {{ widget_data.my_text.value|lower }} {% endunless %} ``` ```text 出力のレンダリング.txt theme={null} some text that should be lowercase ``` ### mapping オブジェクトがディクショナリー(辞書型)かどうかを評価します。 以下の例では、contactオブジェクトが辞書型かどうかをチェックしています。 ```html example.html theme={null} {% if contact is mapping %} This object is a dictionary. {% else %} This object is not a dictionary. {% endif %} ``` ```text 出力のレンダリング.txt theme={null} This object is a dictionary. ``` ### none 変数に`null`値があるかどうかを評価します。 ```html example.html theme={null} {% module "user_email" path="@hubspot/text" label="Enter user email", value="example@hubspot.com", export_to_template_context=True %} {% unless widget_data.user_email.value is none %} {{ widget_data.user_email.value }} {% endunless %} ``` ```text 出力のレンダリング.txt theme={null} example@hubspot.com ``` ### number 変数の値が数値かどうかを評価します。 以下の例では、変数をチェックして、数かどうかを調べ、数の場合は百万に変換します。 ```html example.html theme={null} {% set my_var = 40 %} {% if my_var is number %} {{ my_var * 1000000 }} {% else %} my_var is not a number. {% endif %} ``` ```text 出力のレンダリング.txt theme={null} 40000000 ``` ### odd 数値型変数の値が奇数かどうかを評価します。 以下の例は、前述のeven式評価の例の逆バージョンです。 ```html example.html theme={null} {% for content in contents %} {% if loop.index is odd %}
      Post content
      {% else %}
      Post content
      {% endif %} {% endfor %} ``` ```html example.html theme={null}
      Post content
      Post content
      Post content
      Post content
      ``` ### sameas 2つの変数の値が同じかどうかを評価します。 以下の例では、2つの変数を設定してから、これらの変数の値が同じかどうかをチェックします。 ```text hubl.txt theme={null} {% set var_one = True %} {% set var_two = True %} {% if var_one is sameas var_two %} The variables values are the same. {% else %} The variables values are different. {% endif %} ``` ```text 出力のレンダリング.txt theme={null} The variables values are the same. ``` ### sequence **iterable**評価と同様に、この式評価では変数がシーケンスかどうかをチェックします。 以下の例では、変数がシーケンスかどうかを評価してから、音楽ジャンルのシーケンスを反復処理します。 ```html example.html theme={null} {% set genres = ["Pop", "Rock", "Disco", "Funk", "Folk", "Metal", "Jazz", "Country", "Hip-Hop", "Classical", "Soul", "Electronica" ] %} {% if genres is sequence %}

      Favorite genres

        {% for genre in genres %}
      • {{ genre }}
      • {% endfor %}
      {% else %}

      Favorite genre:

      {{ genres }}
      {% endif %} ``` ```html example.html theme={null}
      • Pop
      • Rock
      • Disco
      • Funk
      • Folk
      • Metal
      • Jazz
      • Country
      • Hip-Hop
      • Classical
      • Soul
      • Electronica
      ``` ### string 変数の値が文字列であるかどうかを評価します。 以下の例では、変数をチェックして、それが文字列かどうかを調べます、文字列の場合はタイトルフィルターを適用して大文字に変更します。 ```text hubl.txt theme={null} {% set my_var = "title of section" %} {% if my_var is string %} {{ my_var|title }} {% else %} my_var is not a string {% endif %} ``` ```text 出力のレンダリング.txt theme={null} Title Of Section ``` ### string\_containing 指定された部分文字列が別の文字列に含まれているかどうかを評価します。この式評価は`is`演算子と組み合わせて使用します。 ```text hubl.txt theme={null} {% if content.domain is string_containing ".es" %} Markup that will only render on content hosted on .es domains {% elif content.domain is string_containing ".jp" %} Markup that will only render on content hosted on .jp domains {% else %} Markup that will render on all other domains {% endif %} ``` ```text 出力のレンダリング.txt theme={null} Markup that will render on all other domains ``` ### string\_startingwith 文字列が特定の文字列で始まるかどうかを評価します。`is`演算子と組み合わせて使用します。 ```text hubl.txt theme={null} {% if content.slug is string_startingwith "es/" %} Markup that will only render on content hosted in a /es/ subdirectory {% elif content.slug is string_startingwith "jp/" %} Markup that will only render on content hosted in a /jp/ subdirectory {% else %} Markup that will render on all subdirectories {% endif %} ``` ```text 出力のレンダリング.txt theme={null} Markup that will render on all subdirectories ``` ### truthy 式が`True`として評価されるかどうかを評価します。 以下の例では、ブール値チェックボックスモジュールを使用してアラートメッセージを表示します。 ```html example.html theme={null} {% boolean "check_box" label="Show alert", value=True, export_to_template_context=True %} {% if widget_data.check_box.value is truthy %}
      Danger!
      {% endif %} ``` ```html example.html theme={null}
      Danger!
      ``` ### undefined テンプレートのコンテキスト内で変数が未定義かどうかを評価します。この評価は`none`式評価とは異なります。undefined式評価で`true`が返されるのは、変数が存在しても値が格納されていない場合です。一方、none式評価では変数にnull値が格納されている場合に`true`が返されます。 以下の例では、テンプレートで変数"my\_var"の有無をチェックします。 ```text hubl.txt theme={null} {% if my_var is undefined %} A variable named "my_var" does not exist on this template. {% else %} {{ my_var }} {% endif %} ``` ```text 出力のレンダリング.txt theme={null} A variable named "my_var" does not exist on this template. ``` ### upper 文字列がすべて大文字かどうかを評価します。以下の例は、[前述](#lower)の`lower`式評価の例の逆バージョンです。 ```text hubl.txt theme={null} {% module "my_text" path="@hubspot/text" label="Enter text", value="Some TEXT that should be Uppercase", export_to_template_context=True %} {% unless widget_data.my_text.value is upper %} {{ widget_data.my_text.value|upper }} {% endunless %} ``` ```text 出力のレンダリング.txt theme={null} SOME TEXT THAT SHOULD BE UPPERCASE ``` ### within 変数がリスト内に存在するかどうかを評価します。 ```text hubl.txt theme={null} {% set numbers = [1, 2, 3] %} {% if 2 is within numbers %} 2 is in the list! {% endif %} {% if 4 is within numbers %} 4 is in the list! {% endif %} ``` ```text 出力のレンダリング.txt theme={null} 2 is in the list! ``` # ドラッグ&ドロップエリアのHubLタグ Source: https://developers.hubspot.jp/docs/cms/reference/hubl/tags/dnd-areas このHubLタグは、ドラッグ&ドロップエリアの作成に使用します。開発者はこれらのタグを使用して、コンテンツエディター内でレイアウト、スタイル、コンテンツを直接変更できる、ページ内のセクションを作成できます。 [ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)を使用することで、開発者はコンテンツエディター内でレイアウト、スタイル、コンテンツを直接変更できる、ページ内のセクションとグローバルパーシャルを作成できます。ドラッグ&ドロップエリアのセットアップ手順については、[ドラッグ&ドロップエリアの作成チュートリアル](/docs/cms/start-building/building-blocks/drag-and-drop/tutorial)をご覧ください。 ドラッグ&ドロップエリアは、12列のレスポンシブグリッドを基盤としています。ドラッグ&ドロップタグでは、列と行を指定するクラス名を指定して、マークアップをレンダリングします。そのようなクラス名を対象とするスタイルシートを追加する必要があります。実装可能なレイアウトスタイルの例については、[HubSpotのCMSボイラープレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/master/src/css/objects/_layout.css)(英語)を参照してください。スタイルシートをテンプレートに追加するには、[`{{ require_css() }}`](/docs/cms/reference/hubl/tags/standard-tags#require-css)を使用します。 > [!WARNING] > > \*\*注:\*\*現時点では、[ブログ記事](/docs/cms/start-building/building-blocks/templates/blog)と[Eメールテンプレート](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#email)でドラッグ&ドロップエリアを使用することはできません。 ## dnd\_area [ドラッグ&ドロップエリア](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview)は、ウェブページの一部の構造、デザイン、コンテンツを編集可能にするためのコンテナーです。ドラッグ&ドロップエリアの既定のコンテンツは、`{% dnd_area %}`タグの本文として提供します。 モジュール自体にドラッグ&ドロップエリアを含めることはできません。モジュールへの追加コンテンツを統一するインターフェイスを制作担当者に提供するには、[繰り返し可能なフィールドとグループ](/docs/cms/reference/fields/module-theme-fields#repeaters)を代わりに使用してください。 `dnd_area`タグには、以下のパラメーターを指定することができます。 | パラメーター | タイプ | 説明 | | - | - | - | | `class` | 文字列 | dnd\_areaを囲むdivに追加するクラス。 | | `label` | 文字列 | エディター上のサイドバーのラベルとして使用されます。 | ```text 入力.txt theme={null} {% dnd_area "unique_name", class="main" %} {% end_dnd_area %} ``` ```text 出力.txt theme={null}
      ``` `dnd_area`タグには、`dnd_section`タグを含めることもできます。 > [!WARNING] > > \*\*注:\*\*コンテンツ制作担当者は、テンプレートで「[dnd\_area](/docs/cms/reference/hubl/tags/dnd-areas)」タグが使用されているかどうかに応じて、ページのテンプレートを同じタイプの別のテンプレートと入れ替えることができます。 > > * ビジュアルドラッグ&ドロップ レイアウト エディター上で作成したテンプレートは、「`dnd_area`」タグの有無に関係なく、他のドラッグ&ドロップテンプレートまたはコードテンプレートと入れ替えることができます。 > * 「*dnd\_area*」タグが使用されているコードテンプレートは、「`dnd_area`」タグが使用されている他のコードテンプレートとのみ入れ替えることができます。 > * 「`dnd_area`」タグが使用されていないコードテンプレートは、「`dnd_area`」タグが使用されていない他のコードテンプレートとのみ入れ替えることができます。 ## dnd\_section [`{% dnd_section %}`](/docs/cms/start-building/building-blocks/sections/sections)は、最上位の行で、`{% dnd_area %}`タグ内にネストする必要があります。[セクションはテンプレートとして定義](/docs/cms/start-building/building-blocks/sections/sections#section-templates)してから、`dnd_area`に[含める](/docs/cms/start-building/building-blocks/sections/sections#section-context)こともできるため、テンプレートの迅速な作成に最適です。 `dnd_section`タグには、以下のパラメーターを指定することができます。 | パラメーター | タイプ | 説明 | | - | - | - | | `background_color` | ディクショナリー | [背景色](#background-color)の指定に使用するディクショナリー。文字列としても指定できます。 | | `background_image` | ディクショナリー | [背景画像](#background-image)の指定に使用するディクショナリー。 | | `background_linear_gradient` | ディクショナリー | [線形グラデーションの背景](#background-linear-gradient)の指定に使用するディクショナリー。 | | `full_width` | ブール値 | セクションを全幅にするか、または内側のコンテナーの幅によって制限するかを指定するブール値。 | | `margin` | ディクショナリー | `cm`、`mm`、`Q`、`in`、`pc`、`pt`、`px`、`em`、`ex`、`ch`、`rem`、`lh`、`vw`、`vh`、`vmin`、`vmax`、`%`でのマージン値の指定に使用するディクショナリー。単位を指定しない場合、既定の`px`が適用されます。 | | `max_width` | 整数 | ラッピングディクショナリーでコンテンツの最大幅を設定するピクセル値。 | | `padding` | ディクショナリー | `cm`、`mm`、`Q`、`in`、`pc`、`pt`、`px`、`em`、`ex`、`ch`、`rem`、`lh`、`vw`、`vh`、`vmin`、`vmax`、`%`でのパディング値の指定に使用するディクショナリー。単位を指定しない場合、既定の`px`が適用されます。 | | `vertical_alignment` | 文字列 | 子コンテンツの垂直方向の位置合わせ。使用可能なオプションには、以下のものがあります。
      • `TOP`
      • `MIDDLE`
      • `BOTTOM`
      | > [!WARNING] > > **注:**`dnd_section`タグあたり1つのbackgroundパラメーターのみ使用できます。 ```text 入力.txt theme={null} {% dnd_section background_image={ "backgroundPosition": "MIDDLE_CENTER", "backgroundSize": "cover", "imageUrl": "https://example.com/path/to/image.jpg" }, margin={ "top": 32, "bottom": 32 }, padding={ "top": "1em", "bottom": "1em", "left": "1em", "right": "1em" }, max_width=1200, vertical_alignment="MIDDLE" %} {% end_dnd_section %} ``` ```text 出力.txt theme={null}
      ``` `dnd_section`dnd\_sectionタグには、以下のタグも含めることができます。 * `dnd_column` * `dnd_module` ## dnd\_column [`{% dnd_column %}`](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview#column)は、垂直方向の構成要素であり、親の行で定義された1つ以上のレイアウト列を占めます。 このHubLタグは、`{% dnd_area %}`タグ内にネストする必要があります。 `dnd_column`タグには、以下のパラメーターを指定することができます。 | パラメーター | タイプ | 説明 | | - | - | - | | `background_color` | ディクショナリー | [背景色](#background-color)の指定に使用するディクショナリー。 | | `background_image` | ディクショナリー | [背景画像](#background-image)の指定に使用するディクショナリー。 | | `background_linear_gradient` | ディクショナリー | [線形グラデーションの背景](#background-linear-gradient)の指定に使用するディクショナリー。 | | `margin` | ディクショナリー | `cm`、`mm`、`Q`、`in`、`pc`、`pt`、`px`、`em`、`ex`、`ch`、`rem`、`lh`、`vw`、`vh`、`vmin`、`vmax`、`%`でのマージン値の指定に使用するディクショナリー。単位を指定しない場合、既定の`px`が適用されます。 | | `max_width` | 整数 | ラッピングディクショナリーでコンテンツの最大幅を設定するピクセル値。 | | `padding` | ディクショナリー | `cm`、`mm`、`Q`、`in`、`pc`、`pt`、`px`、`em`、`ex`、`ch`、`rem`、`lh`、`vw`、`vh`、`vmin`、`vmax`、`%`でのパディング値の指定に使用するディクショナリー。単位を指定しない場合、既定の`px`が適用されます。 | | `vertical_alignment` | 文字列 | 子コンテンツの垂直方向の位置合わせ。使用可能なオプションには、以下のものがあります。
      • `TOP`
      • `MIDDLE`
      • `BOTTOM`
      | > [!WARNING] > > **注:**`dnd_column`タグあたり1つのbackgroundパラメーターのみ使用できます。 ```text 入力.txt theme={null} {% dnd_column offset=0, width=12, background_color={ r: 255, g: 0, b: 0, a: 1 }, margin={ "top": "1em", "bottom": "1em" }, %} {% end_dnd_column %} ``` ```text 出力.txt theme={null}
      ``` `dnd_column`タグには、`dnd_row`を含めることもできます。 ## dnd\_row [`{% dnd_row %}`](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview#row)は横方向の構成要素であり、列とモジュールを配置できる、ネストされた12列レイアウトのグリッドを作成します。 このHubLタグは、`{% dnd_area %}`タグ内にネストする必要があります。 `dnd_row`タグには、以下のパラメーターを含めることができます。 | パラメーター | タイプ | 説明 | | - | - | - | | `background_color` | ディクショナリー | [背景色](#background-color)の指定に使用するディクショナリー。 | | `background_image` | ディクショナリー | [背景画像](#background-image)の指定に使用するディクショナリー。 | | `background_linear_gradient` | ディクショナリー | [線形グラデーションの背景](#background-linear-gradient)の指定に使用するディクショナリー。 | | `margin` | ディクショナリー | `cm`、`mm`、`Q`、`in`、`pc`、`pt`、`px`、`em`、`ex`、`ch`、`rem`、`lh`、`vw`、`vh`、`vmin`、`vmax`、`%`でのマージン値の指定に使用するディクショナリー。単位を指定しない場合、既定の`px`が適用されます。 | | `max_width` | 整数 | ラッピングディクショナリーでコンテンツの最大幅を設定するピクセル値。 | | `padding` | ディクショナリー | `cm`、`mm`、`Q`、`in`、`pc`、`pt`、`px`、`em`、`ex`、`ch`、`rem`、`lh`、`vw`、`vh`、`vmin`、`vmax`、`%`でのパディング値の指定に使用するディクショナリー。単位を指定しない場合、既定の`px`が適用されます。 | | `vertical_alignment` | 文字列 | 子コンテンツの垂直方向の位置合わせ。使用可能なオプションには、以下のものがあります。
      • `TOP`
      • `MIDDLE`
      • `BOTTOM`
      | > [!WARNING] > > **注:**`dnd_row`タグあたり1つのbackgroundパラメーターのみ使用できます。 ```text 入力.txt theme={null} {% dnd_row background_color={ r: 123, g: 123, b: 123, a: 1.0 }, margin={ "top": 20, "bottom": 200 }, padding={ "top": 20, "bottom": 200, "left": 20, "right": 20 } %} {% end_dnd_row %} ``` ```text 出力.txt theme={null}
      ``` dnd\_rowタグには、以下のタグも含めることができます。 * `dnd_column` * `dnd_module` ## dnd\_module [`{% dnd_module %}`](https://developers.hubspot.jp/docs/guides/cms/content/templates/drag-and-drop/overview#module)は、div内に囲まれた[モジュール](https://developers.hubspot.jp/docs/guides/cms/content/modules/overview)であり、レイアウト、スタイル、コンテンツを追加できます。このモジュールを指定するには、そのパスを参照します。HubSpotの既定のモジュールを指定することも(`@hubspot/`/名前空間を使用)、独自に作成したモジュールを、デザインマネージャーのファイルツリー内のパスで指定することもできます。 このHubLタグは、`{% dnd_area %}`タグ内にネストする必要があります。 `dnd_module`タグには、以下のパラメーターを指定することができます。 | パラメーター | タイプ | 説明 | | - | - | - | | `path` | 文字列 | モジュールへのパス | | `horizontal_alignment` | 文字列 | 横方向の位置。値`LEFT`、`CENTER`、`RIGHT`を使用できます。 | | `offset` | 整数 | 12列グリッド上での位置を示す0からの値。 | | `width` | 整数 | 12列グリッドを占めるカラムの数。 | | `flexbox_positioning` | 文字列 | \*\*推奨されません。使用しないでください。\*\*代わりに、`horizontal_alignment`を行やセクションの`vertical_alignment`を併せて使用します。 モジュールのフレックスボックスの位置。垂直方向の位置、次に水平方向の位置を示す以下の文字列に対応しています。
      • `TOP_LEFT`
      • `TOP_CENTER`
      • `TOP_RIGHT`
      • `MIDDLE_LEFT`
      • `MIDDLE_CENTER`
      • `MIDDLE_RIGHT`
      • `BOTTOM_LEFT`
      • `BOTTOM_CENTER`
      • `BOTTOM_RIGHT`
      | > [!TIP] > > 上記の`dnd_module`パラメーターのいずれかに一致するフィールド名がある古いモジュールを使用していますか?フィールドグループの場合と同様に、[fieldsパラメーターを使用して既定値を渡す](/docs/cms/reference/modules/using-modules-in-templates#passing-fields-that-have-dnd-associated-parameters)ことができます。 ```text 入力.txt theme={null} {% dnd_module path="@hubspot/rich_text", offset=0, width=8, %} {% module_attribute "html" %}

      Hello, world!

      {% end_module_attribute %} {% end_dnd_module %} ``` ```text 出力.txt theme={null}

      Hello, world!

      ``` ## 背景 列、セクション、行のdnd要素に背景を設定するには、[`background_image`](#background-image)、[`background_linear_gradient`](#background-linear-gradient)、[`background_color`](#background-color)を使用できます。 ### background\_color 列、セクション、行のdndタグは、背景色をサポートしています。ドラッグ&ドロップ要素の既定の背景色を設定するには、`background_color`パラメーターを使用します。これは文字列のパラメーターであり、以下の例に示されている形式を含めることができます。 ```hubl theme={null} {% dnd_section %} // Hex Value (both 3 and 6 char length) {% dnd_column background_color="#F7F7F7" %} {% end_dnd_column %} {% dnd_column background_color="#FFF" %} {% end_dnd_column %} // Both RGB and RGBA {% dnd_column background_color="rgb(255,255,255)" %} {% end_dnd_column %} {% dnd_column background_color="rgba(0,0,0,.25)" %} {% end_dnd_column %} {% end_dnd_section %} ``` ### background\_linear\_gradient 列、セクション、行のdnd要素は、背景の線形グラデーションをサポートしています。既定のグラデーションを設定するには、`background_linear_gradient`パラメーターを使用します。このパラメーターで想定される値はディクショナリーです。現時点でサポートされるのは色の開始点と終了点のみです。 | パラメーター | タイプ | 説明 | | - | - | - | | `direction` | 文字列 | グラデーションの方向を設定します。
      • `to bottom`
      • `to top`
      • `to left`
      • `to right`
      | | `colors` | array | 色を表す文字列の配列。現在、始点と終点を示す2つの値をサポートしています。値は、以下の形式の文字列として指定します。
      • `RGB`
      • `RGBA`
      • `3 char hex`
      • `6 char hex`
      • `8 char hex`
      | ```hubl theme={null} {% dnd_section background_linear_gradient={ "direction": "to bottom", "colors": [ "#1EB6C3", "#2A2859" ] } %} {% dnd_module path="@hubspot/rich_text" width="6" %} {% end_dnd_module %} {% end_dnd_section %} ``` ### background\_image 列、セクション、および行のdnd要素は、背景画像をサポートしています。既定の背景画像を指定するには、`background_image`パラメーターを使用します。このパラメーターで想定される値はディクショナリーです。 | キー | 型 | 説明 | | - | - | - | | `backgroundPosition` | 文字列 | 画像の背景位置。最初に垂直方向、次に水平方向の位置を示す文字列をサポートしています。
      • `TOP_LEFT`
      • `TOP_CENTER`
      • `TOP_RIGHT`
      • `MIDDLE_LEFT`
      • `MIDDLE_CENTER`
      • `MIDDLE_RIGHT`
      • `BOTTOM_LEFT`
      • `BOTTOM_CENTER`
      • `BOTTOM_RIGHT`
      | | `backgroundSize` | 文字列 | 画像に使用されるCSS背景サイズのプロパティー。 サポートされる値:
      • `cover`
      • `contain`
      • `auto`
      | | `imageUrl` | 文字列 | 画像への絶対URL。 | ```hubl theme={null} {% dnd_section background_image = { "backgroundPosition": "MIDDLE_CENTER", "backgroundSize": "cover", "imageUrl": "https://www.example.com/bg-image.jpg" }, %} {% dnd_module path="@hubspot/rich_text" width="6" %} {% end_dnd_module %} {% end_dnd_section %} ``` ## dndのスタイルパラメーターからページへの変換方法 [背景](#background)、マージン、パディングなど、スタイルのパラメーターを使用した場合、クラス名はセクション、列、行、モジュールに基づいて自動的に割り出されます。割り当てたプロパティー値は、自動的に作成されたクラス名に追加され、その後生成されたCSSコードがページ内の``終了タグの前にある`
      dharmesh.jpeg

      " The Content Optimization System matches content with context to create a highly personalized, relevant and meaningful customer experience. "

      Dharmesh Shah, HubSpot
      ``` | パラメーター | タイプ | 説明 | | - | - | - | | `module_id` | 文字列 | レンダリングするモジュールのID。 | | `path` | 文字列 | レンダリングするモジュールのパス。絶対パスの場合は先頭にスラッシュを付けます。これがない場合、パスはテンプレートへの相対パスです。HubLタグに対応するパスを指定したHubSpotデフォルトモジュールを参照します。@hubspot/rich\_text、@hubspot/linked\_imageなど | ## エディタープレースホルダー エディターでモジュールのプレースホルダーコンテンツをレンダリングするには、モジュールフィールドにデフォルトのコンテンツを追加するか、`editor_placeholder` HubLタグを使用します。これは、モジュールにデフォルトのコンテンツがない、デフォルトのコンテンツが不要、またはモジュール開発を効率化するといった場合に役立ちます。 ![モジュールのプレースホルダーコンテンツ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/editor-placeholder-appearance-example-2.png) エディターでコンテンツが選択されていない場合にカスタムモジュールにエディターのプレースホルダーを追加するには、まず、[if文](/docs/cms/reference/hubl/if-statements)をモジュールのHTMLに追加して、プレースホルダーをレンダリングします。例えば、次のコードを使用して、エディターのプレースホルダーをCTAモジュールに追加できます。 ```hubl theme={null} {% if module.label %} {% cta guid="{{ module.guid }}" label="my_cta" %} {% elif is_in_editor %} {% editor_placeholder %} {% endif %} ``` > [!NOTE] > > 最初の`if`文は、モジュールが存在するかどうかを識別します。次に、 `elif`文は、 > `is_in_editor`変数を使用して、モジュールがエディターのコンテキストでレンダリングされているかどうかを識別します。この変数は、コンテンツが任意のコンテンツエディターでレンダリングされている場合に`true`を返しますが、 > 他の [アプリ内エディターおよびプレビュー > 変数](/docs/cms/reference/hubl/variables#in-app-editor-and-preview-variables)を使用してより具体的に指定することもできます。 次に、モジュールの`meta.json`ファイルでプレースホルダーコンテンツを定義します。 ```json theme={null} { "global": false, "host_template_types": ["PAGE"], "module_id": 62170380654, "is_available_for_new_content": true, "placeholder": { "show_module_icon": true, "title": "Call to action", "description": "Select a CTA" } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `show_module_icon` | ブール値 | モジュールのアイコンを表示するかどうか。 | | `title` | 文字列 | プレースホルダーに表示するタイトル。 | | `description` | 文字列 | プレースホルダーに表示する説明。 | ## フレキシブルカラム フレキシブルカラムはテンプレート内の垂直カラムで、制作担当者は[コンテンツエディター](https://knowledge.hubspot.com/ja/website-pages/edit-page-content-in-a-drag-and-drop-area)を使用して、ページでモジュールを挿入および削除することができます。HubLでフレキシブルカラムをコーディングするとき、他のHubLモジュールを選択してラップし、デフォルトでフレキシブルカラムに表示されるように設定できます。以下のサンプルコードで、基本構文、およびリッチテキストとフォームモジュールをデフォルトのコンテンツとして含むフレキシブルカラムの例を示します。 フレキシブルカラムはページテンプレートにのみ追加できます。ブログやEメールテンプレートには追加できません。モジュールにフレキシブルカラムを含めることはできませんが、同様の機能を提供する[反復可能なフィールドとグループ](/docs/cms/reference/fields/module-theme-fields#repeaters)を含めることはできます。 ```text 入力.txt theme={null} {% widget_container "my_flexible_column" label="My flex column"%} {% module "rich_text" path="@hubspot/rich_text" %} {% module "linked_image" path="@hubspot/linked_image" %} {% end_widget_container %} ``` ```text 出力.txt theme={null}

      Something Powerful

      Tell The Reader More

      The headline and subheader tells us what you're offering, and the form header closes the deal. Over here you can explain why your offer is so great it's worth filling out a form for.

      Remember:

      • Bullets are great
      • For spelling out benefits and
      • Turning visitors into leads.
      placeholder_200x200
      ``` > [!WARNING] > > ### 注: > > このタグを使用する場合、コンテンツエディターで機能するように、`label`はフレキシブルカラムの`name`値に従う必要があります。例えば、次の構文は無効です。 > > `[% widget_container label="My label" "my_flexible_column" %}` ## フォーム ユーザーがHubSpotフォームを選択してページに追加できるようにします。以下のコードに、標準HubLタグ構文の使用例と[ブロック構文](/docs/cms/reference/modules/using-modules-in-templates#block-syntax)の使用例が含まれています。 ```text 入力.txt theme={null} {% form "my_form" form_to_use="{formID}", title="Free Trial" %} {% module_block form "my_form" form_follow_ups_follow_up_type="", form_to_use="9e633e9f-0634-498e-917c-f01e355e83c6", title="Free Trial", notifications_are_overridden=True, response_message="Thanks for submitting the form.", response_type="inline", overrideable=True, gotowebinar_webinar_key="", webinar_id="", webinar_source"", label="Form" %} {% module_attribute "notifications_override_email_addresses" is_json=True %} ["email_address@website.com"] {% end_module_attribute %} {% end_module_block %} ``` ```text 出力.txt theme={null}

      Free Trial

      ``` | パラメーター | タイプ | 説明 | | - | - | - | | `form_key` | 文字列 | ページレベルでのフォームの固有IDを指定します。 | | `form_to_use` | 文字列 | デフォルトで読み込むフォームをフォームIDに基づいて指定します。このIDは各フォームのフォームエディターURLで確認できます。 | | `title` | 文字列 | フォームの上に`h3`ヘッダータグを設定します。 | | `no_title` | ブール値 | `True`の場合、タイトルの上のh3タグは削除されます。 | | `form_follow_ups_follow_up_type` | 列挙 | ワークフローへのコンタクトの登録や、シンプルなフォローアップEメールの送信などの、フォローアップアクションを指定します。指定可能な値は、`no_action`、`simple`、および`automation`です。 | | `simple_email_for_live_id` | 数値 | 公開ページ用のシンプルなフォローアップEメールのIDを指定します。 | | `simple_email_for_buffer_id` | 数値 | ページの自動保存バージョン用のシンプルなフォローアップEメールのIDを指定します。 | | `follow_up_type_simple` | ブール値 | trueの場合、シンプルなフォローアップEメールを有効にします。`form_follow_ups_follow_up_type`の代替です。 | | `follow_up_type_automation` | ブール値 | trueの場合、ワークフローに送信を登録します。`form_follow_ups_follow_up_type`の代替です。 | | `simple_email_campaign_id` | 数値 | シンプルなフォローアップEメールのIDを指定します。`simple_email_for_live_id`の代替です。 | | `form_follow_ups_workflow_id` | 数値 | 送信を登録するワークフローのIDを指定します。 | | `response_redirect_url` | 文字列 | 外部ページにリダイレクトする場合、このパラメーターはリダイレクト先のURLを指定します。 | | `response_redirect_id` | 数値 | HubSpot上にホスティングされているページにリダイレクトする場合、このパラメーターにはそのページのページIDを指定します。ページIDは各ページのページエディターURLで確認できます。 | | `response_response_type` | 列挙 | 送信時に別のページにリダイレクトするか、インラインのサンキューメッセージを表示するかを指定します。このパラメーターの値は、`"redirect"`または`"inline"`(デフォルト)にする必要があります。 | | `response_message` | 文字列 | インラインのサンキューメッセージを設定します。このパラメーターではHTMLがサポートされます。 | | `notifications_are_overridden` | ブール値 | `True`に設定した場合、フォームのデフォルトの設定ではなく、`notifications_override_email_addresses`パラメーターで選択されたEメールアドレスにフォーム通知が送信されます。デフォルト値は`False`です。 | | `notifications_override_guid_buffer` | 文字列 | ページの自動保存バージョンの優先設定のID。 | | `notifications_override_guid` | 文字列 | ページの公開バージョンの優先設定のID。 | | `notifications_override_email_addresses` | JSON | ブロック構文では、フォーム送信時に通知されるEメール受信者のJSONリストがサポートされます。これらのEメールアドレスは、フォームで設定されたEメール通知設定よりも優先されます。 | | `sfdc_campaign` | 文字列 | フォームを送信したコンタクトを登録するSalesforceキャンペーンを指定します。このパラメーターの値はSFDCキャンペーンIDであり、[Salesforceと連携](https://knowledge.hubspot.com/ja/salesforce/install-the-hubspot-salesforce-integration)されたアカウントでのみ使用できます。 | | `gotowebinar_webinar_key` | 文字列 | フォームを送信した後にコンタクトを登録するGoToWebinarウェビナーを指定します。[GoToWebinar連携](https://knowledge.hubspot.com/ja/integrations/use-the-gotowebinar-integration-with-hubspot)を使用しているアカウントにのみ使用できます。 | | `webinar_id` | 文字列 | フォームを送信した後にコンタクトを登録するMicrosoft TeamsまたはGoToWebinarウェビナーのIDを指定する、より一般的なフィールドです。[GoToWebinar](https://knowledge.hubspot.com/ja/integrations/use-the-gotowebinar-integration-with-hubspot)または[Microsoft Teams](https://knowledge.hubspot.com/ja/integrations/connect-hubspot-and-microsoft-teams)連携を使用しているアカウントであり、[フォームフィールド定義](/docs/cms/reference/fields/module-theme-fields#form)で`support_all_webinar_types`が`true`に設定されている場合にのみ使用できます。 | | `webinar_source` | 文字列 | 連携アプリのID。GoToWebinar(`35161`)またはMicrosoft Teams(`221635`)のいずれかです。 | ## フッター アカウントの[マーケティングEメール設定](https://knowledge.hubspot.com/ja/marketing-email/edit-office-location-information-in-email-footers#edit-your-default-email-footer-information-in-your-settings)で指定された年と会社名を使用して著作権情報をレンダリングします。 ```text 入力.txt theme={null} {% page_footer "page_footer" %} ``` ```text 出力.txt theme={null}
      © 2020 HubSpot
      ``` ## ギャラリー HubSpotギャラリータグを生成します。このギャラリータグは[Slick](http://kenwheeler.github.io/slick/)に基づきます。標準モジュールHubL構文でギャラリーモジュールを作成できますが、HubLを使用してデフォルトのスライドを事前定義する場合はブロック構文を使用する必要があります。両方の方法を以下に示します。ギャラリー画像は、JavaScriptを使用して遅延読み込みされます。 ```text 入力.txt theme={null} {% gallery "crm_gallery" %} <-- Block syntax --> {% widget_block gallery "Gallery" display_mode="standard" sizing="static", transition="slide", caption_position="below", auto_advance=True, overrideable=True, description_text="", show_pagination=True, label="Gallery", loop_slides=True, num_seconds=5 %} {% widget_attribute "slides" is_json=True %} [{ "caption": "CRM Contacts App", "show_caption": true, "link_url": "http://www.hubspot.com/crm", "alt_text": "Screenshot of CRM Contacts", "img_src": "http://go.hubspot.com/hubfs/Contacts-View-1.png?t=1430860504240", "open_in_new_tab": true }, { "caption": "HubSpot CRM Contact Profile", "show_caption": true, "link_url": "http://www.hubspot.com/", "alt_text": "HubSpot CRM Contact Profile", "img_src": "http://cdn2.hubspot.net/hubfs/53/Contact-Profile.png?t=1430860504240", "open_in_new_tab": true }] {% end_widget_attribute %} {% end_widget_block %} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `slides` | JSON | デフォルトのキャプション、リンクURL、代替テキスト、画像srcと、新しいタブで開くかどうかを指定する値のJSONリスト。上記のブロック構文を参照してください。 | | | `loop_slides` | ブール値 | Trueの場合、複数スライドを連続してループ処理します。 | `True` | | `num_seconds` | 数値 | スライド間で一時停止する時間(秒数)。 | `5` | | `show_pagination` | ブール値 | スライダーの下にスライド間を移動するためのボタンを表示します。 | `True` | | `sizing` | 列挙 | スライドの高さに基づいてスライダーのサイズを変更するかどうかを指定します。指定可能な値は、"static"または"resize"です。 | `"static"` | | `auto_advance` | ブール値 | num\_secondsで設定された時間が経過すると、自動的にスライドを進めます。 | `False` | | `transition` | 列挙 | スライド切り替えのタイプを設定します。指定可能な値は、"fade"または"slide"です。 | `"slide"` | | `caption_position` | 列挙 | キャプションの位置(スライド上に重ねるか、スライドの下に配置)を制御します。指定可能な値は、"below"または"superimpose"です。 | `"below"` | | `display_mode` | 列挙 | 画像ギャラリーの表示方法を指定します。指定可能な値は、"standard"、"lightbox"、"thumbnail"です。 | `"standard"` | | `lightboxRows` | 数値 | display\_modeが"lightbox"に設定されている場合に、このパラメーターはLightbox内に表示される行数を制御します。 | `3` | ## ヘッダー テキストをh1~h6タグとしてレンダリングするヘッダーモジュールを生成します。 ```text 入力.txt theme={null} {% header "header" %} {% header "my_header" header_tag="h1", overrideable=True, value="A clear and bold header", label="Header" %} ``` ```text 出力.txt theme={null}

      A clear and bold header

      ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `header_tag` | 文字列 | レンダリングする見出しタグを選択します。指定可能な値は、h1、h2、h3、h4、h5、h6です。 | `h1` | | `value` | 文字列 | 見出しモジュール内にデフォルトのテキストをレンダリングします。 | `"A clear bold header"` | ## アイコン アイコンタグを追加してユーザーが選択できるようにし、使用するアイコンを追加します。サポートされているアイコンセットは、FontAwesome [5.0.10](https://github.com/FortAwesome/Font-Awesome/releases/tag/5.0.10)、[5.14.0](https://github.com/FortAwesome/Font-Awesome/releases/tag/5.14.0)、[6.および4.2](https://github.com/FortAwesome/Font-Awesome/releases/tag/6.4.2)です。 このタグは、Eメールで有効になっているモジュールでは使用できません。 ```text 入力.txt theme={null} {% icon name="Accessible Icon" style="REGULAR" unicode="f368" icon_set="fontawesome-5.14.0" purpose="decorative" title="Accessible Icon" %} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `name` | 文字列 | アイコンの名前。 | | | `style` | 文字列 | アイコンのスタイル。指定可能な値は`REGULAR`または`SOLID`です。 | `REGULAR` | | `unicode` | 文字列 | アイコンのUnicode文字表現。 | | | `icon_set` | 文字列 | 使用するFontAwesomeアイコンセット。次の値を指定できます。
      • `fontawesome-5.14.0`
      • `fontawesome-5.0.10`
      • `fontawesome-6.4.2`
      | | | `purpose` | 文字列 | アイコンの目的。[アクセシビリティー](https://docs.fontawesome.com/v5/web/other-topics/accessibility)を確保するために使用します。指定可能な値は、`decorative`または`semantic`です。`decorative`に設定した場合、さらに`aria-hidden="true"`属性がアイコンに追加されます。 | `decorative` | | `title` | 文字列 | アイコンのsvgのタイトル要素と、そのタイトルを指す`labelledby`属性。 | | ## 画像 ユーザーがコンテンツエディターから画像を選択できる画像タグを作成します。画像をターゲットURLにリンクする場合は、下記のlinked\_imageを使用する必要があります。 ```text 入力.txt theme={null} {% image "image" %} {% image "executive_image" label="Executive photo", alt="Photo of Brian Halligan", src="//cdn2.hubspot.net/hub/53/file-733888619-jpg/assets/hubspot.com/about/management/brian-home.jpg", width="300" %} ``` ```text 出力.txt theme={null} Photo of Brian Halligan ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `alt` | 文字列 | 画像のデフォルトの代替テキストを設定します。 | | | `src` | 文字列 | imgタグのsrc属性を設定します。 | | | `width` | 数値 | imgタグのwidth属性を設定します。 | `The width of the image` | | `height` | 数値 | imgタグのstyle属性でmin-heightを設定します(**Eメールテンプレートのみ**)。 | `The height of the image` | | `hspace` | 数値 | imgタグのhspace属性を設定します。 | | | `align` | 文字列 | imgタグのalign属性を設定します。指定可能な値は、left、right、centerです。 | | | `style` | 文字列 | imgタグにインラインCSS宣言を追加します。例えば、style="border:1px solid blue; margin:10pxのようになります。 | | | `loading` | 文字列 | img要素のloading属性を制御します。[ブラウザーベースの遅延読み込みに使用](/docs/cms/best-practices/testing-staging-performance/lazy-loading)します。 | | ## 画像のsrc コンテンツエディター上に画像セレクターを作成する画像srcモジュールでは、imgタグの出力ではなく、画像のURLがレンダリングされます。画像srcをインラインCSSや他のマークアップに追加できるように、このタグは通常、`no_wrapper=True`パラメーターを指定して使用します。このタグの代用としては、[`export_to_template_context`](/docs/cms/reference/modules/export-to-template-context)パラメーターを使用する方法があります。 ```text 入力.txt theme={null} {% image_src "image_src" %} {% image_src "executve_image_src" src="//cdn2.hubspot.net/hub/53/file-733888614-jpg/assets/hubspot.com/about/management/dharmesh-home.jpg", no_wrapper=True %} ``` ```text 出力.txt theme={null} //cdn2.hubspot.net/hub/53/file-733888614-jpg/assets/hubspot.com/about/management/dharmesh-home.jpg ``` | パラメーター | タイプ | 説明 | | - | - | - | | `src` | 文字列 | デフォルトのURL画像のsrcを指定します。 | ## 言語切り替え機能 特定CMSページの翻訳版へのリンクが付いた地球儀アイコンを追加します。[多言語コンテンツの詳細についてはこちら](https://knowledge.hubspot.com/ja/website-and-landing-pages/create-pages-in-multiple-languages)をご参照ください。 ```text 入力.txt theme={null} {% language_switcher "language_switcher" overrideable=false, display_mode="localized", label="Language Switcher" %} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `display_mode` | 列挙 | 言語切り替え機能のテキストの言語。値は以下の通りです。
      • `Pagelang`:各言語の名前は、言語切り替え機能が有効になっているページの言語で表示されます。
      • `Localized`:各言語の名前は、その言語で表示されます。
      • `Hybrid`:上記2つの組み合わせです。
      | `Localized` | ## 画像リンク リンクでラップされた、ユーザーが選択可能な画像を作成します。このタグには、画像モジュールの全てのパラメーターおよび2つの追加パラメーターが含まれます。追加パラメーターには、リンク先URL、およびリンクを新しいウィンドウで開くかどうかを指定します。 ```text 入力.txt theme={null} {% linked_image "linked_image" %} {% linked_image "executive_image" label="Executive photo", link="https://twitter.com/bhalligan", \ open_in_new_tab=True, alt="Photo of Brian Halligan", src="//cdn2.hubspot.net/hub/53/file-733888619-jpg/assets/hubspot.com/about/management/brian-home.jpg", width="300" %} ``` ```text 出力.txt theme={null} Photo of Brian Halligan ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `alt` | 文字列 | 画像のデフォルトの代替テキストを設定します。 | | | `src` | 文字列 | imgタグのsrc属性を設定します。 | | | `width` | 数値 | imgタグのwidth属性を設定します。 | `The width of the image` | | `height` | 数値 | imgタグのstyle属性でmin-heightを設定します(**Eメールテンプレートのみ**)。 | `The height of the image` | | `hspace` | 数値 | imgタグのhspace属性を設定します。 | | | `align` | 文字列 | imgタグのalign属性を設定します。指定可能な値は、left、right、centerです。 | | | `style` | 文字列 | imgタグにインラインCSS宣言を追加します。例えば、style="border:1px solid blue; margin:10pxのようになります。 | | | `open_in_new_tab` | ブール値 | リンク先URLを別のタブで開くかどうかを選択します。 | `False` | | `link` | 文字列 | imgタグをラップするリンクの宛先URLを設定します。 | | | `target` | 文字列 | リンクタグのtarget属性を設定します。 | | | `loading` | 文字列 | img要素のloading属性を制御します。[ブラウザーベースの遅延読み込みに使用](/docs/cms/best-practices/testing-staging-performance/lazy-loading)します。 | | ## ロゴ ロゴタグは、アカウントの[ブランドキット設定](https://knowledge.hubspot.com/ja/branding/edit-your-logo-favicon-and-brand-colors#edit-your-logo)で指定されている会社のロゴをレンダリングします。 ```text 入力.txt theme={null} {% logo "logo" %} {% logo "my_logo" width="200" %} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `alt` | 文字列 | 画像のデフォルトの代替テキストを設定します。 | `Value in brand kit settings` | | `src` | 文字列 | imgタグのsrc属性を設定します。 | `Value in brand kit settings` | | `link` | 文字列 | imgタグをラップするリンクの宛先URLを設定します。 | | | `width` | 数値 | imgタグのwidth属性を設定します。 | `The width of the image` | | `height` | 数値 | imgタグのstyle属性でmin-heightを設定します(**Eメールテンプレートのみ**)。 | `The height of the image` | | `hspace` | 数値 | `img`タグのhspace属性を設定します。 | | | `align` | 文字列 | `img`タグのalign属性を設定します。指定可能な値は、`left`、`right`、および`center`です。 | | | `style` | 文字列 | imgタグにインラインCSS宣言を追加します。例:`style="border:1px solid blue; margin:10px"` | | | `suppress_company_name` | ブール値 | 画像ロゴが設定されていない場合に会社名を非表示にします。 | `False` | | `use_account_default` | ブール値 | アカウントのデフォルトの設定で指定された会社名を使用する場合は、`true`に設定します。 | `False` | | `open_in_new_tab` | ブール値 | リンク先URLを別のタブで開くかどうかを選択します。 | `False` | | `override_inherited_src` | ブール値 | `true`に設定した場合、srcは設定またはテンプレートから継承されず、ロゴウィジェットのsrcが使用されます。 | `True` | | `heading_level` | 文字列 | リンクが設定されていないテキストベースのロゴを使用する場合、HTMLタグ`h1`、`h2`、`h3`、`h4`のいずれかがテキストベースのロゴに適用されます。 | `h1` | | `loading` | 文字列 | [ブラウザーベースの遅延読み込みで、img要素のloading属性を制御します。](/docs/cms/best-practices/testing-staging-performance/lazy-loading) | | ## メニュー [コンテンツ設定]>[詳細メニュー]のメニューツリーに基づいて詳細メニューを生成します\*\*。\*\*[テンプレート](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/templates/overview)および[モジュール](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/modules/overview)でのメニューの使用に関する詳細については、[メニューとナビゲーション](/docs/cms/start-building/building-blocks/modules/menus-and-navigation)を参照してください。`id`が`null`に設定された場合、メニュータグはHubSpotアカウントのデフォルトのメニューをレンダリングします。 ```text 入力.txt theme={null} {% menu "menu" %} {% menu "my_menu" id=456, site_map_name="Default", overrideable=False, root_type="site_root", flyouts="true", max_levels="2", flow="horizontal", label="Advanced Menu" %} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `id` | 数値 | コンテンツ設定の詳細メニューのメニューツリーのID。 | | | `site_map_name` | 文字列 | コンテンツ設定の詳細メニューのメニューツリーの名前。 | `"default"` | | `root_type` | 列挙 | 詳細メニューのタイプを指定します。使用可能な値は、site\_root、top\_parent、"parent"、page\_name、page\_id、および"breadcrumb"です。これらの値は、静的、セクション別の動的、ページ別の動的、階層リンクに対応します。 | `"site_root"` | | `flyouts` | 文字列 | trueの場合、クラスがメニューツリーに追加されます。これにより、親にカーソルを置いたときに子メニュー項目が表示されるようにスタイルを設定できます。Falseの場合、子メニュー項目は常に表示されます。 | `"true"` | | `max_levels` | 数値 | マークアップにレンダリングされるメニューのネストレベル数を指定します。このパラメーターでは、メニューで展開可能なメニューツリーの子の数を指定します。 | `2` | | `flow` | 列挙 | メニュー項目の方向を設定します。これによりメニューツリーにクラスが追加されるため、状況に応じてスタイル設定できます。指定可能な値は、"horizontal"、"vertical"、またはvertical\_flyoutsです。horizontalメニューでは項目が横に並んで表示され、verticalメニューでは上から下に表示されます。 | `"horizontal"` | | `root_key` | 文字列 | メニューのルートを見つけるために使用されます。root\_typeをpage\_idまたはpage\_nameに設定した場合、このパラメーターにはそれぞれ、ページIDまたはページのラベルを指定する必要があります。 | `"horizontal"` | | `label` | 文字列 | このエンティティーを説明するためのリッチコンテンツ | `False` | | `label` | 文字列 | このエンティティーを説明するためのリッチコンテンツ | `False` | ## Require\_css ``でレンダリングするstyle要素を読み込むHubLタグ。 [require\_css関数](/docs/cms/reference/hubl/functions#require-css)に似ていますが、このタグではスタイルシートからではなく、インラインでスタイルを挿入する点が異なります。またこのタグは、同じページ上のCSSの他のインスタンスに対して重複排除しません。モジュールの作成時にスタイルシートを挿入し、1つのページでそのモジュールを複数回使用する可能性がある場合は、`require_css`関数を使用することをお勧めします。 ```text 入力.txt theme={null} {{ standard_header_includes }} {% require_css %} {% end_require_css %} {{ standard_footer_includes }} ``` ```text 出力.txt theme={null} ``` ## Require\_head テンプレートの``にある、`standard_header_includes`の内部に配置される要素を読み込むHubLタグ。ほとんどの場合、JavaScriptでは`require_js`を、CSSでは`require_css`を使用します。`require_head`を使用する例としては、metaタグを指定する場合や、モジュールからの特殊なlinkタグ(プリフェッチや事前接続など)を使用する場合があります。 ```hubl theme={null} {% require_head %} {% end_require_head %} ``` ## Require\_js レンダリングするscript要素を読み込むHubLタグ。``でレンダリングするスクリプトを、ここで説明するインラインの方法ではなく、` {% end_require_js %} {{ standard_footer_includes }} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `position` | 文字列 | インラインスクリプトをレンダリングする位置を設定します。使用可能な値は、`"head"`および`"footer"`です。 | `"footer"` | ## リッチテキスト WYSIWYGコンテンツエディターを作成します。 ```text 入力.txt theme={null} {% rich_text "rich_text" %} {% rich_text "left_column" label="Enter HTML here" html="
      My rich text default content
      " %} Block Syntax Example: {% widget_block rich_text "right_column" overrideable=True, label="Right Column" %} {% widget_attribute "html" %}

      Something Powerful

      Tell The Reader More

      The headline and subheader tells us what you're offering, and the form header closes the deal. Over here you can explain why your offer is so great it's worth filling out a form for.

      Remember:

      • Bullets are great
      • For spelling out benefits and
      • Turning visitors into leads.
      {% end_widget_attribute %} {% end_widget_block %} ``` ```text 出力.txt theme={null}

      Something Powerful

      Tell The Reader More

      The headline and subheader tells us what you're offering, and the form header closes the deal. Over here you can explain why your offer is so great it's worth filling out a form for.

      Remember:

      • Bullets are great
      • For spelling out benefits and
      • Turning visitors into leads.
      ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `html` | 文字列 | モジュールのデフォルトのリッチテキストコンテンツ。 | `

      Something Powerful

      Tell The Reader More

      The headline and subheader tells us what you're offering, and the form header closes the deal. Over here you can explain why your offer is so great it's worth filling out a form for.

      Remember:

      • Bullets are great
      • For spelling out [benefits](#) and
      • Turning visitors into leads.
      ` | ## RSSリスティング 内部または外部のRSSフィードからコンテンツのリストを読み込みます。 > [!WARNING] > > ### 注: > > このモジュールは、クライアント側で非同期的に読み込まれます。そのため、読み込まれた後にフィードを操作する場合は、その操作を処理するグローバルJS関数を定義する必要があります。関数`hsRssFeedComplete(feeds)`を使用してください。`feeds`には完了した全てのフィードのjQueryセレクターを渡します。この関数でDOMオブジェクトを直接操作できます。 ```text 入力.txt theme={null} {% rss_listing "rss_listing" %} {% rss_listing "my_rss_listing" rss_url="", publish_date_text="posted at", feed_source={rss_url="", is_external=False, content_group_id="30808594297"}, click_through_text="Read more", show_date=True, include_featured_image=True, overrideable=False, publish_date_format="short", show_detail=True, show_author=True, number_of_items="3", is_external=False, title="", content_group_id="24732847", label="RSS Listing", limit_to_chars="200", attribution_text="by" %} ``` ```text 出力.txt theme={null}

      How to Write Cron Jobs in HubSpot to take Time Based Action on CRM Data

      First things first: Cron jobs are scripts that get executed based on time. Understanding where this shorthand name comes from may help you remember this: Read more

      Using OpenAI Embeddings API to implement Semantic Search into a HubSpot Workflow

      This article was authored by a member of the HubSpot developer community, Roman Kozak. Read more

      How to Use NPM Packages in Custom Code Workflow Actions

      This article was authored by a member of the HubSpot developer community, Joshua Beatty. Read more

      ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `show_title` | ブール値 | RSSフィードタイトルを表示または非表示にします。 | `True` | | `show_date` | ブール値 | 投稿日を表示します。 | `True` | | `show_author` | ブール値 | 執筆者名を表示します。 | `True` | | `show_detail` | ブール値 | `limit_to_chars`パラメーターによって設定された最大文字数までの記事要約を表示します。 | `True` | | `title` | 文字列 | RSSフィードリストの上の見出しを入力します。 | | | `limit_to_chars` | 数値 | 要約に表示する文字の最大数。 | `200` | | `publish_date_format` | 文字列 | 公開日の形式。指定可能な値は、`"short"`、`"medium"`、および`"long"`です。`"MMMM d, yyyy 'at' h:mm a"`などのカスタム形式も利用できます。 | `"short"` | | `attribution_text` | 文字列 | 執筆者を記事に関連付けるテキスト。 | `"by"` | | `click_through_text` | 文字列 | 記事要約の最後にあるクリックスルーリンクに表示されるテキスト。 | `"Read more"` | | `publish_date_text` | 文字列 | 記事がいつ公開されたかを示すテキスト。 | `"posted at"` | | `include_featured_image` | ブール値 | HubSpotが生成したRSSフィードの記事リンクと共にキービジュアルを表示します。 | `False` | | `item_title_tag` | 文字列 | 各記事タイトルのHTMLタグを指定します。 | `span` | | `is_external` | ブール値 | 外部ブログのRSSフィードを取得します。 | `False` | | `number_of_items` | 数値 | 表示する記事の最大数。 | `5` | | `publish_date_language` | 文字列 | 公開日の言語を指定します。 | `en_US` | | `rss_url` | 文字列 | RSSフィードが所在するURL。 | | | `content_group_id` | 文字列 | フィードソースが内部ブログの場合、ブログのID。 | | | `select_blog` | 文字列 | 内部HubSpotブログフィードを選択するために使用できます。 | `default` | | `feed_source` | 文字列 | RSSフィードのソースを設定します。内部の場合、標準形式は`{rss_url="", is_external=False, content_group_id="2502431580"}`です。外部の場合、標準形式は`{rss_url="http://blog.hubspot.com/marketing/rss.xml", is_external=True}`です。 | | | `tag_id` | 数値 | フィードソースが内部ブログの場合、タグのID。 | | ## セクションヘッダー Htmlの見出しと`

      `サブヘッダーを生成します。 ```text 入力.txt theme={null} {% section_header "section_header" %} {% section_header "my_section_header" subheader="A more subdued subheader", header="A clear and bold header", label="Section Header" %} ``` ```text 出力.txt theme={null}

      ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `header` | 文字列 | ヘッダーに表示するテキスト。 | `"A clear and bold header"` | | `subheader` | 文字列 | サブヘッダーに表示するテキスト。 | `"A more subdued subheader"` | | `heading_level` | 文字列 | セマンティックHTMLの見出しレベル。h1からh6までがサポートされます。 | `"h1"` | ## シンプルメニュー シンプルメニューでは、ページレベルで変更できる基本的な[ナビゲーションメニュー](/docs/cms/start-building/building-blocks/modules/menus-and-navigation)を作成できます。通常のメニューモジュールとは異なり、シンプルメニューはウェブサイト設定のナビゲーション画面からは管理されず、テンプレートとページエディターから管理されます。[ブロック構文](/docs/cms/reference/modules/using-modules-in-templates#block-syntax)を使用してデフォルトのメニューツリーを設定できます。 ```text 入力.txt theme={null} {% simple_menu "simple_menu" %} {% simple_menu "my_simple_menu" orientation="horizontal", label="Simple Menu" %} Block Syntax Example: {% widget_block simple_menu "block_simple_menu" overrideable=True, orientation="horizontal", label="Simple Menu" %} {% widget_attribute "menu_tree" is_json=True %}[{"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "Home", "linkTarget": null, "linkUrl": "http://www.hubspot.com", "children": [], "isDeleted": false}, {"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "About", "linkTarget": null, "linkUrl": "http://www.hubspot.com/internet-marketing-company", "children": [{"contentType": null, "subCategory": null, "pageLinkName": null, "linkUrl": "http://www.hubspot.com/company/management", "isPublished": false, "children": [], "linkParams": null, "linkLabel": "Our Team", "linkTarget": null, "pageLinkId": null, "categoryId": null, "isDeleted": false}], "isDeleted": false}, {"contentType": null, "subCategory": null, "pageLinkName": null, "pageLinkId": null, "isPublished": false, "categoryId": null, "linkParams": null, "linkLabel": "Pricing", "linkTarget": null, "linkUrl": "http://www.hubspot.com/pricing", "children": [], "isDeleted": false}]{% end_widget_attribute %} {% end_widget_block %} ``` ```text 出力.txt theme={null}
        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `orientation` | 列挙 | ページのメニュー項目の方向をスタイル設定できるようにするための、メニューマークアップのクラスを定義します。指定可能な値は、`"horizontal"`および`"vertical"`です。 | `"horizontal"` | | `menu_tree` | JSON | ページリンク名とターゲットURLを含むメニュー構造。 | `[]` | ## ソーシャルシェアリング ソーシャルシェアリングタグは、特定のページをシェアするために使用できるソーシャルメディアのアイコンを生成します。このモジュールを[ブロック構文](/docs/cms/reference/modules/using-modules-in-templates#block-syntax)と組み合わせると、アイコン画像などをカスタマイズできます。 ```text 入力.txt theme={null} {% social_sharing "social_sharing" %} {% social_sharing "my_social_sharing" use_page_url=True %} Block Syntax Example: {% widget_block social_sharing "my_social_sharing" label="Social Sharing", use_page_url=True, overrideable=True %} {% widget_attribute "pinterest" is_json=True %}{"custom_link_format": "", "pinterest_media": "http://cdn1.hubspot.com/hub/158015/305390_10100548508246879_837195_59275782_6882128_n.jpg", "enabled": true, "network": "pinterest", "img_src": "https://static.hubspot.com/final/img/common/icons/social/pinterest-24x24.png"}{% end_widget_attribute %} {% widget_attribute "twitter" is_json=True %}{"custom_link_format": "", "enabled": true, "network": "twitter", "img_src": "https://static.hubspot.com/final/img/common/icons/social/twitter-24x24.png"}{% end_widget_attribute %} {% widget_attribute "linkedin" is_json=True %}{"custom_link_format": "", "enabled": true, "network": "linkedin", "img_src": "https://static.hubspot.com/final/img/common/icons/social/linkedin-24x24.png"}{% end_widget_attribute %} {% widget_attribute "facebook" is_json=True %}{"custom_link_format": "", "enabled": true, "network": "facebook", "img_src": "https://static.hubspot.com/final/img/common/icons/social/facebook-24x24.png"}{% end_widget_attribute %} {% widget_attribute "email" is_json=True %}{"custom_link_format": "", "enabled": true, "network": "email", "img_src": "https://static.hubspot.com/final/img/common/icons/social/email-24x24.png"}{% end_widget_attribute %} {% end_widget_block %} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `use_page_url` | ブール値 | trueの場合、モジュールはデフォルトでページのURLを共有します。 | `True` | | `link` | 文字列 | `use_page_url`がfalseの場合、共有する別のURLを指定します。 | | | `pinterest` | JSON | Pinterestリンク形式とアイコン画像ソースのパラメーター。 | `See block syntax example, above` | | `twitter` | JSON | Twitterリンク形式とアイコン画像ソースのパラメーター。 | `See block syntax example, above` | | `linked_in` | JSON | LinkedInリンク形式とアイコン画像ソースのパラメーター。 | `See block syntax example, above` | | `facebook` | JSON | Facebookリンク形式とアイコン画像ソースのパラメーター。 | `See block syntax example, above` | | `email` | JSON | Eメール シェア リンク形式とアイコン画像ソースのパラメーター。 | `See block syntax example, above` | ## スペーサー スペーサータグは空のspanタグを生成します。このタグは、スペーサーとして機能するようにスタイル設定できます。ドラッグ&ドロップレイアウトで、スペーサーモジュールはspan1~span12のクラスが指定されたコンテナーでラップされ、モジュールが12列のレスポンシブグリッドでどれほどのスペースを占めるかを指定します。 ```text 入力.txt theme={null} {% space "space" %} {% space "spacer" label="Horizontal Spacer" %} ``` ```text 出力.txt theme={null} ``` ## システム ページ タグ 次のタグは、パスワード リセット ページやEメール配信登録(サブスクリプション)ページなどの[システムページ](https://developers.hubspot.jp/docs/cms/start-building/building-blocks/templates/overview#system-pages)で使用できます。 ### Eメールバックアップ配信停止 Eメール受信者が配信を停止しようとするときにHubSpotがそのEメールアドレスを確認できない場合は、Eメール受信者に対してバックアップ配信解除タグが表示されます。このタグは、コンタクトがEメールコミュニケーションの配信を停止するEメールアドレスを入力するためのフォームをレンダリングします。これは、[配信解除バックアップシステムテンプレート](https://knowledge.hubspot.com/ja/design-manager/use-system-templates-to-customize-error-subscription-and-password-prompt-pages)に使用する必要があります。 ```text 入力.txt theme={null} {% email_simple_subscription "email_simple_subscription" %} {% email_simple_subscription "email_simple_subscription" header="Email Unsubscribe", input_help_text="Your email address:", input_placeholder="email@example.com", button_text="Unsubscribe", label="Backup Unsubscribe" %} ``` ```text 出力.txt theme={null}

        Your email address:

        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `header` | 文字列 | 配信停止フォームの上に、テキストをh1タグで囲んで表示します。 | `"Email Unsubscribe"` | | `input_help_text` | 文字列 | Eメール配信停止フォームフィールドの上に、ヘルプテキストをh3タグで囲んで表示します。 | `"Your email address:"` | | `input_placeholder` | 文字列 | Eメールアドレスのフォームフィールド内にプレースホルダーテキストを追加します。 | `"email@example.com"` | | `button_text` | 文字列 | 配信停止フォームの送信ボタンのテキストを変更します。 | `"Unsubscribe"` | ### Eメール配信登録 このモジュールは、Eメール受信者が配信設定を編集するときにレンダリングされます。これは、[配信設定システムテンプレート](https://knowledge.hubspot.com/ja/design-manager/use-system-templates-to-customize-error-subscription-and-password-prompt-pages)に使用する必要があります。 ```text 入力.txt theme={null} {% email_subscriptions "email_subscriptions" %} {% email_subscriptions "email_subscriptions" resubscribe_button_text="Yes, resubscribe me!", unsubscribe_single_text="Uncheck the types of emails you do not want to receive:", subheader_text="\n If this is not your email address, please ignore this page since the email associated with this page was most likely forwarded to you.\n", unsubscribe_all_unsubbed_text="You are presently unsubscribed from all of our emails. Would you like to receive our emails again?", button_text="Update email preferences", label="Subscription Preferences", header="Communication Preferences", unsubscribe_all_option="Unsubscribe me from all mailing lists.", unsubscribe_all_text="Or check here to never receive any emails:" %} ``` ```text 出力.txt theme={null}
        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `header` | 文字列 | 配信設定フォームの上に、テキストをh1タグで囲んで表示します。 | `"Communication Preferences"` | | `subheader_text` | 文字列 | 配信停止設定の上、見出しの下のテキストを設定します。 | `"

        If this is not your email address, please ignore this page since the email associated with this page was most likely forwarded to you.

        "` | | `unsubscribe_single_text` | 文字列 | 配信登録オプションの上に、`

        `で囲んでテキストを表示します。 | `"Uncheck the types of emails you do not want to receive:"` | | `unsubscribe_all_text` | 文字列 | [全てのEメール配信を停止]チェックボックス入力の上に、`

        `で囲んでテキストを表示します。 | `"Or check here to never receive any emails:"` | | `unsubscribe_all_unsubbed_text` | 文字列 | コンタクトが現在、全てのEメール配信を停止している場合に、`

        `で囲んで表示するテキストを設定します。 | `"You are presently unsubscribed from all of our emails. Would you like to receive our emails again?"` | | `unsubscribe_all_option` | 文字列 | [全てのEメール配信を停止]チェックボックス入力の隣のテキストを設定します。 | `"Unsubscribe me from all mailing lists."` | | `button_text` | 文字列 | 配信設定を更新する送信ボタンのテキストを設定します。 | `"Update email preferences"` | | `resubscribe_button_text` | 文字列 | コンタクトが配信に再登録する場合の送信ボタンのテキストを設定します。 | `"Yes, resubscribe me!"` | ### Eメール配信登録確認 Eメール配信登録の更新確認は、受信者が配信設定を更新するとき、または配信解除する際のサンキューテンプレートに追加できるモジュールです。これは、[配信設定システムテンプレート](https://knowledge.hubspot.com/ja/design-manager/use-system-templates-to-customize-error-subscription-and-password-prompt-pages)に使用する必要があります。 ```text 入力.txt theme={null} {% email_subscriptions_confirmation "email_subscriptions_confirmation" %} {% email_subscriptions_confirmation "email_subscriptions_confirmation" label="Subscriptions Update Confirmation", unsubscribe_all_success="You have successfully unsubscribed from all email communications.", subscription_update_success="You have successfully updated your email preferences.", subheader_text="\n If this is not your email address, please ignore this page since the email associated with this page was most likely forwarded to you.\n" %} ``` ```text 出力.txt theme={null}

        You have successfully updated your email preferences.
        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `header` | 文字列 | 配信停止フォームの上に、テキストをh1タグで囲んで表示します。 | `"Communication Preferences"` | | `subheader_text` | 文字列 | 確認メッセージの上のテキストを設定します。 | `"

        If this is not your email address, please ignore this page since the email associated with this page was most likely forwarded to you.

        "` | | `unsubscribe_all_success` | 文字列 | 全てのEメールコミュニケーションを配信停止した際に表示されるテキストを設定します。 | `"You have successfully unsubscribed from all email communications."` | | `subscription_update_success` | 文字列 | 受信者が配信設定を更新した際のテキストを設定します。 | `"You have successfully updated your email preferences."` | ### メンバーシップのログイン [非公開コンテンツ](https://knowledge.hubspot.com/ja/website-pages/require-member-registration-to-access-private-content)へのアクセスするためのログインフォームを作成します。 ```text 入力.txt theme={null} {% member_login "my_login" %} {% member_login "my_login" email_label="Email", password_label="Password", remember_me_label="Remember Me", reset_password_text="Forgot your password?", submit_button_text="Login", show_password="Show password" %} ``` ```text 出力.txt theme={null} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `email_label` | 文字列 | Eメール入力フィールドのラベル。 | `"Email"` | | `password_label` | 文字列 | パスワード入力フィールドのラベル。 | `"Password"` | | `remember_me_label` | 文字列 | [ログイン情報を記憶する]チェックボックスのラベル。 | `"Remember Me"` | | `reset_password_text` | 文字列 | パスワード リセット ハイパーリンクのテキスト。 | `"Forgot your password?"` | | `submit_button_text` | 文字列 | 送信ボタンのテキスト。 | `"Login"` | | `show_password` | 文字列 | パスワード表示リンクのテキスト。 | `"Show password"` | ### メンバーシップ登録 [非公開コンテンツ](https://knowledge.hubspot.com/ja/website-pages/require-member-registration-to-access-private-content)にアクセスするための登録フォームを作成します。 ```text 入力.txt theme={null} {% member_register "my_register" %} {% member_register "my_register" email_label="Email", password_label="Password", password_confirm_label="Confirm Password", submit_button_text="Save Password", show_password="Show password" %} ``` ```text 出力.txt theme={null}
        Show password
        Show password
        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `email_label` | 文字列 | Eメール入力フィールドのラベル。 | `"Email"` | | `password_label` | 文字列 | パスワード入力フィールドのラベル。 | `"Password"` | | `password_confirm_label` | 文字列 | パスワード確認フィールドのラベル。 | `"Confirm Password"` | | `submit_button_text` | 文字列 | 送信ボタンのテキスト。 | `"Save Password"` | | `show_password` | 文字列 | パスワード表示リンクのテキスト。 | `"Show password"` | ### パスワードリセットのリクエスト パスワードで保護されたページにアクセスするためのパスワードリセットEメールを送信するフォームを作成します。 ```text 入力.txt theme={null} {% password_reset_request "my_password_reset_request" %} {% password_reset_request "my_password_reset_request" email_label="Email", submit_button_text="Send Reset Email" %} ``` ```text 出力.txt theme={null}
        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `email_label` | 文字列 | Eメール入力フィールドのラベル。 | `"Email"` | | `submit_button_text` | 文字列 | 送信ボタンのテキスト。 | `"Send Reset Email"` | | `password_reset_message` | 文字列 | パスワードリセットEメールをリクエストした後に表示されるメッセージ。 | `False` | ### パスワードリセット パスワードで保護されたページにアクセスするためのパスワード リセット フォームをレンダリングします。 ```text 入力.txt theme={null} {% password_reset "my_password_reset" password_label="Password", password_confirm_label="Confirm Password", submit_button_text="Save password", show_password="Show password" %} ``` ```text 出力.txt theme={null}
        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `password_label` | 文字列 | パスワード入力フィールドのテキストラベル。 | `"Email"` | | `password_confirm_label` | 文字列 | パスワード確認入力フィールドのテキストラベル。 | `"Send Reset Email"` | | `submit_button_text` | 文字列 | フォーム送信ボタンのテキストラベル。 | `False` | | `show_password` | 文字列 | 入力されたパスワード値を表示するボタンのテキストラベル。 | `False` | | `password_requirements` | 文字列 | パスワード要件を説明するテキストラベル。 | `False` | ### パスワードプロンプト パスワードで保護されたページにパスワードプロンプトを追加します。 ```text 入力.txt theme={null} {% password_prompt "password_prompt" %} {% password_prompt "my_password_prompt" submit_button_text="Submit", bad_password_message="Sorry, please try again.\n", label="Password Prompt" %} ``` ```text 出力.txt theme={null}
        ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `submit_button_text` | 文字列 | パスワード入力フィールドの下にあるボタンのラベル。 | `"Submit"` | | `bad_password_message` | 文字列 | 正しくないパスワードが入力された場合に表示されるメッセージ。 | `"

        Sorry, please try again.

        "` | | `password_placeholder` | 文字列 | パスワードフィールド内のプレースホルダーテキストを定義します。 | `"Password"` | ## テキスト 1行テキストを作成します。このタグは、`no_wrapper=True`パラメーターを指定してマークアップと組み合わせて使用すると便利です。例えば、定義済みアンカーのターゲット定義をエンドユーザーに許可する場合、`no_wrapper=True`を指定したテキストモジュールを`href`に入力できます。 ```text 入力.txt theme={null} {% text "text" %} {% text "simple_text_field" label="Enter text here", value="This is the default value for this text field" %} ``` ```text 出力.txt theme={null} This is the default value for this text field ``` | パラメーター | タイプ | 説明 | | - | - | - | | `value` | 文字列 | 1行テキストフィールドのデフォルトのテキストを設定します。 | ## テキストエリア テキストエリアはユーザーがプレーンテキストを入力できる点でテキストモジュールと似ていますが、コンテンツエディター上で大きなエリアを提供できます。このモジュールではHTMLはサポートされません。定義済みのラッピングタグ内で直接使用する場合は、`no_wrapper=true`パラメーターを追加します。 ```text 入力.txt theme={null} {% textarea "my_textarea" %} {% textarea "my_textarea" label="Enter plain text block", value="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean a urna quis lacus vehicula rutrum.", no_wrapper=True %} ``` ```text 出力.txt theme={null} Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean a urna quis lacus vehicula rutrum. ``` | パラメーター | タイプ | 説明 | | - | - | - | | `value` | 文字列 | テキストエリアのデフォルトのテキストを設定します。 | ## 動画プレーヤー [埋め込み、共有、トラッキングを許可]設定が有効になっているファイルマネージャーの動画ファイルの動画プレーヤーをレンダリングします。 **入力** ```hubl theme={null} {% video_player "embed_player" %} {% video_player "embed_player" overrideable=False, type="scriptV4", hide_playlist=True, viral_sharing=False, embed_button=False, width="600", height="375", player_id="6178121750", style="", conversion_asset="{"type":"FORM","id":"9a77c63f-bee6-4ff8-9202-b0af020ea4b2","position":"POST"}" %} ``` | パラメーター | タイプ | 説明 | デフォルト値 | | - | - | - | - | | `hide_playlist` | ブール値 | 動画のプレイリストを非表示にします。 | `True` | | `playlist_color` | 文字列 | プレイリストの16進表記の色の値。 | | | `play_button_color` | 文字列 | 再生ボタンと一時停止ボタンの16進表記の色の値。 | `#2A2A2A` | | `embed_button` | ブール値 | プレーヤーに埋め込みボタンを表示します。 | `False` | | `viral_sharing` | ブール値 | プレーヤーにソーシャルネットワークのシェアボタンを表示します。 | `False` | | `width` | 数値 | 埋め込み動画プレーヤーの幅。 | `Auto` | | `height` | 数値 | 埋め込み動画プレーヤーの高さ。 | `Auto` | | `player_id` | 数値 | 埋め込む動画の`player_id`。 | | | `style` | 文字列 | プレーヤーの追加のスタイル。 | | | `conversion_asset` | JSON | プレーヤーのイベント設定。動画再生の前または後にCTAまたはフォームをレンダリングできます。このパラメーターは、type(FORMまたはCTA)、id(typeオブジェクトのGUID)、position(POSTまたはPRE)という3つのパラメーターを含むJSONオブジェクトを受け入れます。 | `See above example` | | `placeholder_alt_text` | 文字列 | 動画の代替テキスト。 | | # HubL変数 Source: https://developers.hubspot.jp/docs/cms/reference/hubl/variables HubSpotのテンプレートでは、さまざまな事前定義変数をウェブサイトやEメールの要素のレンダリングに活用できます。このページでは、このような変数のリストをリファレンスとして掲載しています。 HubSpotのテンプレートでは、さまざまな事前定義変数をウェブサイトやEメールの要素のレンダリングに活用できます。このページでは、このような変数のリファレンスとしてリストを掲載しています。[HubLテンプレート](/docs/cms/reference/hubl/variables-macros-syntax)または[モジュール](/docs/cms/start-building/building-blocks/templates/html-hubl-templates)に[独自の変数を作成する方法](https://developers.hubspot.jp/docs/guides/cms/content/modules/overview)についてはそれぞれ詳細をご確認ください。 このページに記載されている変数のほとんどは任意指定ですが、テンプレートからEメールやページを作成する上で必須の変数もいくつかあります。 > [!WARNING] > > 以下の変数は、[変数とマクロのページ](/docs/cms/reference/hubl/variables-macros-syntax)に記載されているように、変数を`}}`区切り文字で囲むことで、個別に使用できます。これらの変数は、HubLテンプレート言語の他の部分([ループ](/docs/cms/reference/hubl/loops)、[フィルター](/docs/cms/reference/hubl/filters)、[関数](/docs/cms/reference/hubl/functions)、[タグ](/docs/cms/reference/hubl/tags/standard-tags)など)でも使用できます。 ## 全てのテンプレートで利用可能な変数 以下のHubL変数をEメール、ページ、またはブログのテンプレートで使用できます。 これらの変数からの出力に関する追加情報を見るには、以下に示すように[pprintフィルター](/docs/cms/reference/hubl/filters#pprint)を使用できます。 ```text 入力.txt theme={null} {% set variable = content %} {{variable|pprint}} ``` ```text 出力.txt theme={null} (ContentMeta: { "canonicalUrl" : "https://www.website.com/url-slug", "deferDynamicValues" : false, "featuredImageAltText" : "", "featuredImageHeight" : 0, "featuredImageUrl" : "", "featuredImageWidth" : 0, "htmlTitle" : "", "linkRelCanonicalUrl" : "https://www.website.com/url-slug", "metaDescription" : "", "metaKeywords" : "", "name" : "", "unescapedHtmlTitle" : "", "unescapedMetaDescription" : null }) ``` \| 変数 | 型 | 説明 | \| --- | --- | --- | --- | \| `account` | ディクショナリー | 既知のコンタクトの[関連付けられたプライマリー会社](https://knowledge.hubspot.com/ja/records/associate-records#understand-the-primary-company-association)から、[会社プロパティー値](/docs/api-reference/crm-properties-v3/guide)を格納するディクショナリー。この変数にピリオドと内部プロパティー名を追加することで、特定の会社プロパティー(カスタムとデフォルトの両方)にアクセスできます。例えば、`account.name`はコンタクトに関連付けられているプライマリー会社の名前を出力します。\ \ この変数を使用すると、ページキャッシュが無効になります。詳しくは[ページプリレンダリングとJavaScriptの代替案](/docs/cms/best-practices/testing-staging-performance/prerendering)をご確認ください。 | \| `company_domain` | 文字列 | [ウェブサイト]>[ページ]>[ブランディング]>[ロゴのリンク]に設定されている会社のドメインを出力します。 | \*\* \*\*\*\* \***\* \*\*** \*\* | \| `contact` | ディクショナリー | 既知のコンタクトに関する[コンタクトプロパティー値](/docs/api-reference/crm-properties-v3/guide)を格納するディクショナリー。この変数にピリオドと内部プロパティー名を追加することで、特定のコンタクトプロパティー(カスタムとデフォルトの両方)にアクセスできます。例えば、`contact.firstname`ではコンタクトの下の名前が出力されます。\ \ この変数を使用すると、ページキャッシュが無効になります。詳しくは[ページプリレンダリングとJavaScriptの代替案](/docs/cms/best-practices/testing-staging-performance/prerendering)をご確認ください。 | \| `content` | ディクショナリー | 特定のコンテンツ(Eメール、ページ、記事など)に関連するさまざまなプロパティーを格納するディクショナリー。 | \| `content.absolute_url` | 文字列 | ページ、記事、またはEメールのウェブページバージョンのURL全体を出力します。 | \| `content.archived` | ブール値 | ページまたはEメールがユーザーによってアーカイブ済みの場合に、`true`と評価されます。 | \| `content.author_email` | 文字列 | コンテンツ作成者のEメールアドレス。 | \| `content.author_name` | 文字列 | コンテンツ作成者の姓名。 | \| `content.author_username` | 文字列 | コンテンツ作成者のHubSpotユーザー名。 | \| `content.campaign` | 文字列 | このページまたはEメールに関連付けられているマーケティングキャンペーンのGUID。この固有IDは、キャンペーンツール内の特定のキャンペーンのURLで確認できます。 | \| `content.campaign_name` | 文字列 | このページ、この記事、またはこのEメールに関連付けられているマーケティングキャンペーンの名前。 | \| `content.created` | 日時 | コンテンツが最初に作成された時刻を示す日時オブジェクト(UTC時刻)。[Datetimeフィルター](/docs/cms/reference/hubl/filters#datetimeformat)を使用して、この変数の書式を設定できます。 | \| `content.meta_description` | 文字列 | ページのメタディスクリプションを取得するときには、`page_meta.meta_description`変数を使用することをお勧めします。 | \| `content.name` | 文字列 | 記事、Eメール、またはページの名前。ページとEメールの場合は内部コンテンツ名が出力され、記事の場合は記事のタイトルが出力されます。ブログ記事の場合、表示される記事のタイトルです。その他のコンテンツタイプの場合、一般に内部名です。この変数にはラッパーが含まれているので、ブログ記事に組み込まれている場合にはユーザーインターフェイス上で編集できます。ラッパーなしでコンテンツ名を出力するには、`page_meta.name`を使用します。 | \| `content.publish_date` | 日時 | コンテンツが公開された時刻を表す日時オブジェクト(UTC時刻)。[format\_datetimeフィルター](/docs/cms/reference/hubl/filters#format-datetime)を使用して、この変数の書式を設定できます。 | \| `content.publish_date_localized` | 文字列 | アカウントの[デフォルトの設定](https://knowledge.hubspot.com/ja/account-management/change-your-language-and-region-settings)で定義されたタイムゾーンを使用してコンテンツが公開された日時を表す文字列。この変数は、[言語と日付形式の設定](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#set-your-blog-s-date-formats)の影響も受けます。 | \| `content.template_path` | 文字列 | デザインマネージャーでのテンプレートのファイルパス(例:`custom/page/web_page_basic/my_template.html`)。 | \| `content.slug` | 文字列 | ページ、記事、またはEメール(ウェブページバージョン)のURLスラッグ。これは、ドメインの後に続く値です。例えば、`https://example.com/about-us`の中のスラッグは`about-us`です。URL全体を指定するには、代わりに`content.absolute_url`使用します。 | \| `content.updated` | 日時 | ユーザーが最後にコンテンツを更新した日時を表す日時オブジェクト(UTC時刻)。Datetimeフィルターを使用して、この変数の書式を設定できます。最初の公開時の`content.publish_date`とは等しくありません。[`|between_times`](/docs/cms/reference/hubl/filters#between-times)フィルターを使用します。 | \| `content_id` | 文字列 | ページ、記事、またはEメールの一意のIDを出力します。このIDはエディターのURLで確認できます。この変数は`content.id`のエイリアスとして使用できます。 | \| `favicon_link` | 文字列 | ファビコンのソースURLを出力します。詳しくは[HubSpotでのファビコンの設定](https://knowledge.hubspot.com/ja/branding/edit-your-logo-favicon-and-brand-colors#add-or-edit-your-favicon)をご確認ください。 | \| `hub_id` | 文字列 | ご使用のHubSpotアカウントのポータルID。 | \| `hubspot_analytics_tracking_code` | 文字列 | アナリティクストラッキングコードが含まれます。`standard_footer_includes`が既にトラッキングコードをレンダリングしているため、このタグは必ずしも必要ではありません。 | \| `local_dt` | 日時 | レポート設定で定義されているタイムゾーンでの現在時刻を表す日時オブジェクト。この変数を使用すると、現在の時間を返す必要があるため、ページキャッシュが無効になります。詳しくは[ページプリレンダリングとJavaScriptの代替案](/docs/cms/best-practices/testing-staging-performance/prerendering)をご確認ください。 | \| `local_time_zone` | 文字列 | HubSpotのレポート設定で指定されているタイムゾーン。 | \| `page_meta.canonical_url` | 文字列 | このページにアクセスするための正式なURL。通常はクエリー文字列パラメーターが含まれません。これを`rel="canonical"`タグに使用してください。HubSpotによりURLが自動的に正規化されます。 | \| `page_meta.html_title` | 文字列 | ページのタイトル。この変数をHTMLテンプレートの``タグで使用します。 | \| `page_meta.meta_description` | 文字列 | ページのメタディスクリプション。この変数はHTMLテンプレートの「description」の`<meta>`タグで使用します。 | \| `page_meta.name` | 文字列 | `content.name`のエイリアス。 | \| `portal_id` | 文字列 | `hub_id`変数のエイリアス。 | \| `request_contact` | ディクショナリー | リクエストされたコンタクトに関するデータを含むディクショナリー。Eメールテンプレートでは使用できません。この変数を使用すると、ページキャッシュが無効になります。詳しくは[ページプリレンダリングとJavaScriptの代替案](/docs/cms/best-practices/testing-staging-performance/prerendering)をご確認ください。 | \| `site_settings` | ディクショナリー | [色やフォント](#color-and-font-settings)、[Eメールフッターの詳細](#email-variables)など、ページ、ブログ、Eメールのさまざまな設定を含むディクショナリー。 | \| `year` | 文字列 | 現在の年を出力します。 | ## Eメールの変数 Eメールテンプレートで使用できるHubL変数を以下に示します。いくつかの変数は他のコンテンツタイプでも使用可能です。例えば[色とフォントの設定変数](#color-and-font-settings)を使用して、Eメールの色やフォントの設定を他の場所で参照することができます。 ### Eメールテンプレートの必須変数 [CAN-SPAM](https://knowledge.hubspot.com/ja/marketing-email/edit-office-location-information-in-email-footers)に準拠するには、HubSpot経由で送信される全てのEメールに、特定の会社情報とオプトアウト情報を掲載する必要があります。この情報は以下の変数によって設定され、これらの変数を含める必要があります。これらのトークンの値は、アカウントの[マーケティングEメール設定](https://knowledge.hubspot.com/ja/marketing-email/edit-office-location-information-in-email-footers#edit-your-default-email-footer-information-in-your-settings)から取得されます。 その他の任意指定のEメール変数については、[このページで後述](#email-content)します。 | 変数 | 型 | 説明 | | - | - | - | | `site_settings.company_city` | 文字列 | 会社の市区町村を出力します。 | | `site_settings.company_name` | 文字列 | 会社名を出力します。 | | `site_settings.company_state` | 文字列 | 会社の都道府県を出力します。 | | `site_settings.company_street_address_1` | 文字列 | 会社の住所を出力します。 | | `unsubscribe_link` | 文字列 | 受信者が配信設定の管理やEメール配信の解除を行えるページのURLを出力します。この変数は`<a>`アンカータグの`href`属性で使用します。 | ### 色とフォントの設定 [マーケティングEメールの設定](https://knowledge.hubspot.com/ja/marketing-email/manage-your-marketing-email-account-settings)には、Eメールに出力できる基本的な色とフォントの制御設定がいくつかあります。なお、これらの変数の一部は、変数の前に`site_settings.`を追加することで、ページテンプレートやブログテンプレートでも使用できます。 | 変数 | 型 | 説明 | | - | - | - | | `background_color` | 文字列 | 背景色を16進数値で設定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.background_color`を使用します。 | | `body_border_color` | 文字列 | 本文の境界線の色を16進数値で設定します。このオプションは、設定の[境界線の色のオプション]ドロップダウンメニューで[Eメールの境界線の色を手動で設定]を選択すると使用可能になります\*\*。 \*\*\_ \_ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.body_border_color`を使用します。 | | `body_border_color_choice` | 文字列 | この変数の値は、設定の[境界線の色のオプション]ドロップダウンメニューで制御されます。\_ \_値は`BORDER_AUTOMATIC`、`BORDER_MANUAL`、`BORDER_NONE`です。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.body_border_color_choice`を使用します。 | | `body_color` | 文字列 | 本文の色を16進数値で設定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.body_color`を使用します。 | | `primary_accent_color` | 文字列 | 基本アクセントカラーを16進数値で設定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.primary_accent_color`を使用します。 | | `primary_font` | 列挙 | 基本フォントの設定を文字列として指定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.primary_font`を使用します。 | | `primary_font_color` | 文字列 | 基本フォント色を16進数値で設定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.primary_font_color`を使用します。 | | `primary_font_size` | 文字列 | 基本フォントサイズを`px`値に設定します。ブログテンプレートには`site_settings.primary_font_size`を使用します。 | | `primary_font_size_num` | 数値 | 基本フォントサイズの数値(`px`を除く)。 | | `secondary_accent_color` | 文字列 | 第2基本アクセントカラーを16進数値で設定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.secondary_accent_color`を使用します。 | | `secondary_font` | 列挙 | 第2基本フォントを文字列として設定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.secondary_font`を使用します。 | | `secondary_font_color` | 文字列 | 第2基本フォント色を16進数値で設定します。ページテンプレートやブログテンプレートでこの値を出力するには、`site_settings.secondary_font_color`を使用します。 | | `secondary_font_size_num` | 文字列 | 第2基本フォントサイズの数値(`px`を除く)。 | ### Eメールの内容 | 変数 | 型 | 説明 | | - | - | - | | `content.create_page` | ブール値 | Eメールのウェブページバージョンがある場合は、`True`になります。 | | `content.email_body` | リッチテキスト | Eメールの本文。この変数によってリッチテキストモジュールがレンダリングされます。 | | `content.emailbody_plaintext` | 文字列 | プレーンテキストのEメール本文を変更します(任意指定)。 | | `content.from_name` | 文字列 | Eメール送信者の名前。 | | `content.reply_to` | 文字列 | Eメールの返信用アドレス。 | | `content.subject` | 文字列 | Eメールの件名。 | | `email_body_padding` | 文字列 | [Eメール本文のパディング設定](https://knowledge.hubspot.com/ja/marketing-email/manage-your-marketing-email-account-settings#size)。 | | `email_body_width` | 文字列 | [Eメール本文の幅の設定](https://knowledge.hubspot.com/ja/marketing-email/manage-your-marketing-email-account-settings#size)。 | | `site_settings.company_street_address_2` | 文字列 | アカウントの[CAN-SPAMフッター設定](https://knowledge.hubspot.com/ja/marketing-email/edit-office-location-information-in-email-footers)の住所2を出力します。 | | `site_settings.office_location_name` | 文字列 | アカウントの[CAN-SPAMフッター設定](https://knowledge.hubspot.com/ja/marketing-email/edit-office-location-information-in-email-footers)のオフィス所在地名を出力します。 | | `subscription_confirmation_url` | 文字列 | 配信設定確認ページのURLを出力します。このURLは送信時に動的に生成されます。 | | `subscription_name` | 文字列 | Eメールに指定されているEメールタイプの名前を出力します。 | | `unsubscribe_anchor` | 文字列 | 配信停止ページにリンクされた"unsubscribe"(配信停止)という語を含むアンカータグを生成します。 | | `unsubscribe_link_all` | 文字列 | 配信設定を管理するためのリンクではなく、全てのEメールコミュニケーションの配信を解除するリンクをレンダリングします。 | | `unsubscribe_section` | 文字列 | 配信停止リンクとヘルプテキストを含む配信停止セクションを表示します。 | | `view_as_page_section` | 文字列 | Eメールのウェブページバージョンを表示するリンク(ヘルプテキスト付き)を生成します。 | | `view_as_page_url` | 文字列 | Eメールのウェブページバージョンを表示するリンクを生成します。 | ### 非公開コンテンツEメールの変数 [非公開コンテンツEメールテンプレート](https://knowledge.hubspot.com/ja/website-pages/require-member-registration-to-access-private-content#customize-your-membership-registration-page-and-email-templates)に使用されるEメールテンプレートの内部でのみ利用可能な変数を以下に示します。 | 変数 | 型 | 説明 | | - | - | - | | `membership_company_name` | 文字列 | アカウントの[非公開コンテンツ設定](https://knowledge.hubspot.com/ja/website-pages/manage-private-content-settings#edit-general-settings-for-private-content)で設定されている会社名。 | | `membership_domain` | 文字列 | 非公開コンテンツウェブサイトのドメイン。 | | `membership_logo_src` | 文字列 | アカウントの[ブランドキット設定](https://knowledge.hubspot.com/ja/branding/edit-your-logo-favicon-and-brand-colors)で設定されている、表示するロゴのURL。 | | `membership_logo_alt` | 文字列 | アカウントの[ブランドキット設定](https://knowledge.hubspot.com/ja/branding/edit-your-logo-favicon-and-brand-colors)で設定されている、ロゴの`alt`属性。 | | `membership_registration_link` | URL | 非公開コンテンツウェブサイトの登録ページへのリンク。 | | `membership_password_saved_link` | URL | パスワード保存ページへのリンク。このリンクによって、訪問者がアクセスできるランダムな制限付きページにリダイレクトされます。 | | `membership_password_reset_link` | URL | 非公開コンテンツウェブサイトのパスワードリセットページへのリンク。 | | `membership_passwordless_auth_link` | URL | パスワードレスのメンバーログインページへのリンク。 | | `membership_verify_registration_link` | URL | 登録確認ページへのリンク。 | | `membership_website_admin` | 文字列 | アカウントの[非公開コンテンツ設定](https://knowledge.hubspot.com/ja/website-pages/manage-private-content-settings#edit-general-settings-for-private-content)で設定されているウェブサイト管理者の名前。 | ## ウェブサイトページの変数 サイトページ、ランディングページ、システムページ、ブログに使用できる変数を以下に示します。 ### 必須のページテンプレート変数 コードファイルを編集可能なページまたはブログテンプレートとして公開するには、以下の変数を含める必要があります。これらの変数を含まないHTMLファイルを公開して別のテンプレート内で使用するには、[テンプレートアノテーション](/docs/cms/start-building/building-blocks/templates/html-hubl-templates#template-annotations)に`isAvailableForNewContent: false`を含めます。 | 変数 | 型 | 説明 | | - | - | - | | `standard_footer_includes` | 文字列 | [HubSpotトラッキングコード](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#hubspot-tracking-code)と、[**コンテンツ設定**](https://app.hubspot.com/l/settings/website/pages/all-domains/page-templates)のフッターHTMLに含まれるその他のコード、または特定のページのオプションをレンダリングします。このタグを本文終了タグの直前に挿入する必要があります。 | | `standard_header_includes` | 文字列 | [jQuery、layout.css](https://developers.hubspot.jp/docs/guides/cms/content/templates/overview#included-cms-files)、添付されるスタイルシート、meta viewportタグ、Googleアナリティクスのトラッキングコード、その他のメタ情報、およびドメインレベル、テンプレートレベル、ページレベルでheadタグに付加されるコードを追加します。この変数はHTMLテンプレートの`<head>`に追加する必要があります。 | ### コンテンツとコンタクトの変数 | 変数 | 型 | 説明 | | - | - | - | | `builtin_body_classes` | 文字列 | テンプレートを使用して作成されたコンテンツのマークアップ(コンテンツタイプやコンテンツ名など)を区別する便利なクラスを動的に出力します。これにより、さまざまなタイプのコンテンツや特定のページのスタイルを容易に設定できます。この変数は、コードテンプレートの本文タグのclass属性で使用します。 | | `request_contact.is_logged_in` | 文字列 | リクエスト元コンタクトがウェブサイトの[非公開コンテンツ](https://knowledge.hubspot.com/ja/website-pages/require-member-registration-to-access-private-content)にログインしているかどうか。この変数では、リクエスト元コンタクトがログイン済みの場合は`true`、ログアウトしている場合は`false`の値が返されます。[接続済みのドメイン](https://knowledge.hubspot.com/ja/domains-and-urls/connect-a-domain-to-hubspot)のいずれかを使用して、コンタクトを`https://www.yourdomain.com/_hcms/mem/logout`に誘導することで、ログアウトしてもらうことができます。 この変数を使用すると、ページキャッシュが無効になります。詳しくは[ページプリレンダリングとJavaScriptの代替案](/docs/cms/best-practices/testing-staging-performance/prerendering)をご確認ください。 | | `request_contact.list_memberships` | 文字列 | コンタクトがメンバーとして含まれるリストを表すIDのディクショナリー。この変数を使用すると、ページキャッシュが無効になります。詳しくは[ページプリレンダリングとJavaScriptの代替案](/docs/cms/best-practices/testing-staging-performance/prerendering)をご確認ください。 | | `content.language` | ディクショナリー | ページの言語設定に関する情報のディクショナリー。<ul><li>`content.language.languageTag`はページの言語識別子(`"en"`や`"es"`など)を返します。</li><li>`content.language.textDirection.value`は、ページの言語のテキスト方向(`"rtl"`や`"ltr"`など)を返します。</li></ul> | ## HTTPリクエストの変数 HTTPページリクエストに関する情報を出力する変数を以下に示します。これらの変数の中には、ページの読み込み時にデータを動的に入力する必要があるため、ページキャッシュの妨げになるものがあります。詳しくは[ページプリレンダリングとJavaScriptの代替案](/docs/cms/best-practices/testing-staging-performance/prerendering)をご確認ください。 | 変数 | 型 | 説明 | | - | - | - | | `request.cookies` | ディクショナリー | Cookieの値にマップされたCookie名のディクショナリー。この変数を使用すると、ページキャッシュが無効になります。 | | `request.domain` | 文字列 | このページへのアクセスに使用されるドメイン。 | | `request.full_url` | 文字列 | このページへのアクセスに使用されるURL。 | | `request.path` | 文字列 | URLのパス要素。 | | `request.path_and_query` | 文字列 | URLのパスとクエリーの要素。 | | `request.query` | 文字列 | URLのクエリー文字列の要素。`request.query_dict`により、自動的にクエリー文字列がキーと値のペアに分割されます。ほとんどの場合、未加工のクエリーに対してはこれを使用することを推奨します。 | | `request.query_dict` | ディクショナリー | 名前->値のディクショナリーに変換されたクエリー文字列。 | | `request.referrer` | 文字列 | HTTPリファラー(現在のページにリンクされているページのURL)。この変数を使用すると、ページキャッシュが無効になります。 | | `request.remote_ip` | 文字列 | 訪問者のIPアドレス。この変数を使用すると、ページキャッシュが無効になります。 | | `request.scheme` | 文字列 | リクエストのプロトコル(`http`または`https`)。 | | `request.search_engine` | 文字列 | このページを見つけるのに使用された検索エンジン(該当する場合)。例えば、`google`、`aol`、`live`、`yahoo`、`images.google`などです。 | | `request.search_keyword` | 文字列 | このページを見つけるのに使用されたキーワードフレーズ(該当する場合)。 | | `request.headers` | 文字列 | 利用可能なリクエストヘッダーのディクショナリー。この変数を使用すると、各リクエストの個別のヘッダーを解釈する必要があるため、ページキャッシュが無効になります。 | ## ブログの変数 ブログテンプレートで使用可能な変数を以下に示します。記事リストでのみ使用できる変数と、ブログ記事でのみ使用できる変数があります。 | 変数 | 型 | 説明 | | - | - | - | | `blog_author` | 文字列 | この変数には、ブログ執筆者リストページのブログ執筆者情報が含まれます。[ブログ執筆者リストのマークアップを表示する](/docs/cms/start-building/building-blocks/templates/blog#if-blog-author-statement)条件付きロジックを作成する場合に使用できます。また、以下のプロパティーも含まれます。<ul><li>`blog_author.avatar`</li><li>`blog_author.bio`</li><li>`blog_author.display_name`</li><li>`blog_author.email`</li><li>`blog_author.facebook`</li><li>`blog_author.google_plus`</li><li>`blog_author.has_social_profiles`</li><li>`blog_author.linkedin`</li><li>`blog_author.twitter`</li><li>`blog_author.website`</li></ul> | | `content.blog_post_author` | 文字列 | この変数には、特定の記事の各ブログ記事執筆者の情報が含まれます。以下のプロパティーが含まれています。<ul><li>`content.blog_post_author.avatar`</li><li>`content.blog_post_author.bio`</li><li>`content.blog_post_author.display_name`</li><li>`content.blog_post_author.email`</li><li>`content.blog_post_author.facebook`</li><li>`content.blog_post_author.google_plus`</li><li>`content.blog_post_author.has_social_profiles`</li><li>`content.blog_post_author.linkedin`</li><li>`content.blog_post_author.slug`</li><li>`content.blog_post_author.twitter`</li><li>`content.blog_post_author.website`</li></ul> | | `blog` | 文字列 | `group`のエイリアス。例えば、`blog.absolute_url`と`group.absolute_url`のいずれかを使用できます。 | | `content.comment_count` | 整数 | 現在のブログ記事のコメント数。 | | `content.comment_list` | 文字列 | 現在のブログ記事のコメントのリスト。 | | `current_page_num` | 整数 | ビュー内のブログ記事の現在のページを示す整数インデックス。 | | `content.featured_image` | 文字列 | ブログの公開時に選択されたキービジュアルのソースURL。 | | `content.featured_image_alt_text` | 文字列 | キービジュアルの代替テキスト。 | | `last_page_num` | 整数 | ビュー内のブログ記事の最終ページを示す整数インデックス。 | | `next_page_num` | 整数 | ビュー内のブログ記事の次のページを示す整数インデックス。 | | `content.next_post_featured_image` | 文字列 | 次のブログ記事のキービジュアルのURL(存在する場合)。 | | `content.next_post_featured_image_alt_text` | 文字列 | 次の記事のキービジュアルの代替テキスト(代替テキストが存在する場合)。 | | `content.next_post_name` | 文字列 | 次のブログ記事の名前(存在する場合)。 | | `content.next_post_slug` | 文字列 | 次のブログ記事のURLスラッグ(存在する場合)。 | | `content.post_body` | 文字列 | ブログ記事の本文。 | | `content.post_list_content` | 文字列 | リストページ用に変更された、ブログ記事の本文コンテンツ。最終的な出力は、[ブログの要約設定](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#select-your-blog-templates)の影響を受けます。設定でキービジュアルが有効になっている場合、この変数を指定すると、[「続きを読む」セパレーター](https://knowledge.hubspot.com/ja/blog/create-and-publish-blog-posts)よりも上にある全ての画像が自動的に削除されます。 | | `content.post_list_summary_featured_image` | 文字列 | ブログリスティングテンプレートで使用される記事要約のキービジュアル。これは[ブログ設定](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#select-your-blog-templates)で設定されます。 | | `content.post_summary` | 文字列 | ブログ記事の要約(サマリー)。このコンテンツは、ブログエディターの[「続きを読む」セパレーター](https://knowledge.hubspot.com/ja/blog/create-and-publish-blog-posts)により決定されます。 | | `content.previous_post_featured_image` | 文字列 | 前のブログ記事のキービジュアルのURL(存在する場合)。 | | `content.previous_post_featured_image_alt_text` | 文字列 | 前の記事のキービジュアルの代替テキスト(代替テキストが存在する場合)。 | | `content.previous_post_name` | 文字列 | 前のブログ記事の名前(存在する場合)。 | | `content.previous_post_slug` | 文字列 | 前のブログ記事のURLスラッグ(存在する場合)。 | | `content.publish_date_localized` | 文字列 | ブログ記事が公開された日時を表す文字列。ブログの[言語設定と日付形式](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#set-your-blog-s-date-formats)に基づいて書式が設定されます。 | | `simple_list_page` | ブール値 | リクエストされたページが、全てのブログ記事へのリンクを含む「全ての記事」ページであるかどうかを示します。 | | `content.topic_list` | ディクショナリー | これを使用すると、ループ処理によってトピックリストのマークアップをレンダリングできます。`{% for topic in content.topic_list %}` その中の項目には、プロパティー`name`と`slug`が含まれています。 | | `contents` | 文字列 | [ブログのリストページ](/docs/cms/start-building/building-blocks/templates/blog#if-is-listing-view-statement)上にある、forループを使って反復処理されるブログ記事のシーケンスです。 | | `contents.total_count` | 整数 | (定期、トピック、執筆者などの)リスト内の記事の合計数。 | | `contents.total_page_count` | 整数 | 1ページ当たりの記事数に基づく、記事ページの合計数。 | | `contents_topics` | 文字列 | contents(記事のシーケンス)内の全てのブログトピックのリストを取得します。 | | `group` | ディクショナリー | ブログ全体に関連する変数を含むディクショナリー。 | | `group.absolute_url` | 文字列 | ブログのベースURL。 | | `group.allow_comments` | ブール値 | コメントが許可されている場合は`true`と評価されます。 | | `group.description` | 文字列 | [ブログ設定](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#select-your-blog-templates)で指定されている、ブログのメタディスクリプション。特定のリストページのメタディスクリプションに使用されます。 | | `group.header` | 文字列 | ブログのヘッダー。 | | `group.html_title` | 文字列 | `<title>`タグに表示される、このブログのタイトル。 | | `group.id` | 文字列 | ブログの一意のID。このIDは、特定のブログのブログダッシュボードのURLで確認できます。 | | `group.language` | ディクショナリー | ブログの言語に関する情報を含むディクショナリー。`group.language.languageTag`を条件文で使用すると、多言語ブログの言語バリエーションごとに異なるコンテンツをレンダリングできます。 | | `group.public_title` | 文字列 | レンダリングページの最上部に表示される、このブログのタイトル。 | | `group.show_summary_in_listing` | ブール値 | [ブログ設定](https://knowledge.hubspot.com/ja/blog/use-a-featured-image-on-a-page-or-blog-post#display-featured-images-on-a-blog-listing-page)で指定されている、ブログのリスティングページに記事要約を表示するかどうか。 | | `group.slug` | 文字列 | このブログへのパス。 | | `group.use_featured_image_in_summary` | ブール値 | [ブログ設定](https://knowledge.hubspot.com/ja/blog/manage-your-blog-template-and-settings#select-your-blog-templates)で指定されている、キービジュアルを記事要約に表示するかどうか。 | | `archive_list_page` | ブール値 | ページがブログのアーカイブページである場合は`true`を返します。例えば、`https://www.example.com/blog/archive/2020/02`は`true`を返します。 | ## CRMオブジェクトによる動的ページ [CRMオブジェクトの動的ページを作成](/docs/cms/start-building/features/data-driven-content/hubdb/overview#crm-object-dynamic-pages)するときに使用される変数を以下に示します。これらの変数は、CRMオブジェクトの動的ページでのみ使用できます。 | 変数 | 型 | 説明 | | - | - | - | | `dynamic_page_crm_object` | ディクショナリー | ページリクエストパスに一致する動的ページのCRMオブジェクト。リクエストがリストページを対象としている場合、この値は`null`になります。 | | `dynamic_page_crm_object_type_fqn` | 文字列 | CRMオブジェクトの完全修飾名(FQN)。FQNは、オブジェクトに割り当てられた一意のIDです。これには、HubSpotアカウントのIDとオブジェクト名が含まれます。FQNは[`crm_objects`関数](/docs/cms/reference/hubl/functions#crm-objects)で使用できます。 | ## HubDBの変数 [HubDB](/docs/cms/start-building/features/data-driven-content/crm-objects#hubdb-dynamic-pages)で動的ページを作成するときに使用される変数を以下に示します。これらの変数は、[HubDB動的ページ](/docs/cms/start-building/features/data-driven-content/hubdb/overview#hubdb-dynamic-pages)でのみ使用できます。 | 変数 | 型 | 説明 | | - | - | - | | `dynamic_page_hubdb_table_id` | 長整数 | ページエディターの[詳細設定]タブで選択されているテーブルのID。\_ \_ | | `dynamic_page_hubdb_row` | ディクショナリー | ページリクエストパスに一致する動的ページのHubDB行。リクエストがリストページを対象としている場合、この値は`null`になります。 | | `row.hs_id` | 長整数 | HubDB行の内部ID。 | | `row.hs_name` | 文字列 | HubDB行の名前。 | | `row.hs_path` | 文字列 | HubDB行のパス。これを使用すると、`dynamic_page_hubdb_table_id`で指定されたテーブル内の1行へのリクエストが解決されます。 | | `row.hs_child_table_id` | 長整数 | HubDB行の子テーブルID。ネストしたテンプレートを作成するために使用できます。 | | `row.hs_parent_row` | ディクショナリー | HubDB行の親行。ネストしたテンプレートの子テーブルを使用する場合にのみ使用できます。 | | `dynamic_page_route_level` | 整数 | 複数レベル動的テンプレート内のページの現在の深さ。値は`0`から始まり、テーブル階層が1つ加わるごとに増えていきます。 | ## メニューノードの変数 [HubLメニュー関数](/docs/cms/reference/hubl/functions#menu)により返されるオブジェクトで使用できる変数を以下に示します。 | 変数 | 型 | 説明 | | - | - | - | | `node.label` | 文字列 | ページのメニューラベル。 | | `node.url` | 文字列 | ページのURL。 | | `node.pageId` | 数値 | ページのID(HubSpot内の場合)。 | | `node.contentGroupId` | 数値 | ページのブログID(HubSpotブログ記事の場合)。 | | `node.parentNode` | オブジェクト | 現在のノードの親ノード。親ノードの`children`プロパティーには、現在のノードが含まれます。 | | `node.children` | リスト | 現在のノードの子ノードのリスト。 | | `node.activeBranch` | ブール値 | ノードが現在のページの最上位分岐内にある場合は`true`となります。 | | `node.activeNode` | ブール値 | ノードが現在のページである場合は`true`となります。 | | `node.level` | 数値 | 最上位のノードから現在のノードまでのレベル数(深さ)。 | | `node.pageTitle` | 文字列 | コンテンツページの名前(HubSpot内の場合)。 | | `node.slug` | 文字列 | ページのパススラッグ。 | | `node.linkTarget` | 文字列 | ページのターゲットリンク。 | ## アプリ内エディターおよびプレビュー変数 次の変数を使用すると、コンテンツがコンテンツエディターまたはプレビューアーで表示されているかどうかを確認できます。例えば、それらを使用して、ライブページでコードが実行されている間はエディターでコードが実行されないようにすることができます。 ```hubl theme={null} {% if is_in_page_editor %} Display something different within the page editor. {% endif %} ``` | 変数 | 型 | 説明 | | - | - | - | | `is_in_hs_app` | 文字列 | コンテンツがHubSpotアプリ内で表示されている場合、`true`を返します。 | | `is_in_editor` | 文字列 | コンテンツが任意のコンテンツエディター内で表示されている場合、`true`を返します。 | | `is_in_global_content_editor` | 文字列 | コンテンツがグローバルコンテンツエディター内で表示されている場合、`true`を返します。 | | `is_in_theme_editor` | 数値 | コンテンツがテーマエディター内に表示されている場合、`true`を返します。 | | `is_in_page_editor` | 文字列 | コンテンツがページエディター内で表示されている場合、`true`を返します。 | | `is_in_blog_post_editor` | 文字列 | コンテンツがブログ記事エディター内で表示されている場合、`true`を返します。 | | `is_in_email_editor` | 文字列 | コンテンツがEメールエディター内で表示されている場合、`true`を返します。 | | `is_in_previewer` | 数値 | コンテンツが任意のプレビューコンテキスト内で表示されている場合、`true`を返します。 | | `is_in_theme_previewer` | オブジェクト | コンテンツがテーマプレビューアー内で表示されている場合、`true`を返します。 | | `is_in_template_previewer` | 文字列 | コンテンツがテンプレートプレビューアー内で表示されている場合、`true`を返します。 | | `is_in_page_previewer` | 文字列 | コンテンツがページプレビューアー内で表示されている場合、`true`を返します。 | | `is_in_blog_post_previewer` | 文字列 | コンテンツがブログ記事プレビューアー内で表示されている場合、`true`を返します。 | | `is_in_email_previewer` | 文字列 | コンテンツがEメールプレビューアー内で表示されている場合、`true`を返します。 | | `is_in_module_previewer` | 文字列 | コンテンツがモジュールプレビューアー内で表示されている場合、`true`を返します。 | # HubLの変数とマクロ構文 Source: https://developers.hubspot.jp/docs/cms/reference/hubl/variables-macros-syntax HubLの変数とマクロを使用してHubSpots CMSとEメールで動的なページを作成する方法について説明します。 HubLでは、値の保存やテンプレートへの出力に変数を使用します。変数はテンプレートのロジックで使用することも、forループで繰り返し使用することもできます。テンプレートで繰り返し使用されるコードの動的な部分を出力するには、変数のほかに、マクロを使用することもできます。 変数は`}}`で囲まれた式です。変数の基本的な構文を次に示します。 ```hubl theme={null} // variables {{ variable }} {{ dict.attribute }} ``` ## 変数 変数は、式の中の単一の語、またはディクショナリー(辞書型)の属性のいずれかです。HubLでは、ディクショナリー(**dicts**)と呼ばれるPythonベースのデータ構造を使用して、さまざまな変数のセットを保存します。例えば、HubSpotではディクショナリー「content」を使用して、そのテンプレートで作成されたコンテンツに関する多くの属性を格納しています。`content.absolute_url`と指定した場合、特定のコンテンツのURLが出力されます。 HubSpotには、ページやブログ、Eメールのテンプレートに使用できる多数の定義済み変数が用意されています。[変数のリファレンスリスト](/docs/cms/reference/hubl/variables)があります。アカウントからページを閲覧するときに[開発者情報](/docs/cms/start-building/introduction/developer-environment/troubleshooting/troubleshooting#developer-info)を表示することもでき、そのページ内で利用可能な変数が表示されます。 変数の値やディクショナリーの属性をテンプレートに出力するほかに、ユーザー独自の変数を定義することもできます。1つの変数内に文字列、ブール値、整数、シーケンスを格納したり、ディクショナリーを作成したりできます。変数は、文の区切り文字の内側で、「set」を使って定義します。格納された変数を出力するには、変数名を式として記述します。以下では、さまざまなタイプの情報を変数に格納し、出力しています。 変数は1つの単語にするか、スペースの代わりに下線を使用する(my\_variableなど)必要があります。**HubLでは、ハイフンで連結した変数名はサポートされません。** ```text hubl.txt theme={null} {% set string_var = "This is a string value stored in a variable" %} {{ string_var}} {% set bool_var = True %} {{ bool_var}} {% set int_var = 53 %} {{ int_var}} {% set seq_var = ["Item 1", "Item 2", "Item 3"] %} {{ seq_var}} {% set var_one = "String 1" %} {% set var_two = "String 2" %} {% set sequence = [var_one, var_two] %} {{ sequence }} {% set dict_var = {"name": "Item Name", "price": "$20", "size":"XL"} %} {{ dict_var.price }} ``` ```text output.txt theme={null} This is a string value stored in a variable True 53 [Item1, Item2, Item3] [String 1, String 2] $20 ``` 上記の例はそれぞれに異なる型の変数を格納しています。最後の例では2つの別々の変数を1つのシーケンスとして格納しています。 変数は、値を出力するほかにも、[if文](/docs/cms/reference/hubl/if-statements)内、[filter](/docs/cms/reference/hubl/filters)パラメーターや[function](/docs/cms/reference/hubl/functions)パラメーターとして使用したり、[forループ](/docs/cms/reference/hubl/loops)で反復処理(シーケンス変数のみ)に使用したりできます。 一般的な使用例の1つに、スタイルシートでよく使われるCSSの値を変数を使用して定義する方法があります。例えば、ある色をCSSファイル全体で繰り返し使用しているとします。この色を変数を使用して定義しておけば、変数の値を変更するだけで、色を変更できます。次にファイルを公開したときに、その変数に対する参照が全て更新されます。 ```css example.css theme={null} <!-- defines variable and assigns HEX color --> {% set primaryColor = "#F7761F" %} a { color: {{ primaryColor }}; {# prints variable HEX value #} } ``` ```text output.txt theme={null} a { color: #f7761f; } ``` ## マクロ HubLマクロでは、動的な値を使用して複数の文を出力できます。例えば、同じコードブロックを何度も記述するような場合は、マクロを使用すると便利です。マクロに渡す引数を切り替えることで、そのコードブロックを出力できます。 マクロは、HubL文の中で定義し、名前を付け、引数を指定します。このマクロを別の文で呼び出して動的な値を渡すと、動的な引数を持つ最終的なコードブロックが出力されます。マクロの基本的な構文を次に示します。 ```hubl theme={null} {% macro name_of_macro(argument_name, argument_name2) %} {{ argument_name }} {{ argument_name2 }} {% endmacro %} {{ name_of_macro("value to pass to argument 1", "value to pass to argument 2") }} ``` マクロから空白文字が改行として返される場合は、テンプレート内の空白文字を手動で取り除くことができます。ブロック、コメント、変数の式の先頭または末尾にマイナス記号(`-`)を追加すると、そのブロックの前または後の空白文字が削除されます。 ```hubl theme={null} {% macro name_of_macro(argument_name, argument_name2) -%} {{ argument_name }} {{ argument_name2 }} {%- endmacro %} ``` 以下の実用例では、さまざまなベンダープレフィックスを含むCSS3プロパティーを動的な値と合わせて出力するために、マクロを使用しています。この例では、1つのmacroタグで5行のコードを出力できます。 ```css example.css theme={null} {% macro trans(value) %} -webkit-transition: {{value}}; -moz-transition: {{value}}; -o-transition: {{value}}; -ms-transition: {{value}}; transition: {{value}}; {% endmacro %} a { {{ trans("all .2s ease-in-out") }} } ``` ```text output.txt theme={null} a { -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; -ms-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; } ``` > [!WARNING] > > マクロにおいて、再帰コードを利用できるようになります。信頼性とパフォーマンスの問題を防ぐため、マクロのネスト可能な階層は最大20になっています。この上限を超えると、`max recursion limit of 20 reached for macro <your macro name>`というエラーが返されます。 ## 呼び出し 場合によっては、動的な追加情報をマクロブロックに渡す必要があるかもしれません。例えば、引数のほかに、長いコードをマクロに挿入する場合です。これを行うには、callブロックとcaller()を使用します。callブロックは基本的にマクロと同じように機能しますが、callブロックに名前は指定しません。caller()式で、callブロックの内容をどこに表示するかを指定します。 以下の例では、2つの引数に加えて、1つの`<p>`がマクロに追加されています。 ```html example.html theme={null} {% macro render_dialog(title, class) %} <div class="{{ class }}"> <h2>{{ title }}</h2> <div class="contents"> {{ caller() }} </div> </div> {% endmacro %} {% call render_dialog("Hello World", "greeting") %} <p>This is a paragraph tag that I want to render in my.</p> {% endcall %} ``` ```text output.txt theme={null} <div class="greeting"> <h2>Hello World</h2> <div class="contents"> <p>This is a simple dialog rendered by using a macro and a call block.</p> </div> </div> ``` ## インポート マクロには、あるテンプレートファイルから別のテンプレートファイルにインポートして使用できる便利な機能もあります。これには、**import**タグを使用する必要があります。importタグでは、マクロが含まれているテンプレートへのDesign Manager(デザインマネージャー)ファイルパスを指定し、インポート先テンプレート内でのマクロ名を指定することができます。その後に、それらのマクロに値を渡すことができます。マクロを再定義する必要はありません。 例えば、次の2つのマクロが含まれている.htmlテンプレートファイルがあるとします。1つのマクロはheaderタグを設定するために定義し、もう1つはfooterタグを生成するために定義しています。このファイルはデザインマネージャーに`my_macros.html`という名前で保存されています。 ```hubl theme={null} <!-- my_macros.html file --> {% macro header(tag, title_text) %} <header> <{{ tag }}>{{ title_text }} </{{tag}}> </header> {% endmacro %} {% macro footer(tag, footer_text) %} <footer> <{{ tag }}>{{ footer_text }} </{{tag}}> </footer> {% endmacro %} ``` これらのマクロを使用するテンプレートでは、`my_macros.html`ファイルへのファイルパスを指定したimportタグを使用します。また、マクロのグループには名前を付けます(この例では`header_footer`)。そして、そのインポートしたテンプレートに付けた名前にマクロ名を追加することでマクロを実行できます。以下の例を参照してください。 ```html example.html theme={null} {% import "custom/page/web_page_basic/my_macros.html" as header_footer %} {{ header_footer.header("h1", "My page title") }} <p>Some content</p> {{ header_footer.footer("h3:", "Company footer info") }} ``` ```text output.txt theme={null} <header><h1>My page title</h1></header> <p>Some content</p> <footer><h3>Company footer info</h3></footer> ``` ## from 別の.htmlファイルに含まれている全てのマクロではなく、特定のマクロのみをインポートする場合は、**from**タグを使用します。fromタグでは、インポートするマクロのみを指定します。通常、**import**を使用する方が柔軟性は向上しますが、この代替手段もサポートされます。 次の例では、この記事の前のセクションと同じ`my_macros.html`ファイルを利用します。ただし、今回は、全てのマクロをインポートするのではなく、footerマクロのみを利用します。 ```html example.html theme={null} {% from "custom/page/web_page_basic/my_macros.html" import footer %} {{ footer("h2", "My footer info") }} ``` ```text output.txt theme={null} <footer><h2>My footer info</h2></footer> ``` ## ループ内の変数 > [!WARNING] > > ループ内で定義した変数は、そのループの範囲内に制限され、ループの外側から呼び出すことはできません。 ループ外で定義した変数をループ内から呼び出すことはできますが、その逆はできません。 また、dictに値を設定する場合やリスト操作を実行する場合にオブジェクトを変化させるために、関数を使用できます。以下の例では[`.update`リスト操作](/docs/cms/reference/hubl/functions#update)を使用しています。 ```text input.txt theme={null} {% set obj = {val : 0} %} {% for i in range(0, 10) %} {% do obj.update({val: obj.val + i }) %} {% endfor %} {{ obj.val }} ``` ```text output.txt theme={null} 45 ``` # モジュールの設定 Source: https://developers.hubspot.jp/docs/cms/reference/modules/configuration カスタムモジュールを設定する方法についてご確認ください。 モジュールを作成する際には、モジュールの表示場所、識別方法、編集方法などを決定するオプションが多数あります。 [ローカルで開発する](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)場合、モジュールは`.module`サフィックスが付いたフォルダーとして保存されます。これらのフォルダー内には、モジュールの設定用ファイルと、モジュールのレンダリングに使用されるコードが含まれています。モジュールの設定は[meta.json](#meta-json)ファイルに保存されますが、フィールドは別途[fields.json](/docs/cms/start-building/building-blocks/modules/overview#fields-json)ファイルに設定されます。 設定の大半は、[デザインマネージャー](/docs/cms/start-building/introduction/developer-environment/design-manager)のモジュールエディターからも変更できます。 ![ローカルに表示されるモジュールフォルダー構造](https://cdn2.hubspot.net/hubfs/53/module%20structure.png) 概要レベルでは、`meta.json`ファイル内でモジュールオプションをローカルで設定します。これには次のプロパティーを含めることができます。 | パラメーター | 型 | 説明 | デフォルト値 | | | - | - | - | - | - | | `icon` | 文字列 | モジュールのアイコンとして使用する画像のURL。 | | | | `label` | 文字列 | コンテンツエディターに表示されるモジュールのラベル。 | | | | `module_id` | 数値 | パスから独立した、モジュールの固有ID。 | | | | `is_available_for_new_content` | ブール値 | HubSpotのモジュールエディターの右上隅にある切り替えスイッチの値。モジュールがコンテンツで使用可能かどうかを指定します。 | `true` | | | `global` | ブール値 | モジュールがグローバルかどうかを示します。 | `false` | | | `content_types` | 配列 | モジュールを使用できる[コンテンツタイプ](/docs/cms/start-building/building-blocks/drag-and-drop/tutorial)の`array`。次の1つ以上を指定できます。<ul><li>`ANY`:以下に示すタイプ全て。</li><li>`LANDING_PAGE`:ランディングページ。</li><li>`SITE_PAGE`:ウェブサイトページとテンプレート。</li><li>`BLOG_POST`:ブログ記事とテンプレート。</li><li>`BLOG_LISTING`:ブログリストのテンプレート。</li><li>`EMAIL`:EメールとEメールテンプレート。</li><li>`KNOWLEDGE_BASE`:ナレッジ ベース ページとテンプレート。</li><li>`QUOTE_TEMPLATE`:見積もりテンプレート。</li><li>`CUSTOMER_PORTAL`:カスタマー ポータル テンプレート。</li><li>`WEB_INTERACTIVE`:ウェブインタラクティブ。</li><li>`SUBSCRIPTION`:配信登録テンプレート。</li><li>`MEMBERSHIP`:メンバーシップテンプレート。</li></ul>モジュールがHubSpot内のどの領域でも使用されない場合は、値を`["NONE"]`ではなく、空の配列である`[]`に設定します。このフィールドは以前は`host_template_types`という名前でした。以前のフィールド名を使用しているモジュールは引き続き機能しますが、今後は`content_types`を使用することをお勧めします。 | | | | `css_assets` | 配列 | モジュールが依存するCSSファイルを含む`array`。相対パスを使用できます。例:`"css_assets": [{ "path": "../path/to/file.css" }]` | `[]` | | | `css_render_options` | オブジェクト | `async`を`true`または`false` | `{"async": false}` | にして、モジュールCSSによる非同期レンダリングを行うかどうかを設定します。 | | `js_assets` | 配列 | モジュールが依存するJavaScriptファイルを含む`array`。相対パスを使用できます。例:`"js_assets": [{ "path": "../path/to/file.js" }]` | `[]` | | | `js_render_options` | オブジェクト | レンダリングされたページに追加するモジュールのJavaScriptタグを変更します。次のオプションがあります。<ul><li>`position`:`head`、`footer`</li><li>`async`:`true`、`false`</li><li>`defer`:`true`、`false`</li><li>`type`:`string`</li></ul> | `{"position":"footer"}` | | | `inline_help_text` | 文字列 | モジュール上部の青い情報ボックスに表示されるヘルプテキスト(400文字まで)。モジュールを使用するのに必要な情報が示されます。フィールド固有のヘルプテキスト情報を伝達したい場合は、[ヘルプテキストフィールドのドキュメント](/docs/cms/reference/fields/module-theme-fields#properties-used-by-all-fields)を参照してください。 | `null` | | | `master_language` | 文字列 | [翻訳が有効](https://knowledge.hubspot.com/ja/design-manager/create-translations-of-your-modules)になっている場合、モジュールのフィールドの最初の作成時に使用された言語の言語コード。例:`en` | | | | `placeholder` | オブジェクト | モジュールの[プレースホルダーコンテンツ](/docs/cms/reference/hubl/tags/standard-tags#editor-placeholders)を設定します。次のプロパティーが含まれます。<ul><li>`show_module_icon`:モジュールアイコンを表示するかどうかを示します。`true`または`false`。</li><li>`title`:エディターでモジュールに表示されるタイトル。文字列。</li><li>`description`:エディターでモジュールに表示される説明。文字列。</li></ul> | | | | `categories` | 配列 | 最大3つの[モジュールカテゴリー](#add-categories)を含む配列。例: | `"categories":["FORMS_AND_BUTTONS"]` | | | `content_tags` | 配列 | タグ名と`"USER"`の`source`を含む[モジュールタグオブジェクト](#adding-categories-and-tags)の配列。例:`"content_tags": [{` `"name" : "BUTTONS",` `"source" : "USER"``}]` | | | 個々のモジュール設定オプションの詳細については、以下をご覧ください。 ## アイコンの追加 モジュールには、[デザインマネージャー](/docs/cms/start-building/introduction/developer-environment/design-manager)に表示されるアイコンと、コンテンツクリエイターのために視覚的なコンテキストを提供するページおよびEメールエディターを含めることができます。テーマ内の異なるタイプのモジュールに対して異なるアイコンを使用することをお勧めします。アイコンは、[マーケットプレイスプロバイダーの場合は必須](/docs/cms/marketplace/template-guidelines)です。 アイコンの追加方法は2種類あり、[デザインマネージャー](#add-an-icon-using-the-design-manager)または[CMS CLI](#add-an-icon-using-the-cli)を使用できます。 モジュールアイコンには、サイズが10KB以下の`.svg`ファイルを使用する必要があります。アイコンを最適化するには、シンプルな単色のアイコンにしてください。複数の色を使用したアイコンは、自動的に変換されます。レンチとペイントブラシのアイコンが、デフォルトのモジュールアイコンとして表示されます。 デザインマネージャーを使用してアイコンを追加するには、次の手順に従います。 1. HubSpotアカウントにて、**マーケティング**>**ファイルとテンプレート**>**デザインツール**の順に進みます。 2. 左サイドバーを使用して編集する**モジュール**を見つけて、**モジュール名**をクリックします。 3. モジュールエディターの右サイドバーで、モジュールタイトルの横にある**アイコン**をクリックします。 4. アイコンをアップロード/選択します。変更を公開すると、ページエディターとデザインマネージャー内にアイコンが表示されます。 ![edit-module-icon-crop](https://www.hubspot.com/hubfs/Knowledge_Base_2023/edit-module-icon-crop.png) ローカルで開発する際にアイコンを追加するには、モジュールの`meta.json`ファイルを開き、`icon`パラメーターの値を追加または編集して、ファイルマネージャーからのSVGを指定します。 ```json theme={null} // meta.json { "global": false, "content_types": ["PAGE"], "icon": "http://example.com/hubfs/code.svg", "label": "Code block", "smart_type": "NOT_SMART", "is_available_for_new_content": true, "inline_help_text": "This module is for code snippets." } ``` ## ラベルを変更する エディター内に表示されるモジュールのラベルは、モジュールの名前とは別に調整できます。自分に分かりやすい名前を付け、コンテンツ作成者には異なる名前を表示できるので、ローカル環境で開発を行う際に便利です。 ローカル環境では`label`パラメーターを変更してラベルを設定します。デザインマネージャーでは、モジュールエディターのモジュール名の下にフィールドがあります。 ![edit-module-label](https://www.hubspot.com/hubfs/Knowledge_Base_2023/edit-module-label.png) ## モジュールをグローバルにする 通常のモジュールの場合、ページ、Eメール、テンプレートの各モジュールインスタンスのコンテンツは独立しています。使い方によっては、モジュールの全てのインスタンスのコンテンツを同じにすると便利な場合があります。ローカルで開発する際は、`global`を`true`に設定すると、モジュールをグローバルにすることができます。 デザインマネージャーを使用して、[ドラッグ&ドロップテンプレートのモジュールをグローバルに変換する](https://knowledge.hubspot.com/ja/design-manager/use-global-content-across-multiple-templates#create-new-global-content-in-the-design-manager:~:text=To%20convert%20an%20existing%20local%20module%20or%20group)こともできます。 ## モジュールの使用箇所を制御する ローカルで開発する際は、`hostTemplateTypes`プロパティーにより、モジュールを使用できるコンテンツのタイプを制御できます。[利用可能なテンプレートタイプ](/docs/cms/start-building/building-blocks/templates/overview#template-types)について詳細をご確認ください。モジュールでは、ページに直接追加できないように、`is_available_for_new_content`を`false`に設定して非表示にすることもできます。これは、ナビゲーションメニュー用および検索用に作成されたモジュールなどで役立ちます。 デザインマネージャーでこの更新を行うには、右側のサイドバーにある\*\*[テンプレートタイプ]\*\*オプションをクリックします。 ![edit-module-template-type](https://www.hubspot.com/hubfs/Knowledge_Base_2023/edit-module-template-type.png) ## CSSとJavaScriptの依存関係を追加する モジュールインスタンスを含む全てのページにCSSとJavaScriptを追加する際に`module.css`および`module.js`を使用することに加えて、モジュール間で共有される依存関係は`css_assets`および`js_assets`で付加することができます。パスには`meta.json`ファイルに対する絶対パスまたは相対パスを使用することが可能です。 ```json theme={null} { "css_assets": [ { "path": "../path/to/file.css" } ], "js_assets": [ { "path": "../path/to/file.js" } ] } ``` > [!WARNING] > > **警告**: 相対パスを使用して依存関係を参照している場合に、`hs fetch --overwrite`を実行してローカル開発用モジュールを更新すると、相対パスが絶対パスによって上書きされます。 デザインマネージャーでは、モジュールエディターの右側のサイドバーにある\_\_[リンク済みファイル]セクションを使用して、CSSファイルとJavaScriptファイルをモジュールにリンクできます。 ![edit-module-linked-files](https://www.hubspot.com/hubfs/Knowledge_Base_2023/edit-module-linked-files.png) ## カテゴリーとタグを追加する モジュールにカテゴリーとタグを割り当てて、HubSpotツール内でモジュールを分類することができます。 * [カテゴリー](#categories):モジュールにカテゴリーを割り当てると、コンテンツエディターUI内でモジュールをグループに分類できます。これにより、コンテンツクリエイターはHubSpotでコンテンツを作成する際に、より簡単にモジュールを見つけることができます。カテゴリーについては、次の点に注意してください。 * 1つのモジュールには最大3つのカテゴリーを割り当てることができます。カテゴリーは事前定義されており、カスタマイズすることはできません。 * 現在、カテゴリーはコンテンツエディターUIには表示されません。ただし、エディターで分類が利用可能な場合は、カテゴリーを割り当てることができます。 * 未分類のモジュールは\_\_「全ての」カテゴリーで使用できます。 * [タグ](#tags):タグを割り当てると、デザインマネージャー内でモジュールを分類できます。これにより、テンプレートを作成する際に、より簡単にモジュールを見つけることができます。 デザインマネージャーでは、モジュールエディターの右側のサイドバーにある\_\_[タグをフィルター]セクションを使用して、カテゴリーとタグを割り当てることができます。利用可能なカテゴリーとタグの詳細については、以下をご覧ください。 ![edit-module-filter-tags](https://www.hubspot.com/hubfs/Knowledge_Base_2023/edit-module-filter-tags.png) ローカルでは、次のようにモジュールの`meta.json`ファイルにカテゴリーとタグを追加できます。 ```json theme={null} { "label": "Custom module", "categories": ["image_and_video", "commerce"], "content_tags": [ { "name": "BUTTONS", "source": "USER" }, { "name": "CTA", "source": "USER" } ], "is_available_for_new_content": true } ``` ### カテゴリー モジュールの`categories`配列には、次のカテゴリーを3つまで含めることができます(大文字と小文字は区別されません)。 | カテゴリー | 説明 | | - | - | | `blog` | ブログ固有のモジュール(最近の投稿リストなど)。 | | `body_content` | コンテンツをグラフィカルに表示するようにフォーマットされたモジュール(画像ギャラリーなど)。 | | `commerce` | コマース固有のモジュール(価格カードなど)。 | | `design` | コンテンツの構造とレイアウトに影響を与えるモジュール(アコーディオンなど)。 | | `functionality` | ページ上の動的な応答または動作を含むモジュール(メニューなど)。 | | `forms_and_buttons` | サイト訪問者がデータを入力して送信できるモジュール。 | | `media` | 画像、アイコン、動画、バナーなどの要素を含むモジュール。 | | `social` | ソーシャルメディア固有のモジュール(ソーシャルシェアなど)。 | | `text` | テキストのみを含むモジュール。 | ### タグ モジュールの`content_tags`配列には、次のモジュール タグ オブジェクトのいずれかを含めることができます(大文字と小文字は区別されます)。 **コンテンツタイプ**: * `ACCORDION` * `ANIMATION` * `BLOG_POST` * `BUTTONS` * `CODE` * `CTA` * `FEED` * `FORM` * `ICON` * `IMAGE` * `LISTS` * `LOGO` * `MENU` * `RICH_TEXT` * `SLIDER` * `TEXT` * `VIDEO` **関数**: * `BANNER` * `BLOG` * `BRANDING` * `CALCULATOR` * `CONVERSION` * `EMAIL` * `GALLERY` * `HEADERS` * `INTERACTION` * `LAYOUT` * `MAP` * `MULTIMEDIA` * `NAVIGATION` * `PROGRESS_BAR` * `SEARCH` * `SETTINGS` * `SOCIAL` * `TRANSLATION` # デフォルトのモジュールのバージョン管理 Source: https://developers.hubspot.jp/docs/cms/reference/modules/default-module-versioning # デフォルトのウェブモジュール Source: https://developers.hubspot.jp/docs/cms/reference/modules/default-modules ウェブサイトページ、ブログ記事、ブログリストテンプレートを作成するためにHubSpotが提供しているデフォルトのモジュールをご紹介します。これらのモジュールは、Eメールテンプレートで使用するデフォルトのEメールモジュールとは別のものです。 この記事では、ウェブサイトページ、ブログ記事、ブログリストページのテンプレートを作成するためにHubSpotが提供しているデフォルトのモジュールをご紹介します。見積もりテンプレートを作成するために使用できるデフォルトのモジュールもあります。 ローカルで開発する際は、モジュールのパス(例:`hs fetch @hubspot/linked_image.module`)を使用して特定のデフォルトのモジュールを[取得](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#fetch-files)できます。 デフォルトのモジュールのコードを確認するには、デザインマネージャーの`@hubspot`フォルダーに格納されているモジュールを表示して複製します。このコードでは、一部のデフォルトモジュールは、現在のアカウントに属するIDではなく、デフォルトのアカウントID 7052064を使用します。 ![デザインマネージャーのデフォルトのモジュール](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/design-manager-default-modules.png) > [!WARNING] > > ### 注: > > デフォルトのウェブモジュールは、Eメールテンプレートで使用する[デフォルトのEメールモジュール](/docs/cms/start-building/building-blocks/modules/default-email-modules)とは別のものです。Eメールテンプレートに次のいずれかのデフォルトのウェブモジュールが含まれている場合は、[対応するEメール固有のモジュールに置き換える](https://developers.hubspot.jp/docs/guides/cms/content/templates/default-email-modules)必要があります。 > > * `cta` > * `header` > * `linked_image` > * `logo` > * `post_filter` > * `post_listing` > * `section_header` > * `social_sharing` > * `text` ## ブログコメント ブログ記事やブログリストでサポートされています。 ```hubl theme={null} {% module "blog_comments" path="@hubspot/blog_comments" %} ``` ## ブログのEメール配信登録 ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "blog_subscribe" path="@hubspot/blog_subscribe" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `select_blog` | ブログ | モジュールに使用するブログ。 | | | `title` | 文字列 | モジュールのタイトル(h3タグで囲みます)。 | `"Subscribe Here!"` | | `response_message` | リッチテキスト | フォームの送信時に表示されるメッセージ。 | `Thanks for subscribing!` | ## ブログ記事 このモジュールをブログリストページに追加すると、ブログ記事に移動するクリック可能なボタンを使用して、各記事のタイトル、キービジュアル、執筆者、公開日などを含むブログ記事のプレビューを表示できるようになります。 このデフォルトのモジュールはReactを使用して作成されており、[ソースコードはGitHubで確認](https://github.com/HubSpot/cms-react/tree/main/default-react-modules/src/components/modules/BlogPosts-V0)できます。 > [!WARNING] > > ### 注: > > * デザインマネージャーからこのモジュールにアクセスすることはできません。このモジュールは、コードテンプレート内でHubLを使って参照し、[ブログリストページエディター](https://knowledge.hubspot.com/ja/blog/edit-a-blog-listing-page)内に追加できます。 > * このモジュールは、非推奨になった以前の`blog_listing`モジュールを置き換えるものです。 ```hubl theme={null} {% module "blog_posts" path="@hubspot/blog_posts" layout="grid", columns=4, displayForEachListItem=[ "image", "title", "authorName", "tags", "publishDate", "description", "button" ] %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `layout` | 選択肢 | 各ブログ記事プレビューのコンテンツレイアウト。<ul><li>`grid`(デフォルト):基本グリッドで記事を並べます。</li><li>`singleColumn`:1列で記事を並べます。キービジュアルは、記事の他のコンテンツの上に独自の行で配置されます。</li><li>`sideBySide`:1列で記事を並べます。キービジュアルは、記事のコンテンツと水平に並べます。</li></ul> | `grid` | | `columns` | 数値 | `grid`レイアウトを使用する場合の1行当たりの記事数。`2`、`3`、`4`のいずれかにできます。 | `3` | | `alternateImage` | ブール値 | `sideBySide`レイアウトを使用する場合、このブール値を`true`に設定すると、記事プレビューの右側と左側に交互にキービジュアルが並べられます。 | `false` | | `fullImage` | ブール値 | `grid`レイアウトまたは`singleColumn`レイアウトを使用する場合、このブール値を`true`に設定すると、キービジュアルが記事プレビューの背景になります。 | `false` | | `displayForEachListItem` | 配列 | 各ブログ記事プレビューに含めるコンテンツ。次の選択肢があります。<ul><li>`image`:記事のキービジュアル。</li><li>`title`:記事のタイトル。</li><li>`authorImage`:記事の執筆者の画像。</li><li>`authorName`:記事の執筆者の名前。</li><li>`tags`:記事のブログタグ。</li><li>`publishDate`:記事の公開日。</li><li>`description`:記事のメタディスクリプション。</li><li>`button`:ブログ記事にリンクする、続きを読むボタン。</li></ul> | `[ 'image', 'title', 'authorImage', 'authorName', 'tags', 'publishDate', 'description', 'button' ]` | | `buttonText` | 文字列 | 続きを読むボタンに表示されるテキスト(このボタンが含まれる場合)。 | `Read more` | ## ブログ記事フィルター ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "post_filter" path="@hubspot/post_filter" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `select_blog` | ブログ | 表示するブログを選択します。デフォルトでは、ブログテンプレートで使用する場合は現在のブログが使用され、その他の場合はプライマリーブログが使用されます。 | | | `filter_type` | 選択肢 | 表示するフィルターリンクのタイプ。次の選択肢があります。<ul><li>`tag`</li><li>`month`</li><li>`author`</li></ul> | `tag` | | `order_by` | 選択肢 | フィルターリンクの値の順序。次の選択肢があります。<ul><li>`post_count`</li><li>`name`</li></ul> | `post_count` | | `list_title` | テキスト | H3見出し。 | `"Posts by Tag"` | | `max_links` | 数値 | 表示するフィルターリンクの数。全て表示する場合は空白のままにします。 | `5` | | `expand_link_text` | テキスト | `max_links`の値を超える数のリンクが使用可能な場合に表示するテキスト。 | `"See all"` | ## ブログ記事リスト ページ、ブログリスト、ブログ記事でサポートされています。 > [!WARNING] > > ### 注: > > このモジュールの新しいバージョンが2024年3月末にリリースされました。詳しくは[新しいデフォルトの記事リストモジュール](/docs/cms/reference/modules/default-module-versioning#post-listing)についてご確認ください。 ```hubl theme={null} {% module "post_listing" path="@hubspot/post_listing" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `select_blog` | ブログ | 表示するブログを選択します。デフォルトでは、ブログテンプレートで使用する場合は現在のブログが使用され、その他の場合はプライマリーブログが使用されます。 | | | `listing_type` | 選択肢 | 記事リストのタイプ。次の選択肢があります。<ul><li>`recent`:最新。</li><li>`popular_all_time`:最も人気の高い記事。</li><li>`popular_past_year`:過去1年間で最も人気の高い記事。</li><li>`popular_past_six_months`:過去6か月間で最も人気の高い記事。</li><li>`popular_past_month`:過去1か月間で最も人気の高い記事。</li></ul> | `recent` | | `list_title` | テキスト | H3見出し。 | `"Recent Posts"` | | `max_links` | 数値 | 表示する記事の最大数。 | `5` | ## ボタン ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "button" path="@hubspot/button" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `link` | リンク | ボタンによるリダイレクト先URL。 | `{ "url": { "type": "EXTERNAL", "href": "www.hubspot.com", "content_id": null }, "open_in_new_tab": false, "no_follow": false }` | | `button_text` | テキスト | ボタンに表示されるテキスト。 | `"Add a button link here"` | | `style` | オブジェクト | <ul><li>`override_default_style`(ブール値) </li><li>`button_font`(フォント) </li><li>`button_color`(色) </li><li>`text_hover_color`(色) </li><li>`button_hover_color`(色)</li></ul> | `{ "override_default_style": false, "button_font": { "color": "#FFFFFF", "size_unit": "px" }, "button_color": { "color": "#000000", "opacity": 100 }, "text_hover_color": { "color": "#000000", "opacity": 100 }, "button_hover_color": { "color": "#CCCCCC", "opacity": 100 } }` | ## CTA(Call-To-Action) ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "cta" path="@hubspot/cta" %} ``` | パラメーター | 型 | 説明 | | - | - | - | | `guid` | 文字列 | CTAのグローバル固有ID。 | ## データを削除 2025年5月26日をもってこのモジュールは非推奨となり、[データプライバシーリクエストページ機能](https://knowledge.hubspot.com/ja/privacy-and-consent/manage-data-privacy-requests)に移行されました。 このモジュールのリファレンス情報は、[非推奨のモジュールドキュメント](/docs/cms/versions-deprecations/deprecated/modules#delete-data)に移動されました。 ## 区切り ページでサポートされています。2022年8月25日以降に作成されたアカウントでは、[このモジュールの新しいバージョン](/docs/cms/reference/modules/default-module-versioning#divider)を利用できます。詳しくは[この更新に関する情報](https://developers.hubspot.com/changelog/divider-module-v1)をご確認ください。 ```hubl theme={null} {% module "divider" path="@hubspot/divider" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `height` | 数値 | 区切り線の高さ(px)。 | `1` | | `width` | 数値 | 区切り線の幅のパーセンテージ(%)。 | `50` | | `color` | 色 | 区切り線の色(16進数)と不透明度(数値)。 | `{ "color": "#000000", "opacity": 100 }` | | `line_type` | 選択肢 | 線のタイプ。次の選択肢があります。<ul><li>`solid`</li><li>`dotted`</li><li>`dashed`</li></ul> | `solid` | | `alignment` | 選択肢 | 区切り線の水平方向の位置合わせ。次の選択肢があります。<ul><li>`left`</li><li>`center`</li><li>`right`</li></ul> | `center` | | `show_padding` | ブール値 | 区切りの上下に設けられる余白の表示または非表示を指定します。 | `false` | | `padding` | 数値 | 区切り線の上下に設けられる余白のピクセル(px)値。このオプションは、`show_padding`が`true`に設定されている場合に使用可能になります。 | `5` | ## データをダウンロード 2025年5月26日をもってこのモジュールは非推奨となり、[データプライバシーリクエストページ機能](https://knowledge.hubspot.com/ja/privacy-and-consent/manage-data-privacy-requests)に移行されました。 このモジュールのリファレンス情報は、[非推奨のモジュールドキュメント](/docs/cms/versions-deprecations/deprecated/modules#download-data)に移動されました。 ## フォーム ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "form" path="@hubspot/form" form={ "form_id": "9e633e9f-0634-498e-917c-f01e355e83c6", "response_type": "redirect", "message": "Thanks for submitting the form.", "redirect_id": null, "redirect_url": "http://www.google.com" } %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `title` | テキスト | H3見出し | | | `form` | オブジェクト | 次のフィールドを含むフォームオブジェクト。<ul><li>`form_id`:使用するフォームのID。</li><li>`response_type`:フォーム送信後に訪問者に表示する内容。<ul><li>`inline`</li><li>`redirect`</li></ul></li><li>`message`:インラインメッセージ(`response_type`が`inline`</li><li>`redirect_id`に設定されている場合)。:リダイレクト先ページのID(`response_type`が`redirect`に設定されている場合)。</li><li>`redirect_url`:リダイレクト先URL(`response_type`が`redirect`に設定されている場合)。</li></ul> | | | `{ "form_id": "", "response_type": "redirect", "message": "Thanks for submitting the form.", "redirect_id": null, "redirect_url": "http://www.google.com" }` | | | | | `notifications_are_overridden` | ブール値 | フォームのデフォルトではなく、フォームの通知Eメールを送信するかどうかを指定します。 | `false` | | `notifications_override_email_addresses` | Eメール | `notifications_are_overridden`が`true`の場合に送信するEメールのカンマ区切りリスト。 | | | `follow_up_type_simple` | ブール値 | フォローアップEメールの送信を有効にするかどうかを指定します。 | `false` | | `simple_email_for_live_id` | Followupemail | フォローアップEメールのID。`follow_up_type_simple`が`true`の場合に使用可能になります。 | | | `sfdc_campaign` | Salesforcecampaign | Salesforce連携がアクティブな場合のキャンペーンID。 | | ## ヘッダー ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "header" path="@hubspot/header" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `value` | テキスト | 見出しのテキスト。 | `"A clear and bold header"` | | `header_tag` | 選択肢 | 見出しのレベルを選択します。`h1`から`h6`まで選択できます。 | `h1` | ## 水平方向スペーサー ページ、ブログリスト、ブログ記事、およびEメールでサポートされています。 ```hubl theme={null} {% module "horizontal_spacer" path="@hubspot/horizontal_spacer" %} ``` ## アイコン ページ、ブログリスト、ブログ記事でサポートされています。アイコンは、Font Awesome 5.0.10および5.14.0のアイコンセットから取得できます。 ```hubl theme={null} {% module "icon" path="@hubspot/icon" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `name` | 文字列 | アイコンの名前。 | `"hubspot"` | | `purpose` | 選択肢 | アイコンの目的を分類するスクリーンリーダー用のアクセシビリティーオプション。有効な値は次の通りです。<ul><li>`decorative:`スクリーンリーダーで読み上げられません。</li><li>`semantic:`スクリーンリーダーで読み上げられます。</li></ul> | `"decorative"` | | `title` | 文字列 | アイコンにタイトルを割り当てるアクセシビリティーオプション。 | | | `style` | 文字列 | アイコンのタイプ。`solid`、`regular`、`light`、`thin`、`duotone`のいずれかを指定できます。 | `"solid"` | | `unicode` | 文字列 | アイコンのUnicode値。 | `f3b2` | ## 画像 ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "linked_image" path="@hubspot/linked_image" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `img` | 画像 | 次のフィールドを含む画像オブジェクト。<ul><li>`src`:画像のURL。</li><li>`alt`:画像の代替テキスト。</li><li>`loading`:次の遅延読み込みオプションがあります。<ul><li>`disabled`</li><li>`lazy`</li></ul></li><li>`width`:px値。</li><li>`height`:px値。</li></ul> | `{ "src": "https://static.hubspot.com/final/img/content/email-template-images/placeholder_200x200.png", "alt": "placeholder_200x200", "loading": "disabled", "width": 200, "height": 200 }` | | `link` | テキスト | 画像のリンク(オプション)。 | | | `target` | ブール値 | 新しいタブでリンクを開くかどうかを指定します。 | `false` | ## 画像グリッド ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "image_grid" path="@hubspot/image_grid", label="image_grid.module" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `slides` | オブジェクト | 各スライドの情報を含むオブジェクト。オブジェクトには次のフィールドが含まれます。<ul><li>`img`:画像のURL。</li><li>`link_url`:スライドのリンク先URL。</li><li>`hover_messages`:画像にカーソルを合わせると表示されるテキスト。</li></ul> | `[ { "show_caption": false, "open_in_new_tab": false } ]` | | `display_mode` | 選択肢 | 画像ギャラリーの表示モード。次の選択肢があります。<ul><li>`standard`:標準スライダー。</li><li>`thumbnail`:サムネイルナビゲーター。</li><li>`lightbox`:Lightboxギャラリー。</li></ul> | `standard` | | `lightboxRows` | 数値 | `display_mode`が`lightbox`の場合に表示するLightboxギャラリーの行数。 | `3` | | `loop_slides` | ブール値 | `display_mode`が`standard`または`thumbnail`の場合にスライドを循環して表示するかどうかを指定します。 | `true` | | `auto_advance` | ブール値 | `display_mode`が`standard`または`thumbnail`の場合に自動的に次のスライドに進むかどうかを指定します。 | `true` | | `num_seconds` | 数値 | `display_mode`が`standard`または`thumbnail`の場合に次のスライドに進むまでの時間の間隔(秒数)。 | `5` | | `show_pagination` | ブール値 | `display_mode`が`standard`または`thumbnail`の場合にナビゲーションボタンを表示するかどうかを指定します。 | `true` | | `sizing` | 選択肢 | `display_mode`が`standard`または`thumbnail`の場合にスライドの高さを設定します。次の選択肢があります。<ul><li>`static`:高さ固定。</li><li>`resize`:高さ変更可能。</li></ul> | `static` | | `transition` | 選択肢 | `display_mode`が`standard`または`thumbnail`の場合に使用する、スライドの遷移スタイル。次の選択肢があります。<ul><li>`slide`:スライド切り替え。</li><li>`fade`:フェードによる遷移。</li></ul> | `slide` | | `caption_position` | 選択肢 | `display_mode`が`standard`または`thumbnail`の場合に表示する、スライドのキャプションの位置。次の選択肢があります。<ul><li>`below`:常に画像の下にキャプションを表示します。</li><li>`superimpose`:画像の上にキャプションを重ねて表示します。</li></ul> | `below` | ## 画像ギャラリー ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "gallery" path="@hubspot/gallery" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `slides` | オブジェクト | 各スライドの情報を含むオブジェクト。オブジェクトには次の情報が含まれます。<ul><li>`img`:画像のURL。</li><li>`show_caption`:スライドのキャプションを表示するかどうかを指定するブール値。</li><li>`caption`:キャプションのリッチテキスト。</li><li>`link_url`:スライドのリンク先URL。</li><li>`open_in_new_tab`:リンクを新しいタブで開くかどうかを指定するブール値。</li></ul> | `[ { "show_caption": false, "open_in_new_tab": false } ]` | | `display_mode` | 選択肢 | 画像ギャラリーの表示モード。次の選択肢があります。<ul><li>`standard`:標準スライダー。</li><li>`thumbnail`:サムネイルナビゲーター。</li><li>`lightbox`:Lightboxギャラリー。</li></ul> | `standard` | | `lightboxRows` | 数値 | `display_mode`が`lightbox`の場合に表示するLightboxギャラリーの行数。 | `3` | | `loop_slides` | ブール値 | `display_mode`が`standard`または`thumbnail`の場合にスライドを循環して表示するかどうかを指定します。 | `true` | | `auto_advance` | ブール値 | `display_mode`が`standard`または`thumbnail`の場合に自動的に次のスライドに進むかどうかを指定します。 | `true` | | `num_seconds` | 数値 | `display_mode`が`standard`または`thumbnail`の場合に次のスライドに進むまでの時間の間隔(秒数)。 | `5` | | `show_pagination` | ブール値 | `display_mode`が`standard`または`thumbnail`の場合にナビゲーションボタンを表示するかどうかを指定します。 | `true` | | `sizing` | 選択肢 | `display_mode`が`standard`または`thumbnail`の場合にスライドの高さを設定します。次の選択肢があります。<ul><li>`static`:高さ固定。</li><li>`resize`:高さ変更可能。</li></ul> | `static` | | `transition` | 選択肢 | `display_mode`が`standard`または`thumbnail`の場合に使用する、スライドの遷移スタイル。次の選択肢があります。<ul><li>`slide`:スライド切り替え。</li><li>`fade`:フェードによる遷移。</li></ul> | `slide` | | `caption_position` | 選択肢 | `display_mode`が`standard`または`thumbnail`の場合に表示する、スライドのキャプションの位置。次の選択肢があります。<ul><li>`below`:常に画像の下にキャプションを表示します。</li><li>`superimpose`:画像の上にキャプションを重ねて表示します。</li></ul> | `below` | ## 画像スライダーギャラリー ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "unique_name" path="@hubspot/image_slider_gallery", slides=[ { "img": { "src": "", "alt": "Default image alt text" }, "caption": "<strong>1</strong> An optional caption for the image that will be added to the gallery. Enter any descriptive text for this image that you would like visitors to be able to read.", "link_url": "" }, { "img": { "src": "", "alt": "Default image alt text" }, "caption": "<strong>2</strong> An optional caption for the image that will be added to the gallery. Enter any descriptive text for this image that you would like visitors to be able to read.", "link_url": "" } ] slideshow_settings={ "slides": { "per_page": 1, "sizing": "natural", "aspect_ratio": "16/9", "show_captions": true, "caption_position": "below" }, "movement": { "transition": "slide", "loop_slides": false, "auto_advance": false, "auto_advance_speed_seconds": 5 }, "navigation": { "show_main_arrows": true, "show_thumbnails": false, "show_dots": false } } %} ``` | パラメーター | 型 | 説明 | | - | - | - | | `slides` | フィールドグループ | 次のフィールドが含まれるフィールドグループ。<ul><li>`img`:画像のURL。</li><li>`caption`:画像のキャプションのリッチテキスト。</li><li>`link_url`:スライドのリンク先URL。</li></ul> | | `slideshow_settings` | フィールドグループ | 画像スライダー設定のフィールドグループ。次のフィールドグループがあります。<ul><li>`slides`:次の情報を含むスライド設定。<ul><li>`per_page`:1ページあたりのスライドの数。</li><li>`sizing`:画像のサイズ設定。</li><li>`aspect_ratio`:画像の縦横比。</li><li>`show_captions`:ブール値。</li></ul></li><li>`movement`:画像のスライド動作の設定。</li><li>`navigation`:画像のナビゲーション設定。</li></ul> | | `default_text` | フィールドグループ | モジュールのデフォルトのテキスト要素。次の要素が含まれます。<ul><li>`default_caption`:画像のキャプション。</li><li>`default_image_alt_text`:画像のテキスト。</li><li>`slider_aria_label`:モジュールのデフォルトのエリアラベル。</li><li>`arial_label_thumbnails`:モジュールのデフォルトのエリアサムネイル。</li><li>`slider_nav_aria_label`:モジュールナビゲーションのデフォルトのエリアラベル。</li><li>`prev`:前のスライドに移動することを示すテキスト。</li><li>`next`:次のスライドに移動することを示すテキスト。</li><li>`first`:最初のスライドに移動することを示すテキスト。</li><li>`slideX`:X番目のスライドに移動することを示すテキスト。</li><li>`pageX`:X番目のページに移動することを示すテキスト。</li><li>`play`:自動再生を開始することを示すテキスト。</li><li>`pause`:自動再生を一時停止することを示すテキスト。</li><li>`carousel`:カルーセルテキスト。</li><li>`select`:表示するスライドを選択することを示すテキスト。</li><li>`slide`:スライドのテキスト。</li><li>`slidelabel`:スライドのラベル。</li></ul> | ## 言語切り替え機能 ページでサポートされています。 ```hubl theme={null} {% module "language_switcher" path="@hubspot/language_switcher" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `display_mode` | 選択肢 | 言語切り替え機能のテキストの言語。次のオプションがあります。<ul><li>`pagelang`:言語切り替え機能が有効になっているページの言語で各言語の名前を表示します。</li><li>`localized`:各言語の名前をそれぞれの言語で表示します。</li><li>`hybrid`:2つの組み合わせ。</li></ul> | `localized` | ## ロゴ ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "logo" path="@hubspot/logo" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `img` | 画像 | 次のフィールドを含む画像オブジェクト。<ul><li>`override_inherited_src`:設定されているデフォルトのロゴをオーバーライドします。</li><li>`src`:画像のURL。</li><li>`alt`:ロゴの代替テキスト。</li></ul> | `{ "override_inherited_src": false, "src": null, "alt": null }` | | `link` | テキスト | ロゴのリンク(オプション)。URLが指定されていない場合、ロゴは[ブランド設定](https://knowledge.hubspot.com/ja/branding/edit-your-logo-favicon-and-brand-colors#edit-your-logo)で設定されているロゴURLにリンクされます。 | | | `open_in_new_tab` | ブール値 | 新しいタブでリンクを開くかどうかを指定します。 | `false` | | `suppress_company_name` | ブール値 | 画像が選択されていない場合に会社名を非表示にするかどうかを指定します。 | `true` | | `heading_level` | 選択肢 | 選択されている画像がなく、`suppress_company_name`が`false`に設定されている場合の見出しのレベルを選択します。`h1`から`h6`まで選択できます。 | `h1` | ## ロゴグリッド コンテナーのカスタマイズ可能なグリッドで、ロゴを均一に表示できます。ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "logo grid" path="@hubspot/logo_grid" group_logos=[ { "logo": { "loading": "lazy", "alt": "company_logo", "src": "https://www.example.com/Logos/color/logo.png" } }, { "logo": { "loading": "lazy", "alt": "company2_logo", "src": "https://www.example.com/Logos/color/logo2.png" } }, { "logo": { "alt": "lorem-logo", "height": 40, "loading": "lazy", "max_height": 40, "max_width": 175, "src": "https://www.example.com/Logos/color/logo3.png", "width": 175 } } ], styles={ "group_logo": { "group_background": { "aspect_ratio": "1/1", "background_color": { "color": "#8E7CC3", "opacity": 100 } }, "group_spacing": { "padding": { "padding": { "bottom": { "units": "px", "value": 75 }, "left": { "units": "px", "value": 75 }, "right": { "units": "px", "value": 75 }, "top": { "units": "px", "value": 75 } } } }, "max_logo_height": 85 }, "group_logo_grid": { "column_count": 3, "grid_gap": 54 } } %} ``` | パラメーター | 型 | 説明 | | - | - | - | | `group_logos` | 配列 | グリッド内の各ロゴのオブジェクトを含む配列。 | | `logo` | オブジェクト | `group_logos`に含まれる、グリッド内の各ロゴのオブジェクト。各ロゴには、次のパラメーターを含めることができます。<ul><li>`src`:ロゴのファイルパス。</li><li>`loading`ロゴの[遅延読み込み](/docs/cms/best-practices/testing-staging-performance/lazy-loading)動作。</li><li>`alt`:ロゴの代替テキスト。</li><li>`height`:ロゴの高さ。</li><li>`width`:ロゴの幅。</li><li>`max_height`:ロゴの最大高さ。</li><li>`max_width`:ロゴの最大幅。</li></ul> | | `styles` | 配列 | グリッドレイアウト、ロゴコンテナー、およびロゴ画像に影響するスタイルフィールドを含む配列。この配列には、次のスタイルグループが含まれています。<ul><li>`group_logo`:ロゴコンテナーとロゴ画像に影響するスタイル。次のフィールドが含まれます。<ul><li>`group_background`:グリッドコンテナーの縦横比と背景色を設定するスタイル。縦横比のオプションには、`1/1`、`4/3`、`16/9`があります。</li><li>`group_spacing`:ロゴコンテナーの内側のパディングを設定するスタイル。幅の広いロゴの場合、パディングの値を大きくすると、ロゴの幅が狭くなります。</li><li>`max_logo_height`:各ロゴの最大高さ。</li></ul></li><li>`group_logo_grid`:グリッドのレイアウトを設定するスタイル。次のフィールドが含まれます。<ul><li>`column_count`:グリッドの列の数。</li><li>`grid_gap`:グリッド項目間の間隔。</li></ul></li></ul> | ## ミーティング ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "meetings" path="@hubspot/meetings" %} ``` | パラメーター | 型 | 説明 | | - | - | - | | `meeting` | ミーティング | ミーティングリンクを選択します。 | ## ソーシャルログインのアクセス権設定 [メンバーシップページに](/docs/cms/start-building/features/memberships/overview)Google とFacebookのログインオプションが表示されます。サインイン時は、CRM内のコンタクトレコードのEメールアドレスに結び付いたアカウントを使用する必要があります。有効にするソーシャルログインを選択できます。 アクセス権設定を利用可能なログインページでサポートされています。 ```hubl theme={null} {% module "social" path="@hubspot/membership_social_logins", clientid="" appid="" facebook_enabled=true google_enabled=true %} ``` > [!NOTE] > > Facebookを使用する場合は、[Facebook開発者アカウント](https://developers.facebook.com/docs/development/register)と、基本的な設定を使用して[作成したFacebookアプリ](https://developers.facebook.com/docs/development/create-an-app)が必要です。これらの要件を満たした上で、作成したアプリのIDをモジュールに渡します。 > > Googleを使用する場合は、Googleアカウントと[認証情報の作成](https://developers.google.com/identity/sign-in/web/sign-in#create_authorization_credentials)が必要になります。これらの要件を満たした上で、アプリのクライアントIDをモジュールに渡します。 | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `facebook_appid` | 文字列 | FacebookアプリのID。 | | | `facebook_enabled` | ブール値 | Facebookログインのボタンを有効にするかどうかを指定します。`facebook_appid`が必要です。 | `False` | | `google_clientid` | 文字列 | GoogleクライアントのID。 | | | `google_enabled` | ブール値 | Googleログインのボタンを有効にするかどうかを指定します。`google_clientid`が必要です。 | `False` | ## メニュー ページ、ブログ記事、ブログリストでサポートされています。 独自のカスタムメニューを作成する場合は、HubSpotの[menu()関数](/docs/cms/reference/hubl/functions#menu)をお試しください。 ```hubl theme={null} {% module "menu" path="@hubspot/menu" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `id` | メニュー | メニューのID。 | | | `root_type` | 選択肢 | 詳細メニュータイプ。次の選択肢があります。<ul><li>`site_root`:常に最上位ページをメニューに表示します。</li><li>`top_parent`:表示中のセクションに関連するページをメニューに表示します。</li><li>`parent`:表示中のページに関連するページをメニューに表示します。</li><li>`breadcrumb`:パンくず形式のパスメニュー(横フローを使用)。</li></ul> | `site_root` | | `max_levels` | 選択肢 | メニューで展開可能なメニューツリーの子の数を指定します。`1`から`10`まで選択できます。 | `2` | | `flow` | 選択肢 | メニューの向き。次の選択肢があります。<ul><li>`horizontal`</li><li>`vertical`</li></ul> | `horizontal` | | `flyouts` | ブール値 | 子メニュー項目にカーソルを合わせたときに詳細表示を有効にするかどうかを指定します。 | `true` | ## ページフッター ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "page_footer" path="@hubspot/page_footer" %} ``` ## パスワードプロンプト ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "password_prompt" path="@hubspot/password_prompt" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `submit_button_text` | テキスト | 送信ボタンに表示されるテキスト。 | `"Submit"` | | `password_placeholder` | テキスト | パスワードフィールドのプレースホルダーテキスト。 | `"Password"` | | `bad_password_message` | リッチテキスト | パスワードが正しく入力されていない場合に表示されるメッセージ。 | `"Sorry, please try again. "` | ## 支払い ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "payments" path="@hubspot/payments" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `payment` | 文字列 | 特定の支払いリンクを使用するようにモジュールを設定するには、支払いリンクのIDを含めます。支払いリンクを編集する際に、URLで[このIDを確認](/docs/cms/reference/fields/module-theme-fields#link)できます。 | | | `checkout_location` | 文字列 | 支払いフォームを新しいタブで開くか、オーバーレイで開くかを設定します。有効な値は次の通りです。<ul><li>`new_tab`:新しいタブで支払いフォームを開きます。</li><li>`overlay`:スライド式のオーバーレイで支払いフォームを開きます。</li></ul> | `"new_tab"` | | `button_text` | 文字列 | ご注文の確認ボタンのテキストを設定します。 | `"Checkout"` | | `button_target` | 選択肢 | ボタンでHubSpot支払いリンクと外部リンクのどちらを使用するかを設定します。次の選択肢があります。<ul><li>`payment_link`</li><li>`custom_link`</li></ul> | `"payment_link"` | | `button_link` | リンク | `button_target`を`custom_link`に設定した場合、外部リンクの宛先を設定します。次のリンクタイプがサポートされています。<ul><li>`EXTERNAL`</li><li>`CONTENT`</li></ul> | `EXTERNAL` | ## 製品 アカウントの[製品ライブラリー](https://knowledge.hubspot.com/ja/products/how-do-i-use-products)に含まれている製品が表示されます。ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module path="@hubspot/product", product={ "id" : 2124070179 }, group_button={ "button_text" : "Buy", "override_product_button" : true, "button_override" : { "no_follow" : false, "open_in_new_tab" : false, "sponsored" : false, "url" : { "href" : "https://www.test.com", "type" : "EXTERNAL" } }, group_description={ "description_override" : "Monthly gym membership with access to shared locker facilities.", "override_product_description" : true }, group_name={ "heading_level" : "h3", "name_override" : "Gym membership", "override_product_name" : true }, group_image={ "image_override" : { "alt" : "360_F_317724775_qHtWjnT8YbRdFNIuq5PWsSYypRhOmalS", "height" : 360, "loading" : "lazy", "src" : "https://2272014.fs1.hubspotusercontent-na1.net/hubfs/2272014/360_F_317724775_qHtWjnT8YbRdFNIuq5PWsSYypRhOmalS.jpg", "width" : 640 }, "override_product_image" : true } %} ``` | パラメーター | 型 | 説明 | | - | - | - | | `product` | 製品 | 表示する製品を製品IDで指定します。 | | `group_button` | フィールドグループ | デフォルトでは、製品に設定されているURLにユーザーを誘導するためのボタンがモジュールに表示されます。このボタンによる誘導先をカスタマイズするには、このオプションのフィールドグループと併せて次のフィールドを含めます。<ul><li>`button_text`:ボタンのテキストを設定する文字列。</li><li>`override_product_button`:デフォルトのボタンリンク設定をオーバーライドする場合は、`true`に設定します。さらに、`button_override`オブジェクトを含めます。詳細については、以下の`button_override`をご参照ください。</li></ul> | | `button_override` | オブジェクト | `group_button`フィールドグループで、`override_product_button`が`true`に設定されている場合、このパラメーターによってボタンのURL動作が設定されます。<ul><li>`no_follow`:リンクの[no\_follow](https://ahrefs.com/blog/nofollow-links/)動作を指定するブール型フィールド。</li><li>`open_link_in_new_tab`:リンクの開く動作を指定するブール型フィールド。</li><li>`url`:ボタンの誘導先を指定するオブジェクト。</li></ul>`url`フィールドでは、`type`フィールドを使用して誘導先のタイプを設定できます。このフィールドは、次のコンテンツタイプでサポートされています。<ul><li>`EXTERNAL`:標準URL。URLは`href`フィールドに含めます。</li><li>`CONTENT`:HubSpotページ。ページIDは`content_id`フィールドに含めます。</li><li>`PAYMENT`:支払いリンク。支払いリンクは`href`フィールドに含めます。</li><li>`EMAIL_ADDRESS`:Eメールアドレス。Eメールアドレスは`href`フィールドに含めます。</li></ul> | | `group_name` | フィールドグループ | デフォルトでは、このモジュールの上部にh3として製品名が表示されます。名前をカスタマイズするには、このオプションのフィールドグループと併せて次のフィールドを含めます。<ul><li>`heading_level`:見出しのサイズ。`h1`~`h6`を指定できます。</li><li>`override_product_name`:製品名ではなくテキストを指定する場合は、`true`に設定します。</li><li>`name_override`:モジュールの上部に表示する文字列。</li></ul> | | `group_description` | フィールドグループ | デフォルトでは、製品に設定されている説明がモジュールに表示されます。説明をカスタマイズするには、このオプションのフィールドグループと併せて次のフィールドを含めます。<ul><li>`override_product_description`:製品の説明をカスタマイズする場合は、`true`に設定します。</li><li>`description_override`:新しい説明を含む文字列。</li></ul> | | `group_image` | フィールドグループ | デフォルトでは、製品に設定されている画像がモジュールに表示されます。この画像をカスタマイズするには、このオプションのフィールドグループと併せて次のフィールド含めます。<ul><li>`override_product_image`:新しい画像を指定する場合は、`true`に設定します。</li><li>`image_override`:新しい画像を指定するオブジェクト。このオブジェクトには次のプロパティーが含まれています。<ul><li>`alt`</li><li>`height`</li><li>`loading`</li><li>`src`</li><li>`width`</li></ul></li></ul> | ## 見積もりのダウンロード 見積もりテンプレートでサポートされています。 ```hubl theme={null} {% module "download" path="@hubspot/quote_download" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `button_text` | 文字列 | ダウンロードボタンに表示されるテキスト。 | `Download` | | `download_error` | 文字列 | ダウンロードに失敗した場合に表示されるエラーメッセージ。 | `There was a problem downloading the quote. Please try again.` | ## 見積もりの支払い 見積もりテンプレートでサポートされています。 ```hubl theme={null} {% module "payment" path="@hubspot/quote_payment" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `heading_text` | 文字列 | 見積もりテンプレートの支払いセクションの上に表示される見出し。 | `Payment` | | `heading_tag` | 選択肢 | `heading_text`を表示するために使用する見出しのタイプ。有効な値は、`h1`、`h2`、`h3`、`h4`、`h5`、`h6`です。 | `h3` | | `checkout` | 文字列 | 支払いボタンのテキスト。 | `Pay now` | | `needs_signature` | 文字列 | 署名が必要な場合のボタンテキスト。 | `Payment can't be made because the quote isn't fully signed.` | | `checkout_error` | リッチテキスト | 注文手続き中にエラーが発生した場合に表示されるメッセージ。 | `There was a problem setting up checkout. Please contact the person who sent you this quote.` | | `payment_status_error` | リッチテキスト | 支払いを試行中にエラーが発生した場合に表示されるメッセージ。 | `There was a problem loading the payment status for this quote. Please try refreshing the page.` | | `paid` | 文字列 | 支払いが正常に完了したことを示すステータスインジケーター。 | `Paid` | | `payment_processing` | 文字列 | 支払いが処理中であることを示すステータスインジケーター。 | `Payment processing` | ## 見積もりの署名 見積もりテンプレートでサポートされています。 ```hubl theme={null} {% module "signature" path="@hubspot/quote_signature" %} ``` 見積もりに電子署名が必要な場合は、`esignature`オブジェクトに含まれる次のフィールドを使用できます。 | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `pretext` | リッチテキスト | 電子署名の説明テキスト。 | `Before you sign this quote, an email must be sent to you to verify your identity. Find your profile below to request a verification email.` | | `verify_button` | 文字列 | 確認ボタンに表示されるテキスト。 | `Verify to sign` | | `failure` | 文字列 | 署名情報を取得できない場合に表示されるアラートテキスト。 | `There was a problem retrieving the signature information. Please reload the page.` | | `verification_sent` | 文字列 | 認証リクエストが見積もり署名者に正常に送信されると表示されるステータスインジケーター。 | `Verification sent` | | `signed` | 文字列 | 見積もりが正常に署名されると表示されるテキスト。 | `Signed` | 見積もりに印刷された署名が必要な場合、`print_signature`オブジェクトに含まれる次のフィールドを使用できます。 | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `header` | リッチテキスト | 署名セクションの上部に表示されるテキスト。 | `Signature` | | `signature` | 文字列 | 署名フィールドの横に表示されるテキスト。 | `Signature` | | `date` | 文字列 | 日付フィールドの横に表示されるテキスト。 | `Date` | | `printed_name` | 文字列 | 印刷された名前フィールドの横に表示されるテキスト。 | `Printed name` | | `countersignature` | オブジェクト | 連署セクションのコンテンツを含むオブジェクト。このオブジェクトには、次のフィールドを含めることができます。<ul><li>`header`:連署セクションの上部に表示されるテキスト。</li><li>`countersignature`:連署フィールドの横に表示されるテキスト。</li><li>`date`:日付フィールドの横に表示されるテキスト。</li><li>`printed_name`:印刷された名前フィールドの横に表示されるテキスト。</li></ul> | `Signed` | ## 商品項目 見積もりテンプレートでサポートされています。このモジュールには、カスタム見積もりで使用されるデフォルトのテキストも含まれています。 ```hubl theme={null} {% module "module_165350106057652" path="@hubspot/line_items", label="line_items.module" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `title` | テキスト | 商品項目列のタイトル。 | `Column description` | | `use_additional_product_property` | ブール値 | ユーザーが製品のプロパティーから追加の商品項目列を選択するために使用できるチェックボックスを表示するかどうかを指定します。 | `False` | | `additional_product_properties` | 選択肢 | 製品プロパティー。次の選択肢があります。<ul><li>`price`:商品項目の価格。</li><li>`item_description`:商品項目の説明。</li><li>`quantity`:商品項目の数。</li><li>`amount`:商品項目の合計金額。</li><li>`hs_recurring_billing_start_date`:定期的な商品項目の請求開始日。</li><li>`discount`:商品項目に適用される割引金額。</li></ul> | | | `crm_product_property` | CRMオブジェクトプロパティー | 商品項目列のヘッダーとして表示する製品プロパティーを選択します。 | | ## リッチテキスト 全てのテンプレートタイプでサポートされています。 ```hubl theme={null} {% module "rich_text" path="@hubspot/rich_text" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `html` | リッチテキスト | HTMLブロック。 | ` ## Something Powerful \n ### Tell The Reader More \n The headline and subheader tells us what you're [offering](https://developers.hubspot.jp/docs\"#\"), and the form header closes the deal. Over here you can explain why your offer is so great it's worth filling out a form for. \n Remember: \n<ul>\n<li>Bullets are great</li>\n<li>For spelling out [benefits](https://developers.hubspot.jp/docs\"#\") and</li>\n<li>Turning visitors into leads.</li>\n</ul>` | ## RSSリスティング ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "rss_listing" path="@hubspot/rss_listing" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `title` | テキスト | H3見出し。 | `"Test"` | | `rss_feed_type` | 選択肢 | RSSフィードのタイプ。次の選択肢があります。<ul><li>`blog` - HubSpotでホスティングされているブログ。</li><li>`external` - 外部のRSSフィード。</li></ul> | `blog` | | `rss_url` | テキスト | `rss_feed_type`が`external`の場合に使用するRSS URL。 | | | `content_group_id` | ブログ | `rss_feed_type`が`blog`の場合に使用するブログのID。 | | | `topic_id` | タグ | `rss_feed_type`が`blog`の場合にフィルター基準として使用するタグのID(オプション)。 | | | `number_of_items` | 数値 | 表示する記事の最大数。 | `5` | | `include_featured_image` | ブール値 | キービジュアルを含めるかどうかを指定します。 | `false` | | `show_author` | ブール値 | 執筆者名を表示するかどうかを指定します。 | `true` | | `attribution_text` | テキスト | 執筆者を記事に関連付けるテキスト。`show_author`が`true`の場合に表示されます。 | `"by"` | | `show_detail` | ブール値 | 記事のサマリーテキストを表示するかどうかを指定します。 | `true` | | `limit_to_chars` | 数値 | `show_detail`が`true`の場合のサマリーテキストの長さを制限します。 | `200` | | `click_through_text` | テキスト | `show_detail`が`true`の場合に、記事サマリーの最後にあるクリックスルーリンクに表示されるテキスト。 | `"Read more"` | | `show_date` | ブール値 | 公開日を表示するかどうかを指定します。 | `true` | | `publish_date_format` | 選択肢 | `show_date`が`true`の場合に使用する公開日の形式。次の選択肢があります。<ul><li>`short`(例:06/11/06 12:00PM)</li><li>`medium`(例:Jun 6, 2006 12:00:00 pm)</li><li>`long`(例:June 6, 2017 12:00:00 pm EDT)</li><li>`MMMM d, yyyy 'at' h:mm a`(例:June 6, 2006 at 12:00 pm)</li><li>`h:mm a 'on' MMMM d, yyyy`(例:12:00 pm on June 6, 2006)</li></ul> | `short` | | `publish_date_text` | テキスト | `show_date`が`true`の場合に使用する、記事の公開日時を示すテキスト。 | `"posted at"` | ## サイト検索入力 ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "search_input" path="./local-search_input" placeholder="Search" include_search_button=true results={ "use_custom_search_results_template": "true", "path_id": "77977569400" } %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `field_label` | テキスト | 検索入力のラベルテキスト。 | | | `placeholder` | テキスト | 入力フィールドのプレースホルダーテキスト。 | `"Search"` | | `include_search_button` | ブール値 | 検索ボタンを含めるかどうかを指定します。 | `false` | | `content_types` | オブジェクト | 検索結果に含めるコンテンツのタイプを指定します。このオブジェクトには、ブール値を設定する次のキーが格納されます。<ul><li>`website_pages`</li><li>`landing_pages`</li><li>`blog_posts`</li><li>`knowledge_articles`</li></ul> | `{ "website_pages": true, "landing_pages": false, "blog_posts": true, "knowledge_articles": false }` | | `results` | オブジェクト | カスタム検索結果ページを使用するためのコントロールを有効にするオブジェクト。次のプロパティーが含まれます。 <ul><li>`use_custom_search_results_template`**(ブール値)**: このブール値を`true`に設定すると、ユーザーがカスタム検索結果ページを選択できるようになります。デフォルト値は`false`です。</li><li>`path_id`**(文字列)**: 検索結果に使用するページのID。ここで参照するページには、検索結果モジュールが含まれている必要があります。</li></ul> | | ## 検索結果 ページ、ブログ記事、ブログリストでサポートされています。 ```hubl theme={null} {% module "search_results" path="@hubspot/search_results" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `display_featured_images` | ブール値 | 項目のキービジュアルを表示するかどうかを指定します。 | `false` | ## セクションヘッダー ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "section_header" path="@hubspot/section_header" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `header` | テキスト | セクションヘッダーのコンテンツ。 | `"A clear and bold header"` | | `heading_level` | 選択肢 | `header`の見出しレベル。`h1`から`h6`まで選択できます。 | `h1` | | `subheader` | テキスト | セクションの小見出しの段落のテキスト。 | `"A more subdued subheader"` | ## シンプルメニュー ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "simple_menu" path="@hubspot/simple_menu" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `menu_tree` | シンプルメニュー | シンプルメニューオブジェクト。 | `[]` | | `orientation` | 選択肢 | メニューの向き。次の選択肢があります。<ul><li>`horizontal`</li><li>`vertical`</li></ul> | `horizontal` | ## ソーシャルフォロー ソーシャルメディアのプロフィールへのリンクを追加して、コンテンツエディターでドラッグ&ドロップ操作によってリンクを並べ替えることができます。ソーシャルURLに基づいて自動的にアイコンが挿入されますが、これらのアイコンはオーバーライドできます。 ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "social_follow" path="@hubspot/social_follow" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `link` | テキスト | エディターで追加したソーシャルページのリンク先。 | | | `open_in_new_window` | ブール値 | `false`に設定すると、リンクが同じブラウザータブで開きます。 | `true` | | `is_podcast` | ブール値 | `true`に設定すると、デフォルトのアイコンやカスタムアイコンではなく、ポッドキャストアイコンが表示されます。 | `false` | | `customize_alt_text` | ブール値 | デフォルトでは、代替テキストが自動的に生成されます。`true`に設定すると、`aria_label`フィールドを使用して、デフォルトの代替テキストをカスタムの値でオーバーライドできます。 | `false` | | `aria-label` | 文字列 | `customize_alt_text`が`true`の場合、このフィールドでアイコンの代替テキストを設定します(例:`Follow us on Facebook`)。この説明は、スクリーンリーダーが目の不自由なユーザーにアイコンについて説明するために使用されます。 | `False` | | `customize_icon` | ブール値 | デフォルトでは、リンクURLに基づいてアイコンが自動入力されます。`true`に設定すると、`custom_icon`フィールドを使用して、提供されている他のアイコン(Font Awesome 6.4.2)のいずれかを選択できます。 | `false` | | `custom_icon` | アイコン | `customize_icon`が`true`で、`is_podcast`が`false`の場合、このフィールドを使用して、提供されているアイコンのセットからカスタムアイコンを指定します。Font Awesome 6.4.2で提供されているアイコンが使用可能です。 | | ## ソーシャルシェアリング ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "social_sharing" path="@hubspot/social_sharing" %} ``` 注:以下に示されているデフォルトの列に含まれる変数`social_link_url`の値は、`link`パラメーターの値と同じです。 | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `link` | テキスト | この宛先リンクは、ソーシャルネットワークで共有しやすいように短縮されます。 | | | `facebook` | オブジェクト | このオブジェクトには次のフィールドが含まれます。<ul><li>`enabled`:ソーシャルアイテムを有効にするためのブール値。</li><li>`custom_link_format`:ソーシャル共有者のURLとしてのカスタムURL。</li></ul> | `{ "enabled": false, "custom_link_format": "http://www.facebook.com/share.php?u={{ social_link_url }}" }` | | `twitter` | オブジェクト | このオブジェクトには次のフィールドが含まれます。<ul><li>`enabled`:ソーシャルアイテムを有効にするためのブール値。</li><li>`custom_link_format`:ソーシャル共有者のURLとしてのカスタムURL。</li></ul> | `{ "enabled": false, "custom_link_format": "https://twitter.com/intent/tweet?original_referer=\{\{ social_link_url }}&url={{ social_link_url }}&source=tweetbutton&text={{ social_page_title\|urlencode }}" }` | | `linkedin` | オブジェクト | このオブジェクトには次のフィールドが含まれます。<ul><li>`enabled`:ソーシャルアイテムを有効にするためのブール値。</li><li>`custom_link_format`:ソーシャル共有者のURLとしてのカスタムURL。</li></ul> | `{ "enabled": false, "custom_link_format": "http://www.linkedin.com/shareArticle?mini=true&url={{ social_link_url }}" }` | | `pinterest` | オブジェクト | このオブジェクトには次のフィールドが含まれます。<ul><li>`enabled`:ソーシャルアイテムを有効にするためのブール値ソーシャルアイテムを有効にするためのブール値。</li><li>`custom_link_format`:ソーシャル共有者のURLとしてのカスタムURL。</li><li>`pinterest_media`:次のフィールドを含む画像オブジェクト。<ul><li>`src`:画像のURL。</li><li>`alt`:画像の代替テキスト。</li></ul></li></ul> | `{ "enabled": false, "custom_link_format": "http://pinterest.com/pin/create/button/?url={{ social_link_url }}&media={{ pinterest_media }}", "pinterest_media": { "src": "", "alt": null } }` | | `email` | オブジェクト | このオブジェクトには次のフィールドが含まれます。<ul><li>`enabled`:ソーシャルアイテムを有効にするためのブール値。</li><li>`custom_link_format`:ソーシャル共有者のURLとしてのカスタムURL。</li></ul> | `{ "enabled": false, "custom_link_format": "mailto:?subject=Check out {{ social_link_url }} &body=Check out {{ social_link_url }}" }` | ## タブ付きカード ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module path="@hubspot/tabbed_card", tabs=[ { "content" : "<p>This is the descriptive text contained in tab 1.</p>", "tab_label" : "Tab 1 label" }, { "content" : "<p>This is the descriptive text contained in tab 2.</p>", "tab_label" : "Tab 2 label" } ], fixed_height=false %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `tabs` | フィールドグループ | 各タブのタブラベルとテキストコンテンツを含むフィールドグループ。次のフィールドがあります。<ul><li>`tab_label`:タブのラベル。</li><li>`content`:タブのリッチテキストコンテンツ。</li></ul> | `"Some additional information in one line"` | | `fixed_height` | ブール値 | デフォルトでは、タブを切り替えてもコンテナーの高さが変わらないように、タブの高さは固定されます。このブール値を`false`に設定すると、タブ付きカードコンテナーの高さが、アクティブなタブのコンテンツに応じて調整されます。 | `False` | ## 1行テキスト ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "text" path="@hubspot/text" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `value` | テキスト | このパラメーターにテキストを追加します。 | `"Some additional information in one line"` | ## 動画 ページ、ブログリスト、ブログ記事でサポートされています。 ```hubl theme={null} {% module "video" path="@hubspot/video" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `video_type` | 選択肢 | 動画のタイプ。次の選択肢があります。<ul><li>`embed`:外部ソースからコードを埋め込みます。</li><li>`hubspot_video`:HubSpotでホスティングされている動画。</li></ul> | `embed` | | `hubspot_video` | 動画プレーヤー | HubSpotでホスティングされている動画。`video_type`が`hubspot_video`に設定されている場合に使用されます。 | | | `embed_field` | 埋め込み | 次の埋め込みタイプを使用できます。<ul><li>`oembed`<ul><li>`video`:動画のURL。</li></ul></li><li>`html`:動画の埋め込みコード。</li></ul> | | | `oembed_thumbnail` | 画像 | `video_type`が`embed`に、`embed_field`が`oembed`に設定されている場合に、埋め込みサムネイル画像をオーバーライドします。 | | | `style_options` | オブジェクト | `oembed_thumbnail_play_button_color`色フィールドを含むオブジェクト。 | `{"oembed_thumbnail_play_button_color":"#ffffff"}` | | `placeholder_fields` | オブジェクト | このオブジェクトには次のフィールドが含まれます。<ul><li>`placeholder_title`:テキストフィールド。</li><li>`placeholder_description`:テキストフィールド。</li></ul> | `{"placeholder_title":"No video selected", "placeholder_description":"Select a video type in the sidebar."}` | ## 動画埋め込み(ランディングページ) ページでサポートされています。 ```hubl theme={null} {% module "video_embed_lp" path="@hubspot/video_embed_lp" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `url` | テキスト | 動画のURL。VimeoとYouTubeのURLがサポートされています。 | `"https://www.youtube.com/watch?v=X1Rr5BFO5rg"` | | `is_full_width` | ブール値 | 動画を全幅に設定(`true`)、または手動で幅と高さを設定(`false`)するかを指定します。 | `true` | | `max_width` | 数値 | 最大幅(px) | `800` | | `max_height` | 数値 | 最大高さ(px) | `450` | ## WhatsAppリンク ページ、ブログ記事、ブログ リスト ページでサポートされています。[WhatsAppチャネルの接続](https://knowledge.hubspot.com/ja/inbox/connect-whatsapp-to-the-conversations-inbox)が必要です。 ```hubl theme={null} {% module "whatsapp_link" path="@hubspot/whatsapp_link", label="whatsapp_link" %} ``` | パラメーター | 型 | 説明 | デフォルト値 | | - | - | - | - | | `whatsapp_number` | URL | [アカウントに接続されているWhatsAppチャネル](https://knowledge.hubspot.com/ja/inbox/connect-whatsapp-to-the-conversations-inbox)の中から選択します。 | | | `optin_text` | 選択肢 | [オプトインとオプトアウトのテキスト](https://knowledge.hubspot.com/ja/inbox/collect-consent-for-whatsapp-conversations#subscribe-a-contact-using-opt-in-keywords-in-a-whatsapp-thread)。 | | | `whatsapp_display` | 選択肢 | ボタンにテキストまたはWhatsAppアイコン、あるいはその両方を表示するかを選択します。次の選択肢があります。<ul><li>`text_and_icon`</li><li>`text`</li><li>`icon`</li></ul> | `text_and_icon` | | `icon_position` | 選択肢 | ボタン上のアイコンの位置。`left`と`right`が選べます。 | `left` | | `button_text` | 文字列 | ボタンのテキスト。 | `Chat on WhatsApp` | | `whatsapp_icon_title` | 文字列 | スクリーンリーダー用のアイコンのテキスト。 | `WhatsApp Icon` | # export_to_template_context Source: https://developers.hubspot.jp/docs/cms/reference/modules/export-to-template-context Export_to_template_contextは、モジュールを実際に表示せずに、モジュールのパラメーターをテンプレート環境で使用できるようにするパラメーターです。このパラメーターは、全てのHubLモジュールタグに使用できます。これらのパラメーターを取得し、変数に保存し、テンプレートのロジックに含めるには、widget_dataタグを使用します。 `export_to_template_context`は、HubLタグを実際に表示することなく、HubLタグのパラメーターをテンプレート環境で使用するためのパラメーターです。このパラメーターは、全ての[HubLタグ](/docs/cms/reference/hubl/tags/standard-tags)に使用できます。これらのパラメーターを取得し、[変数](/docs/cms/reference/hubl/variables-macros-syntax)に保存し、テンプレートのロジックに含めるには、`widget_data` dict(ディクショナリー)を使用します。 表示されていないHubLタグのパラメーターをテンプレートのコンテキストで使用できれば、コンテンツエディターでのテンプレートの表示方法をユーザーが決めることが可能になります。例えば、ユーザーがフィールドに値を入力したときに、特定のコードブロックのみを表示する必要があるとします。これは、このパラメーターを使用することで実現できます。 まず、HubLタグに`export_to_template_context=True`を追加する必要があります。次に、`widget_data.module.parameter_you_want_to_retreive`を使用します。 ```hubl theme={null} {% module "job_title" path="@hubspot/text", label="Enter a Job Title", value="Chief Morale Officer", export_to_template_context=True %} {# Makes the parameters available to be stored and used in template logic #} {{ widget_data.job_title.body.value }} {# Prints the value of the HubL tag but can also be used in template logic #} ``` 以下では、この考え方の適用例をいくつか紹介します。 ## カスタムモジュール内での利用 `export_to_template_context=True`は、カスタムモジュールにとっては実質的な機能はないため、カスタムモジュールではサポートされません。テンプレート内のモジュールには[すでにアクセスできる](#retrieving-parameters-from-modules-already-rendered-on-the-template)ので、モジュール内の値を取得するために`export_to_template_context`を使用する必要がありません。モジュールの出力を非表示にする必要がある場合は、何も出力しないようにモジュールを作成できます。つまり、モジュールで何かを表示するかどうかを有効または無効にするブール値フィールドを含めます。 ## ユーザーが選択できる背景画像 この例では、画像HubLタグを作成し、それを表示することなくテンプレートのコンテキストにエクスポートします。`widget_data`タグで`src`パラメーターを取得し、styleタグの背景画像のソースとして表示します。 ```hubl theme={null} {% module "background_image" path="@hubspot/image" label='Select a background image', src='http://cdn2.hubspot.net/hub/428357/file-2117441560-jpg/img/dev-bg-compressed.jpg', export_to_template_context=True %} <!--Sample markup --> <div class="bg-image-section" style="background:url('{{ widget_data.background_image.src }}'); background-size:cover; min-height: 500px;"> <h1>Supercharge your app with HubSpot</h1> <h3>Build powerful integrations for a global community of users</h3> </div> ``` これはコードテンプレートでも実現できますが、通常はカスタムモジュールを作成して、ページエディターのユーザーに最適な編集環境を提供することをお勧めします。このようなHubLタグは個別のフィールドとして表示されますが、関連するフィールドが複数存在する場合もあります。カスタムモジュールを使用すると、ページエディターではモジュールの全てのフィールドがグループ化された状態で表示されます。 ## 定義済みのマークアップを表示するための選択フィールド 以下の例では、`export_to_template_context`パラメーターと[選択モジュール](/docs/cms/reference/hubl/tags/standard-tags#choice)を組み合わせて、求人ページのバナーメッセージを変更しています。ユーザーがUIを使用して部門を選択すると、ユーザーが実際にコンテンツを編集しなくても見出しが変更されます。 ```hubl theme={null} {% module "department" path="@hubspot/choice", label="Choose department", value="Marketing", choices="Marketing, Sales, Dev, Services" export_to_template_context=True %} {% if widget_data.department.value == "Marketing" %} <h3>Want to join our amazing Marketing team?!</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% elif widget_data.department.value == "Sales" %} <h3>Are you a Sales superstar?</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% elif widget_data.department.value == "Dev" %} <h3>Do you love to ship code?</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% else %} <h3>Want to work with our awesome customers?</h3> <h4>We have exciting career opportunities on the {{ widget_data.department.value }} team.</h4> {% endif %} ``` これと同じ機能を、カスタムモジュール内の選択フィールドを使用して再現できます。カスタムモジュールのUIでは、値とラベルの両方を含む選択オプションを非常に簡単に作成できます。 ## テンプレートにすでに表示されているモジュールからパラメーターを取得する ページにすでに表示されているモジュールまたはタグからパラメーターを取得する場合は、`widgets`という名前のdict内でそのモジュールにアクセスできます。`export_to_template_context`パラメーターは必須ではありません。構文は次のとおりです。 ```hubl theme={null} // HubL {{ content.widgets.name_of_module.body.parameter }} {{ content.widgets.my_text.body.value }} ``` > [!WARNING] > > **注:**`content.widgets`はグローバルモジュールにアクセスしないので、上記のメソッドはグローバルモジュールのフィールドからの値の取得をサポートしません。 フィールドによってデータの保存形式が異なるため、表示するデータへのアクセス方法を確認するには、多くの場合、[開発者情報](/docs/cms/start-building/introduction/developer-environment/troubleshooting/troubleshooting#developer-info)を使用すると便利です。 ## HubLモジュール情報をブログリストに出力する ブログテンプレートは、一般的にはブログに使用されますが、他の種類のリストを作成するために流用することもできます。前述の手法を使用してこの目的を達成できます。 例えば、会社が受信した報道記事のリストレイアウトを作成するとして、記事にリンクせずに、リストを別のページにリンクする場合があります。 [academy.hubspot.com/projects](https://academy.hubspot.com/projects)でこの考え方の実例を確認できます。プロジェクト リスト ページはブログ リスト テンプレートですが、個々の記事は通常のHubSpotページにリンクしています。制作担当者はエディターでリンク先を指定します。 個々のブログ記事のコードの先頭で、テキストフィールドを定義します。記事にこのテキストを表示しない場合は、`export_to_template_context`を使用します。 ```hubl theme={null} {% module "custom_blog_link" path="@hubspot/text", label="Link to external press item", export_to_template_context=True %} ``` このテキストフィールドはブログ記事ごとに編集できます。次に、リスト内のリンクを定義する必要があります。しかし、widget\_dataは記事のコンテキストにのみ存在するため、別の構文を使用してウィジェットデータを取得し、リンクに設定する必要があります。この場合は、`content.widgets.custom_blog_link.body.value`を使用します。ブログリストでは`widget_data`を使用できませんが、そのフィールドの値は個々のコンテンツのウィジェットのコンテキスト内に保存されます。 各記事を含むこのカスタムリンクを表示する基本的なブログリストのループを以下に示します。この方法を使用する場合は、ブログ記事ごとに自動的に作成されたサブディレクトリーをrobots.txtファイルに追加して、空の記事がGoogle などのクローラーによってクロールされないようにする必要があります。 ```hubl theme={null} {% for content in contents %} <a href="https://developers.hubspot.jp/docs{{ content.widgets.custom_blog_link.body.value }}"> Click here to see this press feature! </a> {% endfor %} ``` # カスタムモジュールのコーディング Source: https://developers.hubspot.jp/docs/cms/reference/modules/files カスタムモジュールは、ウェブサイト全体で使用できる再利用可能な要素です。速度、ユーザーエクスペリエンス、アクセシビリティーに関するベストプラクティスを考慮しながら構築します。 ページ、ブログ、[見積もり](/docs/cms/start-building/building-blocks/templates/quotes)(英語)のモジュールを作成する場合は、モジュールのコンテンツ、スタイル設定、機能を制御するための3つのフロントエンド関連ファイルがモジュール内にあります。 * module.html * module.css * module.js > [!NOTE] > > Eメールモジュールは、module.cssとmodule.jsに対応していません。理由としては、EメールクライアントではJavaScriptがサポートされないことと、リンクされたCSSファイルのサポートが限られていることが挙げられます。 これらのファイルは、モジュールのインスタンスがページ上にある場合には、常にページ上にレンダリングされます。 特定のページ内に同じモジュールのインスタンスが複数ある場合、HubSpotによってそのモジュールの`module.css`と`module.js`が1回だけ読み込まれます。既定では、`module.css`と`module.js`が非同期的に読み込まれることはありませんが、モジュールのmeta.jsonに[css\_render\_options and js\_render\_options](https://developers.hubspot.jp/docs/cms/building-blocks/modules/configuration)を含めることで、この動作を変更できます。 モジュールはデザインマネージャー内で作成するか、または[HubSpot CLI](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli)を使用してローカル環境で作成できます。モジュールファイルは、デザインマネージャー上ではマルチペインエディターに表示されます。 ローカルでモジュールを確認すると、ファイルはmodule-name.moduleフォルダーに格納されます。 ![cms-dev-custom-module1](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/cms-dev-custom-module1.png) モジュールの作成と管理にデザインマネージャーまたはCLIのいずれを使用するかは、チームの状況や好みに応じて決めます。 ![cms-dev-custom-module0](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/cms-dev-custom-module0.png) [効率的な開発者ワークフローの構築](/docs/cms/start-building/introduction/developer-environment/creating-an-efficient-development-workflow)に記載されている推奨事項を参照してください。 ## HTML + HubL(module.html) module.htmlファイルはHTMLおよびHubLを対象としています。一般に、モジュールがページエディターまたはテンプレートファイルのどこに配置されているかに応じて、module.htmlファイルの内容がどこにレンダリングされるかが決まります。 このファイルは、モジュールがどこに配置されていても、ページ内で[HubL include](https://developers.hubspot.jp/docs/cms/hubl#including-files-in-files)と同じように動作します。module.htmlファイルからは、[HubLを使ってモジュールのフィールド値にアクセスできます](https://developers.hubspot.jp/docs/cms/building-blocks/modules#using-module-field-data-to-render-html)。 ## CSS(module.css) モジュールにCSSを追加するには、`module.css`ファイルを使用します。 一般に、`module.css`ではHubLのごく一部のサブセットのみがサポートされます。ただし、モジュールとリンクされたアセットとして画像を追加する場合に[`module_asset_url("my-image.png")`](/docs/cms/reference/hubl/functions#module-asset-url)を使用できます。これにより、画像などのアセットをモジュール自体にパッケージ化できます。例: ```css theme={null} .testimonial-module__wrapper { background: url("{{ module_asset_url("bg-pattern.png") }}"); background-repeat: repeat; min-height: 200px; width: 100%; display: block; } ``` ここでは、モジュール内のフィールドに基づいてモジュールが動的に変化するように、モジュールのCSSを設定する方法を説明します。 ### モジュールフィールド値に基づくスタイル モジュールのフィールドに基づいてモジュールのスタイルに効果を与えるには、いくつかの方法があります。特定の用途に応じて最適な方法を選択してください。 * [CSSクラス](#css-classes) * [require\_cssブロック](#require-css-block) * [インラインスタイル](#inline-styles) #### CSSクラス 編集時に選択可能なオプションをモジュールのスタイルにあらかじめ設定しておくには、モジュールフィールドを追加して、`module.css`ファイルのCSSクラスに対応するクラスを`module.html`ファイル内で設定することができます。 例えば、画像とテキストの1つのモジュールがある状況が考えられます。選択フィールドに基づいてテキストの右または左に画像を制作担当者が配置できるようにする必要がありします。このためには、`module.html`と`module.css`ファイルを次のように設定できます。 ```hubl theme={null} <!-- module.html --> <section class="img-text__wrapper img-text--{{ module.positioning }}" aria-label="{{ module.heading }}"> {# module.position is a choice field with two values "img-left" or "img-right". This dictates the order they appear on desktop. Controlled by CSS #} <div class="img-text__img"> <img src="{{ module.image.src }}" alt="{{ module.image.alt }}"> </div> <div class="img-text__text"> <h2> {% inline_text field="heading" value="{{ module.heading }}" %} </h2> {% inline_rich_text field="text" value="{{ module.text }}" %} </div> </section> ``` ```css theme={null} /* module.css */ /* CSS that makes the image show adjacent to the text, and positioned based on the positioning field.*/ /* The media query ensures that on mobile the image will always appear above the text for visual consistency. */ @media (min-width: 768px) { .img-text__wrapper { display: flex; align-items: row; } .img-text__img, .img-text__text { flex: 1; padding: 10px; } .img-text--img-right { flex-direction: row-reverse; } } ``` ### require\_cssブロック 特定のプロパティーを制作担当者が直接制御できる必要があり、クラスが適切でない場合は、`require_css`ブロックにスタイルタグを使用する方法が最適です。 クラスを使用することなく制作担当者が特定のプロパティーを直接制御できるようにするには、`require_css`タグ内に`module.html`ファイルにスタイルを追加できます。例: ```hubl theme={null} <div class="img__wrapper"> {% if module.image.src %} {% set sizeAttrs = 'width="{{ module.image.width }}" height="{{ module.image.height }}"' %} {% if module.image.size_type == 'auto' %} {% set sizeAttrs = 'style="max-width: 100%; height: auto;"' %} {% elif module.image.size_type == 'auto_custom_max' %} {% set sizeAttrs = 'width="100%" height="auto" style="max-width: {{ module.image.max_width }}px; max-height: {{ module.image.max_height }}px"' %} {% endif %} <img src="{{ module.image.src }}" alt="{{ module.image.alt }}" {{ sizeAttrs }}> {% endif %} </div> {% require_css %} <style> img { border-width:{{ module.border_width }}px; border-color:rgba({{ module.border_color.color|convert_rgb}},{{ module.border_color.opacity/100 }}); border-style: solid; } </style> {% end_require_css %} ``` `module.html`ではHubLをレンダリングできるので、モジュールフィールド値をCSS変数として使用できます。制作担当者がページエディター上でフィールドを更新すると、該当するCSSが更新されます。このようなブロックによって、`<style>`タグが`standard_header_includes`ステートメント内のページの`<head>`に移されます。 CSSを`scope_css`タグで囲むことにより、CSSをモジュールインスタンスにのみ適用することもできます。例えば、上記のモジュールコードは次のように変更できます。 ```hubl theme={null} <div class="img__wrapper"> {% if module.image.src %} {% set sizeAttrs = 'width="{{ module.image.width }}" height="{{ module.image.height }}"' %} {% if module.image.size_type == 'auto' %} {% set sizeAttrs = 'style="max-width: 100%; height: auto;"' %} {% elif module.image.size_type == 'auto_custom_max' %} {% set sizeAttrs = 'width="100%" height="auto" style="max-width: {{ module.image.max_width }}px; max-height: {{ module.image.max_height }}px"' %} {% endif %} <img src="{{ module.image.src }}" alt="{{ module.image.alt }}" {{ sizeAttrs }}> {% endif %} </div> {% require_css %} <style> {% scope_css %} img { border-width:{{ module.border_width }}px; border-color:rgba({{ module.border_color.color|convert_rgb}},{{ module.border_color.opacity/100 }}); border-style: solid; } {% end_scope_css %} </style> {% end_require_css %} ``` ### インラインスタイルを追加する わずかな数のプロパティーを制作担当者が細かく制御できる必要があり、クラスが適切でない場合は、HTMLのスタイル属性に値を直接追加することができます。 ```hubl theme={null} {# Module.html #} <div style="background: rgba({{ module.bg_color.color|convert_rgb }},{{ module.bg_color.opacity/100 }});"> {% inline_rich_text field="richtext" value="{{ module.richtext }}" %} </div> ``` プロパティーの数が多くてコードが読みにくくなった場合は、`require_css`ブロック手法への切り替えを検討してください。 ### 特定のCSSファイルをインポートする `require_css`は、module.htmlに追加することで、特定のモジュールまたはテンプレートの表示に特定のCSSファイルが必要なことをHubSpotに示すためのHubL関数です。cssファイルを指すリンクタグが、`standard_header_includes`内でページの`<head>`に追加されます。 `require_css`関数では、特定のページ上のモジュールやテンプレートで同じCSSファイルが何回必要とされるかにかかわらず、そのCSSファイルが1回だけ読み込まれます。複数のモジュール間でスタイルが共有される可能性があっても、サイトの全ページで使われるメインのスタイルシートにCSSを直接追加することが望ましくない状況では、この方法が優れています。 `require_css`もリンクによるCSSファイルも同じ目的で利用できますが、`require_css`はフィールド値に基づく条件付きで使用できます。これにより、不要なコードの読み込みが防止されます。 ```hubl theme={null} <!-- module.html --> {{ require_css(get_asset_url("/modules/shared_layout_styles.css")) }} ``` ## JavaScript(module.js) JavaScriptをモジュールに追加するには、`module.js`ファイルを使用します。 `module.css`ファイルと同様に`module.js`ファイルでもHubLはサポートされません。 ### フィールド値に基づくスクリプト記述 モジュールにはいくつかの作成方法があり、フィールド値に基づくJavaScriptの動作が異なります。どの方法をどのような状況で使用するかを理解しておくことで、モジュールが使用される全てのページでパフォーマンス面でのメリットが得られます。 例えば、カスタム画像モジュールがあり、Lightboxで画像が開くように制作担当者が設定できる必要があるとします。制作担当者がこの設定を必要とするのは特定の画像のみで、全てのモジュールインスタンスとは限りません。 ### データ属性 データ属性は、開発者が要素に追加するHTML 5標準のカスタム属性です。`class="yourClassName"`と同じように、`data-your-attribute="yourValue"`が全ての要素でサポートされます。 ```hubl theme={null} <!-- module.html--> <div class="img-module img-module__wrapper" data-lightbox="{{ module.is_lightbox_enabled }}" data-caption="above"> <!-- module.is_lightbox_enabled is a boolean field, module.caption_position is a choice field. --> {% if module.image.src %} {% set sizeAttrs = 'width="{{ module.image.width }}" height="{{ module.image.height }}"' %} {% if module.image.size_type == 'auto' %} {% set sizeAttrs = 'style="max-width: 100%; height: auto;"' %} {% elif module.image.size_type == 'auto_custom_max' %} {% set sizeAttrs = 'width="100%" height="auto" style="max-width: {{ module.image.max_width }}px; max-height: {{ module.image.max_height }}px"' %} {% endif %} <img src="{{ module.image.src }}" alt="{{ module.image.alt }}" {{ sizeAttrs }}> {% endif %} </div> ``` データ属性を使用すると、module.jsファイルでの処理用としてモジュールインスタンスのフィールド値を渡すことができます。 この値をmodule.jsファイル内で使用するには、モジュールの全てのインスタンスに対してループ処理を行う必要があります。モジュールに固有のクラス名をモジュールの最も外側にあるラッパー要素に追加することで、その名前を対象として各モジュールインスタンスをループ処理できます。 ```js theme={null} // module.js let imgModules = document.getElementsByClassName("img-module"); Array.from(imgModules).forEach(function (element) { // loop through each of the instances of the module // set data attributes to variables to make it easy to work with let isLightboxEnabled = element.dataset.lightbox; let captionStyle = element.dataset.caption; if (isLightboxEnabled) { element.addEventListener("click", function () { showLightbox(captionStyle); // Execute your code for the action you want to take, you can pass your data attributes into functions from libraries. }); } }); ``` データ属性によって、module.js内で各モジュールインスタンスのフィールド値を取得できます。 ### require\_jsブロック JavaScriptテンプレートライブラリーや、Vue.jsまたはReact.jsなどのリアクティブフレームワークを使用する高度なケースでは、データの出力だけを自分で対応し、レンダリングはフレームワーク側で処理する方が望ましい場合があります。 この場合、テンプレートスクリプトからアクセス可能な変数を提供するには、[`require_js`](/docs/cms/reference/hubl/functions#require-js)ブロックで囲んだスクリプトタグを使用します。 ```hubl theme={null} {% require_js %} <script> let myArray = [ {%- for item in module.repeating_text_field -%}"{{ item }}",{%- endfor -%} ]; </script> {% end_require_js %} ``` この手法は、レンダリング元となる初期データセットを高度なアプリケーションに提供する際に役立ちます。これにより、データを取得するための最初のJavaScript呼び出しが不要になります。 ### require\_js [`require_js`](/docs/cms/reference/hubl/functions#require-js)は、特定のモジュールまたはテンプレートの正常な読み込みに特定のJavaScriptファイルが必要であることを、HubSpotに示すためのHubL関数です。この関数には、ファイルへのパスと、ファイルの追加先となる位置(“head”または“footer”)の2つの入力パラメーターがあります。 モジュール内では、`require_js`をmodule.htmlにのみ追加できます。`require_js`ステートメントで参照されるJavaScriptファイルは、ページ内のモジュールやテンプレートで何回必要とされるかにかかわらず、ページごとに1回だけ読み込まれます。これによりHTTPリクエスト数が減少し、コードの重複も防止できます。 これは次のような状況で役立ちます。 * 同じJavaScriptを必要とする複数のモジュールまたはテンプレートがある場合、`require_js`を使用することでモジュール間でスクリプトを共有できます。 * webpackのようなJavaScriptバンドラーを使用する場合、jsファイルを特定の1つの位置に出力する方が簡単なことがあります。`require_js`を使用すると、JavaScriptをモジュールに関連付けることができます。 `require_js`もリンクによるJavaScriptファイルも同じ目的で利用できますが、`require_js`にはフィールド値に基づく条件を付けることができます。これにより、不要なコードの読み込みが防止されます。さらに、必要な場合にはJavaScriptをheadに読み込む方法もあります。 > [!TIP] > > JavaScriptはレンダリングの妨げになるので、[`require_js`](/docs/cms/reference/hubl/functions#require-js)がJavaScriptを配置する位置は既定でfooterになっています。[パフォーマンスの最適化に関する詳細をご覧ください。](/docs/cms/best-practices/testing-staging-performance/speed) ## 関連情報 * [CMS Hubで構築したウェブサイトのパフォーマンス最適化](/docs/cms/best-practices/testing-staging-performance/speed) * [モジュール](https://developers.hubspot.jp/docs/guides/cms/content/modules/overview) * [モジュールフィールド](https://developers.hubspot.jp/docs/guides/cms/content/fields/overview) # ビルド健全性チェック Source: https://developers.hubspot.jp/docs/cms/reference/react/build-health-checks # @hubspot/cms-componentsライブラリー Source: https://developers.hubspot.jp/docs/cms/reference/react/cms-components-library # Islands Source: https://developers.hubspot.jp/docs/cms/reference/react/islands # JS Partials Source: https://developers.hubspot.jp/docs/cms/reference/react/js-partials # ローカル開発 Source: https://developers.hubspot.jp/docs/cms/reference/react/local-development # CMS Reactのスタイル Source: https://developers.hubspot.jp/docs/cms/reference/react/styling # CMS Reactのテスト Source: https://developers.hubspot.jp/docs/cms/reference/react/testing # サーバーレス関数リファレンス(デザインマネージャー) Source: https://developers.hubspot.jp/docs/cms/reference/serverless-functions/serverless-functions デザインマネージャーで構築するサーバーレス関数のリファレンス情報(serverless.json、関数ファイル、エンドポイント、CLIコマンド、パッケージの管理など) > **サポートされる製品** > [!WARNING] > > ### 注: > > このページには、デザインマネージャーを使用して作成されたサーバーレス関数のリファレンス情報が含まれています。これはCMSページのサーバーレス関数を作成する従来の方法であり、現在もサポートされています。ただし、今後は[HubSpot開発者プロジェクトを使ったサーバーレス関数の作成とデプロイ](/docs/cms/start-building/features/serverless-functions/getting-started-with-serverless-functions)が推奨されます。プロジェクトベースのサーバーレス関数には、サードパーティーの依存関係を含めることができ、非公開のアプリアクセストークンを介した認証により直接アクセスできます。 この記事では、[サーバーレスの`.functions`フォルダー](/docs/cms/start-building/features/serverless-functions/overview#serverless-function-folders)内にあるファイルと、サーバーレス関数で使用できるCLIコマンドについて説明します。 サーバーレス関数の概要については、[サーバーレス関数の概要](/docs/cms/start-building/features/serverless-functions/overview)をご確認ください。 [JavaScriptのレンダリングされたモジュールとパーシャル](https://github.hubspot.com/cms-js-building-block-examples/)のプロジェクトを使用してサーバーレス関数を作成する方法の詳細については、[開発者プロジェクトのドキュメント](https://developers.hubspot.jp/docs/cms/reference/serverless-functions/serverless-functions-in-projects)をご参照ください。 ## Serverless.json `.functions`フォルダーの`serverless.json`ファイルには、サーバーレス関数構成が保存されます。これは必須ファイルであり、これによって関数が[APIエンドポイント](#endpoints)にマッピングされます。 ```json theme={null} { "runtime": "nodejs20.x", "version": "1.0", "environment": { "globalConfigKey": "some-value" }, "secrets": ["secretName"], "endpoints": { "events": { "file": "function1.js", "method": "GET" }, "events/update": { "method": "POST", "file": "action2.js", "environment": { "CONFIG_KEY": "some-other-value" }, "secrets": ["googleKeyName", "otherkeyname"] } } } ``` | キー | 型 | 説明 | | - | - | - | | `runtime` | 文字列 | ランタイム環境。[Node.js](https://nodejs.org/ja/about/) v20(`nodejs20.x`)をサポートします。 | | `version` | 文字列 | HubSpotサーバーレス関数スキーマバージョン(現在のバージョンは1.0) | | `environment` | オブジェクト | 関数の実行時に[環境変数](https://nodejs.org/docs/latest-v10.x/api/process.html#process_process_env)として渡される構成用の変数。環境変数に基づいて、実際のAPIの代わりにテストバージョンを使用するロジックを追加する場合などに使用します。 | | `secrets` | 配列 | サーバーレス関数が認証に使用する[シークレット](#secrets)の名前を含む配列。このファイルにはシークレット値を直接格納するのではなく、シークレット名の参照だけを格納してください。 | | `endpoints` | オブジェクト | APIエンドポイントは、公開されるパスと、functionsフォルダー内の特定のJavaScriptファイルへのそれらのパスのマッピングを定義します。詳しくは[APIエンドポイント](#endpoints)をご参照ください。 | > [!NOTE] > > HubSpotは2025年10月1日で[Node 18のサポートを終了](https://developers.hubspot.com/changelog/deprecation-of-node-v18-in-all-serverless-functions-and-cli)します。同日以降、ランタイムがv20未満のサーバーレス関数はデプロイできなくなります。\\ > [!WARNING] > > ### 注: > > シークレットと環境変数に同じ名前を割り当てないでください。同じ名前を割り当てると、関数で値が返されるときに競合が発生します。 ### APIエンドポイント 各APIエンドポイントには独自の[環境変数](https://nodejs.org/docs/latest-v10.x/api/process.html#process_process_env)とシークレットを設定できます。APIエンドポイント外で指定した変数は、全ての関数とAPIエンドポイントに適用する設定として使用されます。 ```json theme={null} "events/update": { "method": "POST", "file": "action2.js", "environment": { "configKey": "some-other-value" }, "secrets": ["googleAPIKeyName","otherKeyName"] } ``` | キー | 型 | 説明 | | - | - | - | | `method` | 文字列または文字列の配列 | このAPIエンドポイントでサポートされている[HTTPメソッド(複数可)](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Methods)。デフォルトでは[GET](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Methods/GET)です。 | | `file` | 文字列 | APIエンドポイントの実装を含むJavaScript関数ファイルへのパス。 | エンドポイントを呼び出すには、HubSpotアカウントに接続されたドメインのいずれか(デフォルトの`.hs-sites.com`サブドメインを含む)で以下のURL構造のURLを呼び出します。 `https://{domainName}/_hcms/api/{endpoint-name/path}?portalid={hubId}` | パラメーター | 説明 | | - | - | | `domainName` | HubSpotアカウントに接続されているドメイン。 | | `/_hcms/api/` | サーバーレス関数用に予約されたパス。全てのAPIエンドポイントは、このパスに存在しています。 | | `endpoint-name/path` | `serverless.json`ファイルで指定したAPIエンドポイントの名前またはパス。 | | `portalid` | HubSpotアカウントIDを含む任意のクエリーパラメーター。これをリクエストに含めることで、モジュールとテンプレートのプレビュー時に関数のテストを行えます。 | 例えば、`website.com`と`subdomain.brand.com`の両方がアカウントに接続されている場合、`https://website.com/_hcms/api/{endpoint-name/path}`または`https://subdomain.brand.com/_hcms/api/{endpoint-name/path}`を使用して関数を呼び出すことができます。 ## 関数ファイル `serverless.json`構成ファイルに加え、`.functions`フォルダーには関数を定義する[Node.js](https://nodejs.org/ja/) JavaScriptファイルが格納されます。[Request](https://github.com/request/request#readme)ライブラリーを利用して、[HubSpot API](https://developers.hubspot.jp/docs/api-reference/overview)や他のAPIへのHTTPリクエストを行うこともできます。 以下に例を示します。 ```js theme={null} // Require axios library, to make API requests. const axios = require("axios"); // Environment variables from your serverless.json // process.env.globalConfigKey exports.main = (context, sendResponse) => { // your code called when the function is executed // context.params // context.body // context.accountId // context.limits // secrets created using the CLI are available in the environment variables. // process.env.secretName //sendResponse is what you will send back to services hitting your serverless function. sendResponse({ body: { message: "my response" }, statusCode: 200 }); }; ``` ### コンテキストオブジェクト コンテキストオブジェクトには、次のパラメーターに格納された、関数の実行に関するコンテキスト情報が含まれています。 | パラメーター | 説明 | | - | - | | `accountId` | 関数が含まれているHubSpotアカウントのID。 | | `body` | `application/json`のコンテンツタイプを持つ`POST`リクエストが送信された場合に取り込まれます。 | | `contact` | リクエストがCookieにひも付けられたコンタクトから送信された場合、contactオブジェクトには一連の基本的なコンタクトプロパティーに加え、以下の情報が格納されます。<ul><li>`vid`:コンタクトの訪問者ID。</li><li>`isLoggedIn`:CMSメンバーシップ(アクセス権設定)を使用している場合、コンタクトがドメインにログインすると、この値が`true`に設定されます。</li><li>`listMemberships`:当該コンタクトがメンバーとなっているコンタクトリストIDの配列。</li></ul> | | `headers` | APIエンドポイントに対してクライアントから送信された[ヘッダー](#headers)が含まれます。 | | `params` | クエリー文字列値、およびHTMLフォームによるPOST値が取り込まれます。文字列によるキーと文字列の配列による値のマップとして構成されます。`context.params.yourvalue` | | `limits` | [サーバーレス関数のレート制限](/docs/cms/start-building/features/serverless-functions/overview#know-your-limits)にどの程度近づいているかに関する情報を返します。<ul><li>`executionsRemaining`:1分当たりの残っている実行数。</li><li>`timeRemaining`:残っている実行可能時間。</li></ul> | ### ヘッダー APIエンドポイントにアクセスしているクライアントのヘッダーを把握する必要がある場合は、`context.body`を使用して情報にアクセスする場合と同じ方法で、`context.headers`を使用して該当するヘッダーにアクセスできます。 以下の表に、HubSpotが提供する一般的なヘッダーの一部を記載します。完全なリストについては、[MDNのHTTPヘッダーのドキュメント](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers)をご参照ください。 | ヘッダー | 説明 | | - | - | | `accept` | クライアント側で処理できるコンテンツタイプを[MIMEタイプ](https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/MIME_types)として示します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `accept-encoding` | クライアント側で処理できるコンテンツエンコーディングを示します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `accept-language` | 使用される言葉とロケールを示します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `cache-control` | キャッシュ用のディレクティブを保持します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `connection` | ネットワーク接続が開いたままかどうかを示します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `cookie` | クライアントから送信されたCookieが格納されます。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `host` | リスニングサーバーのドメイン名とTCPポート番号を示します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `true-client-ip` | エンドユーザーのIPアドレス。詳しくは[Cloudflare true-client-ip](https://developers.cloudflare.com/network/true-client-ip-header/)をご参照ください。 | | `upgrade-insecure-requests` | レスポンスの暗号化と認証について、クライアント側の設定を示します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `user-agent` | アプリケーション、オペレーティングシステム、アプリケーションベンダー、バージョンを識別するためのベンダー定義文字列。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | | `x-forwarded-for` | プロキシーまたはロードバランサーを通過するクライアントの発信元IPアドレスを識別します。詳しくは[MDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Headers/Accept)をご参照ください。 | #### ヘッダーの送信によるリダイレクト 「location」ヘッダーと`301` statusCodeを含むレスポンスを送信することで、サーバーレス関数からリダイレクトを実行できます。 ```js theme={null} sendResponse({ statusCode: 301, headers: { Location: "https://www.example.com", }, }); ``` ### APIエンドポイントからCookieを設定する サーバーレス関数によって、クライアント(ウェブブラウザー)にCookieを設定するように指示できます。 ```js theme={null} exports.main = (context, sendResponse) => { sendResponse({ body: { ... }, 'Set-Cookie': 'myCookie1=12345; expires=...; Max-Age=...', statusCode: 200 }); } ``` ### 1つのヘッダーに複数の値を設定する 複数の値をサポートするヘッダーには、`multiValueHeaders`を使用して値を渡すことができます。例えば、ブラウザーに複数のCookieを設定するように指示できます。 ```js theme={null} exports.main = (context, sendResponse) => { sendResponse({ body: { ... }, multiValueHeaders: { 'Set-Cookie': [ 'myCookie1=12345; expires=...; Max-Age=...', 'myCookie2=56789; expires=...; Max-Age=...' ] }, statusCode: 200 }); } ``` ## シークレット サーバーレス関数リクエストを認証する必要がある場合は、シークレットを使用して、APIキーや非公開アプリのアクセストークンなどの値を保存します。CLIを使用して、それらの値を保存するシークレットをHubSpotアカウントに追加することができます。その後でこれらの値にアクセスするには、環境変数(`process.env.secretName`)を使用します。シークレットの管理には、HubSpot CLIで以下のコマンドを使用します。 * [`hs secrets list`](https://developers.hubspot.jp/docs/guides/cms/tools/hubspot-cli/cli-v7#list-secrets) * [`hs secrets add`](https://developers.hubspot.jp/docs/guides/cms/tools/hubspot-cli/cli-v7#add-a-secret) * [`hs secrets delete`](https://developers.hubspot.jp/docs/guides/cms/tools/hubspot-cli/cli-v7#remove-a-secret) CLIを使用して追加されたシークレットは、そのシークレット名を含む`secrets`配列を追加することで、関数で使用できるようになります。これにより、関数コードを[バージョン管理](/docs/cms/start-building/introduction/developer-environment/github-integration)に保存し、シークレットを公開せずに使用できるようになります。ただし、コンソールログを使用して、またはレスポンスとして、シークレットの値を返してはいけません。そうした場合、ログや、サーバーレス関数を呼び出すフロントエンドページでシークレットが公開されてしまいます。 > [!WARNING] > > ### 注: > > キャッシュ保存のため、更新されたシークレット値が表示されるまでに1分ほどかかる場合があります。シークレットを更新したばかりで、まだ古い値が表示されている場合は、1分ほどしてからもう一度ご確認ください。 ## フォーム要素からサーバーレス関数を使用する サーバーレス関数の送信時には、JavaScriptを使ってフォーム送信を処理し、リクエストに`"contentType" : "application/json"`ヘッダーを使用します。`<form>`要素の`action`属性は使用しないでください。 ## CORS [**CORS(オリジン間リソース共有)**](https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/CORS)はブラウザーのセキュリティー機能です。ブラウザーではデフォルトで、JavaScriptによって開始されたクロスオリジンリクエストが制限されます。これにより、異なるドメイン間で有害コードが実行され、貴社のサイトに影響を与えることを防止します。これは同一オリジンポリシーと呼ばれます。他のサーバーとのデータの送受信が必要な場合には、ブラウザーからの情報の読み取りをどのオリジン(発信元)に許可するかを示すHTTPヘッダーが外部サーバーから提供されることがあります。 HubSpot内にホスティングされたページでのサーバーレス関数の呼び出しにおいては、CORSの問題は発生しません。発生する場合、正しいプロトコルを使用していることを確認してください。 > [!NOTE] > > **次のCORSエラーが発生している場合**「発信元<リクエスト元ページ>から<関数URL>へのフェッチアクセスが、CORSポリシーによってブロックされました:プリフライトリクエストへのレスポンスが、アクセス制御検査に合格しません:要求されたリソースにはAccess-Control-Allow-Originヘッダーがありません。複雑なレスポンスを使用する場合は、リクエストのモードをno-corsに設定して、CORSが無効化されたリソースを取得してください」 > > **リクエストの送信元が呼び出し元サイトと異なるのはどのようなときですか?** > > * ドメイン名が異なる場合が該当します。 > * 使用しているプロトコル(http、https)が異なる場合も該当します。 > > 使用しているプロトコルが異なる場合は、プロトコルが一致するように変更するだけで解決します。 > > 現時点では、HubSpotの`Access-Control-Allow-Origin`ヘッダーを変更することはできません。 > > [CORSエラーのトラブルシューティングに関する詳細はMDN](https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/CORS/Errors)を参照してください。 ### GETリクエスト クライアントによっては、GETリクエストを[CORSリクエスト](https://developer.mozilla.org/ja/docs/Web/HTTP/Guides/CORS)にすることが可能な場合があります。[GET](https://developer.mozilla.org/ja/docs/Web/HTTP/Reference/Methods/GET)リクエストでは書き込みを行わないで、データを返すだけにしてください。 ## 事前に読み込まれるパッケージ 現在、HubSpotのサーバーレス関数には、以下の事前読み込みパッケージがあります。 * [@hubspot/api-client](https://www.npmjs.com/package/@hubspot/api-client):1.0.0-beta以降 * [axios](https://www.npmjs.com/package/axios):0.19.2以降 * [request](https://www.npmjs.com/package/request):2.88.0以降 * [requests](https://www.npmjs.com/package/requests):0.2.2以降 サポートされる最新バージョンの事前読み込み済みパッケージ、または新たに追加されたパッケージを使用するには、以下の操作を行います。 1. 関数ファイルを複製またはコピーします。 2. `serverless.json`ファイル内の関数のAPIエンドポイントを変更して、新しい関数ファイルを指すようにします。旧バージョンは問題なく削除できます。 事前に読み込まれる一連のパッケージには含まれないパッケージをインクルードするには、[webpack](https://webpack.js.org/)を使用してノードモジュールを結合し、バンドルされたファイルを関数ファイルとして使用します。 ## 上限 サーバーレス関数は、高速の特定用途を対象として設計されています。迅速な呼び出しとレスポンスを可能にするために、HubSpotのサーバーレス関数には、次のような制限があります。 * 1アカウントあたり50件のシークレット。 * 128MBのメモリー。 * HubSpotアカウントあたり100件以下のエンドポイント。 * 関数の呼び出しには`contentType` `application/json`を使用する必要があります。 * サーバーレス関数ログの保存期間は90日。 * AWS Lambda呼び出しでのペイロードは6MB。 **実行制限** * 各関数の実行時間は最大10秒に制限されます。 * 各アカウントでは、1分あたりの実行時間が合計600秒に制限されます。 つまり、次のいずれかのような状況での利用が可能です。 * 10秒で完了する関数を60回実行する。 * 100ミリ秒で完了する関数を6,000回実行する。 これらの制限を超える関数は、エラーになります。実行数と時間の制限に関しては、`429`レスポンスが返されます。各関数の実行時間は、[サーバーレス関数ログ](/docs/developer-tooling/local-development/hubspot-cli/reference#get-logs)に記録されます。 上記の制限を回避できるよう、実行中に自動で制限データが[関数コンテキスト](https://developers.hubspot.jp/docs/cms/reference/serverless-functions/serverless-functions-in-projects#function-file)に提供されます。その情報に基づいて、アプリケーションを制限内にとどめるような調整を行うことができます。例えばアプリケーションからAPIエンドポイントへのポーリングが必要な場合、ポーリング頻度を調整するための変数をデータと共に返すことができます。これにより、トラフィックの増大時にも制限に到達しないようにポーリング速度を抑え、トラフィックの減少後に元に戻すことが可能になります。 # サーバーレスリファレンス Source: https://developers.hubspot.jp/docs/cms/reference/serverless-functions/serverless-functions-in-projects Serverless.json、関数ファイル、エンドポイント、CLIコマンド、パッケージの一元管理に関する参照情報。 > **サポートされる製品** > [!WARNING] > > **注:**[開発者プロジェクト](https://developers.hubspot.jp/docs/guides/crm/intro/create-a-project)の一部としてサーバーレス関数を作成する場合は、[開発者プロジェクトのサーバーレス関数のドキュメント](https://developers.hubspot.jp/docs/guides/crm/private-apps/serverless-functions)を参照してください。以下のドキュメントは、開発者プロジェクトプラットフォーム以外でサーバーレス関数を作成する場合に使用します。 この記事では、[サーバーレスの`.functions`フォルダー](/docs/cms/reference/serverless-functions/serverless-functions-in-projects#file-structure)内にあるファイルと、サーバーレス関数で使用できるCLIコマンドについて説明します。 サーバーレス関数の概要については、[サーバーレス関数の概要](/docs/cms/start-building/features/serverless-functions/overview)をご確認ください。 [JavaScriptのレンダリングされたモジュールとパーシャル](https://github.hubspot.com/cms-js-building-block-examples/)のプロジェクトを使用してサーバーレス関数を作成する方法の詳細については、[開発者プロジェクトのドキュメント](https://developers.hubspot.jp/docs/guides/crm/private-apps/serverless-functions)をご覧ください。 ## serverless.json [`.functions`フォルダー](/docs/cms/reference/serverless-functions/serverless-functions-in-projects#file-structure)の`serverless.json`ファイルには、サーバーレス関数構成が保存されます。これは必須ファイルであり、これによって関数が[エンドポイント](#endpoints)にマッピングされます。 ```json theme={null} // serverless.json { "runtime": "nodejs18.x", "version": "1.0", "environment": { "globalConfigKey": "some-value" }, "secrets": ["secretName"], "endpoints": { "events": { "file": "function1.js", "method": "GET" }, "events/update": { "method": "POST", "file": "action2.js", "environment": { "CONFIG_KEY": "some-other-value" }, "secrets": ["googleKeyName", "otherkeyname"] } } } ``` | キー | Type | Description | | - | - | - | | `runtime` | 文字列 | ランタイム環境。次の[Node.js](https://nodejs.org/en/about/)バージョンをサポートします。<ul><li>ノード20(`nodejs20.x`)(推奨)</li><li>ノード18(`nodejs18.x`)</li></ul>2024年7月12日以降、HubSpotは[ノード16をサポートしなくなります](https://developers.hubspot.com/changelog/deprecation-of-node-v16-in-all-serverless-functions)。 | | `version` | 文字列 | HubSpotサーバーレス関数スキーマバージョン。(現在のバージョン1.0) | | `environment` | オブジェクト | 実行環境で、実行される関数に[環境変数](https://nodejs.org/docs/latest-v10.x/api/process.html#process_process_env)として渡される設定用変数。環境変数に基づいて、実際のAPIの代わりにテストバージョンを使用するロジックを追加する場合などに使用します。 | | `secrets` | 配列 | サーバーレス関数が認証に使用するシークレットの名前を含む配列。このファイルにはシークレット値を直接入力しないで、シークレット名の参照にとどめてください。 | | `endpoints` | オブジェクト | エンドポイントでは、functionsフォルダーにおいて、公開されるパスおよび特定のJavaScriptファイルへのマッピングが定義されます。エンドポイントの詳細については、以下で説明しています。 | > [!WARNING] > > \*\*注:\*\*シークレットと環境変数に同じ名前を割り当てないでください。同じ名前を割り当てると、関数で値が返されるときに競合が発生します。 ### エンドポイント 各エンドポイントには独自の[環境変数](https://nodejs.org/docs/latest-v10.x/api/process.html#process_process_env)とシークレットを設定できます。エンドポイント外で指定した変数は、全ての関数とエンドポイントに適用する設定として使用されます。 ```json theme={null} "events/update": { "method": "POST", "file": "action2.js", "environment": { "configKey": "some-other-value" }, "secrets": ["googleAPIKeyName","otherKeyName"] } ``` エンドポイントにはいくつかの固有のキーがあります。 | キー | Type | Description | | - | - | - | | `method` | 文字列または文字列からなる配列 | このエンドポイントによってサポートされる[HTTPメソッド](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Methods)(複数可)。既定では[GET](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Methods/GET)です。 | | `file` | 文字列 | エンドポイントの実装があるJavaScript関数ファイルへのパス。 | サーバーレス関数は、HubSpot CMSアカウントのドメインのパスを通して公開されます。これには、既定の`.hs-sites.com`サブドメインも含まれます。 これらの関数には、次のURLでアクセスできます。 `https://{domainName}/_hcms/api/{endpoint-name/path}?portalid={hubId}` 以下では、各URLコンポーネントについて説明します。 | Parameter | Description | | - | - | | `domainName` | 自分のドメイン名。 | | `/_hcms/api/` | サーバーレス関数用に予約されたパス。このパスには、全てのエンドポイントが含まれます。 | | `endpoint-name/path` | `serverless.json`ファイルで指定されているエンドポイント名またはパス。 | | `hubId` | 自分のHub ID。これをリクエストに含めることにより、モジュールおよびテンプレートのプレビュー時に関数をテストできます。 | ## 関数ファイル `serverless.json`構成ファイルに加え、`.functions`フォルダーにも、関数を定義する[Node.js](https://nodejs.org/en/) JavaScriptファイルが含まれています。[request](https://github.com/request/request#readme)ライブラリーを利用して、[HubSpot API](https://developers.hubspot.jp/docs/reference/api/overview)や他のAPIへのHTTPリクエストを行うこともできます。 例として、以下のような場合が挙げられます。 ```js theme={null} // Require axios library, to make API requests. const axios = require("axios"); // Environment variables from your serverless.json // process.env.globalConfigKey exports.main = (context, sendResponse) => { // your code called when the function is executed // context.params // context.body // context.accountId // context.limits // secrets created using the CLI are available in the environment variables. // process.env.secretName //sendResponse is what you will send back to services hitting your serverless function. sendResponse({ body: { message: "my response" }, statusCode: 200 }); }; ``` ### コンテキストオブジェクト コンテキストオブジェクトには、次のパラメーターに格納された、関数の実行に関するコンテキスト情報が含まれています。 | Parameter | Description | | - | - | | `accountId` | 関数が含まれているHubSpotアカウントのID。 | | `body` | コンテンツタイプ`application/json`の`POST`リクエストとして送信する場合に入力します。 | | `contact` | Cookieに紐付けられたコンタクトから送信されたリクエストの場合、コンタクトオブジェクトには、基本的なコンタクトプロパティーに加え、次の情報が含められます。<ul><li>`vid`:コンタクトの訪問者ID。</li><li>`isLoggedIn`:CMSのアクセス権設定(メンバーシップ機能)を使用した状態で、コンタクトがドメインにログインしている場合は`true`になります。</li><li>`listMemberships`:このコンタクトがメンバーとして含まれる、コンタクトリストIDの配列。</li></ul> | | `headers` | エンドポイントに対してクライアントから送信された[ヘッダー](#headers)が含まれます。 | | `params` | クエリー文字列値、およびHTMLフォームによるPOST値が入ります。文字列によるキーと、文字列の配列による値から成るマップとして構成されます。`context.params.yourvalue` | | `limits` | [サーバーレス関数のレート制限](/docs/cms/reference/serverless-functions/serverless-functions-in-projects#limits)にどの程度近づいているかを返します。<ul><li>`executionsRemaining`:残っている実行数(1分あたり)。</li><li>`timeRemaining`:残っている実行可能時間。</li></ul> | ### ヘッダー エンドポイントにアクセスしているクライアントのヘッダーを知る必要がある場合は、`context.body`を使用して情報にアクセスする場合と同様に、`context.headers`を使用してこれらのヘッダーにアクセスできます。 以下で、HubSpotが提供する一般的なヘッダーのいくつかについて確認します。完全なリストについては、[MDNのHTTPヘッダーのドキュメント](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers)をご覧ください。 | ヘッダー | Description | | - | - | | `accept` | クライアント側で処理できるコンテンツタイプを[MIMEタイプ](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Basics_of_HTTP/MIME_types)として示します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/Accept)を参照してください。 | | `accept-encoding` | クライアント側で処理できるコンテンツエンコーディングを示します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/Accept-encoding)を参照してください。 | | `accept-language` | 使用される言葉とロケールを示します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/Accept-language)を参照してください。 | | `cache-control` | キャッシュ用のディレクティブを保持します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/Cache-Control)を参照してください。 | | `connection` | ネットワーク接続が開いたままかどうかを示します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/connection)を参照してください。 | | `cookie` | クライアントから送信されたCookieが含まれます。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/cookie)を参照してください。 | | `host` | リスニングサーバーのドメイン名とTCPポート番号を示します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/host)を参照してください。 | | `true-client-ip` | エンドユーザーのIPアドレス。[Cloudflare true-client-ip](https://support.cloudflare.com/hchttps://developers.hubspot.com/docs/articles/206776727-What-is-True-Client-IP-)を参照してください。 | | `upgrade-insecure-requests` | レスポンスの暗号化および認証について、クライアント側の設定を示します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/Upgrade-Insecure-Requests)を参照してください。 | | `user-agent` | アプリケーション、オペレーティングシステム、アプリケーションベンダー、バージョンを識別するためのベンダー定義文字列。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/User-Agent)を参照してください。 | | `x-forwarded-for` | プロキシーまたはロードバランサーを通過するクライアントの発信元IPアドレスを識別します。[MDN](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Headers/X-Forwarded-For)を参照してください。 | #### ヘッダーの送信によるリダイレクト *location*ヘッダーとstatusCode `301`を含むレスポンスを送信することで、サーバーレス関数からリダイレクトを実行できます。 ```js theme={null} sendResponse({ statusCode: 301, headers: { Location: "https://www.example.com", }, }); ``` ### エンドポイントからCookieを設定する サーバーレス関数によって、クライアント(ウェブブラウザー)にCookieを設定するように指示できます。 ```js theme={null} exports.main = (context, sendResponse) => { sendResponse({ body: { ... }, 'Set-Cookie': 'myCookie1=12345; expires=...; Max-Age=...', statusCode: 200 }); } ``` ### 1つのヘッダーに複数の値を設定する 複数の値をサポートするヘッダーには、`multiValueHeaders`を使用して値を渡すことができます。例えば、ブラウザーに複数のCookieを設定するように指示できます。 ```js theme={null} exports.main = (context, sendResponse) => { sendResponse({ body: { ... }, multiValueHeaders: { 'Set-Cookie': [ 'myCookie1=12345; expires=...; Max-Age=...', 'myCookie2=56789; expires=...; Max-Age=...' ] }, statusCode: 200 }); } ``` ## シークレット サーバーレス関数リクエストを認証する必要がある場合は、シークレットを使用して、APIキーや非公開アプリのアクセストークンなどの値を保存します。CLIを使用して、それらの値を保存するシークレットをHubSpotアカウントに追加することができます。その後でこれらの値にアクセスするには、環境変数(`process.env.secretName`)を使用します。シークレットの管理には、HubSpot CLIで以下のコマンドを使用します。 * [`hs secrets list`](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#list-secrets) * [`hs secrets add`](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#add-secret) * [`hs secrets delete`](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#remove-secret) CLIを使用して追加されたシークレットは、そのシークレット名を含む`secrets`配列を含めることで、関数で使用できるようになります。これにより、関数コードを[バージョン管理](/docs/cms/start-building/introduction/developer-environment/github-integration)に保存し、シークレットを公開せずに使用できるようになります。ただし、コンソールログを使用して、またはレスポンスとして、シークレットの値を返さないでください。そうすると、ログや、サーバーレス関数を呼び出すフロントエンドページで、シークレットが公開される恐れがあります。 > [!WARNING] > > \*\*注:\*\*キャッシュ保存のため、更新されたシークレット値が表示されるまでには、1分ほどかかる場合があります。シークレットを更新したばかりで、まだ古い値が表示されている場合は、1分ほどしてからもう一度ご確認ください。 ## フォーム要素からサーバーレス関数を使用する サーバーレス関数の送信時には、JavaScriptを使ってフォーム送信を処理し、リクエストに`"contentType" : "application/json"`ヘッダーを使用します。`<form>`要素の`action`属性は使用しないでください。 ## CORS [**CORS(オリジン間リソース共有)**](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/CORS)はブラウザーのセキュリティー機能です。ブラウザーでは既定で、JavaScriptによって開始されたクロスオリジンリクエストが制限されます。これにより、異なるドメイン間で有害コードが実行され、貴社のサイトに影響を与えることを防止します。これは同一オリジンポリシーと呼ばれます。他のサーバーとのデータの送受信が必要な場合には、ブラウザーからの情報の読み取りをどのオリジン(発信元)に許可するかを示すHTTPヘッダーが外部サーバーから提供されることがあります。 HubSpot内にホスティングされたページでのサーバーレス関数の呼び出しにおいては、CORSの問題は発生しません。発生する場合、正しいプロトコルを使用していることを確認してください。 > [!NOTE] > > **次のCORSエラーが発生している場合** > > *「発信元[リクエスト元ページ]から[関数URL]へのフェッチ(取得)アクセスが、CORSポリシーによってブロックされました:プリフライトリクエストへのレスポンスが、アクセス制御検査に合格しません:要求されたリソースにはAccess-Control-Allow-Originヘッダーがありません。複雑なレスポンスを使用する場合は、リクエストのモードをno-corsに設定して、CORSが無効化されたリソースを取得してください。」* > > **呼び出し元サイトとは異なるオリジンへのリクエストとは?** > > * ドメイン名が異なる場合は、該当します。 > * 使用しているプロトコル(http、https)が異なる場合は、該当します。 > > 使用しているプロトコルが異なる場合は、プロトコルを合わせて変更するだけで解決します。 > > 現時点では、HubSpotの`Access-Control-Allow-Origin`ヘッダーを変更することはできません。 > > [CORSエラーのトラブルシューティングに関する詳細はMDNを参照してください。](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/CORS/Errors) ### GETリクエスト クライアントによっては、GETリクエストで[CORSリクエスト](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/CORS)を行うことが可能な場合があります。[GET](https://developer.mozilla.org/ja-JP/docs/Web/HTTP/Methods/GET)リクエストでは書き込みを行わないで、データを返すだけにしてください。 ## 事前に読み込まれるパッケージ 現在、HubSpotのサーバーレス関数には、以下の事前読み込みパッケージがあります。 * [@hubspot/api-client](https://www.npmjs.com/package/@hubspot/api-client):1.0.0-beta以降 * [axios](https://www.npmjs.com/package/axios):0.19.2以降 * [request](https://www.npmjs.com/package/request):2.88.0以降 * [requests](https://www.npmjs.com/package/requests):0.2.2以降 サポートされる最新バージョンの事前読み込み済みパッケージ、または新たに追加されたパッケージを使用するには、次の手順に従います。 1. 関数ファイルを複製またはコピーします。 2. `serverless.json`ファイル内の関数のエンドポイントを変更して、新しい関数ファイルを指すようにします。旧バージョンは問題なく削除できます。 事前に読み込まれる一連のパッケージには含まれないパッケージをインクルードするには、[webpack](https://webpack.js.org/)を使用してノードモジュールを結合し、バンドルされたファイルを関数ファイルとして使用します。 ## 制限 サーバーレス関数は、高速の特定用途を対象として設計されています。迅速な呼び出しとレスポンスを可能にするために、HubSpotのサーバーレス関数には、次のような制限があります。 * 1アカウントあたり50件のシークレット。 * 128MBのメモリー。 * HubSpotアカウントあたり100件以下のエンドポイント。 * 関数の呼び出しには`contentType` `application/json`を使用する必要があります。 * サーバーレス関数ログの保存期間は90日。 * AWS Lambda呼び出しでのペイロードは6MB。 **実行制限** * 各関数の実行時間は最大10秒に制限されます。 * 各アカウントでは、1分あたり実行時間が合計600秒に制限されています。 つまり、次のいずれかのような状況での利用が可能です。 * 10秒で完了する関数を60回実行する。 * 100ミリ秒で完了する関数を6,000回実行する。 これらの制限を超える関数は、エラーになります。実行数と時間の制限には、`429`のレスポンスが返されます。各関数の実行時間は、[サーバーレス関数ログ](https://developers.hubspot.jp/docs/guides/cms/tools/local-development-cli#logs)に記録されます。 上記の制限を回避できるよう、実行中に自動で制限データが[関数コンテキスト](https://developers.hubspot.jp/docs/reference/cms/serverless-functions#function-file)に提供されます。その情報に基づいて、アプリケーションを制限内にとどめるような調整を行うことができます。例えばアプリケーションからエンドポイントへのポーリングが必要な場合、ポーリング頻度を調整するための変数をデータと共に返すことができます。これにより、トラフィックの増大時にも制限に到達しないようにポーリング速度を抑え、トラフィックの減少後に元に戻すことが可能になります。 # CRMオブジェクトを使用して動的ページを作成 Source: https://developers.hubspot.jp/docs/cms/start-building/features/data-driven-content/crm-data-in-cms-pages # CMSページでのCRMオブジェクト Source: https://developers.hubspot.jp/docs/cms/start-building/features/data-driven-content/crm-objects CRMオブジェクトのクエリーを実行し、HubSpot上にホスティングされたコンテンツにレンダリングできます。これにより、業務、ウェブサイト、Eメールでのデータ共有が可能になります。 'CRMオブジェクトのクエリーを実行し、HubSpot上にホスティングされたコンテンツにレンダリングできます。これにより、業務、ウェブサイト、Eメールでのデータ共有が可能になります。'; CRMオブジェクトのクエリーを実行して、HubSpotでホスティングされるコンテンツ上にオブジェクトのレコードからのデータを表示させることができます。これにより、業務、ウェブサイト、Eメールの間でデータを共有できます。[`crm_object`](/docs/cms/reference/hubl/functions#crm-object)、[`crm_objects`](/docs/cms/reference/hubl/functions#crm-objects)、[`crm_associations`](/docs/cms/reference/hubl/functions#crm-associations)のHubL関数を使用すると、CRMオブジェクトデータに基づいてロジックを表示および制御できます。 ウェブサイト上でCRMデータを使用することで、営業、マーケティング、ウェブサイトのデータが全て同じ場所に存在し、常に同じ情報が反映されることになります。さらに、CRMレコードを相互に関連付けることができるので、関連付けられたデータをウェブサイトページに取り込むこともできます。 同様に、[CRMオブジェクトまたはHubDBデータを使用して自動生成される動的ページのセットを作成](https://developers.hubspot.com/docs)できます。 データに基づくCMSページの構築について詳しくは、HubSpotアカデミーの[CMSデータ駆動コンテンツのコース](https://app.hubspot.com/academy/tracks/1148948/intro)を参照してください。 ### 使用例 ページでCRMオブジェクトデータを使用する例の1つとして、不動産リストページがあります。「物件」と呼ばれるカスタムオブジェクトを使用すると、リストに掲載する必要のある家屋ごとにオブジェクトレコードを作成できます。\_ \_次に、不動産業者は物件オブジェクトに情報を追加して、場所、寝室の数、希望価格などの詳細を保存することができます。 その後、ウェブサイトページで各物件のレコードデータを取り込んで、リスティングページと各物件の詳細ページを作成できます。 この例全体を確認するには、[GitHubリポジトリー](https://github.com/HubSpot/cms-custom-objects-example)をご参照ください。 この例の概要については、[HubSpot Developer Day 2020の録画](https://developers.hubspot.com/community/developer-day-2020)をご参照ください。 ## サポートされるCRMオブジェクトタイプ CMSページのデータの取得元として可能なCRMオブジェクトの種類を以下に示します。全てのページでデータを使用できるか、それとも非公開ページでのみデータを使用できるかは、オブジェクトタイプによって異なります。 以下の表は、CMSコンテンツで使用可能なオブジェクトタイプと、そのオブジェクトタイプ名および完全修飾名を示しています。 ### 全てのページで使用できるCRMオブジェクトデータ 次のCRMオブジェクトからのデータは、任意のCMSページで使用可能です。 | オブジェクトタイプ | object\_type\_name | 完全修飾名 | | - | - | - | | [製品](/docs/api-reference/crm-products-v3/guide) | `product` | `PRODUCT` | | [マーケティングイベント](/docs/api-reference/marketing-marketing-events-v3/guide) | `marketing_event` | `MARKETING_EVENT` | | [カスタムオブジェクト](/docs/api-reference/crm-custom-objects-v3/guide) | **Content Hub** Enterpriseのみ。\_ \_オブジェクトの[完全修飾名](/docs/cms/start-building/features/data-driven-content/crm-objects#getting-a-custom-object-type-s-details)または作成時に入力した名前を使用できます。例えば、`Cars`という名前のオブジェクトを作成した場合、`cars`や`Car`で参照することはできません。カスタムオブジェクトの名前が標準オブジェクトと同じ場合は、[完全修飾名](/docs/cms/start-building/features/data-driven-content/crm-objects#getting-a-custom-object-type-s-details)を使用する必要があります。また、オブジェクト名が全て大文字で表記される場合は、HubSpotの標準オブジェクトとの競合を避けるためにFQNを使用することを強くお勧めします。 | | ### 非公開ページで使用できるCRMオブジェクトデータ 以下のCRMオブジェクトからのデータは、[パスワード](https://knowledge.hubspot.com/ja/website-pages/password-protect-a-page)または[メンバーシップログイン](https://knowledge.hubspot.com/ja/website-pages/require-member-registration-to-access-private-content)のいずれかを必要とするページでのみ使用可能です。 | オブジェクトタイプ | object\_type\_name | 完全修飾名 | | - | - | - | | [コンタクト](/docs/api-reference/crm-contacts-v3/guide) | `contact` | `CONTACT` | | [会社](/docs/api-reference/crm-companies-v3/guide) | `company` | `COMPANY` | | [取引](/docs/api-reference/crm-deals-v3/guide) | `deal` | `DEAL` | | [チケット](/docs/api-reference/crm-tickets-v3/guide) | `ticket` | `TICKET` | | [見積もり](/docs/api-reference/crm-quotes-v3/guide) | `quote` | `QUOTE` | | [商品項目](/docs/api-reference/crm-line-items-v3/guide) | `line_item` | `LINE_ITEM` | ## crm\_object関数を使用して単一のCRMレコードからのデータを表示する [`crm_object`](/docs/cms/reference/hubl/functions#crm-object)関数を使用し、クエリーまたはCRMレコードIDを使ってHubSpotのCRMから単一のレコードを取得します。 オブジェクトレコードは、プロパティーと値から成るディクショナリーとして返されます。 **入力** ```hubl theme={null} {# 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 }} ``` **出力** ```html theme={null} <p>Defensive Health</p> <p>Defensive Health</p> ``` クエリー結果としてレコードのコレクションが返された場合、この関数はコレクション内の最初のレコードを返します。 ## crm\_objects関数を使用して複数のCRMレコードからのデータを表示する [`crm_objects()`](/docs/cms/reference/hubl/functions#crm-objects)関数を使用し、クエリーまたはレコードIDを使ってHubSpotのCRMからオブジェクトタイプ別にCRMレコードを取得します。レコードは、プロパティーと値から成るディクショナリーとして返されます。 返されるオブジェクトには`results`プロパティーが含まれ、これをループ処理することでレコード内の項目の情報を表示できます。 **入力** ```hubl theme={null} {# 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> ``` **出力** ```html theme={null} <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></ul> </ul> </h3> </h3> </ul> </ul> </h3> </h3> ``` ## 関連付けられたレコードの表示 [`crm_associations`](/docs/cms/reference/hubl/functions#crm-associations)のHubL関数を使用すると、特定のレコードID、関連付けカテゴリー、関連付け定義IDに基づき、関連付けられているレコードのリストをHubSpotのCRMから取得できます。[](#getting-a-custom-object-s-details) レコードは、プロパティーと値から成るディクショナリーとして返されます。 **入力** ```hubl theme={null} {% 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> ``` **出力** ```html theme={null} <h3> Contacts Associated With Event <h3> <ul> <li>Name: Brian Halligan</li> <li>Name: Dharmesh Shah</li> <li>Name: Yamini Rangan</li> </ul> </h3> </h3> ``` ## カスタムオブジェクトタイプの詳細を取得する カスタムオブジェクトタイプの`name`、`id`、`fullyQualifiedName`、関連付けID、その他の詳細を取得するには、[CRMオブジェクトスキーマAPI](https://developers.hubspot.com/docs)に`GET`リクエストを送信します。 アカウント固有のオブジェクトタイプの`fullyQualifiedName`にはHubSpotアカウントIDが含まれているので、複数のHubSpotアカウント用のコードを開発するときにはこれを使用しないことをお勧めします。 ## CRMオブジェクトモジュールのフィールド [CRMオブジェクトフィールド](https://developers.hubspot.jp/docs/cms/reference/fields/module-theme-fields#crm-object)を含むモジュールを構築すると、コンテンツ作成者は表示またはロジックを実行する対象のCRMレコードを選択できるようになります。 例えば、特定の製品、コンタクト、会社、取引、見積もり、チケット、またはカスタムオブジェクトからの情報を表示できます。 ![CRMオブジェクトフィールド](https://f.hubspotusercontent00.net/hubfs/53/CRM%20Object%20Field.png) ## CRMオブジェクトのチュートリアルと資料 * [カスタムオブジェクトの基本](https://developers.hubspot.com/blog/essentials-for-getting-started-with-custom-objects) * [建築家のように考える:スケーラブルなカスタムオブジェクトを構築する](https://developers.hubspot.com/blog/how-to-think-like-an-architect-by-building-scalable-custom-objects) * [CRMオブジェクトを使用した動的ページの作成方法](https://developers.hubspot.com/docs) # プログラミング可能なコンテンツが含まれるEメールを作成する Source: https://developers.hubspot.jp/docs/cms/start-building/features/data-driven-content/emails-with-programmable-content 'プログラミング可能なコンテンツが含まれるEメールを作成する'; 現在のところ、この機能はベータ版として提供されています。この機能を使用することにより、[ベータサービス利用規約](https://legal.hubspot.com/jp/hubspot-beta-terms)に同意したことになります。このガイドで説明する機能は、ベータ版でのみご利用いただけます。ベータ版を使用するには[テンプレートまたはモジュールでオプトイン](https://knowledge.hubspot.com/ja/marketing-email/create-programmable-emails)してください。 プログラミング可能なコンテンツを使用することで、HubLでHubSpotアカウントのデータを取得して、Eメールをパーソナライズできます。 プログラマブルEメールで使用できるデータソースは、HubSpotサブスクリプションに応じて異なります。 * **Marketing Hub** Professionalサブスクリプションをご利用の場合、標準CRMオブジェクト(コンタクト、会社、製品など)のデータを使用できます。 * **Marketing Hub** Enterpriseサブスクリプションをご利用の場合は、[HubDB](https://developers.hubspot.com/docs)テーブルや[カスタムオブジェクト](https://knowledge.hubspot.com/ja/records/use-custom-objects)などの構造化データソースを使用することもできます。このデータは、受信者のコンタクトプロパティーに基づいて絞り込むことができます。 例えば、不動産のウェブサイトでは、見込み客に希望する物件の要件を入力してもらうフォームを設置することができます。見込み客がフォームを送信すると、フォームの入力内容に基づき、見込み客が興味を持ちそうな物件情報をEメールで送信するワークフローを設定できます。 ## Eメール送信の上限 プログラマブルEメールには、CRM HubL関数である[crm\_object](/docs/cms/reference/hubl/functions#crm-object)、[crm\_objects](/docs/cms/reference/hubl/functions#crm-objects)、[crm\_associations](/docs/cms/reference/hubl/functions#crm-associations)を含めることができますが、これらの関数を含むEメールには、送信する受信者数によって、以下の制限が適用されます。 <table> <tbody> <tr> <td> **受信者数合計** </td> <td> **CRM HubL関数の最大数** </td> </tr> <tr> <td>500,000</td> <td>1</td> </tr> <tr> <td>250,000</td> <td>2</td> </tr> <tr> <td>165,000</td> <td>3</td> </tr> <tr> <td>125,000</td> <td>4</td> </tr> <tr> <td>100,000</td> <td>5</td> </tr> </tbody> </table> 上記のいずれかの制限値に達するか、それを超えるEメールを送信すると、Eメールの送信に遅延が生じるか、キャンセルされます。 上記の制限に加え、以下の点にもご注意ください。 * プログラマブルEメールを複製する場合、元のEメールが処理中の状態にある間は、複製したEメールを送信することはできません。Eメールの送信ごとに、少なくとも1時間の間隔を空ける必要があります。 * `crm_object`、`crm_objects`、`crm_associations`のHubL関数が含まれるプログラマブルEメールでは、A/Bテストを実施することはできません。これらの関数を使用して送信されたEメールは、他のEメールよりも送信時間が大幅に遅いため、テスト結果が不正確になる恐れがあります。 ## 1. プログラマブルEメールのモジュールを作成する HubDBまたはカスタムオブジェクトのデータにアクセスするためのEメールモジュールを作成するには、次の手順に従います。 * HubSpotアカウントにて、[マーケティング]>[ファイルとテンプレート]>[デザインマネージャー]の順に進みます。 * 左上の[ファイル]をクリックし、[新規ファイル]を選択します。 * 表示されるダイアログボックスで、ファイルタイプとして[モジュール]を選択し、[次へ]をクリックします。次に、[Eメール]チェックボックスをオンにして、ファイルの**名前**を入力します。 * [作成]をクリックします。 * 作成したモジュールで、プログラマブルEメールを有効にするには、次の手順に従います。 * 右側の設定パネルで、[モジュールをプログラマブルEメールのベータに対応させる]スイッチをオンに切り替えます。 ![プログラマブルEメールスイッチ0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/programmable-email-switch0.png) * また、コード化されたEメールテンプレートでは、ファイルの先頭に`isEnabledForEmailV3Rendering: true`を追加することで、プログラマブルEメールを有効にできます。 ![プログラマブルEメール用のデザイン マネージャー テンプレートを有効にする](https://knowledge.hubspot.com/hs-fs/hubfs/Imported%20sitepage%20images/enable-design-manager-template-for-programmable-email.png?width=510\&name=enable-design-manager-template-for-programmable-email.png) モジュールを作成したら、CRMのデータにアクセスするためのコードを追加します。次の例は、さまざまなデータソースからクエリーを実行する方法を示しています。 ### 標準オブジェクト [crm\_object](/docs/cms/reference/hubl/functions#crm-object)、[crm\_objects](/docs/cms/reference/hubl/functions#crm-objects)、[crm\_associations](/docs/cms/reference/hubl/functions#crm-associations)などのHubL関数を使用して、コンタクト、会社、製品など、アカウント内の標準オブジェクトのデータを照会できます。 以下のコードは、[`crm_object`](/docs/cms/reference/hubl/functions#crm-object) HubL関数を使用して、IDが`2444498793`の製品のデータを照会し、名前、説明、価格をレンダリングします。 ```hubl theme={null} {% set product = crm_object("product", 2444498793, "name,description,price") %} <div> <p> <span>Name: </span> <span>{{ product.name }}</span> </p> <p> <span>Description: </span> <span>{{ product.description }}</span> </p> <p> <span>Price: </span> <span>{{ product.price }}</span> </p> </div> ``` ### カスタムオブジェクト **Marketing Hub** Enterpriseアカウントをお持ちの場合は、アカウント内で作成されたカスタムオブジェクトのデータを照会できます。 以下のコードは、Propertyという名前のカスタムオブジェクトからデータを取得し、カスタムオブジェクトのプロパティーに格納されている値(場所、価格など)を返します。 以下の例では、[HubL関数](/docs/cms/reference/hubl/functions#crm-objects)`crm_objects`を呼び出す際の最初の引数として、カスタムオブジェクトの完全修飾名を使用しています。 * 完全修飾名は、HubSpotアカウントID(プレフィックス:`p`)の後にアンダースコアとカスタムオブジェクトの名前(小文字、複数形)が続きます(例:`properties`)。 * オブジェクトの`fullyQualifiedName`を取得するには、[CRMオブジェクトスキーマAPI](https://developers.hubspot.com/docs)に`GET`リクエストを送信します。 ```hubl theme={null} {% set real_estate_listings = crm_objects("p2990812_properties", "", "listing_name,location, price, address, type") %} {% for home in real_estate_listings.results %} {{ home.address}} <br> {{ home.price }} <br> <img alt="{{ home.name }}" src="{{ home.hero_image }}" style="outline: none; max-width: 100%;" width="260px" /> <br> <hr> {% endfor %} ``` カスタムオブジェクトの名前にハイフンが含まれている場合(例:My-Custom-Object)、そのオブジェクトのプロパティーはプログラマブルEメールでレンダリングできません。ハイフンを省略してカスタムオブジェクトを[HubSpotアカウントで直接](https://knowledge.hubspot.com/ja/object-settings/create-custom-objects)作成し直すか、または[カスタムオブジェクトAPI](/docs/api-reference/crm-custom-objects-v3/guide)を使用することができます。 返されるデータを受信者ごとに絞り込むには、受信者のコンタクトプロパティーで結果を絞り込むための`query`パラメーターを追加します。詳しくは[フィルターオプションの一覧](/docs/api-reference/cms-hubdb-v3/guide#filter-returned-rows)をご確認ください。 ```hubl theme={null} {% set query = "price__lte="~contact.budget_max|int~"&price__gte="~contact.budget_min|int~"&city="~contact.city"&order=listing_name" %} {% set real_estate_listings = crm_objects("p2990812_Property", query, "listing_name,location, price, address, type") %} {% for home in real_estate_listings.results %} ... {% endfor %} ``` ### HubDB **Marketing Hub** Enterpriseアカウントをお持ちの場合は、EメールでHubDBテーブルのデータを使用できます。 以下のコードでは、HubL関数[`hubdb_table_rows`](/docs/cms/reference/hubl/functions#hubdb-table-rows)を使用してテーブルから全てのデータを取得します。これにより、Eメールに全ての不動産物件がリスト表示され、各物件の画像とともに詳細情報が出力されます。 ```hubl theme={null} {% set real_estate_listings = hubdb_table_rows(1234567) %} {% for home in real_estate_listings%} {{ home.address}} <br> {{ home.price }} <br> <img alt="{{ home.name }}" src="{{ home.hero_image.url }}" style="outline: none; max-width: 100%;" width="260px" /> <br> <hr> {% endfor %} ``` 返されるデータを受信者ごとに絞り込むには、`query`パラメーターを追加します。このパラメーターで指定したコンタクトプロパティーを基準に、結果を絞り込むことができます。詳しくは[フィルターオプションの一覧](/docs/api-reference/cms-hubdb-v3/guide#filter-returned-rows)をご確認ください。 ```hubl theme={null} {% set query = "price__lte="~contact.budget_max|int~"&price__gte="~contact.budget_min|int~"&persona="~contact.hs_persona.value~"&order=listing_name" %} {% for home in real_estate_listings %} ... {% endfor %} ``` 上記の例では、Budget max(予算上限)のコンタクトプロパティーを`contact.budget_max`で参照し、Persona(ペルソナ)を`contact.hs_persona.value`で参照しています。これは、Persona(ペルソナ)が[列挙型プロパティー](https://knowledge.hubspot.com/ja/properties/property-field-types-in-hubspot)であり、プロパティーの値を解析するには`.value`を追加する必要があるためです。一方、他のプロパティータイプには追加する必要はありません。 ## 2. モジュールをEメールに追加する 公開された状態のモジュールを、ドラッグ&ドロップEメールの本文に追加します。 * HubSpotアカウントで、[マーケティング]>[Eメール]に移動します。 * 作成した**Eメール**を選択します。 * 左のサイドバーにある[コンテンツ]で、[その他]をクリックします。プログラマブルEメールのモジュールをEメールの本文にドラッグします。 ![ドラッグ&ドロップEメールエディター - その他のモジュール](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/drag-and-drop-email-editor-more-modules.png) 特定のコンタクトプロパティーを基準にデータを絞り込むようにモジュールを設定した場合、Eメールのプレビューは空白になります。これは、Eメールツールが特定のコンタクトでEメールをプレビューするように設定されていないためです。 特定のコンタクトに対してEメールがどのように表示されるのかをプレビューで確認するには、次の手順に従います。 * 右上の[アクション]をクリックし、[プレビュー]を選択します。 ![Eメール アクション メニュー0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/email-actions-menu0.png) * 次の画面で、[特定のコンタクトとしてプレビュー]ドロップダウンメニューをクリックし、プレビュー対象の**コンタクト**を選択します。 ![特定のコンタクトとしてEメールをプレビュー](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/preview-email-as-specific-contact0.png) これで、受信者のコンタクトプロパティーを基に、その受信者に関連するデータのみが表示されるようになります。 ![Eメールプレビューのスクリーンショット](https://f.hubspotusercontent00.net/hubfs/53/preview%20window.png) Eメールテンプレートまたはモジュールに、HubLで解決できないカスタムコードが含まれている場合、その場所にプレースホルダーモジュールが表示されます。 ![プログラマブルEメールのプレースホルダーモジュール](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/placeholder-module-in-programmable-email.png) 設定した基準を満たすHubDBの行やカスタムオブジェクトのレコードがない場合に備え、常にフォールバックデータが送信されるようにすることが重要です。そうでない場合、Eメールが空白のまま送信される恐れがあります。 このベータ版を使用すると、既存のテンプレートで問題が発生する場合があります。Eメールを公開して送信する前に、全ての変更を十分に検証することが重要です。 ## HubDBに関するその他のチュートリアル * [HubDBを使って動的ページを作成する](https://developers.hubspot.com/docs) * [複数のHubDBテーブルを結合する方法](https://developers.hubspot.com/docs) * [HubDBを使用して動的なチーム メンバー ページを作成する方法](https://developers.hubspot.com/docs) * [HubDBを使ってマルチレベルの動的ページを作成する方法](https://developers.hubspot.com/docs) ## HubSpotアカデミー * [CMS HubでHubDBとカスタムオブジェクトを使用する](https://academy.hubspot.com/lessons/other_data_sources_hubdb_and_custom_objects) # GraphQLを使用して人材紹介会社のウェブサイトを構築(ベータ版) Source: https://developers.hubspot.jp/docs/cms/start-building/features/data-driven-content/graphql/build-a-recruiting-agency-using-graphql # GraphQLを使用してHubSpotデータを照会 Source: https://developers.hubspot.jp/docs/cms/start-building/features/data-driven-content/graphql/query-hubspot-data-using-graphql # ウェブサイトページでGraphQLクエリーからのデータを使用する Source: https://developers.hubspot.jp/docs/cms/start-building/features/data-driven-content/graphql/use-graphql-data-in-your-website-pages ウェブサイトページでGraphQLクエリーのデータを使用する方法について説明します。 'ウェブサイトページでGraphQLクエリーからのデータを使用する'; 'APAC JAPAN (ja) | Dev. Page | Use data from a GraphQL query in your website pages'; 'ウェブサイトページでGraphQLクエリーのデータを使用する方法について説明します。'; [GraphQL](https://graphql.org/)(英語)を使用すると、HubSpotのCRMおよびHubDBデータにアクセスするデータクエリーを作成して、データを基にパーソナライズした体験をウェブサイトの訪問者に提供できます。GraphQLの仕組みとクエリーの作成方法について詳しくは、[GraphQLを使ったHubSpotのデータ照会](/docs/cms/start-building/features/data-driven-content/graphql/query-hubspot-data-using-graphql)(英語)をご参照ください。 GraphQLの仕組みを十分に理解し、必要となるデータを指定するクエリーを作成している場合は、テーマでそのクエリーを使用することができます。 * 拡張子が.graphqlのファイルにクエリーを保存します。GraphQLクエリーファイルを整理し、相対パスで参照しやすくするため、テーマのルートにある別のディレクトリーにGraphQLクエリーファイルを保持することをお勧めします。 * [HubSpot CLIツールを使用](/docs/developer-tooling/local-development/hubspot-cli/reference#upload)するか、HubSpotアカウントで[デザインマネージャーを使用](https://knowledge.hubspot.com/ja/design-manager/a-quick-tour-of-the-design-manager#creating-new-templates-and-files)して、クエリーファイルを含むテーマをアップロードします。 GraphQLファイルをアップロードしたら、それらをモジュールまたはテンプレートにバインドできます。これにより、クエリーのデータをモジュールまたはテンプレートのレンダリングコンテキストで使用できるようになります。 ## データクエリーをテンプレートにバインドする コード内のデータを参照できるようにGraphQLクエリーをテンプレートにバインドするには、`dataQueryPath`テンプレートアノテーションを追加し、関連付けられているGraphQLクエリーファイルのパスを指定します。パスにファイルの拡張子「.graphql」を含める必要はありません。 例えば、ページ上でクエリーの結果をレンダリングするテンプレートにクエリーファイルをバインドする場合、テンプレートのコードの先頭には次のコードが含まれます。 ```html theme={null} <!-- templateType: page isAvailableForNewContent: true label: Contact profile page - GraphQL dataQueryPath: ../data-queries/contact_info --> ``` その後、HubLの`data_query`変数から、テンプレートとモジュールコードのデータクエリーへのレスポンスを参照できます。以下の例では、利用可能なロールを格納するHubL変数を定義します。 ```hubl theme={null} {% set contactData = data_query.data.CRM.contact %} ``` ## データクエリーをモジュールにバインドする デザインマネージャーを使用して、GraphQLクエリーをモジュールにバインドできます。 * HubSpotアカウントにて、[マーケティング]>[ファイルとテンプレート]>[デザインツール]の順に進みます。 * ファインダーの最上部で、[ファイル]ドロップダウンメニューをクリックし、[新規ファイル]を選択します。 * ダイアログボックスで、[今日は何を作成しますか?]ドロップダウンメニューをクリックし、[GraphQL]を選択します。 * [次へ]をクリックします。 * **ファイル名**を入力し、GraphQLファイルの位置を確認します。 * クエリーをコピーしてエディターに貼り付け、[変更を公開]をクリックします。 * クエリーで使用するモジュールに移動します。[リンク済みファイル]で[GraphQLファイル]ドロップダウンメニューをクリックし、クエリーを選択します。 ![bind-graphql-query-to-module-in-design-manager](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/bind-graphql-query-to-module-in-design-manager.png) その後、`data_query`変数を使用して、モジュールコードでクエリーのレスポンスを参照できます。以下の例では、コンタクトのコレクションの照会データを格納するHubL変数を定義します。 ```hubl theme={null} {% set contactCollectionData = module.data_query.data.CRM.contact_collection %} ``` ローカルで開発している場合は、モジュールのmeta.jsonファイルに`ata_query_path`パラメーターを含めて、GraphQLクエリーをモジュールに直接バインドすることをお勧めします。相対パスでクエリーを参照しやすくするため、テーマのルートにある「modules」ディレクトリー内でモジュールを定義するすることをお勧めします。 * HubSpot CLIツールを使用して、モジュールのディレクトリーを[fetch(取得)](/docs/developer-tooling/local-development/hubspot-cli/reference#fetch)します。 * `data_query_path`パラメーターを追加し、meta.jsonファイルの位置を基準としたGraphQLクエリーファイルのパスを指定します。例えば、クエリーファイルがテーマのルートにある「data-queries」ディレクトリーにある場合、meta.jsonファイルには以下のコードが含まれます。 ```json theme={null} // meta.json { "data_query_path": "../../data-queries/contactsQuery" } ``` * 更新したmeta.jsonファイルをHubSpotアカウントにアップロードします。 ## 動的コンテキストをクエリーに渡す 特定のリクエストに対して動的なコンテキストがクエリーに必要な場合(例えば、ページの1つにアクセスしているコンタクトのデータなど)、GraphQLクエリーに[HubL変数](/docs/cms/reference/hubl/variables)を渡すことができます。 * 最初に、クエリーの先頭にある単行コメントで`#`文字を使用して変数を定義します。GraphQLの変数名には規則として、接頭辞に`$`文字を付加します。例えば、コンタクトのIDの変数を定義するには、次のようになります。 `# $contact_id = "{{ request.contact.contact_vid || ''}}"` * 変数とその型をクエリー定義のパラメーターとして含めます。変数を「non-nullable」としたい場合は、型の後に`!`を追加します。上記の`$contact_id`変数をクエリーに渡して特定のコンタクトのコンタクト情報を表示する場合、クエリー定義は次のコードで始まります。 `query contact_info($contact_id: String!)` * 次に変数を参照し、クエリー内のいずれかのフィルターにその変数を引数として渡すことができます。以下のクエリーは、上記の`$contact_id`変数を使用して、ページにアクセスしているコンタクトの姓、名、Eメールを返します。 ```graphql theme={null} # label: "Contact info page" # description: "Show a contact's name and email" # $contact_id: "{{request.contact.contact_vid }}" query contact_info($contact_id: String!) { CRM { contact(uniqueIdentifier: "id", uniqueIdentifierValue: $contact_id) { _metadata { id } firstname lastname email } } } ``` * HubL変数の`request.query_dict`を使用して、URLクエリー文字列パラメーターを引数としてGraphQLクエリーに渡すこともできます。例えば、ページURLに「/contacts?location=Boston\&department=marketing」が含まれており、GraphQLクエリーでURLクエリーパラメーターを使用してコンタクトを所在地と部署に基づいて絞り込む場合、以下のGraphQLクエリーを使用できます。 ```graphql theme={null} # label: "Contact listing page with filters" # description: "Filter contacts by location and department" # $location: "{{ request.query_dict.location || ''}}" # $department: "{{ request.query_dict.department || ''}" query contact_listing_page($location: String!, department: $String) { CRM { contact_collection(filter: {location__eq: $location, department_eq: $department) { items { _metadata { id } firstname lastname email } } } } ``` ## クエリーデータを使用して動的ページを作成する CRMデータの特定のプロパティーに基づいてページを動的に生成するには、GraphQLクエリーでディレクティブを使用します。各動的ページは、クエリーでアノテーションを付けたディレクティブからメタデータを取得します。各ディレクティブに定義する値は、検索結果ですぐに特定できるように、そのページのコンテンツを一意に示す値にしてください。 このメタデータには次のディレクティブが含まれます。 | 動的ページのディレクティブ | 説明 | | - | - | | `web_page_canonical_url` | ページのcanonical URL。 | | `web_page_featured_image` | ページのキービジュアル。このビジュアルは、ページが共有されると表示されます。 | | `web_page_meta_description` | ページのメタディスクリプション。 | | `web_page_title` | ページのタイトル。 | CRMデータを照会する場合は、これらのディレクティブに加えて、クエリーで一意の識別子として使用するカスタムプロパティーを選択する必要があります。このプロパティーは`"hasUniqueValue": true`を使用して構成する必要があります。既存のプロパティーはこのパラメーターを含めるように更新できないため、まだ新しいプロパティーを作成していない場合には、[APIを使用して新しいプロパティーを作成する](/docs/api-reference/crm-properties-v3/guide)必要があります。 ### 動的ページのクエリーとモジュールを作成する 動的ページで使用できるクエリーを作成するには、次の手順に従います。 * クエリーの先頭に、クエリーの`label`と`description`を単行コメントとして含めます。次に、ページの動的スラッグに識別子を関連付けるために別の単行コメントを追加します。 * HubL変数`request.path_param_dict`により提供される`dynamic_slug`フィールドに、識別子の名前を設定します。 * 例えば、コンタクトのプロファイルページを動的に作成するクエリーを作成し、各コンタクトのプロファイルページのスラッグとして`profile_full_name`という名前のカスタムプロパティーを使用する場合、クエリー定義の上に以下のコメントを含めます。 `#$profile_full_name: {{ request.path_param_dict.dynamic_slug }}` * データソースに一致するIDフィールドをクエリーに含めます。 * `CRM`データを照会する場合は、`hs_object_id`フィールドを含めます。 * `HUBDB`テーブルのデータを照会する場合は、`hs_id`フィールドを含めます。 * 上の表の対応するメタデータディレクティブを使用してクエリーのフィールドにアノテーションを付け、各ディレクティブの前に`@`文字を付けます。例えば、コンタクト プロフィール ページのタイトル、メタディスクリプション、キービジュアルを設定するには、次の手順に従います。 ```graphql theme={null} # label: "Contact profile" # description: "Contact profile query for showing details for a single contact" # $profile_full_name: {{ request.path_param_dict.dynamic_slug }} query contact_profile_page($profile_full_name: String!) { CRM { contact( uniqueIdentifier: "profile_full_name" uniqueIdentifierValue: $profile_full_name ) { hs_object_id email profile_full_name @web_page_title profile_description @web_page_meta_description profile_picture_url @web_page_featured_image } } } ``` * 拡張子が.graphqlのファイルにクエリーを保存します。モジュールを設計する際には、HubL変数の`data_query`を使用してクエリーのデータにアクセスできます。 ### リストページのクエリーとモジュールを作成する 用途によっては、動的ページのルートURLでオブジェクトのレコードのリストを表示することがあります。上記の例では、「[https://website.com/profiles」に移動したウェブサイト訪問者に対し、全てのコンタクトプロファイルのリストが表示されます。リストページを設定するには、次の手順に従います。](https://website.com/profiles」に移動したウェブサイト訪問者に対し、全てのコンタクトプロファイルのリストが表示されます。リストページを設定するには、次の手順に従います。) * リストページに必要な関連オブジェクトレコードのコレクションを取得するため、別のGraphQLクエリーを作成します。 * クエリーの先頭に、ラベル、説明、およびクエリーに渡す必要のあるその他の変数を単行コメントとして追加します。 * 必要なフィルターをコレクションフィールドの引数として含めます。 ```graphql theme={null} # label: "Profile listing" # description: "Contact profile listing query for showing all profiles with a "hubspot.com" email address" query contact_listing { CRM { contact_collection(filter: { email__contains: "hubspot.com" }) { email profile_full_name } } } ``` * リストページのクエリーを.graphql拡張子を使用して保存し、上記の手順に従ってクエリーをリスト ページ モジュールにバインドします。 ### ウェブサイトページを作成する クエリーを作成し、関連モジュールにバインドしたら、リストページと詳細ページでモジュールを使用できます。 * リストページを作成するには、次の手順に従います。 * 新しいページを作成し、ドラッグ&ドロップエリアまたはフレキシブルカラムを含むページテンプレートを選択します。 * ページエディターで[設定]タブをクリックします。 * **ページタイトル**を入力します。 * [ページURL]に、動的ページで取得するコレクションに対応する**コンテンツスラッグ**を入力します。上記の例に従うと、コンテンツスラッグは`/profiles`になります。 * リストページの**メタディスクリプション**を入力し、[コンテンツ]タブをクリックしてエディターに戻ります。 * 左側のサイドバーの[追加]タブで、リスト ページ モジュールを見つけてページエディター内にドラッグします。 * ページのデザインが完了したら、右上の[公開]をクリックして公開します。 * 次に、詳細ページを設定します。 * [新しいページを作成し](https://knowledge.hubspot.com/ja/website-and-landing-pages/create-and-customize-pages)、ドラッグ&ドロップエリアまたはフレキシブルカラムを含むページテンプレートを選択します。 * ページエディターで[設定]タブをクリックします。 * **ページ**タイトルを入力します。 * [ページURL]の**鉛筆アイコン**をクリックして、ページのURLを編集します。リストページを表示する場所をURLに設定します。上記の例ではリストページは`/profiles`にあります。このため、ページの完全なコンテンツスラッグは`/profiles/[:dynamic-slug]`になります。 * [詳細オプション]をクリックし、[動的ページ]セクションまでスクロールします。 * [動的ページ]の下の[データソース]ドロップダウンメニューをクリックし、GraphQLクエリーの先頭に含まれているラベルに一致する**ラベル**を選択します。 * ページ上部にある[コンテンツ]タブをクリックして、エディターに戻ります。 * 左側のサイドバーの[追加]タブで、詳細モジュールを見つけてページエディター内にドラッグします。 * 準備ができたら、右上にある[公開]をクリックしてページを公開します。 ## 関連情報 GraphQLクエリーを作成、テスト、調整する方法について詳しくは、[GraphQLを使ったHubSpotのデータ照会](/docs/cms/start-building/features/data-driven-content/graphql/query-hubspot-data-using-graphql)(英語)をご参照ください。 # 多言語コンテンツ Source: https://developers.hubspot.jp/docs/cms/start-building/features/multi-language-content HubSpotでウェブサイトを構築する開発者は、多言語ウェブサイトを簡単にサポートできます。ビジネスの内容によっては、いくつかの開発作業が必要になる場合があります。 複数の地域にわたるビジネス、または複数の言語を使用する顧客とのビジネスに取り組む企業は、相手の言語で関係を構築できなければなりません。HubSpotのCMSでは、コンテンツの[各国語版](https://knowledge.hubspot.com/ja/website-and-landing-pages/create-pages-in-multiple-languages)を作成できるので、ユーザーは最適な言語でコンテンツを表示できるようになります。HubSpotでは多言語ウェブサイトの多くの機能が自動設定されますが、適切な多言語対応のためには開発者が実施しなければならない作業も少なくありません。 ## HubSpotによる自動処理 HubSpot上でページの多言語バリエーションが作成されると、次の処理が自動的に行われます。 * XMLサイトマップに、翻訳されるページの名前とURLを示す新しい項目が作成されます。 * ドラッグ&ドロップ機能を使用して作成したテンプレートのページ`<head>`の中に、コンテンツの言語が指定されます。 * 多言語コンテンツグループ内の適切な標準化書式に準拠した他のページが代替ページとして識別されて、重複コンテンツエラーが回避されます。さらに言語翻訳に関連する[ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)コードが特定されます。**`<link rel="alternate" hreflang="`**`[**lang_code**](https://developers.google.com/search/docs/specialty/international/localized-versions?visit_id=638932813313339584-46996478&rd=1#language-codes)" href="url_of_page" />` * 多言語ページ上のリンクが、同じ言語のリンク先ページにつながるように修正されます。これは、同じ言語で閲覧を続ける訪問者にとって役立つだけでなく、ページ翻訳の際にリンクを1つずつ更新する必要がなくなります。特定の要素では、クラスhs-skip-lang-url-requiredを要素に追加することにより、この修正を無効にすることができます。 ## HubSpotによって処理されない部分 次の事項はHubSpotのCMSによって自動的には処理されません。 * ページのコンテンツを翻訳する。 * GeoIPに基づいてユーザーを多言語版に自動的に振り向ける。 * ヘッダーまたはウェブサイトに言語切り替えモジュールを含める。 * コードファイルのページの言語を指定する。 * コードファイルについて、左から右ではなく、右から左に読む言語の翻訳についてコンテンツの方向属性を設定する。 ## ウェブサイトを多言語用に設定する ### 基本htmlの言語設定 言語宣言やコンテンツの言語方向属性はコードファイルに自動的には含められないため、コードテンプレートに手動で設定する必要があります。言語変数はHTMLの中で設定するか、[CMSボイラープレートテンプレート](https://github.com/HubSpot/cms-theme-boilerplate/blob/master/src/templates/layouts/base.html#L2)の中など、HubL経由で設定できます。 HubLを使用してこれらのプロパティーを設定すると、HubSpotのCMS内のページの言語設定に基づいて、ページのHTML内にデータを動的に反映させることができます。 ```hubl theme={null} <html lang="{{ html_lang }}" {{ html_lang_dir }}> ``` ### ページ編集可能モジュールを使用する テンプレートを使用したインスタンスのコンテンツをローカライズするには、可能な限り、ハードコードされたHTMLコンテンツではなく[モジュール](https://developers.hubspot.com/docs)を活用してください。ページ側で編集できるモジュールを作成することにより、制作担当者は、テンプレートコードを調整しなくても各ページに表示される特定のコンテンツを設定できます。テンプレートを共有するページの間で一貫したコンテンツを使用することも可能になります。 ### カスタムモジュールおよびテーマの中にフィールド翻訳を含める グローバルチームに対応するために、HubSpot上に作成したモジュールの翻訳を公開できます。 モジュール内のコンテンツを翻訳し、チームメンバーの言語で公開した後、ユーザーには、モジュールのフィールドラベルがアカウントの既定の言語で表示されます。翻訳対象のモジュールのコンテンツは自動的には翻訳されないため、自分で翻訳する必要があります。モジュールの翻訳は、サポートされているどの言語でも作成できます。 翻訳は、[ローカル開発ツール](https://developers.hubspot.com/docs#local-module-file-structure)を使用して、またはデザインマネージャーを通じて設定できます。 ### ローカル開発 ローカル開発ツールを使用して翻訳を設定するには、各モジュールフォルダーおよび各テーマフォルダーに`_locales`フォルダーを、さらに言語ロケールのサブフォルダーを格納し、それぞれにモジュールフィールドの翻訳を含めた`messages.json`ファイルを配置できます。 ![VS Codeのローカル環境でモジュール翻訳を編集する作業のスクリーンショット](https://newinboundblog.hubspot.com/hubfs/local%20module%20translations.png) ### デザインマネージャー [デザインマネージャー](/docs/cms/start-building/introduction/developer-environment/design-manager)を通じてフィールド翻訳を設定するには、画面右側から[翻訳を追加]オプションに進みます。ドロップダウンメニューからチームが使用する言語を選択します。ここから、各言語を選択し、言語別に各フィールドのラベル表記を設定できます。 ![デザインマネージャーのフィールド翻訳のスクリーンショット](https://newinboundblog.hubspot.com/hubfs/field_translations.gif) テーマフィールドの翻訳には、デザインマネージャー上にインターフェイスがないため、`.json`ファイルを使用して編集する必要があります。 ### 言語切り替え機能を含める 使用可能な翻訳をエンドユーザーが切り替えることができるように、ウェブサイトへの言語切り替えモジュールの追加を検討してください。 [言語切り替え機能を実装する方法の例](https://github.com/HubSpot/cms-theme-boilerplate/blob/09ad0b2c3bbc8400e64c5617268cb0504392e8e5/src/templates/partials/header.html#L26-L47)については、[CMSテーマボイラープレート](/docs/cms/start-building/building-blocks/themes/hubspot-cms-boilerplate)を参照してください。 ```hubl theme={null} {# Header navigation row one #} <div class="header__row-1"> {% if content.translated_content.values()|selectattr('published')|length || is_listing_view && group.translations %} <div class="header__language-switcher header--element"> <div class="header__language-switcher--label"> {% module 'language-switcher' path='@hubspot/language_switcher', label='Language switcher', display_mode='localized' %} <div class="header__language-switcher--label-current"> {{ locale_name(locale) }}</div> </div> </div> {% endif %} <div class="header__search header--element"> {% module 'site_search' path='@hubspot/search_input', label='Search', field_label='Search', placeholder='' %} </div> </div> {# End header navigation row one #} ``` ### 多言語ウェブサイトへの検索の実装 [コンテンツ検索](/docs/cms/start-building/building-blocks/modules/content-search)は、貴社のウェブサイト上のさまざまな言語によるコンテンツに対応しています。[/contentsearch/v2/search](/docs/api-reference/legacy/site-search-v2/search-Content)(英語)の利用時に言語フィルターパラメーターを使用することで、指定した言語のみが返されます。これにより、ウェブサイト上で各言語での検索や、複数言語での横断検索を実現できます。 ### グローバルパーシャルとモジュールを使用する ヘッダー、フッター、サイドバーのテキストを編集可能にするには、モジュールフィールドを使用します。これらのモジュールをグローバルパーシャルの中に配置します。制作担当者にとっては編集が簡単になるだけでなく、グローバルパーシャルによって[言語ごとの設定](https://knowledge.hubspot.com/ja/website-and-landing-pages/create-pages-in-multiple-languages)がサポートされます。 ![ページエディターにヘッダーパーシャルが表示されているスクリーンショット](https://newinboundblog.hubspot.com/hubfs/edit-multilanguage-global-content.png) # サーバーレス関数を使ってみる Source: https://developers.hubspot.jp/docs/cms/start-building/features/serverless-functions/getting-started-with-serverless-functions HubSpotのCMS上で初めてのサーバーレス関数を作成し、レスポンスを受け取ります。 'HubSpotのCMS上で初めてのサーバーレス関数を作成し、レスポンスを受け取ります。'; サーバーレス関数を使用すると、サーバーサイドでHubSpotを介してJavaScriptを実行することができ、JavaScriptがクライアントに公開されるのを防ぐことができます。これは、APIキーやその他の資格情報などのセンシティブ情報を含むAPIリクエストを行う場合に特に重要です。関数が呼び出されると、HubSpotのバックエンドで関数が実行されます。つまり、CMSウェブサイトへのリクエストを行うために、バックエンドサーバーを用意する必要はありません。HubSpotのサーバーレス関数は[NodeJS](https://nodejs.org/en/about/)ランタイムを使用します。 このガイドでは、サードパーティーのサービスから見積もりを取得し、ウェブサイトページ上に表示する、シンプルなサーバーレス関数を作成する方法について説明します。サーバーレス関数をビルドしてアカウントにデプロイするには、HubSpot開発者プロジェクトを使用します。 以前ドキュメントで紹介したサーバーレス関数をデザインマネージャーにアップロードする方法は 現在もサポートされていますが、開発者プロジェクトの使用をお勧めします。 開発者プロジェクトには認証を容易にするための非公開アプリが含まれており、 サードパーティーの依存関係も使用できます。このガイドの内容は、 最新の方法を使用するように更新されています。デザインマネージャーベースのサーバーレス関数のリファレンス情報については、 [リファレンス セクション](/docs/cms/reference/serverless-functions/serverless-functions-in-projects)をご参照ください。 サーバーレス関数の概要については、[サーバーレス関数の概要](https://developers.hubspot.com/docs)をご確認ください。また、[HubSpot DevelopersのYouTubeチャンネル](https://www.youtube.com/watch?v=N0arXQOyfXo)では、CMSプロジェクトでのサーバーレス関数の使用方法について説明しています。 ## 前提条件 このチュートリアルを開始する前に、以下のものが必要です。 * **Content Hub** Enterpriseのアカウント、または[CMS開発者サンドボックスアカウント](https://app.hubspot.com/signup-hubspot/cms-developers)。 * [HubSpot CLI](/docs/developer-tooling/local-development/hubspot-cli/reference#install-the-cli)(最新バージョンを推奨)をインストールし、使用しているアカウントで認証する必要があります。どのアカウントが認証されているかを確認するには、`hs accounts list`を実行します。詳しくは[ローカル開発を開始する](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)をご参照ください。 ## 1. プロジェクトをローカルで作成する まず、プロジェクトをローカルで作成し、ビルドしてアカウントにデプロイできるようにします。 * ターミナルで、`cd`コマンドを使用してプロジェクトを保存するディレクトリーに移動します。 ```shell theme={null} cd Documents/Dev/serverless-function-project ``` * `hs project create`を実行して新しいプロジェクトを作成します。 ```shell theme={null} hs project create ``` * ターミナルのプロンプトに従ってプロジェクトを作成します。テンプレートには\*\*空のプロジェクトを作成(テンプレートなし)\*\*を選択します。 ![テンプレートなしで空のプロジェクトを作成するためのターミナルプロンプトオプション](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/terminal-select-empty-project.png) * `cd`コマンドを使用して、新しいプロジェクトディレクトリーに移動します。プロジェクトに「my new project」という名前を付けた場合は以下のようになります。 ```shell theme={null} cd my-new-project ``` ## 2. プロジェクトにサーバーレス関数を追加する プロジェクトが作成されたら、[VS Code](https://developers.hubspot.com/docs)などの任意のエディターで開きます。空の`src`ディレクトリーと`hsproject.json`構成ファイルと共に、プロジェクトディレクトリーがHubSpotで自動的に作成されます。プロジェクトにサーバーレス関数を追加するには、`src`ディレクトリー内に`app`ディレクトリーを作成し、その中に以下のディレクトリーとファイルを追加します。 * `app/app.json`:アプリ構成ファイル。 * `app/app.functions`:サーバーレス関数ディレクトリー。`.functions`で終わる任意の名前を付けることができます。 * `app/app.functions/function.js`:関数が呼び出されたときに実行されるJavaScriptコード。 * `app/app.functions/serverless.json`:サーバーレス関数の構成ファイル。 * `app/app.functions/package.json`:必要な依存関係が含まれています。 ![上記のファイルとフォルダーをプロジェクトディレクトリーに追加した後のプロジェクト構造](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/project-serverless-functions-structure.png) * 以下のサンプルコードをローカルの`app.json`ファイル、`function.js`ファイル、`serverless.json`ファイル、`package.json`ファイルにそれぞれコピーします。各`.json`コードブロックの下には、フィールド定義を含むテーブルもあります。 **app.json** ```json theme={null} { "name": "Serverless function app", "description": "This app runs a serverless function to fetch a quote using the Zen Quotes API.", "scopes": ["crm.objects.contacts.read", "crm.objects.contacts.write"], "uid": "serverless-function-app", "public": false } ``` | フィールド | 型 | 説明 | | - | - | - | | `name` | 文字列 | HubSpotのUIに表示されるアプリの名前。 | | `description` | 文字列 | HubSpotのUIに表示されるアプリの説明。 | | `scopes` | 配列 | 非公開アプリのアクセストークンを使用してリクエストを認証するためにアプリがアクセスできるスコープ。上記の2つのスコープは、最低限必要なスコープです。このチュートリアルでは、リクエストに非公開アプリアクセストークンを使用する必要がないため、追加のスコープは追加しません。 | | `uid` | 文字列 | アプリ固有のID。任意の文字列を指定できますが、アプリを識別できる意味のある文字列である必要があります。HubSpotではこのIDでアプリが識別されるため、ログなどの履歴データやステートフルデータを削除することなく、アプリの`name`をローカルまたはHubSpotで変更できます。 | | `public` | 文字列 | 非公開アプリの場合は`false`に設定します。 | **function.js** この関数は、[Zen Quotes API](https://zenquotes.io/)からランダムに見積もりを取得します。 ```js theme={null} const axios = require("axios"); exports.main = async context => { try { // Make GET request to the ZenQuotes API const response = await axios.get("https://zenquotes.io/api/random"); // Extract the quote data (first item in the array) const quoteData = response.data[0]; // Log the quote and author to console console.log(`"${quoteData.q}" — ${quoteData.a}`); // Return a properly formatted response with status code and body return { statusCode: 200, body: quoteData, headers: { "Content-Type": "application/json", }, }; } catch (error) { // Handle any errors that occur during the request console.error("Error fetching quote:", error.message); // Return an error response return { statusCode: 500, body: { error: "Failed to fetch quote" }, headers: { "Content-Type": "application/json", }, }; } }; ``` **serverless.json** ```js theme={null} { "appFunctions": { "quote-function": { "file": "function.js", "secrets": [], "endpoint": { "path": "fetch-quote", "method": ["GET"] } } } } ``` | フィールド | 型 | 説明 | | - | - | - | | `quote-function` | オブジェクト | サーバーレス関数の構成の詳細を格納するオブジェクト。このオブジェクトには任意の名前を付けることができますが、`serverless.json`ファイルの`appFunctions`フィールドで参照する関連フィールド名と一致する必要があります。 | | `file` | 文字列 | 実行するサーバーレス関数コードが含まれているJavaScriptファイルの名前。 | | `secrets` | 配列 | 関数がリクエストの認証に使用するシークレットの名前を含む配列。このチュートリアルでは、シークレットは必要ありません。 | | `endpoint` | オブジェクト | 関数を呼び出すためにヒットできるエンドポイントに関する詳細を含むオブジェクト。`path`フィールドは`/hs/serverless/<path>`エンドポイントパスの最後の値を定義し、`method`フィールドはリクエストのメソッドを定義します。 | **package.json** ```json theme={null} { "name": "example-serverless-function", "version": "0.1.0", "author": "HubSpot", "license": "MIT", "dependencies": { "@hubspot/api-client": "^7.0.1", "axios": "^0.27.2" } } ``` | フィールド | 型 | 説明 | | - | - | - | | `dependencies` | オブジェクト | サーバーレス関数に関する依存関係が含まれる。 | * 上記のコードを追加した後、変更を保存します。 ## 3. HubSpotにプロジェクトをアップロードする 変更を保存したら、プロジェクトをHubSpotにアップロードして、アプリとサーバーレス関数をビルドしてデプロイできます。 * ターミナルで`hs project upload`を実行します。 ```shell theme={null} hs project upload ``` * アカウントにプロジェクトを作成することを確認します。初回作成後に再度確認する必要はありません。ターミナルには、ビルドとデプロイのステップの進行状況が表示されます。 * アップロードが完了したら、`hs project open`を実行してプロジェクトをHubSpotで表示します。 ```shell theme={null} hs project open ``` HubSpotでは、プロジェクトの詳細の表示、ログやサーバーレス関数ログのビルドとデプロイ、プロジェクトやアプリの管理などを行うことができます。詳しくは[OpenAIのAPIプラットフォームでのプロジェクト管理](https://developers.hubspot.com/docs#view-the-project-in-hubspot)についてをご確認ください。 ## 4. 関数のテストを行う サーバーレス関数がデプロイされたら、公開URLをクリックして呼び出すことができます。開発者プロジェクトを使用して作成されたサーバーレス関数の公開URL構造は、`https://<domain>/hs/serverless/<endpoint-path-from-config>`のようになります。 * `<domain>`:アカウントに接続されている任意のドメインを使用できます。例えば、website.comとsubdomain.brand.comがアカウントに接続されている場合は、`https://website.com/hs/serverless/<path>`または`https://subdomain.brand.com/hs/serverless/<path>`を使用して関数を呼び出すことができます。 * `<endpoint-path-from-config>`:`serverless.json`の`path`フィールドの値。 このチュートリアルで提供されているサンプルコードに基づくと、関数を呼び出すための公開URLは`https://<domain>/hs/serverless/fetch-quote`になります。 関数を呼び出すURLのエンドポイントパスは、 アプリまたはプロジェクトのスコープではなくグローバルです。複数のアプリまたはプロジェクトに同一のエンドポイントパスがある場合は、 最後にデプロイされたエンドポイント関数が 優先されます。 関数の出力を表示するには、ブラウザーで該当URLに移動し、ドメインをHubSpotがホスティングするドメインのいずれかに置き換えます。カスタムドメインを接続していない場合は、HubSpotが提供するデフォルトのドメインである`<hubId>.hs-sites.com`(例:`123456.hs-sites.com`)を使用できます。ブラウザーには、Zen Quotes APIによって返されたデータが表示されます。 ![ブラウザーに表示されるZen Quotes APIによって返されたデータ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/zen-quotes-api-return.png) ## 5. ウェブサイトページから関数を呼び出す サーバーレス関数を作成し、この関数でデータが返されることを確認したら、この関数をページに実装して、返されるデータを現実に即したコンテキストで確認しましょう。このチュートリアルでは、関数を実行して応答データを表示するためのカスタムJavaScriptとHTMLを含むページテンプレートを作成します。 まず、新規ページテンプレートを作成します。 * ローカル環境で、ページテンプレートを格納する新しいディレクトリーを作成します。このチュートリアルでは、`hs project create`によって作成されたプロジェクトディレクトリーの外にこのディレクトリーを作成します。 * ターミナルで、`cd`コマンドを使用してそのディレクトリーに移動します。 ```shell theme={null} cd Documents/Dev/serverless-page ``` * `hs create template "serverless-template"`を実行して、`serverless-template`という名前の新しいテンプレートを作成します。 ```shell theme={null} hs create template "serverless-template" ``` * テンプレートタイプとして**ページ**を選択します。 * 新しく作成したページテンプレートのファイルをエディターで開き、ボイラープレートコードを以下のコードに置き換えます。関数エンドポイントURL(`fetch('http://<domain>/hs/serverless/fetch-quote')`)の`<domain>`は、HubSpotアカウントに接続されているドメインに置き換えてください。 ```html theme={null} <!-- templateType: page label: Serverless function example template isAvailableForNewContent: true --> <!doctype html> <html> <head> <meta charset="utf-8" /> <title>{{ content.html_title }} {{ standard_header_includes }} {% module "page_template_logo" path="@hubspot/logo" label="Logo" %}

        Get quote

        Click the button to fetch and display a quote.

        {{ standard_footer_includes }} ``` * ファイルを保存し、`hs upload`を実行してHubSpotにアップロードします。ターミナルのプロンプトに従って、ローカルのソースとアップロード先のパスを選択します。このチュートリアルでは、各プロンプトで**Enter**キーを押してデフォルトのパスを使用します。 次に、HubSpotでテンプレートから新しいページを作成します。 * `hs open website-pages`を実行して、HubSpotアカウントのウェブサイトページのダッシュボードに移動します。 ```shell theme={null} hs open website-pages ``` `hs open --list` を実行して、開く操作に使用できるショートカットの完全なリストを確認してください。 * ブラウザーで、右上の[作成]をクリックして新しいページを作成します。 * ダイアログボックスで、使用する**ドメイン**を選択し、次に**ページ名**を割り当てます。クロスオリジン(CORS)エラーを回避するには、ページのドメインがサーバーレス関数の呼び出しに使用しているドメインに一致する必要があります。ドロップダウンメニューからそのドメインを選択するか、ページテンプレートのコード(`fetch('http:///hs/serverless/fetch-quote')`)でエンドポイントURLを更新して、このステップで選択したドメインを使用することができます。 * [ページを作成]をクリックします。 * テンプレート選択画面で、新しいテンプレートを検索します。ラベルまたはファイル名を使用してテンプレートを検索できます(例:「サーバーレス関数サンプルページ」)。テンプレートはテーマの一部ではないため、[他のテンプレート]に表示されます。 ![新しく作成されたページテンプレートを表示する[他のテンプレート]セクション](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/select-new-template.png) * [テンプレートを選択]をクリックします。 * ページエディターで、右上の[プレビュー]をクリックします。 ![ページエディターのプレビューボタン](https://www.hubspot.jp/hubfs/page-preview.png) * [新しいタブで開く]をクリックします。 新しいタブで、ボタンをクリックして見積もりを取得して表示できるようになりました。 ![Zen Quotes APIから見積もりを取得して表示するサンプルボタンのデモ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/quote-button-demonstration.gif) ## 次のステップ サードパーティーAPIとやりとりするサーバーレス関数の作成と実装が完了しました。次は、以下に挙げる方法でサーバーレス関数の使用を継続的に積み上げていきます。 * HubSpot APIまたはその他のサードパーティー認証APIを呼び出すための[リクエストに認証を含める](/docs/cms/reference/serverless-functions/serverless-functions-in-projects#authentication)。 * ボタンとJavaScriptコードをページテンプレートにハードコーディングするのではなく、モジュールに実装する。これにより、移植性の高いオプションが提供され、モジュールが追加されている任意のページから関数を呼び出すことができます。このためには、モジュールを作成し、HTMLをモジュールの`module.html`ファイルに追加してJavaScriptを`module.js`ファイルに追加します。 **module.html** ```html theme={null}

        Get quote

        Click the button to fetch and display a quote.

        ``` **module.js** ```js theme={null} const dataButton = document.getElementById("data-button"); const dataContainer = document.getElementById("data-container"); dataButton.addEventListener("click", function (e) { console.log("Button clicked!"); // Show loading state dataContainer.innerText = "Loading..."; fetch("http://meowmix-2272014.hs-sites.com/hs/serverless/fetch-quote") .then(response => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } // Parse the JSON response return response.json(); }) .then(data => { console.log("Raw data received:", data); // Clear container dataContainer.innerText = ""; // Create the paragraph element const newDataElement = document.createElement("p"); newDataElement.innerText = `"${data.q}" — ${data.a}`; dataContainer.appendChild(newDataElement); }); }); ``` # はじめに:概要 Source: https://developers.hubspot.jp/docs/cms/start-building/features/serverless-functions/overview HubSpotで開発を始める方法について学びましょう。 初めてHubSpotの開発者になった人も、スキルを伸ばそうとしている開発者も、このセクションのガイドを参考にして使い始めることができます。ここでは、利用可能なさまざまな開発ルートについて、また目標の達成に必要な具体的なツールやアカウントについて説明します。 ## 統合プラットフォームの利点 まず、HubSpotが開発者にとって強力なプラットフォームであると言える理由を見ていきましょう。 全てのHubSpotアカウントの基盤は[CRM](/docs/guides/crm/understanding-the-crm) (顧客関係管理)プラットフォーム、つまりさまざまなビジネス関係とプロセスから成るデータベースです。HubSpotには、外部の開発者やパートナーがCRMと連携するためのさまざまなルートが備わっているので、HubSpotエンドユーザー向けにより多くの価値を生み出すことができます。次に例を示します。 * HubSpotのAPIとの連携機能/拡張機能を作成して、HubSpotと外部プラットフォームの間でデータを同期します。 * HubSpot CMS(コンテンツ管理システム)を使用してカスタムウェブサイトを作成します。コンテンツ管理ツールのスイート全体に加えて、CMSは完全にCRMと連携します。これにより、キャンペーンの開始、リード(見込み客)の獲得、顧客との継続的なコミュニケーションを管理しやすくなります。 * UI拡張機能を使用してCRMをカスタマイズする。開発者はReactを使用して、HubSpotとシームレスに連携する柔軟なカスタムカードを作成できます。 次のセクションでは、HubSpot開発者が利用できるツールの概要について説明します。その後、ルートを選んでHubSpot開発者ジャーニーを進んで行くことができます。 ## 1.作成に役立つツールをインストールする HubSpot開発者向けに幅広いツールが用意されています。開発者の具体的な目標に応じて、必要なツールの組み合わせが異なります。 * \*\*HubSpot CLI:\*\*多くの開発タスクでは、ローカル開発用のHubSpot CLIをインストールすることが効果的な出発点となります。UI拡張機能とCMSアセットを作成するときにはCLIを使用し、シークレット、HubDBテーブル、およびカスタム オブジェクト データをアカウントから作成/管理するときにもCLIを使用できます。[Node.jsが](https://nodejs.org/en/)インストールされている必要があります(必須バージョンは18以上、推奨されるバージョンはLTSです)。CLIをグローバルにインストールするには、次のコマンドを実行します。 ```shell theme={null} npm i -g @hubspot/cli ``` * **Visual Studioコード:**[Visual Studio Code](https://code.visualstudio.com/)をインストールすると、[HubSpot Visual Studio Code拡張機能](https://developers.hubspot.com/docs)を利用して開発ワークフローを一元化できます。 * **クライアントライブラリー**: HubSpotには、[Node](https://github.com/HubSpot/hubspot-api-nodejs)、[PHP](https://github.com/HubSpot/hubspot-api-php)、[Ruby](https://github.com/HubSpot/hubspot-api-ruby)、および[Python](https://github.com/HubSpot/hubspot-api-python)用のクライアントライブラリーが備わっています。 * **Postman:**[Postman](https://www.postman.com/)を使用して、[HubSpotのPostmanコレクション](https://www.postman.com/hubspot)にアクセスします。HubSpotのAPIドキュメント全体にわたり、コレクションを使って呼び出しを実行するためのボタンがあります。 ![run-in-postman-current-docs-site](https://www.hubspot.com/hubfs/run-in-postman-current-docs-site.png) [HubSpotの開発者ツール](/docs/developer-tooling/overview)について詳細をご覧ください。 ## 2. 何を作成するかを決める HubSpotで開発するためのルートは画一的ではありません。幅広いニーズに対応できる柔軟なプラットフォームです。 以下に挙げる4つの広範なカテゴリーのいずれかで、大部分のニーズが満たされるでしょう。現時点で最も該当するものを1つ選んでください。簡単な紹介と、すぐに開始できるステップが説明されます。また、ジョブに最適なツールについて理解し、[特定の種類のHubSpotアカウント](/docs/getting-started/account-types)が必要かどうか確認することもできます。 * [APIを使用して連携を作成する](https://developers.hubspot.com#use-apis-and-build-integrations) * [マーケットプレイス向けのアプリを作成する](https://developers.hubspot.com#build-for-the-app-marketplace) * [HubSpot UIをカスタマイズする](https://developers.hubspot.com#customize-the-hubspot-ui) * [カスタムウェブサイトを作成する](https://developers.hubspot.com#build-custom-websites) ## 3. 仲間に加わりましょう 既にHubSpotで作成を行っている仲間とつながりましょう。質問をしたり、知識を共有したり、コミュニティーを作ったりして、やがて友達ができるかもしれません。 * [開発者Slack](https://developers.hubspot.com/community) * [開発者フォーラム](https://community.hubspot.com/t5/HubSpot-Developers/ct-p/developers) * [開発者アドボカシーGitHub](https://github.com/hubspotdev) ## 4. 自分に合った方法で学習を続けます 始める準備が整ったら、より深く掘り下げるのに役立つ多くのリソースが用意されています。ご希望の学習スタイルに応じて、詳細なガイド、詳しい参考資料、または[HubSpotアカデミーコース](https://academy.hubspot.com/courses)にアクセスできます。 # ファイルマネージャー Source: https://developers.hubspot.jp/docs/cms/start-building/features/storage/file-manager HubSpotのCMSが採用しているコンテンツ配信ネットワーク上に画像をホスティングし、制作担当者がコンテンツに簡単にファイルを追加できるように、HubSpotファイルマネージャーを活用します。 ファイルの格納や配信には、デベロッパー ファイル システムに加えて、HubSpotのファイルマネージャーも使用できます。ファイルマネージャー内のファイルは、HubSpotのグローバルコンテンツ配信ネットワーク(CDN)経由で配信されます。 既定では、ファイルマネージャーにアップロードした全てのファイルは公開アクセスで、検索エンジンによってインデックス登録される場合があります。ファイルをアップロードした後、[ファイルの可視性の設定を管理](https://knowledge.hubspot.com/files/organize-edit-and-delete-files#edit-your-file-s-visibility-settings)して、ファイルのインデックス登録またはファイルへのアクセスを防止することができます。 ファイルマネージャーは、上部ナビゲーションメニューの[[マーケティング]>[ファイルとテンプレート]>[ファイル]](https://app.hubspot.com/l/files/)にあります。 ![](https://www.hubspot.com/hubfs/image-png-May-24-2023-05-49-31-9738-AM.png) ## ファイルマネージャーの用途 一般的に、ファイルマネージャーはHubSpot上のファイル選択機能に使用するファイルに使用します。例えば、画像モジュールまたはリッチ テキスト モジュール内で画像を選択する場合などです。 ファイルマネージャーで使用するファイルをアップロードする前に: * 特定の[ファイルのサイズとタイプの制限](https://knowledge.hubspot.com/files/supported-file-types#files-tool)が適用されます。ファイルマネージャーに[ファイルをアップロードする前に考慮すべき事項](https://knowledge.hubspot.com/files/upload-files-to-use-in-your-hubspot-content#before-you-get-started)について詳細をご確認ください。 * ファイルマネージャーにアップロードされたファイルは、軽微な画像ファイル編集を除いて、HubSpotアプリ内では編集できません。 * 編集の必要があるテキストベースのファイルは、デザインマネージャーに保存してください。 * ファイルマネージャーにアップロードされたテキストベースのファイルが軽量化または変更されることはありません。HubSpotの[JavaScript軽量化](https://developers.hubspot.com/docs#javascript-minification)と[CSSの軽量化および結合](https://developers.hubspot.com/docs)を活用する場合は、ファイルをデザインマネージャーに保存します。 ## ファイルマネージャーへのファイルのアップロード ファイルマネージャーにファイルをアップロードする方法は以下のとおりです。 * HubSpotに直接ファイルをアップロードするには、[ファイルマネージャーにファイルをアップロードする](https://knowledge.hubspot.com/files/upload-files-to-use-in-your-hubspot-content)方法をご確認ください。 * [CMS CLI](/docs/developer-tooling/local-development/hubspot-cli/install-the-cli)経由でファイルをアップロードするには、`hs upload filemanager`コマンドを使用します。 * APIを使用してファイルをアップロードするには、[HubSpotの\_\_新規ファイルアップロードAPI](https://developers.hubspot.com/docs#post-%2Ffiles%2Fv3%2Ffiles)をご確認ください。 ファイルマネージャーにファイルをアップロードしたら、[ファイルとファイルの詳細を整理および管理する方法](https://knowledge.hubspot.com/files/organize-edit-and-delete-files)をご確認ください。 ## ファイルマネージャーのファイルの使用 ファイルマネージャーにアップロードされたファイルは、以下の方法でアクセスできます。 * ファイルマネージャーにアップロードされたファイルは、ページ上のリッチ テキスト モジュールや画像モジュールの中など、HubSpotおよびHubSpotのCMS全体のさまざまなファイル選択機能から利用できます。 * ファイルマネージャーにアップロードされたファイルは、直接ダウンロードリンク経由でアクセスできます。[ファイルの直接ダウンロードリンクを取得する](https://knowledge.hubspot.com/files/provide-a-direct-download-link-to-a-file-hosted-on-the-files-tool)方法をご確認ください。 ## 最適化 ファイルマネージャーのファイルは、自動的に[キャッシュ処理](https://developers.hubspot.com/docs#browser-and-server-caching)、[圧縮、サイズ変更されて効率的に配信](https://developers.hubspot.com/docs#image-compression-optimization-and-automatic-image-resizing)されます。また、[クロスオリジンリクエスト(CORS)低減のため、ホスティングされた貴社の全ドメインを通じてアクセス可能](https://developers.hubspot.com/docs#domain-rewriting)です。HubSpotのCMSに関する[CDN、セキュリティー、パフォーマンス](https://developers.hubspot.com/docs)の詳細をご覧ください。 ## ファイルマネージャーからのHTMLファイルとJSファイルの配信 ファイルマネージャーにアップロードされ、既定のHubSpotドメイン(`f.hubspotusercontentXX.net`など)を使用して配信されるHTMLファイルとJavaScriptファイルでは、`text/plain`のコンテンツタイプが使用されます。つまり、ウェブブラウザーによるコードのレンダリングや評価は行われません。 この場所のHTMLファイルにユーザーが直接アクセスした場合、HTMLコード自体がユーザーに表示されます。この状態を回避するために、このようなファイルはHubSpotの既定のドメインではなく、接続されたドメインの1つを使用して配信する必要があります。 # CMS API | HubDB Source: https://developers.hubspot.jp/docs/cms/start-building/features/storage/hubdb HubDBエンドポイントを使用して、HubDBデータテーブル内のデータを取得および管理することができます。 HubDBは、スプレッドシートと同じように、テーブル(表)の行、列、セルでデータを表現するリレーショナル データ ストアです。HubDBテーブルを[HubSpotアカウント内](https://developers.hubspot.com/docs#creating-your-first-table)で追加したり変更したりできますが、ここに記載されているAPIエンドポイントを使用することもできます。ウェブサイトや[プログラマブルEメール](/docs/cms/start-building/features/data-driven-content/emails-with-programmable-content)でHubDBテーブルのデータを使用する方法については、[HubSpotのCMS開発者向けドキュメント](https://developers.hubspot.com/docs)を参照してください。 HubSpotウェブサイトページと同様に、HubDBテーブルは`draft`バージョンと`published`バージョンをサポートしています。これにより、公開中のページに影響を与えずに、テスト用または手動による承認プロセス用にテーブル内のデータを更新することができます。[下書きテーブルと公開テーブル](#draft-vs-live-tables)について詳細をご確認ください。 [公開アクセスを許可する](https://knowledge.hubspot.com/website-and-landing-pages/create-and-hubdb-tables#manage-table-settings-cms-hub-professional-and-enterprise-only)ようにテーブルが設定されている場合、クエリーパラメーター`portalId`を介してHubSpotアカウントIDを指定すると、認証なしでテーブルと行の公開バージョンにアクセスできます。 HubDB APIのv2から移行しようとしている場合は、[最新の(v3)APIの変更点](#changes-in-v3)について詳しくご確認ください。 **注:**`GET`をサポートするエンドポイントは`CORS`もサポートしていますから、JavaScriptとアカウントIDを使用してクライアントサイドでテーブル内のデータにアクセスできます。その他の方法および「Get all tables」エンドポイントでは認証が必要であり、`CORS`はサポートされていません。 ## レート制限 HubDBのAPIリクエストには、リクエストの種類に応じて異なるレート制限が適用されます。 * 認証を必要としない`GET`リクエスト(クライアントサイドのJavaScriptリクエストを含む)は、1秒あたり10件に限定されます。これらのリクエストは1日あたりの上限には計上されません。 * [認証を使用](https://developers.hubspot.com/docs)するその他全てのリクエストには、[標準的な制限](/docs/api-reference/overview)が適用されます。 ## 下書きテーブルと公開テーブル HubDBテーブルには下書きバージョンと公開バージョンの両方があります。公開バージョンは非公開にすることもできます。非公開にしてテーブル内のデータを更新すれば、他の公開ページに影響を与えずに、ページのプレビューやテスト、手動による承認プロセスを行うことができます。 このAPIでは、テーブルの下書きバージョンと公開バージョンに別々のエンドポイントが指定されています。例えば、以下のエンドポイントに`GET`リクエストを送信することで、テーブルの公開バージョンを取得できます。 `/cms/v3/hubdb/tables/{tableIdOrName}` また、下書きはできているが未公開になっているコンテンツを取得するには、URLの末尾に`/draft`を追加します。 `/cms/v3/hubdb/tables/{tableIdOrName}/draft` 下書きデータをレビューした後、HubSpotでプッシュできます。`/push-live`エンドポイントを使用することもできます。また、エンドポイント`/reset`を介して下書きデータを破棄することもでき、こうすれば中断なしでデータを現在の公開バージョンに戻すことができます。 ## HubDBテーブルを作成する HubDBテーブルを作成するには、`POST`リクエストを`/cms/v3/hubdb/tables`に送信します。 リクエスト本文で、次の必須フィールドを指定します。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `name` | 文字列 | テーブルの内部名。テーブルの作成後に、この「name」を変更することはできません。「name」には半角の英小文字、数字、アンダースコアのみ含めることができますが、数字で始めることはできません。 | `"name": "my_table"` | | `label` | 文字列 | ユーザーがHubSpotでテーブルを編集するときに表示される、テーブルのラベル。 | `"label":"My table"` | さらに、次の任意のフィールドを指定できます。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `useForPages` | ブール値 | テーブルを[動的ページの作成](#configuring-hubdb-tables-for-dynamic-pages)に使用可能にするかどうかを指定します。 | `"useForPages": false` | | `allowPublicAPIAccess` | ブール値 | 承認なしでテーブルを読み取り可能にするかどうかを指定します。 | `"allowPublicApiAccess": false` | | `allowChildTables` | ブール値 | テーブルの子テーブルを作成できるかどうかを指定します。 | `"allowChildTables": false` | | `enableChildTablePages` | ブール値 | 子テーブルを使用して[マルチレベルの動的ページ](https://developers.hubspot.com/docs)を作成するかどうかを指定します。 | `"enableChildTablePages": false` | | `columns` | オブジェクト | テーブルの列。列プロパティーの詳細については、「[テーブル列を追加する](#add-table-columns)」のセクションをご覧ください。 | `See "Add table columns" section below` | 列を追加せずにテーブルを作成するためのリクエストは、次のような内容になります。 ```json theme={null} // Example request { "name": "test_table", "label": "Test Table", "useForPages": false, "allowPublicApiAccess": false, "allowChildTables": true, "enableChildTablePages": false, "columns": [] } ``` ### テーブル列の追加 HubDBテーブルの各列は、次のプロパティーを使用して定義可能です。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `name` | 文字列 | (必須)列の内部名。列の作成後にこれを変更することはできません。 | `"name": "row_name"` | | `label` | 文字列 | 任意。ユーザーがHubSpotで列を編集するときに表示される、列のラベル。 | `"label": "Row label"` | | `type` | 文字列 | 列のデータタイプ。次のいずれかにする必要があります。
        • `TEXT`:テキストフィールド。
        • `RICHTEXT`:基本的なHTML書式設定をサポートするテキストフィールド。HTMLがHubSpotで編集可能になるかどうかを左右する可能性があるため、未加工のHTMLには推奨されません。HubSpotでコードを編集すると、コードがレンダリングされる方法にも影響が及ぶ可能性があります。
        • `NUMBER`:数値フィールド。
        • `BOOLEAN`:HubSpotでチェックボックスとして表示されます。チェックボックスをオフの状態で表示させるには`0`を、オンの状態で表示させるには`1`を使用します。
        • `DATE`:特定の日付を、UTC深夜0時に設定されたミリ秒単位のタイムスタンプとして格納します。
        • `DATETIME`:日付と時刻をミリ秒単位のタイムスタンプとして格納します。
        • `SELECT`:この列を、いくつかのオプションのうち1つにのみ設定できます。必須プロパティーについては、下記の`options`フィールドを参照してください。
        • `MULTISELECT`:この列を、いくつかのオプションのうち1つ以上に設定できます。必須プロパティーについては、下記の`options`フィールドを参照してください。
        • `LOCATION`:場所の緯度と経度を格納します。
        • `IMAGE`:画像のURLを格納します。
        • `VIDEO`:動画のプレーヤーIDを格納します。
        • `FOREIGN_ID`:この列は、別のHubDBテーブルに含まれる列を参照します。さらに、次のプロパティーを使用して、該当する別のHubDBテーブルを定義する必要もあります。
          • foreignTableId:別のHubDBテーブルのID。
          • foreignColumnId:別のHubDBテーブル内の列のID。
        • `CURRENCY`:数値を通貨の値として格納します。
        • `FILE`:ファイルマネージャーからファイルを格納します。さらに、`fileType`フィールドを含めることで、全てのファイルタイプをフィールドに格納できるか(`FILE`)、PDFなどの特定のドキュメントタイプのみ格納できるか(`DOCUMENT`)を指定する必要もあります。
        | `"type": "type"` | | `options` | オブジェクト | selectタイプとmultiselectタイプの列で使用できるオプションのリスト。各オプションは、`name`に加え、`option`に設定された`type`を使用して定義されます。 | `"option": [{"name":"Option 1", "type":"option"}, {"name": "Option 2", "type": "option"}]` | 上記のフィールドを使用して新しいHubDBテーブルを作成するためのリクエストは、次のような内容になります。 ```json theme={null} // Example request { "label": "Test Table", "name": "test_table", "columns": [ { "name": "text_column", "label": "Text Column", "archived": false, "type": "TEXT" }, { "name": "number_column", "label": "Number Column", "archived": false, "type": "NUMBER" }, { "name": "multiselect", "label": "Multi Select Column", "archived": false, "type": "multiselect", "options": [ { "name": "Option 1", "type": "option" }, { "name": "Option 2", "type": "option" } ] } ], "useForPages": true, "allowChildTables": true, "enableChildTablePages": false, "allowPublicApiAccess": false } ``` テーブルの作成後、列には昇順のIDが割り当てられます。既存の列を更新する際には、入力オブジェクトに列の`id`フィールドを含めます。 ### テーブル行の追加 行を追加するには、APIを使用して手動で行う方法と、[CSVファイルから行をインポート](#import-rows-from-csv)する方法があります。 HubDBテーブルに行を追加するには、`POST`リクエストを`/cms/v3/hubdb/tables/{tableIdOrName}/rows`に送信します。 各テーブル行には、次のフィールドを含めることができます。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `values` | オブジェクト | 列名とその列に追加する値を指定する、キーと値のペアからなるリスト。 いずれかの列に特定の値を設定する必要がない場合は、キー/値ペアのリストでその列名を省略できます。 | `"values": { "text_column": "sample text", "number_column": 76}` | | `path` | 文字列 | [動的ページに対して有効になっている](https://developers.hubspot.com/docs)テーブルの場合、`path`は、この行で作成されるページに使用されるパスサフィックスです。 | `"path": "example_url_path"` | | `name` | 文字列 | [動的ページに対して有効になっている](https://developers.hubspot.com/docs)テーブルの場合、`name`は、この行で作成されるページに使用されるHTMLタイトルです。 | `"name": "Example Title"` | | `childTableId` | 数値 | [マルチレベルの動的ページ](https://developers.hubspot.com/docs)を作成する場合、`childTableId`は子テーブルのIDを指定します。 | `"childTableId": 123456` | 上記のフィールドを使用したリクエストの例を以下に示します。 ```json theme={null} // Example request { "values": { "text_column": "sample text value", "number_column": 76, "rich_text_column": "This is a styled paragraph.", "date_column": 1591228800000, "date_time_column": 1604450520000, "boolean_column": 1, "select_column": { "name": "option 1", "type": "option" }, "multiselect_column": [ { "name": "Option 1", "type": "option" }, { "name": "Option 2", "type": "option" } ], "url_column": "https://www.hubspot.com/marketing", "video_column": 3392210008, "image_column": { "url": "https://f.hubspotusercontentqa00.net/hubfs/99992002/image3%20(1).jpg", "width": 1600, "height": 900, "type": "image" }, "foreign_id_column": [ { "id": "4364402239", "type": "foreignid" }, { "id": "4364402240", "type": "foreignid" } ] }, "path": "test_path", "name": "test_title", "childTableId": "1902373" } ``` ### CSVからの行のインポート CSVファイルからHubDBテーブルにデータをインポートするには、`POST`リクエストを`/cms/v3/hubdb/tables/{tableIdOrName}/draft/import`に送信します。 インポートエンドポイントは、次のような`multipart/form-data` `POST`リクエストを受け入れます。 * `config`\*\*:\*\*インポートで使用されるJSON形式のオプションのセット。 * `file`\*\*:\*\*インポートするCSVファイル。 `config`には、次のフィールドをJSON文字列として含めます。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `skipRows` | 数値 | スキップするヘッダー行の数。このフィールドの値は既定で`1`に設定されます。この場合、最初の行はヘッダーとして扱われてスキップされます。全ての行が有効なデータである場合は、このフィールドの値を`0`に設定してください。 | `"skipRows": 0` | | `separator` | 文字列 | CSVファイル内の列区切り文字。既定では`","`(半角カンマ)に設定されます。 | `"separator": ","` | | `idSourceColumn` | 数値 | 行のID(`hs_id`)が入っているソースファイル内の列のインデックス。この列が指定されている場合、インポートされるCSVファイル内のIDが一致する行によって、テーブル内の既存の行が更新されます。これは任意のフィールドであり、初めてデータをテーブルにインポートするときには無視できます。詳細については、下記の「[リセットオプション](#reset-options)」セクションを参照してください。 | `"idSourceColumn": 1` | | `resetTable` | ブール値 | 既定では`false`に設定されます。この場合、既存の行を1つも除去することなく、テーブルの行が更新されます。`true`に設定すると、スプレッドシートの行によってテーブルのデータが上書きされます。つまり、スプレッドシート内に含まれない行はテーブルから削除されます。詳細については、下記の「[リセットオプション](#reset-options)」セクションを参照してください。 | `"resetTable": true` | | `nameSourceColumn` | 数値 | [動的ページに対して有効になっている](https://developers.hubspot.com/docs)テーブルの場合、`nameSourceColumn`は、行の`name`が格納されているCSVファイル内の列を指定します。列番号は昇順で、最初の列は`1`です。 | `"nameSourcecolumn": 5` | | `pathSourceColumn` | 数値 | [動的ページに対して有効になっている](https://developers.hubspot.com/docs)テーブルの場合、`pathSourceColumn`は、行の`path`が格納されているCSVファイル内の列を指定します。列番号は昇順で、最初の列は`1`です。 | `"pathSourcecolumn": 6` | | `childTableSourceColumn` | 数値 | CSVファイル内の、行の`childTableId`が入っている列を指定します。列番号は昇順で、最初の列は`1`です。 | `"childTableSourcecolumn": 3` | | `columnMappings` | 配列 | ソースファイル内の列とインポート先HubDBテーブル内の列の間のマッピングリスト。各マッピングは次の形式でなければなりません:`{"source":1,"target”:"columnIdOrName"}`
        • \*\*source:\*\*ソースファイル内の列インデックス。例えば`2`は2番目の列です。
        • \*\*target:\*\*HubDBテーブル列のIDまたは名前。[テーブルの詳細情報を取得する](#retrieve-hubdb-data)ことで、列のIDや名前を確認できます。
        ファイルに`hs_id`列がある場合は、それを`columnMappings`に含めないでください。代わりに、この列を`idSourceColumn`として含めて既存の行を更新します。 | `"columnMappings": [{"source":1, "target": 2}, {"source": 2, "target": "column_name"}]` | | `primaryKeyColumn` | 文字列 | 重複排除に使用される、ターゲットHubDBテーブル内の列の名前。このフィールドで列のIDを使用することはできません。 | `"primaryKeyColumn": "column_name"` | | `encoding` | 文字列 | ファイルのエンコーディングの種類。例:`utf-8`、`ascii`、`iso-8859-2`、`iso-8859-5`、`iso-2022-jp`、`windows-1252`。 | `"encoding": "utf-8"` | | `format` | 文字列 | CSVのみがサポートされています。 | `"format": "csv"` | 上記の表を使用した`config` JSONの例を以下に示します。 ```json theme={null} // Example config JSON { "skipRows": 1, "separator": ",", "idSourceColumn": 1, "resetTable": false, "columnMappings": [ { "target": 1, "source": 2 }, { "target": 2, "source": "zip_code" } ], "primaryKeyColumn": "name", "encoding": "utf-8", "format": "csv" } ``` cURLを使用する場合、コマンドは次のようになります。 ```shell theme={null} curl -L -X POST 'https://api.hubspotqa.com/hubdb/api/v2/tables/xxxxxx/import?portalId=xxxxxxx' \ -H 'Content-Type: multipart/form-data' \ -F 'config="{\"skipRows\":1,\"format\":\"csv\",\"separator\":\",\",\"encoding\":\"iso-8859-1\",\"columnMappings\":[{\"target\":1,\"source\":7},{\"target\":3,\"source\":8}],\"idSourceColumn\":1,\"pathSourceColumn\":null,\"nameSourceColumn\":null,\"childTableSourceColumn\":null,\"resetTable\":true}"' \ -F 'file=@"/Users/xxxxxxxxxxxxx/Downloads/filename.csv"' ``` ### 日付の書式設定 データを日付型の列にインポートする際は、さまざまな日付形式を使用できます。 **整数** * `yyyy/mm/dd` * `yyyy/mm/dd` * `mm/dd/yyyy` * `mm/dd/yy` これらの形式では、日付の前に月を指定する必要があります(つまり`dd/mm/yy`という形式は使用できません)。整数の区切り文字としてハイフン(`-`)またはスラッシュ(`/`)を使用できます。 **準標準の日付形式** 整数ベースの日付形式ほど標準化されていない日付形式をインポートすることもできます。例: * `The 1st of March in the year 2022` * `Fri Mar 4 2022` * `March 4th '22` **相対日付** HubSpotでは、現在の日付を基準とする次の日付形式が解析されます: * `next Thursday` * `Today` * `tomorrow` * `3 days from now` ### リセットオプション CSVファイルからHubDBテーブルにデータをインポートするときに、`resetTable`フィールドを`true`または`false`(既定)に設定すると、HubDBの行データを上書きするかどうかを管理できます。 * `resetTable`が`true`に設定されている場合: * CSVファイル内の行に行ID列(`hs_id`)がない場合、または行IDが`0`と指定されている場合、それらの行は、生成された新しい行IDを使って挿入されます。 * CSVファイル内の行IDがターゲットテーブルに既に存在する場合、テーブルの既存の行は入力ファイル内の新しい値で更新されます。 * テーブルに行が存在するものの、入力CSVファイルにその行に対応する行IDがない場合、その行はターゲットテーブルから削除されます。 * 入力CSVファイル内の行IDがターゲットテーブル内に存在しない場合は、生成された新しい行IDを使ってそれらの行が挿入され、入力ファイル内で指定されている行IDは無視されます。 * 入力CSVファイル内に行IDの列が1つも含まれていない場合、ターゲットテーブルから全ての行が削除され、入力ファイル内の行が、生成された新しい行IDを使って挿入されます。 * `resetTable`が`false`(既定)に設定されている場合: * CSVファイル内の行IDがターゲットテーブルに既に存在する場合、テーブルの既存の行は入力ファイル内の新しい値で更新されます。 * テーブルに行が存在するものの、入力CSVファイルにその行に対応する行IDがない場合、その行はターゲットテーブルから削除されず、変更が加えられないままの状態になります。 * 入力CSVファイル内の行IDがターゲットテーブル内に存在しない場合は、生成された新しい行IDを使ってそれらの行が挿入され、入力ファイル内で指定されている行IDは無視されます。 * CSVファイル内の行に行ID列がない場合、または行IDが`0`と指定されている場合、それらの行は、生成された新しい行IDを使って挿入されます。 ## HubDBデータの取得 テーブルの詳細を取得するか、またはテーブルの特定の行を取得するかに応じて、HubDBデータを取得するにはさまざまな方法があります。 * 公開されている全てのテーブルからテーブルの詳細を取得するには`GET`リクエストを`/cms/v3/hubdb/tables`に送信します。 * 公開されている特定のテーブルからテーブルの詳細を取得するには、`GET`リクエストを`/cms/v3/hubdb/tables{tableIdOrName}`に送信します。 * 特定のテーブルから全ての行を取得するには、`GET`リクエストを`/cms/v3/hubdb/tables{tableIdOrName}/rows`に送信します。 * テーブルから特定の行を取得するには、`GET`リクエストを`/cms/v3/hubdb/tables{tableIdOrName}/rows/{rowId}`に送信します。 行データを取得する際に、フィルターを適用して結果を絞り込んだり、並べ替えたりできます。 [公開アクセスを許可する](https://knowledge.hubspot.com/website-and-landing-pages/create-and-hubdb-tables#manage-table-settings-cms-hub-professional-and-enterprise-only)ようにテーブルが設定されている場合、クエリーパラメーター`portalId`を介してHubSpotアカウントIDを指定すると、認証なしでテーブルと行の公開バージョンにアクセスできます。 ### 返された行に対するフィルターの適用 HubDBテーブルデータを取得する際に、特定のデータを取得するためのクエリーパラメーターとしてフィルターを適用できます。フィルター クエリー パラメーターは、`columnName__operator`という形式で構成されます。 例えば、*「bar」* という名前の数値列がある場合、*「bar」* が10より大きい行だけを結果に含めるには、`&bar__gt=10`とします。 全てのフィルターはAND結合されます(現在のところ、ORフィルターはサポートされていません)。 フィルターを適用する際は、次の点に注意してください。 * `multiselect`の列の値を渡すときには、各値を半角カンマで区切る必要があります(例:`multiselect_column__contains=1,2`)。 * `datetime`フィルターでは、現在の時刻を基準とする値を指定する目的で、タイムスタンプの代わりに相対日付を使用できます。例えば`-3h`は今から3時間前のタイムスタンプに相当し、`10s`は10秒後のタイムスタンプに相当します。サポートされている時間単位は、ms(ミリ秒)、s(秒)、m(分)、h(時間)、d(日)です。現在の時刻を使用するには、値をゼロにします(0s)。 * これらのフィルター用に組み込む`hs_id`列は`number`タイプ、`hs_created_at`列は`datetime`タイプ、`hs_path`列および`hs_name`列は`text`タイプです。 以下に、各タイプの列に適用できる演算子について説明します。 | 演算子 | 名前 | 説明 | | - | - | - | | `eq (or none)` | 等しい | 全ての列タイプ。演算子が使用されていない場合、このフィルターが適用されます。multiselectの列でこれを使用すると、指定された値に完全に一致する行が返されます。 | | `ne` | 等しくない | 全ての列タイプ。 | | `contains` | 次の全ての値を含む | テキスト、リッチテキスト、およびmultiselect。multiselectの列でこれを使用すると、指定された全ての値を含む行が返されます。このフィルターでは大文字と小文字が区別されます。 | | `lt` | 次の値より小さい | 数値、日付、日時。 | | `lte` | 次の値以下 | 数値、日付、日時。 | | `gt` | 次の値より大きい | 数値、日付、日時。 | | `gte` | 次の値以上 | 数値、日付、日時。 | | `is_null` | Null | ブールを除く全てのタイプの列。このフィルターでは値は不要です(例:`&exampleColumn__is_null=`)。 | | `not_null` | Nullではない | ブールを除く全てのタイプの列。このフィルターでは値は不要です(例:`&exampleColumn__not_null=`)。 | | `like` | いいね! | テキストとリッチテキスト。 | | `not_like` | いいね!ではない | テキストとリッチテキスト。 | | `icontains` | 次の文字列を含む | テキストとリッチテキスト。このフィルターでは大文字と小文字が区別されません。 | | `startswith` | 次の文字列で始まる | テキストとリッチテキスト。 | | `in` | 次の値のいずれかを含む | 数値、select、multiselect。渡されたオプションのうち少なくとも1つが列に入っている行が返されます。クエリーパラメーターの中に他の`sort`がない場合、返される結果は、`in`演算子での値の指定順に並べ替えられます。 | ### 返された行の並べ替え HubDBデータを取得するときに、クエリーパラメーターとして並べ替えを適用することで、返されるデータの順序を指定できます。データを並べ替えるには、次のように`sort`クエリーパラメーターを追加して、列名を指定します。 `&sort=columnName` 既定では、列が指定されている順序でデータが返されます。これを逆順で並べ替えるには、列名に`-`を追加します。 `&sort=-columnName` このパラメーターを複数指定することにより、複数の列を基準に並べ替えができるようになります。 列を基準とした並べ替えに加えて、次の3つの関数を使用可能です。 * \*\*geo\_distance(location\_column\_name、緯度、経度):\*\*所在地列の名前と座標を入力として受け入れ、指定された所在地列の値と指定された座標の間の距離が長い順に行を返します。 * \*\*length(column\_name):\*\*列の名前を入力として受け入れ、(文字列として計算される)列値の長さの順に行を返します。 * \*\*random():\*\*ランダムな順序で行を返します。 この関数では逆順もサポートされます。例えば次の`geo_distance`は、距離が最も遠いものを最初にしてアイテムを返します。 `sort=-geo_distance(location_column,42.37,-71.07)` ## 動的ページ用のHubDBテーブルの設定 HubSpotのCMSを使用すると、HubDBテーブルをデータソースとして使用して[動的ページを生成する](https://developers.hubspot.com/docs)ことができます。例えば、経営陣のメンバーごとに1行ずつ含むテーブルを作成し、ページに表示させたい情報が入った列をそれに含めることができます。ページの動的データソースとしてそのテーブルを選択すると、サマリー項目として全行を表示するリストページがそのページによって生成され、さらに行ごとに個別のページも生成されて、ブログ リスト ページとブログ記事ページに似た状態になります。 コンテンツエディターでテーブルをデータソースとして選択できるようにするには、`useForPage`を`true`に設定する必要があります。必要に応じて`dynamicMetaTags`を含めると、各ページのメタデータにどの列を使用するかを指定できます。 **注:**`dynamicMetaTags`を指定するときには、`content`ではなく`page_meta` HubLタグをページで必ず使用する必要があります。詳しくは、[動的ページガイド](https://developers.hubspot.com/docs#metadata)をご覧ください。 例えば次のコードでは動的ページ用のテーブルを作成して、ページのメタデータに使われる3つの列を指定します。 ```json theme={null} // Example POST request to create table { "name": "dynamic_page_table", "label": "Dynamic page table", "useForPages": true, "columns": [ { "name": "meta_description", "label": "Meta description", "archived": false, "type": "TEXT" }, { "name": "featured_image", "label": "Featured image", "archived": false, "type": "IMAGE" }, { "name": "canonical_url", "label": "Canonical URL", "archived": false, "type": "URL" } ], "dynamicMetaTags": { "DESCRIPTION": 1, "FEATURED_IMAGE_URL": 2, "LINK_REL_CANONICAL_URL": 3 } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `useForPages` | ブール値 | テーブルを動的ページのデータソースとして使用できるようにするには、これを`true`に設定します。 | | `dynamicMetaTags` | オブジェクト | 各動的ページのメタデータに使用する列をIDによって指定します。以下を含めることができます:
        • `DESCRIPTION`
        • `FEATURED_IMAGE_URL`
        • `LINK_REL_CANONICAL_URL`
        メタデータフィールドが指定されない場合、ページでは親ページからそれぞれの値を継承します。 | | `DESCRIPTION` | 数値 | 各ページのメタディスクリプションに使用する列の数値ID。 | | `FEATURED_IMAGE_URL` | 数値 | 各ページのキービジュアルURLに使用する列の数値ID。 | | `LINK_REL_CANONICAL_URL` | 数値 | 各ページのcanonical URLに使用する列の数値ID。 | ## v3での変更点 * テーブルには`name`と`label`の両方が必要です。テーブルの作成後に、この「name」を変更することはできません。「name」には半角の英小文字、数字、アンダースコアのみ含めることができますが、数字で始めることはできません。`name`と`label`はどらちも、アカウント内で一意である必要があります。 * APIは、URLパスの中でテーブル`id`と`name`の両方をサポートします。 * 行を`GET`するエンドポイントは、`values`フィールドで`id`ではなく列`name`を返します。また、行を`POST`/`PUT`/`PATCH`するエンドポイントは、`values`フィールドで`id`ではなく列`name`を必要とします。 * 行を更新する`PATCH`エンドポイントで、スパース更新を使用できるようになりました。スパース更新とは、更新する必要のある列値だけを指定できることを意味します(以前のバージョンでは、全ての列値を指定する必要がありました)。複数選択型の列のように、値のリストを使用して列を更新する場合は、全ての値を含むリストを指定する必要があります。列の値を削除するには、リクエスト内でその列の値を`null`として指定する必要があります。 * 行を更新する`PATCH`エンドポイントを優先し、行のセルを`get`/`update`/`delete`するエンドポイントを削除しました。 * インポートエンドポイントでは、JSON形式のオプションで既存のフィールドとともに任意指定フィールド`idSourceColumn`を使用できるようになりました。このフィールドを使用すると、行IDが格納されているCSVファイル内の列を指定できます。新しい行を既存の行の新しい値とともにインポートするには、新しい行の行IDには単に`0`を指定し、既存の行には有効な行IDを指定できます。詳細については、以下の「インポート」セクションをご参照ください。さらに、JSON形式のオプションに含まれる列マッピングのターゲットフィールドで、列の名前またはIDを使用することもできます。 * 複製エンドポイントには、新しい名前と新しいラベルが必要です。 # 非推奨になったHubLサポート対象のタグ Source: https://developers.hubspot.jp/docs/cms/versions-deprecations/deprecated/hubl/filters-functions ここでは、非推奨になったHubLサポート対象のタグをリスト形式で示します。ここに記載されているタグは引き続き動作しますが、合理化および最適化されたタグが新たに提供されています。これらの新しいタグも以下に記載します。このページでは、参考として履歴を掲載しています。 ここでは、非推奨になったHubLサポート対象のタグをリスト形式で示します。ここに記載されているタグは引き続き動作しますが、合理化および最適化されたタグが新たに提供されています。これらの新しいタグも以下に記載します。このページでは、参考として履歴を掲載しています。 ## カスタムウィジェット > [!WARNING] > > このタグは[**カスタム モジュール タグ**](/docs/cms/reference/hubl/tags/standard-tags#custom-modules)に置き換えられました。 ## Follow Me Follow meモジュールは、さまざまなソーシャルメディアのプロフィールにリンクするアイコンをレンダリングします。表示されるアイコンは、貴社のソーシャル設定に基づきます。 > [!WARNING] > > このタグは、新しいFollow Me既定モジュールに置き換えられています。 ```text 入力.txt theme={null} {% follow_me "follow_me" %} {% follow_me "follow_us" title='Follow Us', module_title_tag="h2" %} ``` ```text 出力.txt theme={null}

        Follow Us

        ``` ## グローバルウィジェット グローバルウィジェットは、テンプレート全体で共有できます。 > [!WARNING] > > このタグは、[カスタム モジュール タグ](/docs/cms/reference/hubl/tags/standard-tags#custom-modules)に置き換えられました。 ```hubl theme={null} {% global_widget "facebook_fan_box" overrideable=False, label='Facebook Fan Box' %}" ``` ## Google検索 > [!WARNING] > > Google検索タグとモジュールは使用できなくなりました。HubSpotのネイティブ検索に置き換えられました。 ## 画像スライダー HubSpot画像スライダーモジュールを生成します。このスライダーモジュールは、[FlexSlider](http://flexslider.woothemes.com/)に基づくものです。スライダーモジュールは標準のモジュールHubL構文でも作成可能ですが、HubLを使用して既定のスライドを定義する場合は、ブロック構文を使用する必要があります。両方の方法を以下に示します。 > [!WARNING] > > このタグは[ギャラリータグ](/docs/cms/reference/hubl/tags/standard-tags#gallery)への移行によって非推奨になりました。 ```text 入力.txt theme={null} {% image_slider "image_slider" %} <-- Block syntax --> {% widget_block image_slider "crm_slider" sizing='static', only_thumbnails=False, transition='slide', caption_position='below', with_thumbnail_nav=False, lightbox=False, auto_advance=True, overrideable=True, description_text='', show_pagination=True, label='Image Slider', loop_slides=True, num_seconds=5 %} {% widget_attribute "slides" is_json=True %}[{"caption": "CRM Contacts App", "show_caption": true, "link_url": "http://www.hubspot.com/crm", "alt_text": "Screenshot of CRM Contacts", "img_src": "http://go.hubspot.com/hubfs/Contacts-View-1.png?t=1430860504240", "open_in_new_tab": true}, {"caption": "HubSpot CRM Contact Profile", "show_caption": true, "link_url": "http://www.hubspot.com/", "alt_text": "HubSpot CRM Contact Profile", "img_src": "http://cdn2.hubspot.net/hubfs/53/Contact-Profile.png?t=1430860504240", "open_in_new_tab": true}]{% end_widget_attribute %} {% end_widget_block %} ``` ```text 出力.txt theme={null}
        • Screenshot of CRM Contacts
          CRM Contacts App
        • HubSpot CRM Contact Profile
          HubSpot CRM Contact Profile
        1. 1
        2. 2
        ``` | パラメーター | 型 | 説明 | 既定値 | | - | - | - | - | | `sizing` | 列挙 | スライドの高さに基づいてスライダーのサイズを変更するかどうかを指定します。有効な値は、"static"または"resize"です。 | `"static"` | | `only_thumbnails` | ブール型 | スライダーの代わりに画像をサムネイルとして表示します。 | `False` | | `transition` | 列挙 | スライド切り替えのタイプを設定します。有効な値は、"fade"または"slide"です。 | `"slide"` | | `caption_position` | 列挙 | キャプションの位置(スライド上に重ねるか、スライドの下に配置)を制御します。有効な値は、"below"または"superimpose"です。 | `"below"` | | `with_thumbnail_nav` | ブール型 | ナビゲーション用のスライダーの下にサムネイルを表示します(これをTrueに設定するには、only\_thumbnailsをFalseに設定する必要があります)。 | `False` | | `lightbox` | ブール型 | クリック時にサムネイル画像をLightboxに表示します(これをTrueに設定するには、with\_thumbnail\_navをTrueに設定する必要があります)。 | `False` | | `auto_advance` | ブール型 | num\_secondsで設定された時間が経過した時点で自動的にスライドを進めます。 | `False` | | `show_pagination` | ブール型 | スライダーの下に、スライド間をランダムに移動するためのボタンを表示します。 | `True` | | `label` | 文字列型 | このモジュールの関連付けラベル。エディターでのみ表示されます。 | `"Image Slider"` | | `loop_slides` | ブール型 | Trueの場合、複数スライドを連続してループ処理します。 | `True` | | `num_seconds` | 数値型 | スライド間で一時停止する時間(秒数) | `5` | | `slides` | JSON | 既定のキャプション、リンクURL、代替テキスト、画像srcと、新しいタブで開くかどうかを指定する値からなるJSONリスト。上記のブロック構文を参照してください。 | | # 非推奨のデフォルトモジュール Source: https://developers.hubspot.jp/docs/cms/versions-deprecations/deprecated/modules # Retrieve account details Source: https://developers.hubspot.jp/docs/api-reference/latest/account/account-information/get-account-details specs/2026-09/account-account-info-v2026-09.json GET /account-info/2026-09/details HubSpotポータルに関連付けられているアカウントの詳細情報を取得します。このエンドポイントは、アカウントのタイプ、タイムゾーン、通貨設定、データホスティングの場所に関する分析情報を提供します。アカウントの構成と設定の包括的な概要を把握するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve private app daily API usage Source: https://developers.hubspot.jp/docs/api-reference/latest/account/account-information/get-usage-details specs/2026-09/account-account-info-v2026-09.json GET /account-info/2026-09/api-usage/daily/private-apps アカウント内の非公開アプリの1日当たりのAPI使用状況を取得します。このエンドポイントは、API消費パターンに関する分析情報を提供し、ユーザーがAPI使用状況を効果的に監視および管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Account information API Source: https://developers.hubspot.jp/docs/api-reference/latest/account/account-information/guide # Retrieve audit logs Source: https://developers.hubspot.jp/docs/api-reference/latest/account/audit-logs/get-audit-logs specs/2026-09/account-audit-logs-v2026-09.json GET /account-info/2026-09/activity/audit-logs 承認、コンテンツの更新、CRMオブジェクトの更新、セキュリティーアクティビティーなどに関連するユーザーアクションのアクティビティー履歴を取得します(Enterpriseのみ)。[監査ログのエクスポートに含まれるアクティビティー](https://knowledge.hubspot.com/account-management/view-and-export-account-activity-history-in-a-centralized-audit-log?hubs_content=knowledge.hubspot.com/account-management/view-and-export-account-activity-history&hubs_content-cta=centralized%20audit%20log#data-included-in-the-centralized-audit-log)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Retrieve login activity Source: https://developers.hubspot.jp/docs/api-reference/latest/account/audit-logs/get-login specs/2026-09/account-audit-logs-v2026-09.json GET /account-info/2026-09/activity/login [ログインアクティビティー](https://knowledge.hubspot.com/account-management/view-and-export-account-activity-history#account-login-history)に関連するユーザーアクションのログを取得します。 > **Supported products** > **Required Scopes** # Retrieve security history Source: https://developers.hubspot.jp/docs/api-reference/latest/account/audit-logs/get-security specs/2026-09/account-audit-logs-v2026-09.json GET /account-info/2026-09/activity/security [セキュリティーアクティビティー](https://knowledge.hubspot.com/account-management/view-and-export-account-activity-history#security-activity-history)に関連するユーザーアクションのログを取得します。 > **Supported products** > **Required Scopes** # Account activity API Source: https://developers.hubspot.jp/docs/api-reference/latest/account/audit-logs/guide # Get business units for a user Source: https://developers.hubspot.jp/docs/api-reference/latest/account/brands/get-brands specs/2026-09/business-units-business-units-v2026-09.json GET /business-units/public/2026-09/business-units/user/{userId} 特定のユーザーがアクセスできるブランドを取得します。 > **Supported products** > **Required Scopes** # Brands API Source: https://developers.hubspot.jp/docs/api-reference/latest/account/brands/guide # Retrieve IP ranges Source: https://developers.hubspot.jp/docs/api-reference/latest/account/ip-ranges/get-origins specs/2026-09/meta-origins-v2026-09.json GET /meta/network-origins/2026-09/ip-ranges さまざまなサービスと方向に関連付けられたIPレンジのリストを取得します。このエンドポイントは、EMAIL、API、DNS、WEB_SCRAPING、TEST_SERVICEなどの特定のサービスに関するIPレンジ情報を取得するために使用できます。結果は、INGRESSまたはEGRESSのいずれかのネットワークトラフィックの方向で絞り込めます。 > **Supported products** # Retrieve simplified IP ranges Source: https://developers.hubspot.jp/docs/api-reference/latest/account/ip-ranges/get-simple specs/2026-09/meta-origins-v2026-09.json GET /meta/network-origins/2026-09/ip-ranges/simple HubSpotシステム内の特定のネットワークオリジンに関連付けられたIP範囲の簡易リストを取得します。このエンドポイントでは、方向とサービスタイプで絞り込めるため、ネットワーク構成の把握やアクセス制御の管理に役立ちます。 > **Supported products** # HubSpot IP ranges Source: https://developers.hubspot.jp/docs/api-reference/latest/account/ip-ranges/guide # Consent banner API Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/consent-banner/consent-banner-api # Implement Google Consent Mode Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/consent-banner/google-consent-mode # Create multiple exchange rates Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/batch/create-exchange-rates specs/2026-09/settings-multicurrency-v2026-09.json POST /settings/currencies/2026-09/exchange-rates/batch/create 1つのリクエストで複数の為替レートを作成します。 > **Supported products** > **Required Scopes** # Retrieve multiple rates Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/batch/get-exchange-rates specs/2026-09/settings-multicurrency-v2026-09.json POST /settings/currencies/2026-09/exchange-rates/batch/read IDで指定された複数の為替レートの詳細を1つのリクエストで取得します。 > **Supported products** > **Required Scopes** # Update multiple exchange rates Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/batch/update-exchange-rates specs/2026-09/settings-multicurrency-v2026-09.json POST /settings/currencies/2026-09/exchange-rates/batch/update バッチ操作で複数の為替レートの換算レートを更新します。 > **Supported products** > **Required Scopes** # Add a new currency with central exchange rates. Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/central-fx-rates/create-multicurrency specs/2026-09/settings-multicurrency-v2026-09.json POST /settings/currencies/2026-09/central-fx-rates/add-currency ポータルで一元的為替レートを使用して新しい通貨を作成します。サポートされていない通貨をここに追加することはできません。 > **Supported products** > **Required Scopes** # Retrieve information about the central exchange rates feature. Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/central-fx-rates/get-exchange-rates specs/2026-09/settings-multicurrency-v2026-09.json GET /settings/currencies/2026-09/central-fx-rates/information ポータルで一元的為替レート機能が有効であるかどうかに関する詳細を取得します。 > **Supported products** > **Required Scopes** # Retrieve currencies not supported by central exchange rates. Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/central-fx-rates/get-unsupported-currencies specs/2026-09/settings-multicurrency-v2026-09.json GET /settings/currencies/2026-09/central-fx-rates/unsupported-currencies 一元的為替レートでサポートされていない通貨コードのリストを取得します。サポートされていない通貨は手動で更新する必要があります。 > **Supported products** > **Required Scopes** # Add a new exchange rate Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/exchange-rates/create-exchange-rate specs/2026-09/settings-multicurrency-v2026-09.json POST /settings/currencies/2026-09/exchange-rates 指定された換算レートと通貨コードを使用して新しい為替レートを作成します。 > **Supported products** > **Required Scopes** # Change the visibility of a specific currency pairs Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/exchange-rates/create-update-visibility specs/2026-09/settings-multicurrency-v2026-09.json POST /settings/currencies/2026-09/exchange-rates/update-visibility 通貨ペアの共有範囲設定を変更します。これにより、HubSpotアプリのユーザーの通貨ペアの表示/非表示が切り替わります。 > **Supported products** > **Required Scopes** # Get all current exchange rates Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/exchange-rates/get-current-exchange-rates specs/2026-09/settings-multicurrency-v2026-09.json GET /settings/currencies/2026-09/exchange-rates/current すべての通貨ペアの現在の為替レートをすべて取得します。 > **Supported products** > **Required Scopes** # Get the details for a specific exchange rate Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/exchange-rates/get-exchange-rate specs/2026-09/settings-multicurrency-v2026-09.json GET /settings/currencies/2026-09/exchange-rates/{exchangeRateId} IDを基準に特定の為替レートの詳細を取得します。 > **Supported products** > **Required Scopes** # Get exchange rates Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/exchange-rates/get-exchange-rates specs/2026-09/settings-multicurrency-v2026-09.json GET /settings/currencies/2026-09/exchange-rates 為替レートのリストを取得 > **Supported products** > **Required Scopes** # Update a conversion rate Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/exchange-rates/update-exchange-rate specs/2026-09/settings-multicurrency-v2026-09.json PATCH /settings/currencies/2026-09/exchange-rates/{exchangeRateId} IDを基準に既存の換算率を更新します。 > **Supported products** > **Required Scopes** # Get the company currency Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/get-company-currency specs/2026-09/settings-multicurrency-v2026-09.json GET /settings/currencies/2026-09/company-currency 会社通貨の詳細を取得します。会社通貨は、取引合計、レポート、および新規取引のデフォルトの通貨で使用されます。 > **Supported products** > **Required Scopes** # Get all currency codes Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/get-currency-codes specs/2026-09/settings-multicurrency-v2026-09.json GET /settings/currencies/2026-09/codes 使用可能なすべての通貨コードとその名前のリストを取得します。 > **Supported products** > **Required Scopes** # Settings API | Currencies Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/guide # Set or update the company currency. Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/multicurrency/update-company-currency specs/2026-09/settings-multicurrency-v2026-09.json PUT /settings/currencies/2026-09/company-currency 会社のプライマリー(第1)通貨を設定または更新します。 > **Supported products** > **Required Scopes** # Get a specific tax rate Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tax-rates/get-tax-rate specs/2026-09/settings-tax-rates-v2026-09.json GET /tax-rates/2026-09/tax-rates/{taxRateGroupId} 「taxRateGroupId」を指定して特定の税率を取得します。 > **Supported products** > **Required Scopes** # Get all tax rates Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tax-rates/get-tax-rates specs/2026-09/settings-tax-rates-v2026-09.json GET /tax-rates/2026-09/tax-rates アカウントの税率ライブラリーで設定したすべての税率のページ番号付きリストを取得します > **Supported products** > **Required Scopes** # Add Team Members Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/add-team-members specs/2026-09/settings-teams-v2026-09.json POST /settings/teams/2026-09/{teamId}/members HubSpotアカウントの特定のチームに新しいメンバーを割り当てます。このエンドポイントでは、ユーザーIDと役割を指定してチームにユーザーを追加できます。チーム構成を管理し、適切なユーザーがチームリソースにアクセスできるようにするのに役立ちます。 > **Supported products** > **Required Scopes** # Create Team Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/create-team specs/2026-09/settings-teams-v2026-09.json POST /settings/teams/2026-09 HubSpotアカウントに新しいチームを作成します。このエンドポイントでは、チームの名前、親チーム、メンバーを定義できます。リクエスト本文には、チームの名前とメンバーを含める必要があります。正常に作成されると、レスポンスには新たに作成されたチームリソースのURLが含まれます。 > **Supported products** > **Required Scopes** # Retrieve team Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/get-team specs/2026-09/settings-teams-v2026-09.json GET /settings/teams/2026-09/{teamId} チームの固有IDを使用して、HubSpotアカウント内の特定のチームに関する詳細情報を取得します。このエンドポイントは、チームの名前や親チームIDなどのプロパティーにアクセスして、チーム関連のデータを管理または表示するのに役立ちます。 > **Supported products** > **Required Scopes** # List members Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/get-team-members specs/2026-09/settings-teams-v2026-09.json GET /settings/teams/2026-09/{teamId}/members HubSpotアカウントの指定されたチームのメンバーリストを取得します。このエンドポイントでは、「limit」および「after」クエリーパラメーターを使用してチームメンバーをページ分割できます。組織内のチーム構成や役割を管理および表示するのに役立ちます。 > **Supported products** > **Required Scopes** # List teams Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/get-teams specs/2026-09/settings-teams-v2026-09.json GET /settings/teams/2026-09 HubSpotアカウントからチームのリストを取得します。このエンドポイントでは、「limit」および「after」クエリーパラメーターを使用してチームをページ分割できます。アカウント内で設定されているすべてのチームの概要を把握するのに役立ちます。 > **Supported products** > **Required Scopes** # Settings API | Teams Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/guide # Sunsetted and deprecated APIs Source: https://developers.hubspot.jp/docs/api-reference/latest/deprecated-apis # Error handling Source: https://developers.hubspot.jp/docs/api-reference/latest/error-handling # 2026-09 APIリファレンス Source: https://developers.hubspot.jp/docs/api-reference/latest/overview 2026-09リリースで導入された、HubSpotの日付ベースバージョニングAPIのリファレンスドキュメント。 2026-09 APIは、以前の数値バージョンパス(例:`/crm/v3/`)に代わる日付ベースのバージョニングスキームを使用しています。このセクションのすべてのエンドポイントは次のパターンに従います: ```text theme={null} /api-name/2026-09/resource ``` 例えば、すべてのコンタクトを取得するには: ```bash theme={null} GET /crm/objects/2026-09/contacts ``` すべてのAPI(レガシー、新規、ベータを問わず)は、以前と同じルートパスを使用します:`https://api.hubapi.com/`。 このバージョニングモデルにより、HubSpotは予測可能なスケジュールでアップデートを提供できます。新しい日付バージョンがリリースされると、前のバージョンはサポート終了日まで引き続き動作するため、移行の時間が確保されます。新しいインテグレーションでは、常に最新の日付バージョンを使用してください。この変更の詳細については、[HubSpot Developer Changelog](https://developers.hubspot.com/changelog/introducing-date-based-api-versioning)をご覧ください。 APIリファレンスセクション全体で、上部バーのバージョニングドロップダウンメニューを使用してバージョンを切り替えることができます。現在表示しているエンドポイントに対応するものがあれば、自動的にそこに移動します。そうでない場合は、そのバージョンのホームページに移動します。 ![開発者ドキュメントのバージョンセレクターを使用してHubSpot APIのバージョンを確認する](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer/hs-docs-version-selector.png) # Batch assign members Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/batch/add-team-members specs/2026-09/settings-teams-v2026-09.json POST /settings/teams/2026-09/{teamId}/members/batch 単一のリクエストで複数のメンバーを特定のチームに割り当てます。このエンドポイントでは、複数の割り当てを一度に処理することで、チームメンバーシップを効率的に管理できます。チーム管理プロセスを合理化したいと考えている組織にとって便利です。 > **Supported products** > **Required Scopes** # Delete team Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/delete-team specs/2026-09/settings-teams-v2026-09.json DELETE /settings/teams/2026-09/{teamId} チームの固有IDを使用して、HubSpotアカウントから特定のチームを削除します。この操作により、チームとその関連付けられたデータが削除されます。このアクションを実行するために必要な権限があることを確認してください。 > **Supported products** > **Required Scopes** # Delete member Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/remove-team-member specs/2026-09/settings-teams-v2026-09.json DELETE /settings/teams/2026-09/{teamId}/members/{userId} HubSpotアカウントのチームから特定のメンバーを削除します。この操作では、チームとユーザーの両方のIDを指定する必要があります。アクセス権や特定のチームとの関連付けが不要になったユーザーを削除することでチーム構成を管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Update team Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/teams/update-team specs/2026-09/settings-teams-v2026-09.json PATCH /settings/teams/2026-09/{teamId} HubSpotアカウント内の特定のチームの詳細を更新します。このエンドポイントでは、チームの名前や親チームIDなどの情報を変更できます。パスで指定されたteamIdが正しいことを確認してください。このIDは更新するチームを識別するものです。 > **Supported products** > **Required Scopes** # Add privacy consent listener Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/add-privacy-consent-listener # Enable do not track Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/do-not-track # Identify a visitor Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/identify # HubSpot tracking code API Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/overview # Revoke cookie consent Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/revoke-cookie-consent # Set the current page path Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/set-path # Track custom events Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/track-event # Track a page view Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/tracking-code/track-page-view # Create a user Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/create-user specs/2026-09/settings-user-provisioning-v2026-09.json POST /settings/users/2026-09 指定された詳細を使用して、HubSpotアカウントに新しいユーザーを作成します。このエンドポイントには、Eメールアドレス、名、姓、役割、シートなどのユーザー情報が含まれるJSONリクエスト本文が必要です。新しいユーザーには、必要に応じてウェルカムEメールを送信できます。 > **Supported products** > **Required Scopes** # Retrieves users Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/get-users specs/2026-09/settings-user-provisioning-v2026-09.json GET /settings/users/2026-09 HubSpotアカウントのユーザーのページ分割されたリストを取得します。このエンドポイントでは、ページごとの結果の最大数を指定し、ページ操作カーソルを使用してユーザーのリストを操作できます。 > **Supported products** > **Required Scopes** # Settings API | User provisioning Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/guide # Retrieves the roles on an account Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/roles/get-roles specs/2026-09/settings-user-provisioning-v2026-09.json GET /settings/users/2026-09/roles HubSpotアカウントで利用可能なユーザー役割のリストを取得します。このエンドポイントは、ユーザーに割り当て可能なさまざまな権限セットに関する情報を提供し、アカウント内のユーザーアクセスと権限の管理に役立ちます。 > **Supported products** > **Required Scopes** # Retrieves the seats on this account Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/seats/get-seats specs/2026-09/settings-user-provisioning-v2026-09.json GET /settings/users/2026-09/seats アカウントで利用可能なシートのリストを取得します。このエンドポイントは、各シートの名前、説明、残りのシート数などの詳細を提供します。組織内のシート割り当てを管理および確認するのに役立ちます。 > **Supported products** > **Required Scopes** # See details about this account's teams Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/teams/get-teams specs/2026-09/settings-user-provisioning-v2026-09.json GET /settings/users/2026-09/teams このアカウントのチームを表示 > **Supported products** > **Required Scopes** # Removes a user Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/users/delete-user specs/2026-09/settings-user-provisioning-v2026-09.json DELETE /settings/users/2026-09/{userId} 「userId」によって特定されるユーザーが削除されます。「userId」はデフォルトではユーザーのIDを指しますが、必要に応じて「IdProperty」クエリーパラメーターによって指定されたEメールを指すこともできます。 > **Supported products** > **Required Scopes** # Retrieves a user Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/users/get-user specs/2026-09/settings-user-provisioning-v2026-09.json GET /settings/users/2026-09/{userId} 「userId」によって特定されるユーザーが取得されます。「userId」はデフォルトではユーザーのIDを指しますが、必要に応じて「IdProperty」クエリーパラメーターによって指定されたEメールを指すこともできます。 > **Supported products** > **Required Scopes** # Modifies a user Source: https://developers.hubspot.jp/docs/api-reference/latest/account/settings/user-provisioning/users/update-user specs/2026-09/settings-user-provisioning-v2026-09.json PUT /settings/users/2026-09/{userId} 「userId」によって特定されるユーザーが変更されます。「userId」はデフォルトではユーザーのIDを指しますが、必要に応じて「IdProperty」クエリーパラメーターによって指定されたEメールを指すこともできます。 > **Supported products** > **Required Scopes** # App uninstalls API Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/app-uninstalls/guide # Uninstall app Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/app-uninstalls/uninstall-app specs/2026-09/crm-app-uninstalls-v2026-09.json DELETE /appinstalls/2026-09/external-install 顧客のHubSpotアカウントからアプリをアンインストールするには、このエンドポイントを使用します。アンインストールに成功すると、エンドポイントから204が返され、開発者によってアカウントからアプリがアンインストールされたことを知らせるメール通知が顧客に送信されます。 > **Supported products** > **Required Scopes** # Delete an app's feature flag Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/flags/delete-feature-flag specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json DELETE /feature-flags/2026-09/{appId}/flags/{flagName} アプリの機能フラグを削除します。例えば、すべてのアカウントの移行後に「hs-release-app-cards」フラグを削除します。 > **Supported products** > **Required Scopes** # Retrieve a feature flag Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/flags/get-feature-flag specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json GET /feature-flags/2026-09/{appId}/flags/{flagName} アプリの機能フラグの現在のステータスを取得します。リクエスト本文は含まれません。 > **Supported products** > **Required Scopes** # Retrieve an app's feature flags Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/flags/get-feature-flags specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json GET /feature-flags/2026-09/{appId}/flags/all HubSpotアカウント内の特定のアプリに関連付けられているすべての機能フラグを取得します。このエンドポイントは、アプリの機能フラグを管理または監査する必要がある開発者にとって便利です。どのアプリのフラグを一覧表示するかを識別するには、アプリIDが必要です。 > **Supported products** > **Required Scopes** # Set an app's feature flag Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/flags/update-feature-flag specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json PUT /feature-flags/2026-09/{appId}/flags/{flagName} アプリの機能フラグを設定します。例えば、従来のCRMカードを新しいインストールから非表示にするには「hs-hide-crm-cards」フラグの「defaultState」を「ON」に更新します。 > **Supported products** > **Required Scopes** # Feature flags Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/guide # Delete an account flag state Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/portal-flag-states/delete-portal-flag specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json DELETE /feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId} 特定のHubSpotアカウントのアカウントレベルのフラグ状態を削除します。リクエスト本文は含まれません。 > **Supported products** > **Required Scopes** # Batch delete account flag state Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/portal-flag-states/delete-portal-flag-batch specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json POST /feature-flags/2026-09/{appId}/flags/{flagName}/portals/batch/delete 複数のHubSpotアカウントのアカウントレベルのフラグ状態を一度に削除します。このエンドポイントを使用して、HubSpotアカウントのグループのフラグ露出を管理します。 > **Supported products** > **Required Scopes** # Retrieve account flag state Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/portal-flag-states/get-account-flag specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json GET /feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId} 特定のHubSpotアカウントのアカウントレベルのフラグ状態を取得します。 > **Supported products** > **Required Scopes** # Retrieve accounts with a set flag state Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/portal-flag-states/get-accounts-with-flag-state specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json GET /feature-flags/2026-09/{appId}/flags/{flagName}/portals 指定されたアプリのアカウントレベルのフラグ設定があるHubSpotアカウントのリストを取得します。リクエスト本文は含まれません。 > **Supported products** > **Required Scopes** # Set an account flag state Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/portal-flag-states/update-account-flag specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json PUT /feature-flags/2026-09/{appId}/flags/{flagName}/portals/{portalId} 特定のHubSpotアカウントのアカウントレベルのフラグ状態を指定します。 > **Supported products** > **Required Scopes** # Batch set account flag state Source: https://developers.hubspot.jp/docs/api-reference/latest/app-management/feature-flags/portal-flag-states/upsert-account-flag specs/2026-09/crm-public-app-feature-flags-v3-v2026-09.json POST /feature-flags/2026-09/{appId}/flags/{flagName}/portals/batch/upsert 複数のHubSpotアカウントのポータルフラグ状態を一度に設定します。このエンドポイントを使用して、HubSpotアカウントのグループのフラグ露出を管理します。 > **Supported products** > **Required Scopes** # Manage OAuth access tokens with the 2026-09 API Source: https://developers.hubspot.jp/docs/api-reference/latest/authentication/manage-oauth-tokens # Refresh an access token Source: https://developers.hubspot.jp/docs/api-reference/latest/authentication/oauth-tokens/refresh-oauth-token specs/2026-09/auth-oauth-v2026-09.json POST /oauth/2026-09/token クライアントを認証し、アクセストークンとリフレッシュトークンを返します。 > **Supported products** # Revoke an OAuth token Source: https://developers.hubspot.jp/docs/api-reference/latest/authentication/oauth-tokens/revoke-token specs/2026-09/auth-oauth-v2026-09.json POST /oauth/2026-09/token/revoke 指定されたリフレッシュトークンの削除//取り消しを行います > **Supported products** # Token introspection endpoint Source: https://developers.hubspot.jp/docs/api-reference/latest/authentication/oauth-tokens/token-introspect specs/2026-09/auth-oauth-v2026-09.json POST /oauth/2026-09/token/introspect アクセストークンとリフレッシュトークンの妥当性とメタデータを返します。 > **Supported products** # Create template Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/email-templates/create-email-template specs/2026-09/automation-email-templates-v2026-09.json POST /automation/email-templates/2026-09 HubSpotアカウントで新しいEメールテンプレートを作成します。このエンドポイントでは、テンプレートの名前、件名、本文を定義し、必要に応じてフォルダーに割り当てることができます。リクエストには、テンプレートの本文と名前を含める必要があります。注:これらのエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Email templates Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/email-templates/guide # Retrieve template Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/email-templates/retrieve-email-template specs/2026-09/automation-email-templates-v2026-09.json GET /automation/email-templates/2026-09/{templateId} 固有IDを使用して特定のEメールテンプレートを取得します。このエンドポイントを使用するとEメールテンプレートの詳細にアクセスでき、Eメール自動化戦略を確認したり管理したりしやすくなります。注:これらのエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Retrieve templates Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/email-templates/retrieve-email-templates specs/2026-09/automation-email-templates-v2026-09.json GET /automation/email-templates/2026-09 HubSpotアカウントで使用可能なEメールテンプレートのリストを取得します。このエンドポイントでは、多数のテンプレートを操作するためにページ分割がサポートされます。このエンドポイントを使用して、Eメールテンプレートに効率的にアクセスし、管理できます。注:これらのエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Retrieve folders Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/email-templates/retrieve-folders specs/2026-09/automation-email-templates-v2026-09.json GET /automation/email-templates/2026-09/folders HubSpotアカウントで使用可能なEメールテンプレートフォルダーのリストを取得します。このエンドポイントでは、多数のフォルダーを操作するためにページ分割がサポートされます。このエンドポイントを使用して、Eメールテンプレートを効率的に整理し、管理できます。注:これらのエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Update template Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/email-templates/update-email-template specs/2026-09/automation-email-templates-v2026-09.json PATCH /automation/email-templates/2026-09/{templateId} HubSpotアカウントの既存のEメールテンプレートを更新します。このエンドポイントでは、テンプレートの名前、件名、本文、folderIdなどのプロパティーを変更できます。指定されたtemplateIdが既存のテンプレートに対応していることを確認してください。注:これらのエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Create sequence Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/create-sequence specs/2026-09/automation-sequences-v2026-09.json POST /automation/sequences/2026-09/serviceaccounts/sequences 指定された設定とステップを使用して、HubSpotアカウントで新しいシーケンスを作成します。このエンドポイントでは、シーケンスの名前、設定、ステップ、依存関係などのプロパティーを定義して、プロセスを効果的に自動化できます。注:このエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Delete sequence Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/delete-sequence specs/2026-09/automation-sequences-v2026-09.json DELETE /automation/sequences/2026-09/serviceaccounts/sequences/{sequenceId} 固有IDを使用して、HubSpotアカウントから特定のシーケンスを削除します。この操作によりシーケンスが削除され、指定された場合は有効な登録を上書きすることもできます。注:このエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Enroll a contact Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/enrollment/enroll-a-contact specs/2026-09/automation-sequences-v2026-09.json POST /automation/sequences/2026-09/enrollments 指定されたシーケンスIDを使用して、コンタクトをシーケンスに登録します。この操作には、ユーザーIDをクエリーパラメーターとして指定する必要があります。リクエスト本文には、コンタクトID、送信者Eメール、シーケンスIDを含める必要があります。このエンドポイントは、コンタクトをあらかじめ定義済みのシーケンスに自動的に登録し、コミュニケーションとフォローアッププロセスを効率化するのに役立ちます。 > **Supported products** > **Required Scopes** # Enroll service account Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/enrollment/enroll-service-account specs/2026-09/automation-sequences-v2026-09.json POST /automation/sequences/2026-09/serviceaccounts/enrollments 指定された登録詳細を使用して、サービスアカウントをシーケンスに登録します。このエンドポイントは、サービスアカウントをシーケンスに追加するプロセスを自動化するのに役立ち、ワークフローを効率化し、一貫したエンゲージメント戦略を確保できます。注:このエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Retrieve enrollment details Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/enrollment/retrieve-enrollment-details specs/2026-09/automation-sequences-v2026-09.json GET /automation/sequences/2026-09/enrollments/contact/{contactId} HubSpotアカウント内の特定のコンタクトのシーケンス登録詳細を取得します。このエンドポイントは、登録日、シーケンス名、IDなど、コンタクトが登録されているシーケンスに関する情報を提供します。 > **Supported products** > **Required Scopes** # Sequences API Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/guide # List sequences Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/list-sequences specs/2026-09/automation-sequences-v2026-09.json GET /automation/sequences/2026-09/serviceaccounts/sequences サービスアカウントで使用可能なシーケンスのリストを取得します。このエンドポイントはページ分割をサポートしており、シーケンス名で絞り込めます。管理や報告を目的としてシーケンスの概要を把握するのに役立ちます。注:このエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Retrieve performance Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/retrieve-performance specs/2026-09/automation-sequences-v2026-09.json GET /automation/sequences/2026-09/serviceaccounts/sequences/{sequenceId}/performance HubSpotアカウント内の特定のシーケンスのパフォーマンス測定指標を取得します。このエンドポイントは、開封率、クリック率、返信率などの測定指標を含めて、シーケンスの効果に関する詳細な分析情報を提供します。シーケンスの長期的な成功を分析するのに役立ちます。注:このエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Retrieve sequence Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/retrieve-sequence specs/2026-09/automation-sequences-v2026-09.json GET /automation/sequences/2026-09/serviceaccounts/sequences/{sequenceId} シーケンスIDを使用して、HubSpotアカウント内の特定のシーケンスの詳細を取得します。このエンドポイントは、シーケンスの設定、ステップ、依存関係を含む包括的な情報を提供します。シーケンスの構成を取得し、シーケンスの構造とコンポーネントを理解するのに役立ちます。注:このエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Update sequence Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/sequences/update-sequence specs/2026-09/automation-sequences-v2026-09.json PUT /automation/sequences/2026-09/serviceaccounts/sequences/{sequenceId} 固有IDを使用して、HubSpotアカウント内の既存のシーケンスを更新します。このエンドポイントでは、シーケンスの設定、ステップ、および依存関係を変更できます。パスで指定されたsequenceIdが有効であり、更新するシーケンスに対応していることを確認してください。注:このエンドポイントのスコープにはユーザーレベルのアクセスが必要であり、ポータルレベルのアクセス権を使用している既存のアプリでは機能しません。 > **Supported products** > **Required Scopes** # Complete a batch of callbacks Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/callbacks/batch-complete-callbacks specs/2026-09/automation-actions-v4-v2026-09.json POST /automation/actions/callbacks/2026-09/complete ブロックされたアクション実行をバッチ実施します。 > **Supported products** > **Required Scopes** # Complete a callback Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/callbacks/complete-callback specs/2026-09/automation-actions-v4-v2026-09.json POST /automation/actions/callbacks/2026-09/{callbackId}/complete IDを基準にブロックされた特定のアクション実行を実施します。 > **Supported products** > **Required Scopes** # Build custom workflow actions Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/custom-action-guide # Custom workflow actions reference Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/custom-action-reference # Custom code actions Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/custom-code-actions # Create a new custom action definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/definitions/create-action-definition specs/2026-09/automation-actions-v4-v2026-09.json POST /automation/actions/2026-09/{appId} 新しいカスタム ワークフロー アクションを作成します。 > **Supported products** > **Required Scopes** # Delete an action definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/definitions/delete-action-definition specs/2026-09/automation-actions-v4-v2026-09.json DELETE /automation/actions/2026-09/{appId}/{definitionId} IDを基準にアクション定義を削除します。 > **Supported products** > **Required Scopes** # Retrieve a custom action definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/definitions/get-action-definition specs/2026-09/automation-actions-v4-v2026-09.json GET /automation/actions/2026-09/{appId}/{definitionId} IDを基準にカスタム ワークフロー アクション定義を取得します。 > **Supported products** > **Required Scopes** # Retrieve custom action definitions Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/definitions/get-action-definitions specs/2026-09/automation-actions-v4-v2026-09.json GET /automation/actions/2026-09/{appId} アプリIDを基準にカスタム ワークフロー アクション定義を取得します。 > **Supported products** > **Required Scopes** # Set the object requirement for a custom action definition. Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/definitions/set-object-requirement specs/2026-09/automation-actions-v4-v2026-09.json POST /automation/actions/2026-09/{appId}/{definitionId}/requires-object カスタムアクション定義にオブジェクトが必要かどうかを設定します。 > **Supported products** > **Required Scopes** # Update an existing action definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/definitions/update-action-definition specs/2026-09/automation-actions-v4-v2026-09.json PATCH /automation/actions/2026-09/{appId}/{definitionId} IDを基準に既存のアクション定義を更新します。 > **Supported products** > **Required Scopes** # Insert a function for a definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/functions/add-function specs/2026-09/automation-actions-v4-v2026-09.json PUT /automation/actions/2026-09/{appId}/{definitionId}/functions/{functionType} 特定の定義の関数を追加します。 > **Supported products** > **Required Scopes** # Archive a function for a definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/functions/archive-function specs/2026-09/automation-actions-v4-v2026-09.json DELETE /automation/actions/2026-09/{appId}/{definitionId}/functions/{functionType}/{functionId} 特定の定義の関数をアーカイブします。 > **Supported products** > **Required Scopes** # Delete a function for a definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/functions/delete-function specs/2026-09/automation-actions-v4-v2026-09.json DELETE /automation/actions/2026-09/{appId}/{definitionId}/functions/{functionType} 特定の定義内の関数を削除します。 > **Supported products** > **Required Scopes** # Retrieve a function from a given definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/functions/get-function specs/2026-09/automation-actions-v4-v2026-09.json GET /automation/actions/2026-09/{appId}/{definitionId}/functions/{functionType}/{functionId} 特定の定義から特定の関数を取得します。 > **Supported products** > **Required Scopes** # Retrieve functions for a given definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/functions/get-functions specs/2026-09/automation-actions-v4-v2026-09.json GET /automation/actions/2026-09/{appId}/{definitionId}/functions 定義に含まれるすべての関数を取得します。 > **Supported products** > **Required Scopes** # Retrieve functions by a type for a given definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/functions/get-functions-by-type specs/2026-09/automation-actions-v4-v2026-09.json GET /automation/actions/2026-09/{appId}/{definitionId}/functions/{functionType} 特定の定義に対する特定の型の関数を取得します。 > **Supported products** > **Required Scopes** # Update a function for a definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/functions/update-function specs/2026-09/automation-actions-v4-v2026-09.json PUT /automation/actions/2026-09/{appId}/{definitionId}/functions/{functionType}/{functionId} IDを基準に特定の定義の関数を更新します。 > **Supported products** > **Required Scopes** # Retrieve a specific revision of a definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/revisions/get-revision specs/2026-09/automation-actions-v4-v2026-09.json GET /automation/actions/2026-09/{appId}/{definitionId}/revisions/{revisionId} 変更履歴IDを基準に定義の特定の変更履歴を取得します。 > **Supported products** > **Required Scopes** # Retrieve revisions for a given definition Source: https://developers.hubspot.jp/docs/api-reference/latest/automation/workflow-actions/revisions/get-revisions specs/2026-09/automation-actions-v4-v2026-09.json GET /automation/actions/2026-09/{appId}/{definitionId}/revisions IDを基準に定義のバージョンを取得します。 > **Supported products** > **Required Scopes** # Create a batch of authors Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/batch/create-authors specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/batch/create リクエスト本文に詳細が記載されたブログ執筆者オブジェクトを作成します。 > **Supported products** > **Required Scopes** # Delete a batch of authors Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/batch/delete-authors specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/batch/archive リクエスト本文で識別されたブログ執筆者オブジェクトを削除します。 > **Supported products** > **Required Scopes** # Retrieve a batch of authors Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/batch/get-authors specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/batch/read リクエスト本文で識別されたブログ執筆者オブジェクトを取得します。 > **Supported products** > **Required Scopes** # Update a batch of authors Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/batch/update-authors specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/batch/update リクエスト本文で識別されたブログ執筆者オブジェクトを更新します。 > **Supported products** > **Required Scopes** # Create an author Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/create-author specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors 新規ブログ執筆者を作成します。 > **Supported products** > **Required Scopes** # Delete an author Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/delete-author specs/2026-09/cms-authors-v2026-09.json DELETE /cms/blogs/2026-09/authors/{objectId} パスのIDで識別されたブログ執筆者オブジェクトを削除します。 > **Supported products** > **Required Scopes** # Retrieve an author Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/get-author specs/2026-09/cms-authors-v2026-09.json GET /cms/blogs/2026-09/authors/{objectId} パスのIDで識別されたブログ執筆者オブジェクトを取得します。 > **Supported products** > **Required Scopes** # Get all authors Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/get-authors specs/2026-09/cms-authors-v2026-09.json GET /cms/blogs/2026-09/authors ブログ執筆者のリストを取得します。ページ処理と絞り込みがサポートされます。このメソッドは、これらのモデルを調査し、外部サービスを使用して編集を提案するような連携で便利です。 > **Supported products** > **Required Scopes** # CMS API | Blog Authors Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/guide # Attach an author to a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/multi-language/attach-to-lang-group specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/multi-language/attach-to-lang-group ブログ執筆者を多言語グループに添付します。 > **Supported products** > **Required Scopes** # Create a new language variation Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/multi-language/create-language-variation specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/multi-language/create-language-variation 既存のブログ執筆者から新しい言語バリエーションを作成 > **Supported products** > **Required Scopes** # Detach an author from a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/multi-language/detach-from-lang-group specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/multi-language/detach-from-lang-group ブログ執筆者を多言語グループから分離します。 > **Supported products** > **Required Scopes** # Set a new primary language Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/multi-language/set-new-lang-primary specs/2026-09/cms-authors-v2026-09.json PUT /cms/blogs/2026-09/authors/multi-language/set-new-lang-primary ブログ執筆者を多言語グループのプライマリー言語として設定します。 > **Supported products** > **Required Scopes** # Update languages of multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/multi-language/update-languages specs/2026-09/cms-authors-v2026-09.json POST /cms/blogs/2026-09/authors/multi-language/update-languages 多言語グループの各ブログ執筆者に新しい言語を明示的に設定します。 > **Supported products** > **Required Scopes** # Update an author Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/authors/update-author specs/2026-09/cms-authors-v2026-09.json PATCH /cms/blogs/2026-09/authors/{objectId} パスのIDで識別されたブログ執筆者オブジェクトをスパース更新します。すべての列値を指定する必要はありません。修正が必要な列値だけを指定することができます。 > **Supported products** > **Required Scopes** # Retrieve a blog Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/get-blog specs/2026-09/cms-blog-settings-v2026-09.json GET /cms/blog-settings/2026-09/settings/{blogId} IDを基準に特定のブログを取得します。 > **Supported products** > **Required Scopes** # Get a specific blog revision Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/get-blog-revision specs/2026-09/cms-blog-settings-v2026-09.json GET /cms/blog-settings/2026-09/settings/{blogId}/revisions/{revisionId} 特定のブログ変更履歴を取得します。 > **Supported products** > **Required Scopes** # Get all blog revisions Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/get-blog-revisions specs/2026-09/cms-blog-settings-v2026-09.json GET /cms/blog-settings/2026-09/settings/{blogId}/revisions ブログ変更履歴のリストを取得します。結果は作成日または更新日によって限定し、絞り込むことができます。 > **Supported products** > **Required Scopes** # Retrieve all blogs Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/get-blogs specs/2026-09/cms-blog-settings-v2026-09.json GET /cms/blog-settings/2026-09/settings ブログのリストを取得します。結果は作成日または更新日によって限定し、絞り込むことができます。 > **Supported products** > **Required Scopes** # CMS API | Blog Settings Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/guide # Add a blog to a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/multi-language/attach-to-lang-group specs/2026-09/cms-blog-settings-v2026-09.json POST /cms/blog-settings/2026-09/settings/multi-language/attach-to-lang-group ブログを多言語グループに添付します。 > **Supported products** > **Required Scopes** # Update blog languages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/multi-language/create-blog-setting specs/2026-09/cms-blog-settings-v2026-09.json POST /cms/blog-settings/2026-09/settings/multi-language/update-languages 多言語グループの各ブログに新しい言語を明示的に設定します。 > **Supported products** > **Required Scopes** # Create a language variation from an existing blog Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/multi-language/create-language-variation specs/2026-09/cms-blog-settings-v2026-09.json POST /cms/blog-settings/2026-09/settings/multi-language/create-language-variation 既存のブログから新しい言語バリエーションを作成します。 > **Supported products** > **Required Scopes** # Remove a blog from a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/multi-language/detach-from-lang-group specs/2026-09/cms-blog-settings-v2026-09.json POST /cms/blog-settings/2026-09/settings/multi-language/detach-from-lang-group ブログを多言語グループから分離します。 > **Supported products** > **Required Scopes** # Set primary language to match a specific blog Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/blog-settings/multi-language/set-new-lang-primary specs/2026-09/cms-blog-settings-v2026-09.json PUT /cms/blog-settings/2026-09/settings/multi-language/set-new-lang-primary ブログを多言語グループのプライマリー言語として設定します。 > **Supported products** > **Required Scopes** # CMS API | Blog Posts Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/guide # Create a batch of posts Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/batch/create-posts specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/batch/create ブログ記事をバッチ作成し、リクエスト本文でその内容を指定します。 > **Supported products** > **Required Scopes** # Delete a batch of posts Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/batch/delete-posts specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/batch/archive IDを基準にブログ記事を削除します。 注:これはアプリ内の「アーカイブ」機能とは異なります。 ダッシュボードの「アーカイブ」を実行するには、「archivedInDashboard」フィールドをtrueに設定して通常の更新を送信します。 > **Supported products** > **Required Scopes** # Retrieve a batch of posts Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/batch/get-posts specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/batch/read リクエスト本文で特定されるIDを基準にブログ記事をバッチ取得します。 > **Supported products** > **Required Scopes** # Update a batch of posts Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/batch/update-posts specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/batch/update ブログ記事をバッチ更新します。 > **Supported products** > **Required Scopes** # Clone a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/clone-post specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/clone ブログ記事を複製し、そのコピーを新しいブログ記事で作成します。 > **Supported products** > **Required Scopes** # Create a new post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/create-post specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts 新しいブログ記事を作成し、リクエスト本文でその内容を指定します。 > **Supported products** > **Required Scopes** # Delete a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/delete-post specs/2026-09/cms-posts-v2026-09.json DELETE /cms/blogs/2026-09/posts/{objectId} IDを基準にブログ記事を削除します。 > **Supported products** > **Required Scopes** # Retrieve the full draft version of a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/drafts/get-post-draft specs/2026-09/cms-posts-v2026-09.json GET /cms/blogs/2026-09/posts/{objectId}/draft ブログ記事の完全な下書きバージョンを取得します。 > **Supported products** > **Required Scopes** # Publish a post draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/drafts/publish-draft specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/{objectId}/draft/push-live ブログ記事の下書きバージョンを公開し、その内容を公開中のページに送信します。 > **Supported products** > **Required Scopes** # Update the draft of a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/drafts/update-post-draft specs/2026-09/cms-posts-v2026-09.json PATCH /cms/blogs/2026-09/posts/{objectId}/draft IDを基準に1件のブログ記事の下書きバージョンを部分的に更新します。更新する値のみを指定する必要があります。 > **Supported products** > **Required Scopes** # Retrieve a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/get-post specs/2026-09/cms-posts-v2026-09.json GET /cms/blogs/2026-09/posts/{objectId} 記事IDを基準にブログ記事を取得します。 > **Supported products** > **Required Scopes** # Get all posts Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/get-posts specs/2026-09/cms-posts-v2026-09.json GET /cms/blogs/2026-09/posts ページ処理や絞り込みのオプションを含めてすべてのブログ記事を取得します。この方法は、記事を取り込んで編集の提案を行う連携で便利です。 > **Supported products** > **Required Scopes** # Attach post to a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/multi-language/attach-to-lang-group specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/multi-language/attach-to-lang-group ブログ記事を[多言語グループ](https://developers.hubspot.com/docs/guides/cms/content/multi-language-content)に添付します。 > **Supported products** > **Required Scopes** # Create a language variation Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/multi-language/create-language-variation specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/multi-language/create-language-variation 既存のブログ記事から新しい言語バリエーションを作成 > **Supported products** > **Required Scopes** # Detach post from a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/multi-language/detach-from-lang-group specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/multi-language/detach-from-lang-group ブログ記事を[多言語グループ](https://developers.hubspot.com/docs/guides/cms/content/multi-language-content)から分離します。 > **Supported products** > **Required Scopes** # Set a new primary language Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/multi-language/set-new-lang-primary specs/2026-09/cms-posts-v2026-09.json PUT /cms/blogs/2026-09/posts/multi-language/set-new-lang-primary [多言語グループ](https://developers.hubspot.com/docs/guides/cms/content/multi-language-content)のプライマリー言語を、指定された投稿(リクエスト本文でIDとして指定)の言語に設定します > **Supported products** > **Required Scopes** # Update languages of multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/multi-language/update-languages specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/multi-language/update-languages [多言語グループ](https://developers.hubspot.com/docs/guides/cms/content/multi-language-content)の各記事の新しい言語を明示的に設定します。 > **Supported products** > **Required Scopes** # Retrieve a previous version of a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/revisions/get-post-version specs/2026-09/cms-posts-v2026-09.json GET /cms/blogs/2026-09/posts/{objectId}/revisions/{revisionId} ブログ記事の以前のバージョンを取得します。 > **Supported products** > **Required Scopes** # Retrieves all previous versions of a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/revisions/get-post-versions specs/2026-09/cms-posts-v2026-09.json GET /cms/blogs/2026-09/posts/{objectId}/revisions ブログ記事の以前のバージョンをすべて取得します。 > **Supported products** > **Required Scopes** # Restore a previous version Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/revisions/restore-post specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/{objectId}/revisions/{revisionId}/restore ブログ記事を以前のバージョンのいずれかに復元します。 > **Supported products** > **Required Scopes** # Restore a draft to a previous version Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/revisions/restore-to-draft specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/{objectId}/revisions/{revisionId}/restore-to-draft ブログ記事の指定されたバージョンを取得し、ブログ記事の新しい下書きバージョンとして設定します。 > **Supported products** > **Required Scopes** # Schedule a post to be published Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/schedule-post specs/2026-09/cms-posts-v2026-09.json POST /cms/blogs/2026-09/posts/schedule 指定した時刻に公開するようにブログ記事をスケジュールします。 > **Supported products** > **Required Scopes** # Update a post Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/posts/update-post specs/2026-09/cms-posts-v2026-09.json PATCH /cms/blogs/2026-09/posts/{objectId} IDを基準に1件のブログ記事を部分的に更新します。更新する値のみを指定する必要があります。 > **Supported products** > **Required Scopes** # Create a batch of tags Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/batch/create-tags specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/batch/create リクエスト本文に詳細が記載されたブログ タグ オブジェクトを作成します。 > **Supported products** > **Required Scopes** # Delete a batch of tags Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/batch/delete-tags specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/batch/archive リクエスト本文で識別されたブログ タグ オブジェクトを削除します。 > **Supported products** > **Required Scopes** # Retrieve a batch of tags Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/batch/get-tags specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/batch/read リクエスト本文で識別されたブログ タグ オブジェクトを取得します。 > **Supported products** > **Required Scopes** # Update a batch of tags Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/batch/update-tags specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/batch/update リクエスト本文で識別されたブログ タグ オブジェクトを更新します。 > **Supported products** > **Required Scopes** # Create a tag Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/create-tag specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags 新規ブログタグを作成します。 > **Supported products** > **Required Scopes** # Delete a tag Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/delete-tag specs/2026-09/cms-tags-v2026-09.json DELETE /cms/blogs/2026-09/tags/{objectId} パスのIDで識別されたブログ タグ オブジェクトを削除します。 > **Supported products** > **Required Scopes** # Retrieve a tag Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/get-tag specs/2026-09/cms-tags-v2026-09.json GET /cms/blogs/2026-09/tags/{objectId} パスのIDで識別されたブログ タグ オブジェクトを取得します。 > **Supported products** > **Required Scopes** # Retrieve all tags Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/get-tags specs/2026-09/cms-tags-v2026-09.json GET /cms/blogs/2026-09/tags ブログタグのリストを取得します。ページ処理と絞り込みがサポートされます。このメソッドは、これらのモデルを調査し、外部サービスを使用して編集を提案するような連携で便利です。 > **Supported products** > **Required Scopes** # CMS API | Blog tags Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/guide # Attach a tag to a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/multi-language/attach-to-lang-group specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/multi-language/attach-to-lang-group ブログタグを多言語グループに添付します。 > **Supported products** > **Required Scopes** # Create a new language variation Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/multi-language/create-language-variation specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/multi-language/create-language-variation 既存のブログタグから新しい言語バリエーションを作成 > **Supported products** > **Required Scopes** # Detach a tag from a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/multi-language/detach-from-lang-group specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/multi-language/detach-from-lang-group ブログタグを多言語グループから分離します。 > **Supported products** > **Required Scopes** # Set a new primary language Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/multi-language/set-new-lang-primary specs/2026-09/cms-tags-v2026-09.json PUT /cms/blogs/2026-09/tags/multi-language/set-new-lang-primary ブログタグを多言語グループのプライマリー言語として設定します。 > **Supported products** > **Required Scopes** # Update languages of multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/multi-language/update-languages specs/2026-09/cms-tags-v2026-09.json POST /cms/blogs/2026-09/tags/multi-language/update-languages 多言語グループの各ブログタグに新しい言語を明示的に設定します。 > **Supported products** > **Required Scopes** # Update a tag Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/blogs/tags/update-tag specs/2026-09/cms-tags-v2026-09.json PATCH /cms/blogs/2026-09/tags/{objectId} パスのIDで識別されたブログ タグ オブジェクトをスパース更新します。 すべての列値を指定する必要はありません。修正が必要な列値だけを指定することができます。 > **Supported products** > **Required Scopes** # Export content audit logs Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/content-audit/export-content-audit specs/2026-09/cms-cms-content-audit-v2026-09.json POST /cms/audit-logs/2026-09/export 指定された設定に基づいてCMS監査ログをエクスポートします。このエンドポイントを使用すると、XLS、XLSX、CSVなどのさまざまな形式でログをエクスポートできます。リクエストには、E メールアドレス、ポータルID、受信者ユーザーIDなどの詳細を指定する必要があります。これは、CMS内の変更を監査および監視するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve content audit logs Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/content-audit/get-content-audit specs/2026-09/cms-cms-content-audit-v2026-09.json GET /cms/audit-logs/2026-09 HubSpotアカウントのCMSの監査ログを取得します。このエンドポイントを使用すると、ユーザー、イベントタイプ、オブジェクトタイプ、オブジェクトIDでログを絞り込めます。ページ分割と並べ替えに対応しているため、大量のログデータを簡単に確認できます。このエンドポイントを使用して、CMS内の変更とアクティビティーを監視します。 > **Supported products** > **Required Scopes** # CMSコンテンツオーディットAPI|HubSpot(ハブスポット) Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/content-audit/guide > **[Run in Postman](https://app.getpostman.com/run-collection/26126890-30d22393-5cdf-4042-9b43-ca5e7bf0dab5)** > **スコープ要件** # CMSコンテンツオーディット CMSコンテンツオーディット(証跡)APIを使用すると、コンテンツオブジェクトに関する変更をタイプ、期間、またはHubSpotユーザーIDを基準に絞り込んだり、並べ替えたりできます。このエンドポイントを使用できるのは、**CMS Hub Enterprise**をご契約中のアカウントのみです。 \*\*使用例:\*\*ページのリストに最後に変更を加えたユーザーを確認できます。 ## CMSイベントタイプのリスト | イベントタイプ | Description | | - | - | | `CREATED` | オブジェクトが作成されました。 | | `DELETED` | オブジェクトが削除または接続解除されました。 | | `PUBLISHED` | オブジェクトが公開されました。 | | `UNPUBLISHED` | オブジェクトが非公開にされました。 | | `UPDATED` | オブジェクトが更新されました。 | ## CMSオブジェクトタイプのリスト | オブジェクトタイプ | Description | | - | - | | `BLOG` | アカウント設定内のブログ設定に加えられた変更。 | | `BLOG_POST` | ブログに関連付けられているブログ記事。 | | `CONTENT_SETTINGS` | アカウント設定内のウェブサイト設定に加えられた変更。変更された値は`meta` JSON配列として示されます。 | | `CTA` | [CTA(Calls-to-Action)](https://knowledge.hubspot.com/ja/marketing-tools/topics#ctas)に加えられた変更。 | | `DOMAIN` | アカウント設定内の[ドメインとURL]設定で接続されているドメインに加えられた変更。 | | `EMAIL` | EメールエディターでEメールに加えられた変更。 | | `FILE` | [ファイルツール](https://knowledge.hubspot.com/ja/files/organize-edit-and-delete-files)でファイルに加えられた変更。 | | `GLOBAL_MODULE` | [グローバルモジュール](https://knowledge.hubspot.com/ja/design-manager/make-changes-to-a-global-module-in-only-one-template)に加えられた変更。 | | `HUBDB_TABLE` | HubDBテーブルに加えられた変更。 | | `KNOWLEDGE_BASE` | アカウント設定内のナレッジベース設定に加えられた変更。 | | `KNOWLEDGE_BASE_ARTICLE` | コンテンツエディター上でナレッジベース記事に加えられた変更。 | | `LANDING_PAGE` | コンテンツエディター上でランディングページに加えられた変更。 | | `MODULE` | [モジュール](/docs/cms/start-building/building-blocks/modules/overview)に加えられた変更。 | | `SERVERLESS_FUNCTION` | [サーバーレス関数](/docs/cms/start-building/features/serverless-functions/overview)に加えられた変更。 | | `TEMPLATE` | [テンプレート](/docs/cms/start-building/building-blocks/templates/overview)に加えられた変更。 | | `THEME` | [テーマ設定](https://knowledge.hubspot.com/ja/website-and-landing-pages/edit-your-theme-settings)に加えられた変更と[テーマ](https://knowledge.hubspot.com/ja/website-and-landing-pages/edit-your-theme-settings)が作成されたときの変更。 | | `URL_MAPPING` | アカウント設定内の[URLリダイレクト]設定でURLリダイレクトに加えられた変更。 | | `WEBSITE_PAGE` | コンテンツエディター上でウェブサイトページに加えられた変更。 | # Retrieve a domain Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/domains/get-domain specs/2026-09/cms-domains-v2026-09.json GET /cms/domains/2026-09/{domainId} 指定されたIDを持つ単一のドメインを返します。 > **Supported products** > **Required Scopes** # Retrieve all domains Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/domains/get-domains specs/2026-09/cms-domains-v2026-09.json GET /cms/domains/2026-09 HubSpotアカウントに関連付けられているコンテンツドメインのリストを取得します。このエンドポイントでは、作成および更新のタイムスタンプによる絞り込み、並べ替え、ページ分割が可能です。CMSで設定されているドメインの管理と確認に役立ちます。 > **Supported products** > **Required Scopes** # CMS API | Domain management Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/domains/guide # CMS API | HubDB Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/guide > **スコープ要件** HubDBは、スプレッドシートと同じように、テーブル(表)の行、列、セルでデータを表現するリレーショナル データ ストアです。HubDBテーブルを[HubSpotアカウント内](/docs/cms/start-building/features/storage/hubdb#create-a-hubdb-table)で追加したり変更したりできますが、ここに記載されているAPIエンドポイントを使用することもできます。ウェブサイトや[プログラマブルEメール](/docs/cms/start-building/features/data-driven-content/emails-with-programmable-content)でHubDBテーブルのデータを使用する方法については、[HubSpotのCMS開発者向けドキュメント](/docs/cms/start-building/features/storage/hubdb)を参照してください。 HubSpotウェブサイトページと同様に、HubDBテーブルは`draft`バージョンと`published`バージョンをサポートしています。これにより、公開中のページに影響を与えずに、テスト用または手動による承認プロセス用にテーブル内のデータを更新することができます。[下書きテーブルと公開テーブル](#draft-vs-live-tables)について詳細をご確認ください。 [公開アクセスを許可する](https://knowledge.hubspot.com/website-and-landing-pages/create-and-hubdb-tables#manage-table-settings-cms-hub-professional-and-enterprise-only)ようにテーブルが設定されている場合、クエリーパラメーター`portalId`を介してHubSpotアカウントIDを指定すると、認証なしでテーブルと行の公開バージョンにアクセスできます。 HubDB APIのv2から移行しようとしている場合は、[最新の(v3)APIの変更点](#changes-in-v3)について詳しくご確認ください。 > [!WARNING] > > **注:**`GET`をサポートするエンドポイントは`CORS`もサポートしていますから、JavaScriptとアカウントIDを使用してクライアントサイドでテーブル内のデータにアクセスできます。その他の方法および「Get all tables」エンドポイントでは認証が必要であり、`CORS`はサポートされていません。 ## レート制限 HubDBのAPIリクエストには、リクエストの種類に応じて異なるレート制限が適用されます。 * 認証を必要としない`GET`リクエスト(クライアントサイドのJavaScriptリクエストを含む)は、1秒あたり10件に限定されます。これらのリクエストは1日あたりの上限には計上されません。 * [認証を使用](https://developers.hubspot.jp/docs/guides/api/oauth/tokens)するその他全てのリクエストには、[標準的な制限](/docs/api-reference/overview)が適用されます。 ## 下書きテーブルと公開テーブル HubDBテーブルには下書きバージョンと公開バージョンの両方があります。公開バージョンは非公開にすることもできます。非公開にしてテーブル内のデータを更新すれば、他の公開ページに影響を与えずに、ページのプレビューやテスト、手動による承認プロセスを行うことができます。 このAPIでは、テーブルの下書きバージョンと公開バージョンに別々のエンドポイントが指定されています。例えば、以下のエンドポイントに`GET`リクエストを送信することで、テーブルの公開バージョンを取得できます。 `/cms/v3/hubdb/tables/{tableIdOrName}` また、下書きはできているが未公開になっているコンテンツを取得するには、URLの末尾に`/draft`を追加します。 `/cms/v3/hubdb/tables/{tableIdOrName}/draft` 下書きデータをレビューした後、HubSpotでプッシュできます。`/push-live`エンドポイントを使用することもできます。また、エンドポイント`/reset`を介して下書きデータを破棄することもでき、こうすれば中断なしでデータを現在の公開バージョンに戻すことができます。 ## HubDBテーブルを作成する HubDBテーブルを作成するには、`POST`リクエストを`/cms/v3/hubdb/tables`に送信します。 リクエスト本文で、次の必須フィールドを指定します。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `name` | 文字列 | テーブルの内部名。テーブルの作成後に、この「name」を変更することはできません。「name」には半角の英小文字、数字、アンダースコアのみ含めることができますが、数字で始めることはできません。 | `"name": "my_table"` | | `label` | 文字列 | ユーザーがHubSpotでテーブルを編集するときに表示される、テーブルのラベル。 | `"label":"My table"` | さらに、次の任意のフィールドを指定できます。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `useForPages` | ブール値 | テーブルを[動的ページの作成](#configuring-hubdb-tables-for-dynamic-pages)に使用可能にするかどうかを指定します。 | `"useForPages": false` | | `allowPublicAPIAccess` | ブール値 | 承認なしでテーブルを読み取り可能にするかどうかを指定します。 | `"allowPublicApiAccess": false` | | `allowChildTables` | ブール値 | テーブルの子テーブルを作成できるかどうかを指定します。 | `"allowChildTables": false` | | `enableChildTablePages` | ブール値 | 子テーブルを使用して[マルチレベルの動的ページ](/docs/cms/start-building/features/data-driven-content/hubdb/multilevel)を作成するかどうかを指定します。 | `"enableChildTablePages": false` | | `columns` | オブジェクト | テーブルの列。列プロパティーの詳細については、「[テーブル列を追加する](#add-table-columns)」のセクションをご覧ください。 | `See "Add table columns" section below` | 列を追加せずにテーブルを作成するためのリクエストは、次のような内容になります。 ```json theme={null} // Example request { "name": "test_table", "label": "Test Table", "useForPages": false, "allowPublicApiAccess": false, "allowChildTables": true, "enableChildTablePages": false, "columns": [] } ``` ### テーブル列の追加 HubDBテーブルの各列は、次のプロパティーを使用して定義可能です。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `name` | 文字列 | (必須)列の内部名。列の作成後にこれを変更することはできません。 | `"name": "row_name"` | | `label` | 文字列 | 任意。ユーザーがHubSpotで列を編集するときに表示される、列のラベル。 | `"label": "Row label"` | | `type` | 文字列 | 列のデータタイプ。次のいずれかにする必要があります。
        • `TEXT`:テキストフィールド。
        • `RICHTEXT`:基本的なHTML書式設定をサポートするテキストフィールド。HTMLがHubSpotで編集可能になるかどうかを左右する可能性があるため、未加工のHTMLには推奨されません。HubSpotでコードを編集すると、コードがレンダリングされる方法にも影響が及ぶ可能性があります。
        • `NUMBER`:数値フィールド。
        • `BOOLEAN`:HubSpotでチェックボックスとして表示されます。チェックボックスをオフの状態で表示させるには`0`を、オンの状態で表示させるには`1`を使用します。
        • `DATE`:特定の日付を、UTC深夜0時に設定されたミリ秒単位のタイムスタンプとして格納します。
        • `DATETIME`:日付と時刻をミリ秒単位のタイムスタンプとして格納します。
        • `SELECT`:この列を、いくつかのオプションのうち1つにのみ設定できます。必須プロパティーについては、下記の`options`フィールドを参照してください。
        • `MULTISELECT`:この列を、いくつかのオプションのうち1つ以上に設定できます。必須プロパティーについては、下記の`options`フィールドを参照してください。
        • `LOCATION`:場所の緯度と経度を格納します。
        • `IMAGE`:画像のURLを格納します。
        • `VIDEO`:動画のプレーヤーIDを格納します。
        • `FOREIGN_ID`:この列は、別のHubDBテーブルに含まれる列を参照します。さらに、次のプロパティーを使用して、該当する別のHubDBテーブルを定義する必要もあります。
          • foreignTableId:別のHubDBテーブルのID。
          • foreignColumnId:別のHubDBテーブル内の列のID。
        • `CURRENCY`:数値を通貨の値として格納します。
        • `FILE`:ファイルマネージャーからファイルを格納します。さらに、`fileType`フィールドを含めることで、全てのファイルタイプをフィールドに格納できるか(`FILE`)、PDFなどの特定のドキュメントタイプのみ格納できるか(`DOCUMENT`)を指定する必要もあります。
        | `"type": "type"` | | `options` | オブジェクト | selectタイプとmultiselectタイプの列で使用できるオプションのリスト。各オプションは、`name`に加え、`option`に設定された`type`を使用して定義されます。 | `"option": [{"name":"Option 1", "type":"option"}, {"name": "Option 2", "type": "option"}]` | 上記のフィールドを使用して新しいHubDBテーブルを作成するためのリクエストは、次のような内容になります。 ```json theme={null} // Example request { "label": "Test Table", "name": "test_table", "columns": [ { "name": "text_column", "label": "Text Column", "archived": false, "type": "TEXT" }, { "name": "number_column", "label": "Number Column", "archived": false, "type": "NUMBER" }, { "name": "multiselect", "label": "Multi Select Column", "archived": false, "type": "multiselect", "options": [ { "name": "Option 1", "type": "option" }, { "name": "Option 2", "type": "option" } ] } ], "useForPages": true, "allowChildTables": true, "enableChildTablePages": false, "allowPublicApiAccess": false } ``` テーブルの作成後、列には昇順のIDが割り当てられます。既存の列を更新する際には、入力オブジェクトに列の`id`フィールドを含めます。 ### テーブル行の追加 行を追加するには、APIを使用して手動で行う方法と、[CSVファイルから行をインポート](#import-rows-from-csv)する方法があります。 HubDBテーブルに行を追加するには、`POST`リクエストを`/cms/v3/hubdb/tables/{tableIdOrName}/rows`に送信します。 各テーブル行には、次のフィールドを含めることができます。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `values` | オブジェクト | 列名とその列に追加する値を指定する、キーと値のペアからなるリスト。 いずれかの列に特定の値を設定する必要がない場合は、キー/値ペアのリストでその列名を省略できます。 | `"values": { "text_column": "sample text", "number_column": 76}` | | `path` | 文字列 | [動的ページに対して有効になっている](/docs/cms/start-building/features/data-driven-content/hubdb/overview)テーブルの場合、`path`は、この行で作成されるページに使用されるパスサフィックスです。 | `"path": "example_url_path"` | | `name` | 文字列 | [動的ページに対して有効になっている](/docs/cms/start-building/features/data-driven-content/hubdb/overview)テーブルの場合、`name`は、この行で作成されるページに使用されるHTMLタイトルです。 | `"name": "Example Title"` | | `childTableId` | 数値 | [マルチレベルの動的ページ](/docs/cms/start-building/features/data-driven-content/hubdb/multilevel)を作成する場合、`childTableId`は子テーブルのIDを指定します。 | `"childTableId": 123456` | 上記のフィールドを使用したリクエストの例を以下に示します。 ```json theme={null} // Example request { "values": { "text_column": "sample text value", "number_column": 76, "rich_text_column": "This is a styled paragraph.", "date_column": 1591228800000, "date_time_column": 1604450520000, "boolean_column": 1, "select_column": { "name": "option 1", "type": "option" }, "multiselect_column": [ { "name": "Option 1", "type": "option" }, { "name": "Option 2", "type": "option" } ], "url_column": "https://www.hubspot.com/marketing", "video_column": 3392210008, "image_column": { "url": "https://f.hubspotusercontentqa00.net/hubfs/99992002/image3%20(1).jpg", "width": 1600, "height": 900, "type": "image" }, "foreign_id_column": [ { "id": "4364402239", "type": "foreignid" }, { "id": "4364402240", "type": "foreignid" } ] }, "path": "test_path", "name": "test_title", "childTableId": "1902373" } ``` ### CSVからの行のインポート CSVファイルからHubDBテーブルにデータをインポートするには、`POST`リクエストを`/cms/v3/hubdb/tables/{tableIdOrName}/draft/import`に送信します。 インポートエンドポイントは、次のような`multipart/form-data` `POST`リクエストを受け入れます。 * `config`\*\*:\*\*インポートで使用されるJSON形式のオプションのセット。 * `file`\*\*:\*\*インポートするCSVファイル。 `config`には、次のフィールドをJSON文字列として含めます。 | フィールド | タイプ | 説明 | 例 | | - | - | - | - | | `skipRows` | 数値 | スキップするヘッダー行の数。このフィールドの値は既定で`1`に設定されます。この場合、最初の行はヘッダーとして扱われてスキップされます。全ての行が有効なデータである場合は、このフィールドの値を`0`に設定してください。 | `"skipRows": 0` | | `separator` | 文字列 | CSVファイル内の列区切り文字。既定では`","`(半角カンマ)に設定されます。 | `"separator": ","` | | `idSourceColumn` | 数値 | 行のID(`hs_id`)が入っているソースファイル内の列のインデックス。この列が指定されている場合、インポートされるCSVファイル内のIDが一致する行によって、テーブル内の既存の行が更新されます。これは任意のフィールドであり、初めてデータをテーブルにインポートするときには無視できます。詳細については、下記の「[リセットオプション](#reset-options)」セクションを参照してください。 | `"idSourceColumn": 1` | | `resetTable` | ブール値 | 既定では`false`に設定されます。この場合、既存の行を1つも除去することなく、テーブルの行が更新されます。`true`に設定すると、スプレッドシートの行によってテーブルのデータが上書きされます。つまり、スプレッドシート内に含まれない行はテーブルから削除されます。詳細については、下記の「[リセットオプション](#reset-options)」セクションを参照してください。 | `"resetTable": true` | | `nameSourceColumn` | 数値 | [動的ページに対して有効になっている](/docs/cms/start-building/features/data-driven-content/hubdb/overview)テーブルの場合、`nameSourceColumn`は、行の`name`が格納されているCSVファイル内の列を指定します。列番号は昇順で、最初の列は`1`です。 | `"nameSourcecolumn": 5` | | `pathSourceColumn` | 数値 | [動的ページに対して有効になっている](/docs/cms/start-building/features/data-driven-content/hubdb/overview)テーブルの場合、`pathSourceColumn`は、行の`path`が格納されているCSVファイル内の列を指定します。列番号は昇順で、最初の列は`1`です。 | `"pathSourcecolumn": 6` | | `childTableSourceColumn` | 数値 | CSVファイル内の、行の`childTableId`が入っている列を指定します。列番号は昇順で、最初の列は`1`です。 | `"childTableSourcecolumn": 3` | | `columnMappings` | 配列 | ソースファイル内の列とインポート先HubDBテーブル内の列の間のマッピングリスト。各マッピングは次の形式でなければなりません:`{"source":1,"target”:"columnIdOrName"}`
        • \*\*source:\*\*ソースファイル内の列インデックス。例えば`2`は2番目の列です。
        • \*\*target:\*\*HubDBテーブル列のIDまたは名前。[テーブルの詳細情報を取得する](#retrieve-hubdb-data)ことで、列のIDや名前を確認できます。
        ファイルに`hs_id`列がある場合は、それを`columnMappings`に含めないでください。代わりに、この列を`idSourceColumn`として含めて既存の行を更新します。 | `"columnMappings": [{"source":1, "target": 2}, {"source": 2, "target": "column_name"}]` | | `primaryKeyColumn` | 文字列 | 重複排除に使用される、ターゲットHubDBテーブル内の列の名前。このフィールドで列のIDを使用することはできません。 | `"primaryKeyColumn": "column_name"` | | `encoding` | 文字列 | ファイルのエンコーディングの種類。例:`utf-8`、`ascii`、`iso-8859-2`、`iso-8859-5`、`iso-2022-jp`、`windows-1252`。 | `"encoding": "utf-8"` | | `format` | 文字列 | CSVのみがサポートされています。 | `"format": "csv"` | 上記の表を使用した`config` JSONの例を以下に示します。 ```json theme={null} // Example config JSON { "skipRows": 1, "separator": ",", "idSourceColumn": 1, "resetTable": false, "columnMappings": [ { "target": 1, "source": 2 }, { "target": 2, "source": "zip_code" } ], "primaryKeyColumn": "name", "encoding": "utf-8", "format": "csv" } ``` cURLを使用する場合、コマンドは次のようになります。 ```shell theme={null} curl -L -X POST 'https://api.hubspotqa.com/hubdb/api/v2/tables/xxxxxx/import?portalId=xxxxxxx' \ -H 'Content-Type: multipart/form-data' \ -F 'config="{\"skipRows\":1,\"format\":\"csv\",\"separator\":\",\",\"encoding\":\"iso-8859-1\",\"columnMappings\":[{\"target\":1,\"source\":7},{\"target\":3,\"source\":8}],\"idSourceColumn\":1,\"pathSourceColumn\":null,\"nameSourceColumn\":null,\"childTableSourceColumn\":null,\"resetTable\":true}"' \ -F 'file=@"/Users/xxxxxxxxxxxxx/Downloads/filename.csv"' ``` ### 日付の書式設定 データを日付型の列にインポートする際は、さまざまな日付形式を使用できます。 **整数** * `yyyy/mm/dd` * `yyyy/mm/dd` * `mm/dd/yyyy` * `mm/dd/yy` これらの形式では、日付の前に月を指定する必要があります(つまり`dd/mm/yy`という形式は使用できません)。整数の区切り文字としてハイフン(`-`)またはスラッシュ(`/`)を使用できます。 **準標準の日付形式** 整数ベースの日付形式ほど標準化されていない日付形式をインポートすることもできます。例: * `The 1st of March in the year 2022` * `Fri Mar 4 2022` * `March 4th '22` **相対日付** HubSpotでは、現在の日付を基準とする次の日付形式が解析されます: * `next Thursday` * `Today` * `tomorrow` * `3 days from now` ### リセットオプション CSVファイルからHubDBテーブルにデータをインポートするときに、`resetTable`フィールドを`true`または`false`(既定)に設定すると、HubDBの行データを上書きするかどうかを管理できます。 * `resetTable`が`true`に設定されている場合: * CSVファイル内の行に行ID列(`hs_id`)がない場合、または行IDが`0`と指定されている場合、それらの行は、生成された新しい行IDを使って挿入されます。 * CSVファイル内の行IDがターゲットテーブルに既に存在する場合、テーブルの既存の行は入力ファイル内の新しい値で更新されます。 * テーブルに行が存在するものの、入力CSVファイルにその行に対応する行IDがない場合、その行はターゲットテーブルから削除されます。 * 入力CSVファイル内の行IDがターゲットテーブル内に存在しない場合は、生成された新しい行IDを使ってそれらの行が挿入され、入力ファイル内で指定されている行IDは無視されます。 * 入力CSVファイル内に行IDの列が1つも含まれていない場合、ターゲットテーブルから全ての行が削除され、入力ファイル内の行が、生成された新しい行IDを使って挿入されます。 * `resetTable`が`false`(既定)に設定されている場合: * CSVファイル内の行IDがターゲットテーブルに既に存在する場合、テーブルの既存の行は入力ファイル内の新しい値で更新されます。 * テーブルに行が存在するものの、入力CSVファイルにその行に対応する行IDがない場合、その行はターゲットテーブルから削除されず、変更が加えられないままの状態になります。 * 入力CSVファイル内の行IDがターゲットテーブル内に存在しない場合は、生成された新しい行IDを使ってそれらの行が挿入され、入力ファイル内で指定されている行IDは無視されます。 * CSVファイル内の行に行ID列がない場合、または行IDが`0`と指定されている場合、それらの行は、生成された新しい行IDを使って挿入されます。 ## HubDBデータの取得 テーブルの詳細を取得するか、またはテーブルの特定の行を取得するかに応じて、HubDBデータを取得するにはさまざまな方法があります。 * 公開されている全てのテーブルからテーブルの詳細を取得するには`GET`リクエストを`/cms/v3/hubdb/tables`に送信します。 * 公開されている特定のテーブルからテーブルの詳細を取得するには、`GET`リクエストを`/cms/v3/hubdb/tables/{tableIdOrName}`に送信します。 * 特定のテーブルから全ての行を取得するには、`GET`リクエストを`/cms/v3/hubdb/tables/{tableIdOrName}/rows`に送信します。 * テーブルから特定の行を取得するには、`GET`リクエストを`/cms/v3/hubdb/tables/{tableIdOrName}/rows/{rowId}`に送信します。 行データを取得する際に、フィルターを適用して結果を絞り込んだり、並べ替えたりできます。 [公開アクセスを許可する](https://knowledge.hubspot.com/website-and-landing-pages/create-and-hubdb-tables#manage-table-settings-cms-hub-professional-and-enterprise-only)ようにテーブルが設定されている場合、クエリーパラメーター`portalId`を介してHubSpotアカウントIDを指定すると、認証なしでテーブルと行の公開バージョンにアクセスできます。 ### 返された行に対するフィルターの適用 HubDBテーブルデータを取得する際に、特定のデータを取得するためのクエリーパラメーターとしてフィルターを適用できます。フィルター クエリー パラメーターは、`columnName__operator`という形式で構成されます。 例えば、*「bar」* という名前の数値列がある場合、*「bar」* が10より大きい行だけを結果に含めるには、`&bar__gt=10`とします。 全てのフィルターはAND結合されます(現在のところ、ORフィルターはサポートされていません)。 フィルターを適用する際は、次の点に注意してください。 * `multiselect`の列の値を渡すときには、各値を半角カンマで区切る必要があります(例:`multiselect_column__contains=1,2`)。 * `datetime`フィルターでは、現在の時刻を基準とする値を指定する目的で、タイムスタンプの代わりに相対日付を使用できます。例えば`-3h`は今から3時間前のタイムスタンプに相当し、`10s`は10秒後のタイムスタンプに相当します。サポートされている時間単位は、ms(ミリ秒)、s(秒)、m(分)、h(時間)、d(日)です。現在の時刻を使用するには、値をゼロにします(0s)。 * これらのフィルター用に組み込む`hs_id`列は`number`タイプ、`hs_created_at`列は`datetime`タイプ、`hs_path`列および`hs_name`列は`text`タイプです。 以下に、各タイプの列に適用できる演算子について説明します。 | 演算子 | 名前 | 説明 | | - | - | - | | `eq (or none)` | 等しい | 全ての列タイプ。演算子が使用されていない場合、このフィルターが適用されます。multiselectの列でこれを使用すると、指定された値に完全に一致する行が返されます。 | | `ne` | 等しくない | 全ての列タイプ。 | | `contains` | 次の全ての値を含む | テキスト、リッチテキスト、およびmultiselect。multiselectの列でこれを使用すると、指定された全ての値を含む行が返されます。このフィルターでは大文字と小文字が区別されます。 | | `lt` | 次の値より小さい | 数値、日付、日時。 | | `lte` | 次の値以下 | 数値、日付、日時。 | | `gt` | 次の値より大きい | 数値、日付、日時。 | | `gte` | 次の値以上 | 数値、日付、日時。 | | `is_null` | Null | ブールを除く全てのタイプの列。このフィルターでは値は不要です(例:`&exampleColumn__is_null=`)。 | | `not_null` | Nullではない | ブールを除く全てのタイプの列。このフィルターでは値は不要です(例:`&exampleColumn__not_null=`)。 | | `like` | いいね! | テキストとリッチテキスト。 | | `not_like` | いいね!ではない | テキストとリッチテキスト。 | | `icontains` | 次の文字列を含む | テキストとリッチテキスト。このフィルターでは大文字と小文字が区別されません。 | | `startswith` | 次の文字列で始まる | テキストとリッチテキスト。 | | `in` | 次の値のいずれかを含む | 数値、select、multiselect。渡されたオプションのうち少なくとも1つが列に入っている行が返されます。クエリーパラメーターの中に他の`sort`がない場合、返される結果は、`in`演算子での値の指定順に並べ替えられます。 | ### 返された行の並べ替え HubDBデータを取得するときに、クエリーパラメーターとして並べ替えを適用することで、返されるデータの順序を指定できます。データを並べ替えるには、次のように`sort`クエリーパラメーターを追加して、列名を指定します。 `&sort=columnName` 既定では、列が指定されている順序でデータが返されます。これを逆順で並べ替えるには、列名に`-`を追加します。 `&sort=-columnName` このパラメーターを複数指定することにより、複数の列を基準に並べ替えができるようになります。 列を基準とした並べ替えに加えて、次の3つの関数を使用可能です。 * \*\*geo\_distance(location\_column\_name、緯度、経度):\*\*所在地列の名前と座標を入力として受け入れ、指定された所在地列の値と指定された座標の間の距離が長い順に行を返します。 * \*\*length(column\_name):\*\*列の名前を入力として受け入れ、(文字列として計算される)列値の長さの順に行を返します。 * \*\*random():\*\*ランダムな順序で行を返します。 この関数では逆順もサポートされます。例えば次の`geo_distance`は、距離が最も遠いものを最初にしてアイテムを返します。 `sort=-geo_distance(location_column,42.37,-71.07)` ## 動的ページ用のHubDBテーブルの設定 HubSpotのCMSを使用すると、HubDBテーブルをデータソースとして使用して[動的ページを生成する](/docs/cms/start-building/features/data-driven-content/hubdb/overview)ことができます。例えば、経営陣のメンバーごとに1行ずつ含むテーブルを作成し、ページに表示させたい情報が入った列をそれに含めることができます。ページの動的データソースとしてそのテーブルを選択すると、サマリー項目として全行を表示するリストページがそのページによって生成され、さらに行ごとに個別のページも生成されて、ブログ リスト ページとブログ記事ページに似た状態になります。 コンテンツエディターでテーブルをデータソースとして選択できるようにするには、`useForPage`を`true`に設定する必要があります。必要に応じて`dynamicMetaTags`を含めると、各ページのメタデータにどの列を使用するかを指定できます。 > [!WARNING] > > **注:**`dynamicMetaTags`を指定するときには、`content`ではなく`page_meta` HubLタグをページで必ず使用する必要があります。詳しくは、[動的ページガイド](/docs/cms/start-building/features/data-driven-content/hubdb/overview)をご覧ください。 例えば次のコードでは動的ページ用のテーブルを作成して、ページのメタデータに使われる3つの列を指定します。 ```json theme={null} // Example POST request to create table { "name": "dynamic_page_table", "label": "Dynamic page table", "useForPages": true, "columns": [ { "name": "meta_description", "label": "Meta description", "archived": false, "type": "TEXT" }, { "name": "featured_image", "label": "Featured image", "archived": false, "type": "IMAGE" }, { "name": "canonical_url", "label": "Canonical URL", "archived": false, "type": "URL" } ], "dynamicMetaTags": { "DESCRIPTION": 1, "FEATURED_IMAGE_URL": 2, "LINK_REL_CANONICAL_URL": 3 } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `useForPages` | ブール値 | テーブルを動的ページのデータソースとして使用できるようにするには、これを`true`に設定します。 | | `dynamicMetaTags` | オブジェクト | 各動的ページのメタデータに使用する列をIDによって指定します。以下を含めることができます:
        • `DESCRIPTION`
        • `FEATURED_IMAGE_URL`
        • `LINK_REL_CANONICAL_URL`
        メタデータフィールドが指定されない場合、ページでは親ページからそれぞれの値を継承します。 | | `DESCRIPTION` | 数値 | 各ページのメタディスクリプションに使用する列の数値ID。 | | `FEATURED_IMAGE_URL` | 数値 | 各ページのキービジュアルURLに使用する列の数値ID。 | | `LINK_REL_CANONICAL_URL` | 数値 | 各ページのcanonical URLに使用する列の数値ID。 | ## v3での変更点 * テーブルには`name`と`label`の両方が必要です。テーブルの作成後に、この「name」を変更することはできません。「name」には半角の英小文字、数字、アンダースコアのみ含めることができますが、数字で始めることはできません。`name`と`label`はどらちも、アカウント内で一意である必要があります。 * APIは、URLパスの中でテーブル`id`と`name`の両方をサポートします。 * 行を`GET`するエンドポイントは、`values`フィールドで`id`ではなく列`name`を返します。また、行を`POST`/`PUT`/`PATCH`するエンドポイントは、`values`フィールドで`id`ではなく列`name`を必要とします。 * 行を更新する`PATCH`エンドポイントで、スパース更新を使用できるようになりました。スパース更新とは、更新する必要のある列値だけを指定できることを意味します(以前のバージョンでは、全ての列値を指定する必要がありました)。複数選択型の列のように、値のリストを使用して列を更新する場合は、全ての値を含むリストを指定する必要があります。列の値を削除するには、リクエスト内でその列の値を`null`として指定する必要があります。 * 行を更新する`PATCH`エンドポイントを優先し、行のセルを`get`/`update`/`delete`するエンドポイントを削除しました。 * インポートエンドポイントでは、JSON形式のオプションで既存のフィールドとともに任意指定フィールド`idSourceColumn`を使用できるようになりました。このフィールドを使用すると、行IDが格納されているCSVファイル内の列を指定できます。新しい行を既存の行の新しい値とともにインポートするには、新しい行の行IDには単に`0`を指定し、既存の行には有効な行IDを指定できます。詳細については、以下の「インポート」セクションをご参照ください。さらに、JSON形式のオプションに含まれる列マッピングのターゲットフィールドで、列の名前またはIDを使用することもできます。 * 複製エンドポイントには、新しい名前と新しいラベルが必要です。 # Clone rows in batch Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/batch-clone-rows-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/draft/batch/clone 行IDのセットが指定されると、指定されたテーブルの下書きバージョンの行が複製されます。セルあたり最大100個の行ID。 > **Supported products** > **Required Scopes** # Create rows in batch Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/batch-create-rows-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/draft/batch/create 行オブジェクトの配列が指定されると、指定されたテーブルの下書きバージョンの行が作成されます。セルあたり最大100個の行オブジェクト。例を含む詳細については、概要セクションを参照してください。 > **Supported products** > **Required Scopes** # Get a set of rows Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/batch-read-rows specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/batch/read 行IDのセットが指定されると、指定されたテーブルの公開済みバージョンの行が返されます。 **注:**このエンドポイントは、テーブルが公開アクセスを許可するように設定されていれば、許可なくアクセスできます。 > **Supported products** > **Required Scopes** # Get a set of rows from draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/batch-read-rows-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/draft/batch/read 行IDのセットが指定されると、指定されたテーブルの下書きバージョンの行が返されます。 > **Supported products** > **Required Scopes** # Replace rows in batch in draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/batch-replace-rows-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/draft/batch/replace セルあたり最大100行で、テーブルの下書きバージョンの複数の行がバッチとして置き換えられます。1行の更新に関する詳細については、「PUT /tables/{tableIdOrName}/rows/{rowId}/draft」エンドポイントを参照してください。 > **Supported products** > **Required Scopes** # Update rows in batch in draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/batch-update-rows specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/draft/batch/update セルあたり最大100行で、テーブルの下書きバージョンの複数の行がバッチ更新されます。1行の更新に関する詳細については、「PATCH /tables/{tableIdOrName}/rows/{rowId}/draft」エンドポイントを参照してください。 > **Supported products** > **Required Scopes** # Clone a row Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/clone-row-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/{rowId}/draft/clone テーブルの下書きバージョンの1行が複製されます。 > **Supported products** > **Required Scopes** # Add a new row to a table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/create-row specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows HubDBテーブルに新しい行を追加します。新しい行はテーブルの下書きバージョンに追加されます。これらの変更を公開済みバージョンにプッシュするには、「/publish」エンドポイントを使用してください。 > **Supported products** > **Required Scopes** # Permanently deletes a row Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/delete-hubdb-draft specs/2026-09/cms-hubdb-v2026-09.json DELETE /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/{rowId}/draft テーブルの下書きバージョンから行が完全に削除されます。 > **Supported products** > **Required Scopes** # Permanently deletes rows Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/delete-row-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/draft/batch/purge 行IDのセットが指定されると、テーブルの下書きバージョンから行が完全に削除されます。セルあたり最大100個の行ID。 > **Supported products** > **Required Scopes** # Get a row from the draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/get-hubdb-draft specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/{rowId}/draft テーブルの下書きバージョンからIDを基準に1行を取得します。 > **Supported products** > **Required Scopes** # Get a table row Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/get-row specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/{rowId} テーブルの公開済みバージョンからIDを基準に1行を取得します。 **注:**このエンドポイントは、テーブルが公開アクセスを許可するように設定されていれば、許可なくアクセスできます。 > **Supported products** > **Required Scopes** # Get rows for a table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/get-rows specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName}/rows 指定されたテーブルの公開済みバージョンの行のセットが返されます。行の結果は絞り込みや並べ替えが可能です。絞り込みや並べ替えのオプションはクエリーパラメーターとしてAPIリクエストに送信されます。例えば、クエリーパラメーター「column1__gt=5&sort=-column1」を追加すると、APIによって「column1」列の値が5より大きい行が「column1」の値の降順で返されます。絞り込みや並べ替えのオプションについて詳しくは、[概要セクション](https://developers.hubspot.com/docs/api/cms/hubdb#filtering-and-sorting-table-rows)を参照してください。 **注:**このエンドポイントは、テーブルが公開アクセスを許可するように設定されていれば、許可なくアクセスできます。 > **Supported products** > **Required Scopes** # Get rows from draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/get-rows-draft specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/draft 指定されたテーブルの下書きバージョンの行が返されます。行の結果は絞り込みや並べ替えが可能です。絞り込みや並べ替えのオプションはクエリーパラメーターとしてAPIリクエストに送信されます。例えば、クエリーパラメーター「column1__gt=5&sort=-column1」を追加すると、APIによって「column1」列の値が5より大きい行が「column1」の値の降順で返されます。絞り込みや並べ替えのオプションについて詳しくは、[概要セクション](https://developers.hubspot.com/docs/api/cms/hubdb#filtering-and-sorting-table-rows)を参照してください。 > **Supported products** > **Required Scopes** # Replaces an existing row Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/update-hubdb-draft specs/2026-09/cms-hubdb-v2026-09.json PUT /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/{rowId}/draft テーブルの下書きバージョンの1行を置き換えます。すべての列値を指定する必要があります。列の対象テーブルに値があり、このリクエストでその値が定義されていない場合、削除されます。 JSON行定義を形式設定する手順については、「Create a row」エンドポイントを参照してください。 > **Supported products** > **Required Scopes** # Updates an existing row Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/rows/update-hubdb-draft-rowId specs/2026-09/cms-hubdb-v2026-09.json PATCH /cms/hubdb/2026-09/tables/{tableIdOrName}/rows/{rowId}/draft テーブルの下書きバージョンの1行を部分的に更新します。 すべての列値を指定する必要はありません。指定できるのは、変更する必要がある列またはフィールドのみです。 JSON行定義を形式設定する手順については、「Create a row」エンドポイントを参照してください。 > **Supported products** > **Required Scopes** # Clone a table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/clone-table-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/draft/clone 既存のHubDBテーブルを複製します。新しいテーブルの「newName」と「newLabel」はリクエスト本文のJSONとして送信できます。複製されたテーブルが下書きとして作成されます。 > **Supported products** > **Required Scopes** # Create a table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/create-table specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables JSONスキーマが指定されれば、新しい下書きHubDBテーブルが作成されます。テーブル名とラベルはアカウントごとに固有である必要があります。 > **Supported products** > **Required Scopes** # Archive a table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/delete-table specs/2026-09/cms-hubdb-v2026-09.json DELETE /cms/hubdb/2026-09/tables/{tableIdOrName} 既存のHubDBテーブルをアーカイブ(論理削除)します。公開済みバージョンと下書きバージョンの両方がアーカイブされます。 > **Supported products** > **Required Scopes** # Delete a table version Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/delete-table-version specs/2026-09/cms-hubdb-v2026-09.json DELETE /cms/hubdb/2026-09/tables/{tableIdOrName}/versions/{versionId} テーブルの特定バージョンを削除 > **Supported products** > **Required Scopes** # Export a published version of a table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/export-table specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName}/export テーブルの公開済みバージョンが指定された形式でエクスポートされます。 > **Supported products** > **Required Scopes** # Export a draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/export-table-draft specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName}/draft/export テーブルの下書きバージョンがCSV/EXCEL形式にエクスポートされます。 > **Supported products** > **Required Scopes** # Return all draft tables Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/get-hubdb-draft specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/draft 列定義を含めて、指定されたアカウントで定義された各下書きテーブルの詳細が返されます。 > **Supported products** > **Required Scopes** # Get details for a draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/get-hubdb-draft-tableIdOrName specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName}/draft 特定のHubDBテーブルの下書きバージョンの詳細を取得します。テーブル内の列の定義と、テーブル内の行数が含まれます。 > **Supported products** > **Required Scopes** # Get details of a published table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/get-table specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables/{tableIdOrName} 指定されたテーブルの公開済みバージョンの詳細が返されます。テーブル内の列の定義と、テーブル内の行数が含まれます。 **注:**このエンドポイントは、テーブルが公開アクセスを許可するように設定されていれば、許可なくアクセスできます。そのように設定するには、「portalId」クエリーパラメーターにHubSpotアカウントIDを含める必要があります。 > **Supported products** > **Required Scopes** # Get all published tables Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/get-tables specs/2026-09/cms-hubdb-v2026-09.json GET /cms/hubdb/2026-09/tables アカウントで定義された各テーブルの公開済みバージョンの詳細(列定義など)が返されます。 > **Supported products** > **Required Scopes** # Import data into draft table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/import-table-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/draft/import CSVファイルの内容を既存のHubDBテーブルにインポートします。データは必ずテーブルの下書きバージョンにインポートされます。これらの変更を公開済みバージョンにプッシュするには、「/publish」エンドポイントを使用してください。 このエンドポイントでは、マルチパートのPOSTリクエストが使用されます。最初のパートはインポートのJSON形式のオプションのセットであり、これは名前を「config」として指定できます。2番目のパートはインポートするCSVファイルであり、これは名前を「file」として指定できます。[概要セクション(https://developers.hubspot.com/docs/api/cms/hubdb#importing-tables)を参照して、インポートのJSON形式のオプションの詳細や形式をご確認ください。 > **Supported products** > **Required Scopes** # Publish a table from draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/publish-table-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/draft/publish データやテーブルスキーマの変更を下書きバージョンから公開済みバージョンにコピーすることで、テーブルが公開されます。つまり、このテーブルのデータを使用しているすべてのウェブサイトページが更新されます。 > **Supported products** > **Required Scopes** # Reset a table draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/reset-table-draft specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/draft/reset テーブルの下書きバージョンのデータを公開済みバージョンの値に置き換えます。下書きで公開終了された変更はこの呼び出しが行われた後に失われます。 > **Supported products** > **Required Scopes** # Unpublish a table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/unpublish-table specs/2026-09/cms-hubdb-v2026-09.json POST /cms/hubdb/2026-09/tables/{tableIdOrName}/unpublish テーブルが公開終了されます。つまり、このテーブルのデータを使用しているすべてのウェブサイトページでデータが表示されなくなります。 > **Supported products** > **Required Scopes** # Update an existing table Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/hubdb/tables/update-hubdb-draft specs/2026-09/cms-hubdb-v2026-09.json PATCH /cms/hubdb/2026-09/tables/{tableIdOrName}/draft 既存のHubDBテーブルを更新します。このエンドポイントを使用して、テーブルに対する列の追加や削除を行うだけでなく、アーカイブ済みのテーブルを復元できます。このエンドポイントを使用してテーブルが更新されると、テーブルの下書きバージョンのみが変更されます。すべての変更を公開済みバージョンにプッシュするには、「/publish」エンドポイントを使用します。テーブルを復元するには、クエリーパラメーター「archived=true」と「"archived": false」をjson本文に含めます。 **注:**列の追加/削除/更新を行う際には、入力にすべての列を含める必要があります。リクエストにまだ既存の列を含めていない場合、削除されます。 > **Supported products** > **Required Scopes** # Batch create properties Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/batch/create-properties specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/properties/{objectType}/batch/create 指定されたアプリ内の特定のオブジェクトタイプに対して、複数のプロパティーを一括で作成します。このエンドポイントは、複数のプロパティーを一度に効率的に設定し、個別のAPI呼び出しを複数回行う必要を減らすのに役立ちます。 > **Supported products** > **Required Scopes** # Batch archive properties Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/batch/delete-properties specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/properties/{objectType}/batch/archive 指定されたアプリ内の特定のオブジェクトタイプに対して、複数のプロパティーをアーカイブします。このエンドポイントは、不要になった、または使用中の状態から非表示にする必要がある大量のプロパティーを管理するのに役立ちます。パスパラメーターでアプリIDとオブジェクトタイプを指定する必要があります。 > **Supported products** > **Required Scopes** # Batch read properties Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/batch/get-properties specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/properties/{objectType}/batch/read 指定されたアプリ内の特定のオブジェクトタイプについて、複数のプロパティーを一括取得します。このエンドポイントは、特に大規模なデータセットを扱う場合や、処理に特定のプロパティーが必要な場合に、1回のリクエストで複数のプロパティーを効率的に取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Create Event Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/events/attention-span specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/events/attention-span MediaBridgeServiceで新しいアテンション スパン イベントを作成してください。このエンドポイントは、メディアコンテンツに対するユーザーエンゲージメントの追跡に役立つアテンション スパン イベントを記録するために使用されます。リクエストには、AttentionSpanEventRequestスキーマに準拠した有効なJSONボディを含める必要があります。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/events/media-played specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/events/media-played HubSpotアカウントでメディア再生イベントを作成してください。このエンドポイントは、メディアコンテンツが再生されたことを記録するために使用され、メディアリソースに対するユーザーエンゲージメントの追跡に役立ちます。 > **Supported products** > **Required Scopes** # Record Media Played Percentage Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/events/media-played-percent specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/events/media-played-percent このエンドポイントを使用すると、メディアが再生された割合を記録できます。動画や音声ファイルなどのメディアコンテンツに対するユーザーエンゲージメントを、メディアがどの程度再生されたかを把握することで追跡するのに役立ちます。このデータは、アナリティクスやコンテンツ配信戦略の改善に利用できます。 > **Supported products** > **Required Scopes** # CMS API | メディアブリッジ Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/guide メディアブリッジAPIを使用すると、インテグレーターは動画や音声ファイルなどのメディアオブジェクトとメディア消費データをHubSpotにプッシュできます。また、ユーザーのHubSpotアカウントで以下の機能が利用できるようになります。 * HubSpotのドラッグ&ドロップエディターでページやEメールにメディアオブジェクトを埋め込むためのモジュール。 * プロスペクトまたは顧客が動画、音声、およびその他のメディアタイプを操作したときに表示されるCRMタイムラインイベント。 * ターゲットを絞り込み、パーソナライズされた体験を提供するためのセグメント化されたリスト。 * メディア消費イベントに基づいてインタラクションを自動化するワークフロー。 * メディアアセットの効果を測定するためのレポート。 メディアブリッジは[カスタムオブジェクト](/docs/api-reference/crm-custom-objects-v3/guide)と統合イベント(HubSpotのイベント トラッキング システム)の両方を使用します。つまり、メディアブリッジAPIとカスタムオブジェクトAPIの両方を使用して、連携を構築できます。 > **スコープ要件** ## メディアブリッジAPIの使用 メディアブリッジアプリをHubSpotユーザーのアカウントに関連付けるには、その前に、[HubSpot開発者アカウント](https://developers.hubspot.jp/get-started)を使用して、メディアブリッジアプリを登録し、最初のメディアオブジェクト定義を設定する必要があります。 ## メディアオブジェクト定義を作成してカスタマイズする メディアオブジェクトを定義するには、`POST`リクエストを`/media-bridge/v1/{appId}/settings/object-definitions`に送信します。リクエスト本文には、`mediaTypes`配列内に`VIDEO`、`AUDIO`、`DOCUMENT`、`IMAGE`、または`OTHER`のいずれかのメディアタイプ値を含めます。 メディアオブジェクトを定義したら、`PATCH`リクエストを`/media-bridge/v1/{appId}/schemas/{objectType}`に送信し、`POST`リクエストを`/media-bridge/v1/{appId}/properties/{objectType}`に送信して、メディア オブジェクト プロパティーを作成して変更します。 ## メディアブリッジアプリをHubSpotユーザーのアカウントに関連付ける メディアブリッジアプリをHubSpotユーザーのアカウントに関連付けるには、HubSpot開発者のアカウントでそのためのアプリ定義を作成する必要があります。アプリの定義には、以下の情報を含めます。 * 連携でHubSpotユーザーのアカウントに対して最初に関連付けを行う際に、ユーザーに表示されるロゴやテキストなどの詳細。 * 連携で必要となる、ユーザーのHubSpotアカウントに対するスコープ。 メディアブリッジアプリをHubSpotユーザーのアカウントに関連付けるには、次のようにします。 * メディアブリッジアプリの開発者アカウントで、[アプリケーション定義](/docs/apps/legacy-apps/overview)を作成します。 * アプリケーションを定義する際には、以下のスコープを含めます。 * `media_bridge.read` * `media_bridge.write` * アプリからの呼び出しを認証する際は、[OAuth](/docs/api-reference/auth-oauth-v1/guide)認証を使用します。[認証方式](/docs/apps/developer-platform/build-apps/authentication/overview)の詳細をご確認ください。 顧客のHubSpotアカウントにアプリが正しくインストールされたことを確認するには、次の手順に従います。 * `https://app.hubspot.com/media-bridge-demo/{HubID}`の`{HubID}`をアカウントIDに置き換えてアクセスします。 * 右上の[アプリ]ドロップダウンメニューをクリックし、ご使用の**メディアブリッジアプリ**を選択します\*\*。 \*\* * アプリでは、アプリでサポートされるメディアタイプの確認や、サンプルメディアの作成ができます。 メディアブリッジアプリが顧客のHubSpotアカウントにインストールされたら、以下のことを行えるようになります。 * [メディアオブジェクトを作成する](#create-your-media-objects) * [メディアオブジェクトを埋め込むためのCMSモジュールを作成する](#create-cms-modules-to-embed-media) * [メディアイベントを送信する](#send-your-media-events) ## メディアオブジェクトを作成する メディアオブジェクトの定義を作成し、メディアブリッジアプリをユーザーのアカウントにインストールしたら、[OAuthトークン](/docs/apps/legacy-apps/authentication/working-with-oauth)を使用して、アカウントでメディアオブジェクトを作成し、変更できるようになります。メディアオブジェクトはカスタムオブジェクトなので、[カスタムオブジェクトAPIエンドポイント](/docs/api-reference/crm-custom-objects-v3/guide#tab-2)を使用して作成します。 * `GET`リクエストを`/media-bridge/v1/{appId}/settings/object-definitions/{mediaType}`に送信して、`objectType`を見つけます。 * `POST`リクエストを`/crm/v3/objects/{objectType}`に送信して、ユーザーのアカウントにメディアオブジェクトを作成します。 メディアオブジェクトは、サードパーティーのシステム内の埋め込み可能なコンテンツを表します。メディアブリッジに追加したメディアオブジェクトは、HubSpotのCMSコンテンツに埋め込み、メディアイベントと関連付けることができます。 `VIDEO`および`AUDIO`メディアオブジェクトで利用可能な全てのプロパティーは、以下の表でご確認いただけます。 \*でマークされたフィールドは必須です。 | パラメーター | 型 | 説明 | | - | - | - | | `id` | 数値 | HubSpotのメディアブリッジシステム内の特定のメディアを識別するために使用されるID。このIDはHubSpotによって自動生成されます。開発者が設定することはできません。 | | `hs_duration` | 数値 | メディアの再生時間(ミリ秒)。 | | `hs_oembed_url`\* | 文字列 | [oEmbed仕様](https://oembed.com/#section2)に準拠した有効なoEmbedレスポンスを返す必要があるURL。`html`にiframeが含まれている`video`または`rich`タイプが必要です。 | | `hs_file_url` | 文字列 | 未加工のメディアファイルのURL。ソーシャル埋め込み機能をサポートするために後で利用できます。 | | `hs_thumbnail_url` | 文字列 | コンテンツにメディアを埋め込むためのサムネイルとして使用される画像のURL。このサムネイルの望ましいサイズは640x480ピクセルです。 | | `hs_poster_url` | 文字列 | メディアを表す画像のURL。この画像は元のメディアと同じ寸法にする必要があり、画像のプレースホルダーが必要な場所で使用することができます(例えば、メディアがEメールに挿入される場合)。 | | `hs_external_id` | 文字列 | サードパーティーのシステム内のメディアのID。これにより、インテグレーターは自身のシステムで使用しているものと同じIDに基づいて、メディアブリッジからメディアを取得できます。(これは、このマッピングを利用するAPIエンドポイントです)。 | | `hs_folder_path` | 文字列 | プロバイダー指定のオブジェクトへのパス。サードパーティーのフォルダーシステムにあるオブジェクトの場所(存在する場合)を示すことを目的としています。HubSpotは、これらのオブジェクトをユーザーに表示する際にこのディレクトリー構造を表示しようと試みますが、プロバイダーに関連した名前が付いている最上位フォルダー内で各プロバイダーのオブジェクトとフォルダーをネストする場合があります。 | | `hs_title`\* | 文字列 | メディアの名前。メディアピッカーなどの場所でHubSpot UI内に表示されます。 | | `hs_details_page_link` | 文字列 | ユーザーがメディアプロバイダーのシステムにあるメディアを表示または操作できるURL。HubSpot UI内で使用され、ユーザーがタイトルのみに頼らずにメディアを識別することを可能にします。 | `IMAGE`メディアオブジェクトの場合に使用できる全てのプロパティーは、以下の表でご確認いただけます。 \*でマークされたフィールドは必須です。 | パラメーター | 型 | 説明 | | - | - | - | | `id` | 数値 | HubSpotのメディアブリッジシステム内の特定のメディアを識別するために使用されるID。このIDはHubSpotによって自動生成されます。開発者が設定することはできません。 | | `hs_oembed_url`\* | 文字列 | [oEmbedoEmbed仕様](https://oembed.com/#section2)に準拠した有効なレスポンスを返す必要があるURL。`html`にiframeが含まれている`video`または`rich`タイプが必要です。 | | `hs_file_url`\* | 文字列 | 未加工のメディアファイルのURL。ソーシャル埋め込み機能をサポートするために後で利用できます。 | | `hs_thumbnail_url` | 文字列 | メディアピッカーなどの場所にあるコンテンツにメディアを埋め込むためのサムネイルとして使用される画像のURL。このサムネイルの望ましいサイズは640x480ピクセルです。 | | `hs_poster_url` | 文字列 | メディアを表す画像のURL。この画像は元のメディアと同じ寸法にする必要があり、画像のプレースホルダーが必要な場所で使用することができます(例えば、メディアがEメールに挿入される場合)。 | | `hs_external_id` | 文字列 | サードパーティーのシステム内のメディアのID。これにより、インテグレーターは自身のシステムで使用しているものと同じIDに基づいて、メディアブリッジからメディアを取得できます。(これは、このマッピングを利用するAPIエンドポイントです)。 | | `hs_folder_path` | 文字列 | プロバイダー指定のオブジェクトへのパス。サードパーティーのフォルダーシステムにあるオブジェクトの場所(存在する場合)を示すことを目的としています。HubSpotは、これらのオブジェクトをユーザーに表示する際にこのディレクトリー構造を表示しようと試みますが、プロバイダーに関連した名前が付いている最上位フォルダー内で各プロバイダーのオブジェクトとフォルダーをネストする場合があります。 | | `hs_title`\* | 文字列 | メディアの名前。メディアピッカーなどの場所でHubSpot UI内に表示されます。 | | `hs_details_page_link` | 文字列 | ユーザーがメディアプロバイダーのシステムにあるメディアを表示または操作できるURL。HubSpot UI内で使用され、ユーザーがタイトルのみに頼らずにメディアを識別することを可能にします。 | ## メディアを埋め込むためのCMSモジュールの作成 HubSpotのCMSでメディアをレンダリングするための[モジュール](/docs/cms/start-building/building-blocks/modules/overview)は、各メディアブリッジアプリ プロバイダーが作成する必要があります。 メディアブリッジアプリがHubSpotアカウントにインストールされている場合、モジュール上の[埋め込みフィールド](/docs/cms/reference/fields/module-theme-fields#embed)に、追加の「メディア連携」ソースタイプが示されます。\_ \_これにより、ユーザーはインストールされたアプリからウェブサイトページに埋め込むメディアを選択できるようになります。 ユーザーが埋め込むメディアを選択すると、メディアの`oembed_url`および`oembed_response`がHubLで使用可能になり、プレーヤーを簡単にレンダリングできるようになります。さらに、選択したメディアの`id`と`media_type`が保存され、基盤となるCRMオブジェクトを`crm_objects` HubL関数でクエリーすることが可能になります。これにより、メディアオブジェクトに含まれる全てのプロパティーまたはプロパティーの一部を取得できます。 メディアオブジェクトのIDが**459**と**922**の場合のcrm\_objects HubL関数の使用例: `{% set objects = crm_objects("a123_Videos", [459,922]) %} {{ objects }}` 同じオブジェクトの特定の画像を取得する場合:`{% set object = crm_object("a123_Images", 459) %} {{ object }}` アプリでは`GET`リクエストを`/media-bridge/{appId}/settings/object-definitions/{mediaType}`に送信することで、オブジェクトタイプ(この例では「a123\_Videos」)を取得できます。 顧客がoAuthを介して接続した後、開発者は[CMSソースコードAPI](/docs/api-reference/cms-source-code-v3/guide)エンドポイントを使用して、カスタム モジュール コードを顧客のアカウントにプッシュする必要があります。モジュールコードが顧客のアカウントにプッシュされると、顧客は開発者が作成したモジュールをコンテンツ内で自動的に使用できるようになります。 ### oEmbedドメインを設定する [oEmbed](/docs/cms/reference/hubl/functions#oembed) HubL関数を使用するには、`/media-bridge/v1/{appId}/settings/oembed-domains`にリクエストを送信して、oEmbedレスポンスの取得に使用されるドメインを登録する必要があります。以下のパラメーターが含まれている必要があります。 * **スキーム**: メディアURLのURLパターン。このURLパターンは、oEmbed HubL関数に渡されたURLをoEmbed APIと照合するために使用されます。`*`を使用したワイルドカード値を使用できます(例:`www.domain.com/*`)。 * **URL**: oEmbed APIのURL。メディアは、`URL`パラメーターを使用してこのURLに渡されます。 * **Discovery(ブール値)**: oEmbed APIでoEmbedの[Discovery](https://oembed.com/#section4)機能がサポートされるかどうかを決定します。 既定では、登録されたoEmbedドメインは、アプリをインストールした全てのお客様が使用できるようになります。お客様ごとに固有のカスタムドメインがある場合は、oEmbedドメインを設定するときに、APIリクエストに`portalId`値を渡して、oEmbedドメインの使用を許可するアカウントを指定できます。これにより、そのoEmbedドメインを使用できるアカウントが、指定されたHubSpotアカウントのみに制限されます。 ## カスタムモジュールを作成する カスタムモジュールを作成するには、次のようにします。 * **[マーケティング]>[ファイルとテンプレート]>[デザインマネージャー** の順に進みます。 * 左上の **[ファイル]>[新規ファイル]** をクリックします。 * ダイアログボックスで、**[今日は何を作成しますか?]** ドロップダウンメニューをクリックし、**[モジュール]** を選択します。 * **[次へ]** をクリックします。 * モジュールを使用するコンテンツのタイプ(*[ページ]*、*[ブログ記事]*、*[ブログリスト]*、*[Eメール]*、または *[引用]*)の隣にあるチェックボックスをオンにします。Eメールテンプレートで使用されるモジュールに、CSSおよびJavaScriptを含めることはできません。 * このモジュールを**ローカルモジュール**または**グローバルモジュール**のどちらにするかを選択します。[グローバルモジュール](https://knowledge.hubspot.com/ja/design-manager/use-global-content-across-multiple-templates)として作成した場合、このモジュールのコンテンツを編集すると、モジュールが使用されている全ての場所に変更が反映されます。 * モジュールの**ファイル名**を入力して、**[作成]** をクリックします。 * 右側の *[フィールド]* セクションで、**[フィールドの追加]** ドロップダウンメニューをクリックし、**[埋め込み]** を選択します。 ![](https://lh3.googleusercontent.com/_cARgVZZLUD-nsJUIaG8XMUdSm1GRLr4Gfw96HeZ6SyXFG0t6yiiPKt5ToSe7nq8arSnG569_wg5X2XsD0XEtmEGiX9sbQxH7deUIJKGshXamME6vXrLN2oVSAt-cmrkTN2nggDsdkChDnEOxKrw5mo) * *[サポートされるソースタイプ]* セクションで、**[メディアとの連携]** を選択します。 * *[既定の埋め込みコンテンツ]* セクションで、**[\[メディアブリッジアプリ]から選択]** をクリックします。 * 右側のパネルで、モジュールに埋め込む**メディア**を選択します。 * 必要に応じて、エディターオプション、フィールドの表示条件、フィールドのリピーターオプションを設定します。 * *[HubL変数名]* で、**[コピー]>[スニペットをコピー]** をクリックします。 * *「module.html」* セクションにスニペットを貼り付けます。 * ページ上でのモジュールの表示をプレビューするには、**[プレビュー]** をクリックします。 * 左側のセクションで、**[\[メディアブリッジアプリ]から選択]** をクリックし、プレビューする**メディア**を選択します。 ## メディアイベントを送信する メディアイベントは、メディアオブジェクトに関連して発生するイベント(例:再生イベント)です。メディアブリッジアプリに送信されたメディアイベントは、レポートやタイムラインCRMカードで使用できます。 メディアイベントには次の3種類があります。 * **再生イベント**: ユーザーがメディアの再生を開始した時間を表します。このイベントはコンタクトのタイムラインとレポートツールの両方で確認できます。 * **四分位数イベント**: ユーザーが閲覧しているメディアで、四分位数のマイルストーン(0%、25%、50%、75%、100%)に到達した時間を表します。このイベントはコンタクトタイムラインのみで使用できます。 * **注意持続時間イベント**: ユーザーがメディアを完全に消費し終えた時間、またはユーザーがセッションを終了した時間を表します。このイベントはレポートツール内でのみできます。 これらのイベントを送信するには、`POST`リクエストを`/media-bridge/v2/events/media-played`、`/media-bridge/v2/events/media-played-percent`、および`/media-bridge/v2/events/attention-span respectively`に送信します。 HubSpotでユーザーのコンタクトタイムラインにメディアイベントを表示するには、セッションごとに再生イベントをメディアブリッジアプリに送信する必要があります。単一のセッションからのイベントは、コンタクトのアクティビティータイムラインで1つのカードに表示されます。 V2イベントエンドポイントを使用して送信されたイベントは、v1エンドポイントを使用して送信されたイベントとは異なり、非同期で処理されます。そのため、以下のようにすることを推奨しています。 * 誤ったリクエストは即座にエラーになるため、v1バージョンのエンドポイントはテストに使用します。 * V2バージョンのエンドポイントは、その非同期性により、イベントがメディアブリッジに書き込まれる間のクライアントの遅延を防ぐのに役立つため、本番環境で使用します。また、メディアブリッジのサーバーに一時的な障害が発生した場合にも、イベントは保持され、再試行されます。 ### イベントをコンタクトレコードに関連付ける メディアイベントをコンタクトレコードに関連付けるには、`contactId`または`contactUtk`のいずれかを提供する必要があります。`contactUtk`のみが提供された場合は、`contactId`に変換されます。リクエストで両方が提供された場合は、`contactId`が信頼できる情報源として使用されます。このパラメーターにより、メディアブリッジアプリはコンタクトレコードとイベントの間に関連付けを作成できます。 コンタクトレコードに関連付けられたメディアイベントは、[クロスオブジェクトのレポート](https://knowledge.hubspot.com/ja/reports/create-reports-with-the-custom-report-builder)で使用できます。これにより、お客様はメディアイベントとコンタクトレコード、および関連する会社と取引を関連付けることができます。 ### イベントをメディアに関連付ける メディアイベントをメディアに関連付けるには、`mediaID`または`externalID`のいずれかのパラメーターをリクエストに含める必要があります。両方が提供された場合は、`mediaID`が信頼できる情報源として使用されます。 > [!WARNING] > > ### 注: > > HubSpotは、再生イベントおよび四分位数のイベントと、メディアとの関連付けのみをサポートしています。 ### イベントをページに関連付ける メディアイベントをHubSpotのページに関連付けるには、次のパラメーターをリクエストに含める必要があります。 * ページがHubSpot CMSでホスティングされている場合は、`pageId`を提供する必要があります。 * ページがHubSpot CMSでホスティングされていない場合は、`pageName`および`pageUrl`を含める必要があります。 3つのメディアイベントでサポートされているプロパティーの概要を次の表に示します。 | プロパティー | イベントタイプ | 説明 | | - | - | - | | `mediaBridgeObjectId` | 全てのイベント | このイベントに関連するメディアのID。 | | `externalId` | 文字列 | サードパーティーのシステム内のメディアのID。これにより、開発者は自身のシステムで使用しているものと同じIDに基づいて、メディアブリッジ内のメディアを参照できます。これは、イベントで`mediaBridgeObjectId`の代わりに使用できます。`externalId`と`mediaBridgeObjectId`の両方が指定された場合は、`mediaBridgeObjectId`が使用され、externalIdは無視されます。 | | `sessionId` | 全てのイベント | 表示セッションを表す一意の識別子。プロバイダーによって異なるものを意味する可能性があります。HubSpotは、セッションの定義をプロバイダーに委ねています。この識別子は、同じセッションで発生したイベントをグループ化するために使用されます。サードパーティーのシステムによって生成されることを想定しています。 | | `contactId` | 全てのイベント | メディアを消費した、HubSpotのシステム内のコンタクトのID。これは、[HubSpotのユーザートークン(utk)でコンタクトを取得するAPI](https://developers.hubspot.jp/docs/api-reference/legacy/crm/objects/contacts/v1/get-contacts-v1-lists-all-contacts-all#get-a-contact-by-its-user-token)を使用して取得できます。APIはユーザートークンの提供もサポートしており、コンタクトIDへの自動変換を処理します。 | | `contactUtk` | 全てのイベント | メディアを消費したコンタクトを識別するユーザートークン(utk)。 | | `pageId` | 全てのイベント | イベントが発生したページのコンテンツID。 | | `pageName` | 全てのイベント | イベントが発生したページの名前またはタイトル。 | | `pageUrl` | 全てのイベント | イベントが発生したページのURL。 | | `occurredTimestamp` | 全てのイベント | このイベントが発生した時間のタイムスタンプ(エポックからの経過ミリ秒数)。 | | `rawDataString / rawDataMap` | 注意持続時間 | メディアのスパンと、ユーザーが各スパンを消費した回数に関する最もきめ細かい情報を提供する未加工データです。例えば、各スパンが1秒である10秒の動画の場合、訪問者が動画の最初の5秒を視聴した後、動画を再生しなおして再び最初の2秒を視聴した場合、結果の`rawDataString`は、`“0=2;1=2;2=1;3=1;4=1;5=0;6=0;7=0;8=0;9=0;”`になります。 | | `totalPercentPlayed` | 注意持続時間 | ユーザーがメディアを消費したパーセンテージ。プロバイダーは、メディアの同じ部分が繰り返し消費された場合をどのように扱うかに応じて、異なる方法でこの値を計算できます。したがって、APIはイベントの注意持続時間の情報に対して、totalPercentWatchedの検証を試みません。このプロパティーがない場合、HubSpotは、注意持続時間マップから(値が1以上のスパンの数)/(スパンの合計数)を計算してこの値を求めます。 | | `totalSecondsPlayed` | 注意持続時間 | ユーザーがメディアを消費した秒数。メディアブリッジは、`totalPercentPlayed`\*`mediaDuration`の式でこの値を求めます。プロバイダーが別の計算方法を希望する場合は、イベントの作成時に事前計算済みの値を提供できます。 | | `playedPercent` | 四分位数イベント | これまでに消費されたメディアの量の四分位数のパーセント値(0、25、50、75、100)。 | | `iframeUrl` | 再生イベント | iFrameで外部システムからのデータを表示するために使用されるURL。このプロパティーが指定された場合、コンタクトのタイムライン上のイベントに、モーダルウィンドウを開くリンクが表示されます。このリンクをクリックすると、iFrameのコンテンツが表示されます。 | | `mediaType` | 文字列 | イベントが属するメディアタイプ(例:動画や音声)。単一のプロバイダーが複数のメディアタイプをサポートしている場合、このプロパティーを使用して、イベントを正しいオブジェクトに割り当てることができます。 | # Set up a new oEmbed domain Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/integrator-settings/configure-oembed-domain specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/settings/oembed-domains HubSpotアカウントの特定のアプリに対して、新しいoEmbedドメイン設定を作成してください。このエンドポイントを使用すると、oEmbedで使用できるドメインを定義し、外部ソースのメディアコンテンツを連携しやすくすることができます。 > **Supported products** # Delete an oEmbed domain Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/integrator-settings/delete-oembed-domain specs/2026-09/cms-media-bridge-v2026-09.json DELETE /media-bridge/2026-09/{appId}/settings/oembed-domains HubSpotの特定のアプリに関連付けられているoEmbedドメインを削除してください。この操作により、アプリの設定でメディアコンテンツの埋め込みに不要になったドメインを管理および削除できます。 > **Supported products** # Get object types for a supported media Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/integrator-settings/get-object-types specs/2026-09/cms-media-bridge-v2026-09.json GET /media-bridge/2026-09/{appId}/settings/object-definitions/{mediaType} アプリ内で指定されたメディアタイプのオブジェクト定義を取得します。このエンドポイントを使用すると、VIDEO、AUDIO、DOCUMENT、OTHER、IMAGEなどのさまざまなメディアタイプのオブジェクト定義に関連する設定にアクセスできます。これは、アプリ内のさまざまなメディアタイプに関連する構造とプロパティーを理解するのに役立ちます。 > **Supported products** # Get an oEmbed domain Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/integrator-settings/get-oembed-domain specs/2026-09/cms-media-bridge-v2026-09.json GET /media-bridge/2026-09/{appId}/settings/oembed-domains/{oEmbedDomainId} 特定のアプリのoEmbedドメインの詳細を取得します。このエンドポイントは、特定のアプリに関連付けられたoEmbedドメインの構成や設定を取得するのに役立ちます。 > **Supported products** # Update the media bridge app name Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/integrator-settings/update-app-name specs/2026-09/cms-media-bridge-v2026-09.json PUT /media-bridge/2026-09/{appId}/settings MediaBridgeServiceで特定のアプリの設定を更新してください。このエンドポイントを使用すると、指定されたappIdに関連付けられている設定を変更できます。現在の要件に合わせてアプリ固有の設定を更新する場合に役立ちます。 > **Supported products** # Update an oEmbed domain Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/integrator-settings/update-oembed-domain specs/2026-09/cms-media-bridge-v2026-09.json PATCH /media-bridge/2026-09/{appId}/settings/oembed-domains/{oEmbedDomainId} 特定のアプリに関連付けられている特定のoEmbedドメインの設定を更新します。このエンドポイントを使用すると、oEmbedドメインの設定を変更できます。さまざまなドメインでメディアコンテンツがどのように埋め込まれるかを管理する場合に役立ちます。 > **Supported products** # Create property Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/create-property specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/properties/{objectType} MediaBridgeサービス内の指定されたアプリで、特定のオブジェクトタイプに新しいプロパティーを作成します。このエンドポイントを使用すると、オブジェクトタイプに関連する追加情報を保存するために使用できる新しいプロパティーを定義できます。リクエストには、リクエストボディに必要なプロパティーの詳細を含める必要があります。 > **Supported products** > **Required Scopes** # Create Group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/create-property-group specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/properties/{objectType}/groups 指定されたアプリ内の指定されたオブジェクトタイプに対して、新しいプロパティーグループを作成します。このエンドポイントを使用すると、プロパティーをグループに整理し、アプリケーション内でプロパティーをより簡単に管理および分類できます。 > **Supported products** > **Required Scopes** # Delete property Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/delete-property specs/2026-09/cms-media-bridge-v2026-09.json DELETE /media-bridge/2026-09/{appId}/properties/{objectType}/{propertyName} アプリ内の特定のオブジェクトタイプから特定のプロパティーを削除します。この操作は、不要になったプロパティーや誤って作成されたプロパティーを削除するのに役立ちます。このエンドポイントでは、削除するプロパティーを特定するために、アプリID、オブジェクトタイプ、プロパティー名を指定する必要があります。 > **Supported products** > **Required Scopes** # Delete group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/delete-property-group specs/2026-09/cms-media-bridge-v2026-09.json DELETE /media-bridge/2026-09/{appId}/properties/{objectType}/groups/{groupName} アプリ内の特定のオブジェクトタイプに対して、特定のプロパティーグループを削除します。この操作は、不要または廃止されたプロパティーグループを削除し、アプリのプロパティーを整理された状態に保つのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve properties Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/get-properties specs/2026-09/cms-media-bridge-v2026-09.json GET /media-bridge/2026-09/{appId}/properties/{objectType} 指定されたアプリ内の指定されたオブジェクトタイプのプロパティーを取得します。このエンドポイントを使用すると、プロパティーがアーカイブ済みかどうかに基づいてプロパティーを絞り込み、レスポンスに含めるプロパティーを指定できます。これは、アプリ内のさまざまなオブジェクトタイプに関連付けられたプロパティーへのアクセスや管理に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve property Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/get-property-details specs/2026-09/cms-media-bridge-v2026-09.json GET /media-bridge/2026-09/{appId}/properties/{objectType}/{propertyName} 指定されたアプリ内で、特定のオブジェクトタイプのプロパティーを取得します。このエンドポイントを使用すると、プロパティー名で識別される特定のオブジェクトタイプのプロパティーについて、構成や設定を含む詳細情報にアクセスできます。これは、プロパティーの設定を理解したり、連携に使用したりする際に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/get-property-group specs/2026-09/cms-media-bridge-v2026-09.json GET /media-bridge/2026-09/{appId}/properties/{objectType}/groups/{groupName} アプリ内の特定のオブジェクトタイプについて、特定のプロパティーグループを取得してください。このエンドポイントは、アプリ内の特定のオブジェクトタイプで、プロパティーが特定のグループ名の下にどのようにグループ化されているかについての詳細情報を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # List groups Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/get-property-groups specs/2026-09/cms-media-bridge-v2026-09.json GET /media-bridge/2026-09/{appId}/properties/{objectType}/groups 指定されたアプリ内の特定のオブジェクトタイプに対するプロパティーグループのリストを取得します。このエンドポイントは、アプリ内のさまざまなオブジェクトタイプに関連付けられたプロパティーがどのように整理されているかについての情報を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update property Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/update-property specs/2026-09/cms-media-bridge-v2026-09.json PATCH /media-bridge/2026-09/{appId}/properties/{objectType}/{propertyName} 指定されたアプリ内の特定のオブジェクトタイプについて、既存のプロパティーを更新します。この操作により、プロパティーのラベル、タイプ、説明などの詳細を変更して、アプリの要件に適合させることができます。 > **Supported products** > **Required Scopes** # Update group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/properties/update-property-group specs/2026-09/cms-media-bridge-v2026-09.json PATCH /media-bridge/2026-09/{appId}/properties/{objectType}/groups/{groupName} 指定されたアプリの、指定されたオブジェクトタイプ内の特定のグループのプロパティーを更新します。この操作により、MediaBridgeサービス内で、プロパティーグループのラベルや表示順序などの詳細を変更できます。 > **Supported products** > **Required Scopes** # Create associations Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/schemas/create-association-definition specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/schemas/{objectType}/associations 指定されたアプリ内で、特定のオブジェクトタイプに対する新しい関連付けを作成します。このエンドポイントを使用すると、異なるオブジェクトタイプ間の関係を定義し、HubSpotアカウント内のデータ間のつながりと連携を強化できます。 > **Supported products** > **Required Scopes** # Create Object Definitions Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/schemas/create-object-type specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/settings/object-definitions HubSpotメディアブリッジで特定のアプリの新しいオブジェクト定義を作成してください。このエンドポイントは、アプリ内で使用できる新しいオブジェクトを定義するために使用され、メディア関連機能のカスタマイズと連携を可能にします。 > **Supported products** > **Required Scopes** # Define Video Association Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/schemas/create-video-association-definition specs/2026-09/cms-media-bridge-v2026-09.json POST /media-bridge/2026-09/{appId}/settings/video-association-definition HubSpotメディアブリッジで、特定のアプリの動画関連付け定義を作成してください。このエンドポイントは、指定されたアプリ内で動画が他のオブジェクトとどのように関連付けられるかを定義するために使用されます。動画コンテンツとその関連付けをプログラムで管理する必要があるアプリにとって特に便利です。 > **Supported products** > **Required Scopes** # Delete association Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/schemas/delete-association-definition specs/2026-09/cms-media-bridge-v2026-09.json DELETE /media-bridge/2026-09/{appId}/schemas/{objectType}/associations/{associationId} MediaBridgeサービスで、指定されたアプリのスキーマ間の既存の関連付けを削除してください。この操作は、関連性がなくなったエンティティーの関連付けを解除したり、古い関連付けをクリーンアップしたりする場合に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve schemas Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/schemas/get-schemas specs/2026-09/cms-media-bridge-v2026-09.json GET /media-bridge/2026-09/{appId}/schemas HubSpotアカウント内の特定のアプリに関連付けられているスキーマを取得してください。このエンドポイントを使用すると、スキーマの詳細を取得できます。これは、アプリに関連付けられているデータ構造とプロパティーを理解するのに役立ちます。必要に応じて、アーカイブ済みのスキーマのみが含まれるよう結果を絞り込むこともできます。 > **Supported products** > **Required Scopes** # Update schema Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/media-bridge/schemas/update-schema specs/2026-09/cms-media-bridge-v2026-09.json PATCH /media-bridge/2026-09/{appId}/schemas/{objectType} 指定されたアプリ内の特定のオブジェクトタイプのスキーマを更新してください。この操作により、既存のスキーマの詳細を変更できます。データ構造の要件やビジネスロジックの変更に対応する場合に役立ちます。 > **Supported products** > **Required Scopes** # Pages API Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/guide # Create a new A/B test variation Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/ab-tests/create-variation specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/ab-test/create-variation リクエスト本文で提供された情報に基づいて、新しいA/Bテストのバリエーションを作成します。 > **Supported products** > **Required Scopes** # End an active A/B test Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/ab-tests/end-ab-test specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/ab-test/end 有効なA/Bテストを終了して勝者を指定します。 > **Supported products** > **Required Scopes** # Rerun a previous A/B test Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/ab-tests/rerun-ab-test specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/ab-test/rerun 前のA/Bテストを再実行します。 > **Supported products** > **Required Scopes** # Delete landing pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/batch/archive-landing-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/batch/archive リクエスト本文でIDによって指定されたランディングページを削除します。注:これはダッシュボードの「アーカイブ」機能とは異なります。ダッシュボードの「アーカイブ」を実行するには、「archivedInDashboard」フィールドを「true」に設定して通常の更新を送信します。 > **Supported products** > **Required Scopes** # Create landing pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/batch/create-landing-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/batch/create リクエスト本文に詳細が記載されているようにランディングページをバッチ作成します。 > **Supported products** > **Required Scopes** # Retrieve landing pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/batch/read-landing-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/batch/read リクエスト本文で指定されているようにランディングページをバッチ取得します。 > **Supported products** > **Required Scopes** # Update landing pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/batch/update-landing-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/batch/update リクエスト本文で指定されているようにランディングページをバッチ更新します。 > **Supported products** > **Required Scopes** # Clone a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/clone-landing-page specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/clone 既存のランディングページのコピーを作成します。 > **Supported products** > **Required Scopes** # Create a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/create-landing-page specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages 新しいランディングページを作成します。 > **Supported products** > **Required Scopes** # Delete a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/delete-landing-page specs/2026-09/cms-pages-v2026-09.json DELETE /cms/pages/2026-09/landing-pages/{objectId} IDで指定されたランディングページを削除します。 > **Supported products** > **Required Scopes** # Retrieve a landing page draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/drafts/get-landing-page-draft specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/{objectId}/draft ページIDで指定されたランディングページの下書きバージョン全体を取得します。 > **Supported products** > **Required Scopes** # Publish a landing page draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/drafts/publish-landing-page-draft specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/{objectId}/draft/push-live ランディングページの下書きバージョンから公開バージョンに変更を適用します。 > **Supported products** > **Required Scopes** # Reset a landing page draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/drafts/reset-landing-page-draft specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/{objectId}/draft/reset すべての編集を破棄して、下書きを公開バージョンに一致するようにリセットします。 > **Supported products** > **Required Scopes** # Update the draft of a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/drafts/update-landing-page-draft specs/2026-09/cms-pages-v2026-09.json PATCH /cms/pages/2026-09/landing-pages/{objectId}/draft IDで指定された単一のランディングページの下書きバージョンを部分的に更新します。変更する列値のみを指定する必要があります。 > **Supported products** > **Required Scopes** # Archive folders Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/batch-archive-folders specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/folders/batch/archive リクエスト本文で指定されているようにフォルダーをバッチ削除します。 > **Supported products** > **Required Scopes** # Create folders Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/batch-create-folders specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/folders/batch/create リクエスト本文に詳細が記載されているようにフォルダーをバッチ作成します。 > **Supported products** > **Required Scopes** # Retrieve folders Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/batch-read-folders specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/folders/batch/read リクエスト本文で識別されているようにランディングページフォルダーをバッチ取得します。 > **Supported products** > **Required Scopes** # Update folders Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/batch-update-folders specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/folders/batch/update リクエスト本文で指定されているようにランディングページフォルダーをバッチ更新します。 > **Supported products** > **Required Scopes** # Create a landing page folder Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/create-folder specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/folders ランディングページ用の新しいフォルダーを作成します。 > **Supported products** > **Required Scopes** # Delete a landing page folder Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/delete-folder specs/2026-09/cms-pages-v2026-09.json DELETE /cms/pages/2026-09/landing-pages/folders/{objectId} IDで指定されたランディングページフォルダーを削除します。 > **Supported products** > **Required Scopes** # Retrieve a landing page folder Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/get-folder specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/folders/{objectId} IDで指定されたランディングページフォルダーを取得します。 > **Supported products** > **Required Scopes** # Retrieve a previous version of a folder Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/get-folder-revision specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/folders/{objectId}/revisions/{revisionId} フォルダーIDとリビジョンIDで指定されたフォルダーの以前のバージョンを取得します。 > **Supported products** > **Required Scopes** # Retrieves previous versions of a folder Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/get-folder-revisions specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/folders/{objectId}/revisions ランディングページフォルダーの以前のバージョンをすべて取得します。 > **Supported products** > **Required Scopes** # Get all landing page folders Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/get-folders specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/folders ランディングページフォルダーのリストを取得します。ページ処理と絞り込みがサポートされます。このメソッドは、これらのモデルを調査し、外部サービスを使用して編集を提案するような連携で便利です。 > **Supported products** > **Required Scopes** # Restore a previous version of a folder Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/restore-folder-revision specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/folders/{objectId}/revisions/{revisionId}/restore ランディングページフォルダーの指定されたバージョンを取得して復元します。 > **Supported products** > **Required Scopes** # Update a landing page folder Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/folders/update-folder specs/2026-09/cms-pages-v2026-09.json PATCH /cms/pages/2026-09/landing-pages/folders/{objectId} フォルダーIDで指定されたランディングページフォルダーを部分的に更新します。変更する詳細値のみを指定する必要があります。 > **Supported products** > **Required Scopes** # Retrieve a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/get-landing-page specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/{objectId} IDで指定されたランディングページを取得します。 > **Supported products** > **Required Scopes** # Get all landing pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/get-landing-pages specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages HubSpotアカウントのランディングページのリストを取得します。このエンドポイントでは、作成および更新のタイムスタンプに基づいてランディングページを絞り込み、並べ替えて、結果をページ分割できます。アーカイブされたページを含めることを選択したり、レスポンスに含める特定のプロパティーを指定したりすることもできます。 > **Supported products** > **Required Scopes** # Add a landing page to a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/multi-language/attach-to-lang-group specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/multi-language/attach-to-lang-group ランディングページを多言語グループに添付します。 > **Supported products** > **Required Scopes** # Create a new language variation Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/multi-language/create-language-variation specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/multi-language/create-language-variation 既存のランディングページから新しい言語バリエーションを作成します。このバリエーションは、ソースページのドラフト状態のコピーになります。コンテンツをプレビューするには、[ソースランディングページのドラフトを取得](/api-reference/latest/cms/pages/landing-pages/drafts/get-landing-page-draft)できます。 > **Supported products** > **Required Scopes** # Remove a landing page from a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/multi-language/detach-from-lang-group specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/multi-language/detach-from-lang-group ランディングページを多言語グループから分離します。 > **Supported products** > **Required Scopes** # Set a new primary language Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/multi-language/set-new-lang-primary specs/2026-09/cms-pages-v2026-09.json PUT /cms/pages/2026-09/landing-pages/multi-language/set-new-lang-primary ランディングページを多言語グループのプライマリー言語として設定します。 > **Supported products** > **Required Scopes** # Update languages of multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/multi-language/update-languages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/multi-language/update-languages 多言語グループの各ランディングページに新しい言語を明示的に設定します。 > **Supported products** > **Required Scopes** # Retrieve a previous version of a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/revisions/get-landing-page-revision specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId} ページIDとリビジョンIDで指定されたランディングページの以前のバージョンを取得します。 > **Supported products** > **Required Scopes** # Retrieve all previous versions of a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/revisions/get-landing-page-revisions specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/landing-pages/{objectId}/revisions ページIDで指定されたランディングページの以前のバージョンをすべて取得します。 > **Supported products** > **Required Scopes** # Restore a previous version of a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/revisions/restore-landing-page-revision specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}/restore ページIDとリビジョンIDで指定されたランディングページの以前のバージョンを復元します。 > **Supported products** > **Required Scopes** # Restore a previous version of a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/revisions/restore-landing-page-to-draft specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/{objectId}/revisions/{revisionId}/restore-to-draft ランディングページの以前のバージョンを指定して、ページの下書きとして設定します。 > **Supported products** > **Required Scopes** # Schedule landing page publishing Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/schedule-landing-page specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/landing-pages/schedule ランディングページの公開をスケジュールします。 > **Supported products** > **Required Scopes** # Update a landing page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/landing-pages/update-landing-page specs/2026-09/cms-pages-v2026-09.json PATCH /cms/pages/2026-09/landing-pages/{objectId} パスのIDで識別された単一のランディングページオブジェクトをスパース更新します。 修正する列値のみを指定する必要があります。 > **Supported products** > **Required Scopes** # Create a new A/B test variation Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/ab-tests/create-variation specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/ab-test/create-variation リクエスト本文で提供された情報に基づいて、新しいA/Bテストのバリエーションを作成します。 > **Supported products** > **Required Scopes** # End an active A/B test Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/ab-tests/end-ab-test specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/ab-test/end 有効なA/Bテストを終了して勝者を指定します。 > **Supported products** > **Required Scopes** # Rerun a previous A/B test Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/ab-tests/rerun-ab-test specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/ab-test/rerun 前のA/Bテストを再実行します。 > **Supported products** > **Required Scopes** # Delete site pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/batch/archive-website-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/batch/archive リクエスト本文で指定されたウェブサイトページをバッチ削除します。これはダッシュボードの「アーカイブ」機能とは異なりますのでご注意ください。ダッシュボードの「アーカイブ」を実行するには、「archivedInDashboard」フィールドを「true」に設定して通常の更新を送信します。 > **Supported products** > **Required Scopes** # Create site pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/batch/create-website-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/batch/create リクエスト本文で指定されているようにウェブサイトページをバッチ作成します。 > **Supported products** > **Required Scopes** # Retrieve site pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/batch/read-website-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/batch/read リクエスト本文で指定されているようにウェブサイトページをバッチ取得します。 > **Supported products** > **Required Scopes** # Update site pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/batch/update-website-pages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/batch/update リクエスト本文で指定されているようにウェブサイトページをバッチ更新します。 > **Supported products** > **Required Scopes** # Clone a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/clone-website-page specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/clone 既存のウェブサイトページのコピーを作成します。 > **Supported products** > **Required Scopes** # Create a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/create-website-page specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages 新しいウェブサイトページを作成します。 > **Supported products** > **Required Scopes** # Delete a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/delete-website-page specs/2026-09/cms-pages-v2026-09.json DELETE /cms/pages/2026-09/site-pages/{objectId} IDで指定されたウェブサイトページを削除します。 > **Supported products** > **Required Scopes** # Retrieve a site page draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/drafts/get-website-page-draft specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/site-pages/{objectId}/draft IDで指定されたウェブサイトページの下書きバージョン全体を取得します。 > **Supported products** > **Required Scopes** # Publish a site page draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/drafts/publish-website-page-draft specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/{objectId}/draft/push-live ウェブサイトページの下書きバージョンから変更を取得し、公開バージョンに適用します。 > **Supported products** > **Required Scopes** # Reset a site page draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/drafts/reset-website-page-draft specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/{objectId}/draft/reset すべての編集を破棄して、下書きを公開バージョンに一致するようにリセットします。 > **Supported products** > **Required Scopes** # Update the draft of a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/drafts/update-website-page-draft specs/2026-09/cms-pages-v2026-09.json PATCH /cms/pages/2026-09/site-pages/{objectId}/draft ページIDで指定されたウェブサイトページの下書きバージョンを部分的に更新します。変更する詳細の値のみを指定する必要があります。 > **Supported products** > **Required Scopes** # Retrieve a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/get-website-page specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/site-pages/{objectId} IDを基準にウェブサイトページを取得します。 > **Supported products** > **Required Scopes** # Get all site pages Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/get-website-pages specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/site-pages すべてのウェブサイトページを取得します。ページ操作と絞り込みがサポートされます。このメソッドは、これらのモデルを調査し、外部サービスを使用して編集を提案するような連携で便利です。 > **Supported products** > **Required Scopes** # Add a site page to a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/multi-language/attach-to-lang-group specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/multi-language/attach-to-lang-group サイトページを多言語グループに添付します。 > **Supported products** > **Required Scopes** # Create a new language variation Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/multi-language/create-language-variation specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/multi-language/create-language-variation 既存のウェブサイトページから新しい言語バリエーションを作成します。このバリエーションは、ソースウェブサイトページの下書き状態のコピーになります。コンテンツをプレビューするには、[ソースウェブサイトページの下書きを取得](/api-reference/latest/cms/pages/website-pages/drafts/get-website-page-draft)できます。 > **Supported products** > **Required Scopes** # Remove a site page from a multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/multi-language/detach-from-lang-group specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/multi-language/detach-from-lang-group ウェブサイトページを多言語グループから分離します。 > **Supported products** > **Required Scopes** # Set a new primary language Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/multi-language/set-new-lang-primary specs/2026-09/cms-pages-v2026-09.json PUT /cms/pages/2026-09/site-pages/multi-language/set-new-lang-primary サイトページを多言語グループのプライマリー言語として設定します。 > **Supported products** > **Required Scopes** # Update languages of multi-language group Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/multi-language/update-languages specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/multi-language/update-languages 多言語グループの各サイトページに新しい言語を明示的に設定します。 > **Supported products** > **Required Scopes** # Retrieve a previous version of a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/revisions/get-website-page-revision specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId} リビジョンIDを基準にウェブサイトページの以前のバージョンを取得します。 > **Supported products** > **Required Scopes** # Retrieve all previous versions of a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/revisions/get-website-page-revisions specs/2026-09/cms-pages-v2026-09.json GET /cms/pages/2026-09/site-pages/{objectId}/revisions ページIDで指定されたウェブサイトページの以前のバージョンをすべて取得します。 > **Supported products** > **Required Scopes** # Restore a previous version of a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/revisions/restore-website-page-revision specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}/restore ウェブサイトページをページIDとバージョンIDで指定された以前のバージョンに復元します。 > **Supported products** > **Required Scopes** # Restore a previous version of a site page to draft Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/revisions/restore-website-page-to-draft specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/{objectId}/revisions/{revisionId}/restore-to-draft ウェブサイトページの指定されたバージョンを取得し、ページの新しい下書きバージョンとして設定します。 > **Supported products** > **Required Scopes** # Schedule site page publishing Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/schedule-website-page specs/2026-09/cms-pages-v2026-09.json POST /cms/pages/2026-09/site-pages/schedule ウェブサイトページを将来の時刻に公開するようにスケジュールします。 > **Supported products** > **Required Scopes** # Update a site page Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/pages/website-pages/update-website-page specs/2026-09/cms-pages-v2026-09.json PATCH /cms/pages/2026-09/site-pages/{objectId} IDで指定された単一のウェブサイトページを部分的に更新します。変更する列値のみを指定する必要があります。 > **Supported products** > **Required Scopes** # Get indexed properties Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/site-search/get-indexed-data specs/2026-09/cms-site-search-v2026-09.json GET /cms/site-search/2026-09/indexed-data/{contentId} IDによって指定されたアセット(例:ページ、ブログ記事、HubDBテーブル)のインデックスされたデータをすべて返します。これは、特定のアセットがカスタム検索で返されない理由をデバッグする場合に便利です。 > **Supported products** > **Required Scopes** # CMSサイト | サイト内検索 Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/site-search/guide > **[Run in Postman](https://app.getpostman.com/run-collection/5e5c4c70292db4e72738)** > **スコープ要件** # サイト内検索 サイト内検索では、HubSpotがホスティングするウェブサイトの検索語句に関連したコンテンツを返すことができます。また、特定のドキュメントID(ページID、記事ID、HubDB行IDなど)に関して、インデックス登録された全てのデータを返すことも可能です。 Googleを使用してウェブ全体を検索する場合、サイト内検索はウェブサイト全体をインデックス登録し、検索結果を読みやすい一覧で生成します。Eコマースから報道機関まで、この機能は広く利用されており、さまざまな用途に役立っています。 **使用例**: HubSpotがホスティングするウェブサイトで検索フィールドを使用するように検索結果ページを設定します。詳細については、 [ナレッジベース記事](https://knowledge.hubspot.com/ja/design-manager/set-up-a-results-page-to-use-a-search-field-on-your-site) をご参照ください。 **注**:検索エンドポイントは、複数のドメイン間でコンテンツを検索するために使用されます。 # Search your site Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/site-search/search-site specs/2026-09/cms-site-search-v2026-09.json GET /cms/site-search/2026-09/search 特定のHubSpotアカウントの特定の検索条件に一致するウェブサイトコンテンツが返されます。検索はコンテンツタイプ、ドメイン、またはURLパスで絞り込むことができます。言語のサポートに加えて、新しさや人気で結果を加重するオプションが含まれます。 > **Supported products** > **Required Scopes** # Create a file Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/create-source-code-file specs/2026-09/cms-source-code-v2026-09.json POST /cms/source-code/2026-09/{environment}/content/{path} 指定された環境の指定されたパスにファイルが作成されます。マルチパート/フォームデータのコンテンツタイプが受け入れられます。指定されたパスにファイルがすでにある場合は、エラーがスローされます。 > **Supported products** > **Required Scopes** # Delete a file Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/delete-source-code-file specs/2026-09/cms-source-code-v2026-09.json DELETE /cms/source-code/2026-09/{environment}/content/{path} 指定された環境の指定されたパスにあるファイルが削除されます。 > **Supported products** > **Required Scopes** # Extract source code in a zip file Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/extract/extract-source-code specs/2026-09/cms-source-code-v2026-09.json POST /cms/source-code/2026-09/extract/async 開発者ファイルシステムのzipファイルを抽出します。抽出ステータスは、以下の「/extract/async/tasks/taskId/status」エンドポイントで確認できます。 > **Supported products** > **Required Scopes** # Get extraction status Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/extract/get-extraction-status specs/2026-09/cms-source-code-v2026-09.json GET /cms/source-code/2026-09/extract/async/tasks/{taskId}/status 最初の「extract/async」リクエストから返される「taskId」で抽出のステータスを取得します。 > **Supported products** > **Required Scopes** # Retrieve file metadata Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/get-file-metadata specs/2026-09/cms-source-code-v2026-09.json GET /cms/source-code/2026-09/{environment}/metadata/{path} 指定された環境の指定されたパスにあるファイルのメタデータオブジェクトが取得されます。 > **Supported products** > **Required Scopes** # Download a file Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/get-source-code-file specs/2026-09/cms-source-code-v2026-09.json GET /cms/source-code/2026-09/{environment}/content/{path} 指定された環境の指定されたパスにあるファイルのバイトの内容がダウンロードされます。 > **Supported products** > **Required Scopes** # CMS | ソースコードAPI Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/guide > **スコープ要件** ## 基本機能 CMSソースコードAPIを使用すると、HubSpot[デベロッパー ファイル システム](https://developers.hubspot.jp/docs/cms/start-building/introduction/overview#developer-file-system)に格納されたファイルを操作できます。これらのファイルには、デザインマネージャーに表示されるテンプレート、モジュール、CSS、JSなどの全てのCMSアセットが含まれます。このAPIでは次の操作ができます。 * 新しいファイルをHubSpotアカウントにアップロードするか、既存のファイル対する変更をアップロードします。 * CMSアセットをアカウントからダウンロードまたは削除します。 * デザインマネージャー内の各ファイルまたは各フォルダーのメタデータを取得します。 * HubSpotのCMS上のファイルの内容(HubL構文を含む)を検証します。 * zipファイルをファイルパッケージとしてアップロードし、アカウント内に展開します。 このAPIでは、全てのCMSアセットをローカル環境で編集するとともに、作業の迅速化に役立つツールを作成できます。 ## 環境とパス ソースコードAPIエンドポイントでは、CMSデベロッパー ファイル システム内でのファイルの特定に`environment`パラメーターと`path`パラメーターを使用します。このパラメーターは通常、エンドポイントパス自体に、例えば`/cms/v3/source-code/{environment}/content/{path}`のように指定します。 `environment`パラメーターは、各ファイルの未公開バージョンまたは公開バージョンのいずれを操作するかを示します。未公開のバージョンの場合は`draft`を使用します。公開中のバージョンの場合は`published`を使用します。 > [!NOTE] > > `published`へのアップロードはデザインマネージャー上で[公開]ボタンを押すことに相当する点に注意してください。そのため、`draft`にある全ての内容が消去されます。 `path`パラメーターは、CMSデベロッパー ファイル システムでのファイルの位置を示します。UNIXベースのオペレーティングシステムとは異なり、最上位レベルのアセットの前に`/`文字は付きません。新しいファイルをアップロードする際には、ファイルの作成先となる場所を指定する必要があります。既存のファイルを取得する、または既存のファイルに対する変更をアップロードする場合は、既存のファイルのパスに一致している必要があります。 全てのアセットタイプに、ローカルのファイル形式が使用されます。つまりアセットが、タイプによっては複数のファイルで構成されます。例えば、モジュールは実際には`.module`サフィックスが末尾に付くディレクトリーとして表されます。このため、モジュールのHTMLを取得するには、`foo.module/module.html`のようなパスを使用する必要があります。詳細については、[ローカル開発のドキュメント](https://developers.hubspot.com/docs/developer-tooling/local-development/hubspot-cli/reference)を参照してください。 ## ファイルをダウンロードする HubSpotアカウントからは、`/cms/v3/source-code/{environment}/content/{path}`エンドポイントを使用してファイルをダウンロードできます。 このためには、`application/octet-stream`コンテンツタイプを受け入れるHTTP GETリクエストを使用します。これにより、指定したパスの実際のバイナリーファイルの内容をダウンロードできます。 **例:** * **ファイルのダウンロード:** GET `/cms/v3/source-code/published/content/my-file.js` Accept: `application/octet-stream` フォルダーの内容全体をダウンロードすることはできません。代わりに、フォルダーのメタデータを取得し(以下を参照)、子を個別に取得する必要があります。 ## ファイルとフォルダーのメタデータを取得する 開発者は`/cms/v3/source-code/{environment}/metadata/{path}`エンドポイントを使用することで、HubSpotアカウント上のファイルまたはフォルダーのメタデータ(パス、ファイル名、作成/更新時のタイムスタンプなど)を取得できます。 このためには、`application/json`コンテンツタイプを受け入れるHTTP GETリクエストを使用します。これにより、そのファイルの関連メタデータを含むJSONオブジェクトを取得できます。 フォルダーのメタデータは、`folder: true`プロパティーにより示されます。`children`配列は、フォルダー内のファイルとサブフォルダーの名前を示します。これらのファイル名をフォルダーツリーの走査に使用します。1つのフォルダーのメタデータを取得し、そのフォルダーの子と全てのサブフォルダーを再帰的に取得します。 **例:** * **フォルダーのメタデータを取得する:** GET `/cms/v3/source-code/published/metadata/my-folder` Accept: `application/json` ## ファイルをアップロードする HubSpotアカウントには、`/cms/v3/source-code/{environment}/content/{path}`エンドポイントを使用してローカルのファイルをアップロードできます。ファイルは、`multipart/form-data`コンテンツタイプを指定したHTTP PUTリクエストによってアップロードする必要があります。バイナリー ファイル データを`file`という名前のフィールドとして含める必要があります。 **例:** * **新規ファイルをアップロードする:** PUT `/cms/v3/source-code/published/content/my-new-file.html` Content-Type: multipart/form-dataフォームデータ:`{ file: [バイナリー ファイル データ] }` * **既存の下書きファイルを更新する:** PUT `/cms/v3/source-code/draft/content/path/to/existing-file.html` Content-Type: multipart/form-dataフォームデータ:`{ file: [バイナリー ファイル データ] }` HubSpotでは現在、以下のCMSアセット ファイル タイプをサポートしています。 * `css` * `js` * `json` * `html` * `txt` * `md` * `jpg` * `jpeg` * `png` * `gif` * `map` * `svg` * `ttf` * `woff` * `woff2` ## ファイルの内容を検証する ローカルファイルの内容は、`/cms/v3/source-code/{environment}/validate/{path}`エンドポイントを使用して検証できます。 これは、テンプレート/モジュール、またはテーマまたはモジュールのJSON内のHubLの検証に使用できます。これにより、デザインマネージャーに表示される警告とエラーが示されます。 > [!NOTE] > > 無効なファイルは直接発行しようとしても拒否される点に注意してください。**公開前にまずファイルを検証することをお勧めします。** ファイルは、`multipart/form-data`コンテンツタイプを指定したHTTP POSTリクエストによって送信する必要があります。バイナリー ファイル データを`file`という名前のフィールドとして含める必要があります。検証にエラーがあった場合、`400`レスポンスと関連するエラーのリストが返されます。 **例:** * **新規ファイルをアップロードする:** POST `/cms/v3/source-code/published/validate/my-file.html` Content-Type: multipart/form-dataフォームデータ:`{ file: \[バイナリー ファイル データ\] }` ## ファイルを削除する HubSpotアカウントからは、`/cms/v3/source-code/{environment}/content/{path}`エンドポイント経由でHTTP DELETEリクエストを使用してファイルを削除できます。 `published`(公開)環境から削除すると、ファイルは完全に削除されます。`draft`(下書き)環境から削除すると、未公開の変更が消去されるだけです。公開ファイルを削除すると、使用されていたファイルが公開中のコンテンツに即座に影響を与えます。このため、ファイルに対する全ての参照を削除してから、ファイルを削除してください。 **例:** * **ファイルを削除する:** DELETE `/cms/v3/source-code/published/content/my-file.html` ## ファイルパッケージを展開する HubSpotアカウントには、`/cms/v3/source-code/extract/{path}`エンドポイント経由でHTTP POSTリクエストを使用してzipファイルを展開できます。 この`path`は、アカウントにアップロード済みのzipファイルである必要があります。展開プロセスは非同期で、圧縮ファイルの数とサイズに応じて最大で1分程度かかることがあります。zipの内容は、zipファイルが置かれているのと同じフォルダーに展開されます。展開が正常に完了しても、元のzipファイルは自動削除されません。 **例:** * \*\*zipファイルをアップロードする: \*\*PUT `/cms/v3/source-code/published/content/my-package.zip` Content-Type: multipart/form-dataフォームデータ:`{ file: \[バイナリー ファイル データ\] }` * **zipファイルを展開する:** POST `/cms/v3/source-code/extract/my-package.zip` # Create or update a file Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/update-source-code-file specs/2026-09/cms-source-code-v2026-09.json PUT /cms/source-code/2026-09/{environment}/content/{path} 指定された環境の指定されたパスでファイルが更新/挿入されます。マルチパート/フォームデータのコンテンツタイプが受け入れられます。 > **Supported products** > **Required Scopes** # Validate the contents of a file Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/source-code/validate-source-code-file specs/2026-09/cms-source-code-v2026-09.json POST /cms/source-code/2026-09/{environment}/validate/{path} パスと環境が指定されると、エンドポイントに渡されるファイルコンテンツが検証されます。マルチパート/フォームデータのコンテンツタイプが受け入れられます。 > **Supported products** > **Required Scopes** # Create a mapping Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-mappings/create-url-mapping specs/2026-09/cms-url-mappings-v2026-09.json POST /url-mappings/2026-09/url-mappings HubSpotアカウントで新しいURLマッピングを作成します。このエンドポイントを使用すると、URLリダイレクトとマッピングを定義でき、サイトナビゲーションとSEOの管理に役立ちます。リクエスト本文には、UrlMappingスキーマの必須プロパティーをすべて含める必要があります。 > **Supported products** > **Required Scopes** # Delete a mapping Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-mappings/delete-url-mapping specs/2026-09/cms-url-mappings-v2026-09.json DELETE /url-mappings/2026-09/url-mappings/{id} 固有IDを使用して、HubSpotアカウントで特定のURLマッピングを削除します。この操作により、URLマッピングは完全に削除されます。適切な書き込み権限と削除権限が必要です。 > **Supported products** > **Required Scopes** # Retrieve a mapping Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-mappings/get-url-mapping specs/2026-09/cms-url-mappings-v2026-09.json GET /url-mappings/2026-09/url-mappings/{id} 固有IDを使用して、特定のURLマッピングを取得します。このエンドポイントは、HubSpotアカウント内の特定のURLマッピング設定に関する詳細情報を取得するのに役立ちます。URLマッピングのIDをパスパラメーターとして指定する必要があります。 > **Supported products** > **Required Scopes** # Retrieve mappings Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-mappings/get-url-mappings specs/2026-09/cms-url-mappings-v2026-09.json GET /url-mappings/2026-09/url-mappings HubSpotアカウントからURLマッピングのリストを取得します。このエンドポイントは、HubSpot CMS内でURLを管理およびリダイレクトするために使用できるURLマッピング設定へのアクセスを提供します。コンテンツ管理設定でURLがどのように構成され、リダイレクトされるかを理解するのに役立ちます。 > **Supported products** > **Required Scopes** # Create a redirect Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-redirects/create-url-redirect specs/2026-09/cms-url-redirects-v2026-09.json POST /cms/url-redirects/2026-09 HubSpotアカウントで新しいURLリダイレクトを作成します。このエンドポイントを使用すると、リダイレクトの宛先URL、リダイレクトスタイル、ルートプレフィックスを定義できます。これは、URLリダイレクトを管理し、ユーザーが正しいページに誘導されるようにするために役立ちます。 > **Supported products** > **Required Scopes** # Delete a redirect Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-redirects/delete-url-redirect specs/2026-09/cms-url-redirects-v2026-09.json DELETE /cms/url-redirects/2026-09/{urlRedirectId} 既存のリダイレクトを削除します。今後は対応付けされなくなります。 > **Supported products** > **Required Scopes** # Retrieve redirect details Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-redirects/get-url-redirect specs/2026-09/cms-url-redirects-v2026-09.json GET /cms/url-redirects/2026-09/{urlRedirectId} IDを基準に1件の既存のURLリダイレクトの詳細が返されます。 > **Supported products** > **Required Scopes** # Retrieve current redirects Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-redirects/get-url-redirects specs/2026-09/cms-url-redirects-v2026-09.json GET /cms/url-redirects/2026-09 HubSpotアカウント内のURLリダイレクトのリストを取得します。このエンドポイントを使用すると、作成または更新のタイムスタンプに基づいてリダイレクトを絞り込み、結果を並べ替えることができます。ページ分割をサポートしており、指定された場合はアーカイブされたリダイレクトを含めることもできます。 > **Supported products** > **Required Scopes** # URL redirects API Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-redirects/guide # Update a redirect Source: https://developers.hubspot.jp/docs/api-reference/latest/cms/url-redirects/update-url-redirect specs/2026-09/cms-url-redirects-v2026-09.json PATCH /cms/url-redirects/2026-09/{urlRedirectId} 既存のURLリダイレクトの設定が更新されます。 > **Supported products** > **Required Scopes** # Retrieve all subscription status definitions Source: https://developers.hubspot.jp/docs/api-reference/latest/communication-preferences/definitions/get-subscription-definitions specs/2026-09/communication-preferences-subscriptions-v2026-09.json GET /communication-preferences/2026-09/definitions アカウントから配信登録ステータス定義のリストを取得します。 > **Supported products** > **Required Scopes** # Communication preferences API guide Source: https://developers.hubspot.jp/docs/api-reference/latest/communication-preferences/guide # Batch retrieve subscription statuses Source: https://developers.hubspot.jp/docs/api-reference/latest/communication-preferences/status/batch/get-subscriptions specs/2026-09/communication-preferences-subscriptions-v2026-09.json POST /communication-preferences/2026-09/statuses/batch/read 一連のコンタクトの配信登録ステータスをバッチで取得します。 > **Supported products** > **Required Scopes** # Get subscription preferences for a specific contact Source: https://developers.hubspot.jp/docs/api-reference/latest/communication-preferences/status/get-subscription specs/2026-09/communication-preferences-subscriptions-v2026-09.json GET /communication-preferences/2026-09/statuses/{subscriberIdString} コンタクトの現在のEメール配信設定を取得します。 > **Supported products** > **Required Scopes** # Retrieve a contact's unsubscribed status Source: https://developers.hubspot.jp/docs/api-reference/latest/communication-preferences/status/get-unsubscribed-status specs/2026-09/communication-preferences-subscriptions-v2026-09.json GET /communication-preferences/2026-09/statuses/{subscriberIdString}/unsubscribe-all コンタクトがすべてのEメールの配信を停止したかどうかを確認します。コンタクトがすべてのコミュニケーションからオプトアウトしていない場合、応答の「結果」列は空になります。 > **Supported products** > **Required Scopes** # Update a contact's subscription status Source: https://developers.hubspot.jp/docs/api-reference/latest/communication-preferences/status/update-subscription specs/2026-09/communication-preferences-subscriptions-v2026-09.json POST /communication-preferences/2026-09/statuses/{subscriberIdString} 特定のコンタクトの配信登録ステータスを設定します。 > **Supported products** > **Required Scopes** # Batch unsubscribe contacts from all subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/communication-preferences/status/batch/unsubscribe-contacts-batch specs/2026-09/communication-preferences-subscriptions-v2026-09.json POST /communication-preferences/2026-09/statuses/batch/unsubscribe-all 一連のコンタクトのすべてのEメールの配信を停止します。 > **Supported products** > **Required Scopes** # Conversations SDK Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/chat-configuration/chat-widget-sdk # Integrate the HubSpot mobile chat SDK into your Android app Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/chat-configuration/mobile-chat-sdk/android # Integrate the HubSpot mobile chat SDK into your iOS app Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/chat-configuration/mobile-chat-sdk/ios # Running code snippets in bots Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/chat-configuration/working-with-chatbots # Retrieve actor Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/actors/get-actor specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/actors/{actorId} コミュニケーションシステム内の特定のアクターに関する情報を、一意のアクターIDを使用して取得します。このエンドポイントは、エージェント、ボット、その他のコミュニケーションに関与するエンティティーなど、特定のアクターに関する詳細情報を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Batch retrieve actors Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/actors/get-actors specs/2026-09/conversations-conversations-v2026-09.json POST /conversations/conversations/2026-09/actors/batch/read バッチ操作で複数のアクターに関する情報を取得します。このエンドポイントは、1回のリクエストでさまざまなアクターの詳細を取得し、データ取得プロセスを効率化するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve channel account Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/channel-accounts/get-channel-account specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/channel-accounts/{channelAccountId} 一意のchannelAccountIdを使用して、HubSpotアカウント内の特定のチャネルアカウントの詳細を取得します。このエンドポイントは、アーカイブ状況を含む特定のチャネルアカウントに関する情報にアクセスするのに役立ちます。 > **Supported products** > **Required Scopes** # List channel accounts Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/channel-accounts/get-channel-accounts specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/channel-accounts HubSpotアカウントに関連付けられているチャネルアカウントのリストを取得します。このエンドポイントを使用すると、チャネルID、受信トレイID、その他の条件で結果を絞り込むことができます。コミュニケーションにリンクされているチャネルアカウントを管理および確認するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve channel Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/channels/get-channel specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/channels/{channelId} チャネルの一意の識別子を使用して、HubSpotアカウント内の特定のチャネルの詳細を取得します。このエンドポイントは、チャネル固有の情報にアクセスするのに役立ち、コミュニケーションチャネルの管理や分析に利用できます。 > **Supported products** > **Required Scopes** # List Channels Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/channels/get-channels specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/channels HubSpotアカウントのチャネルリストを取得します。このエンドポイントはページ分割と並べ替えに対応しており、大量のデータを効率的に管理できます。このエンドポイントを使用して、利用可能なすべてのチャネルの概要を確認できます。 > **Supported products** > **Required Scopes** # Conversations API Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/guide # Retrieve inbox Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/inbox/get-inbox specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/inboxes/{inboxId} 一意の識別子を使用して、HubSpotアカウント内の特定の受信トレイの詳細を取得します。このエンドポイントを使用すると、受信トレイがアーカイブされているかどうかを含む、受信トレイに関する情報にアクセスできます。さまざまな受信トレイ内のコミュニケーションを管理および整理するのに役立ちます。 > **Supported products** > **Required Scopes** # List inboxes Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/inbox/get-inboxes specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/inboxes HubSpotアカウント内の受信トレイのリストを取得します。このエンドポイントを使用すると、結果をページ分割して必要に応じて並べ替えることができます。アーカイブ済みの受信トレイのみを含めるように絞り込むこともできます。 > **Supported products** > **Required Scopes** # Create message Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/messages/create-message specs/2026-09/conversations-conversations-v2026-09.json POST /conversations/conversations/2026-09/threads/{threadId}/messages HubSpotアカウント内の特定のコミュニケーションスレッドに新しいメッセージを作成します。このエンドポイントを使用すると、既存のコミュニケーションスレッドにメッセージを追加でき、やり取りを継続したり、追加情報を提供したりするのに役立ちます。適切なスレッドを対象とするために、threadIdが正しく指定されていることを確認してください。 > **Supported products** > **Required Scopes** # Retrieve message Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/messages/get-message specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/threads/{threadId}/messages/{messageId} HubSpotアカウントのコミュニケーションスレッドから特定のメッセージを取得します。このエンドポイントを使用すると、threadIdで識別されるスレッド内のmessageIdで識別されるメッセージの詳細にアクセスできます。レスポンスに含める特定のプロパティーを指定できます。 > **Supported products** > **Required Scopes** # Retrieve message content Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/messages/get-message-content specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/threads/{threadId}/messages/{messageId}/original-content スレッド内の特定のメッセージの元のコンテンツを取得します。このエンドポイントは、メッセージの変更されていないテキストまたはリッチテキストコンテンツにアクセスするのに役立ち、コミュニケーションにおける最初のやり取りを監査または確認する上で重要となる場合があります。 > **Supported products** > **Required Scopes** # Retrieve messages Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/messages/get-messages specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/threads/{threadId}/messages HubSpotアカウント内の特定のコミュニケーションスレッドからメッセージを取得します。このエンドポイントを使用すると、指定されたスレッドに関連付けられているすべてのメッセージにアクセスできます。コミュニケーション履歴の確認やコミュニケーションパターンの分析に役立ちます。 > **Supported products** > **Required Scopes** # Delete Assignee Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/threads/delete-assignee specs/2026-09/conversations-conversations-v2026-09.json DELETE /conversations/conversations/2026-09/threads/{threadId}/assignee HubSpotアカウント内の特定のコミュニケーションスレッドから担当者の割り当てを解除します。この操作は、ユーザーへのスレッドの割り当てを解除して再割り当てできるようにする場合や、特定の担当者が不要になったことを示す場合に役立ちます。 > **Supported products** > **Required Scopes** # Delete thread Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/threads/delete-thread specs/2026-09/conversations-conversations-v2026-09.json DELETE /conversations/conversations/2026-09/threads/{threadId} HubSpotアカウント内の特定のコミュニケーションスレッドを削除します。この操作により、threadIdで識別されるスレッドがシステムから削除されます。このエンドポイントを使用して、不要になったコミュニケーションスレッドを管理およびクリーンアップできます。 > **Supported products** > **Required Scopes** # Retrieve thread Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/threads/get-thread specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/threads/{threadId} 一意の識別子を使用して、特定のコミュニケーションスレッドの詳細を取得します。このエンドポイントを使用すると、スレッドのプロパティーや関連付けなどの情報にアクセスできます。後続の処理や表示のためにスレッドの詳細を取得する場合に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve threads Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/threads/get-threads specs/2026-09/conversations-conversations-v2026-09.json GET /conversations/conversations/2026-09/threads 指定された受信トレイからコミュニケーションスレッドのリストを取得します。このエンドポイントでは、関連付けられたコンタクトまたはチケット、スレッドステータス、その他のパラメーターで絞り込むことができます。大量のデータを効果的に管理できるように、ページ分割と並べ替えに対応しています。 > **Supported products** > **Required Scopes** # Update assignee Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/threads/update-assignee specs/2026-09/conversations-conversations-v2026-09.json PUT /conversations/conversations/2026-09/threads/{threadId}/assignee HubSpotアカウント内の特定のコミュニケーションスレッドにアクターを割り当てます。このエンドポイントを使用すると、指定されたスレッドの担当者を更新でき、チームメンバー間の作業量の分散を管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Update thread Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/conversations/threads/update-thread specs/2026-09/conversations-conversations-v2026-09.json PATCH /conversations/conversations/2026-09/threads/{threadId} HubSpotアカウント内の特定のコミュニケーションスレッドの詳細を更新します。このエンドポイントを使用すると、threadIdで識別されるスレッドのステータスやその他の属性を変更できます。コミュニケーションスレッドをオープンまたはクローズに設定するなど、スレッドの状態を管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Custom channels API guide Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/custom-channels/guide # Publish a message Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/custom-channels/messages/create-custom-channel specs/2026-09/conversations-custom-channels-v2026-09.json POST /conversations/custom-channels/2026-09/{channelId}/messages カスタムチャネルでメッセージを公開 > **Supported products** > **Required Scopes** # Get a message Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/custom-channels/messages/get-custom-channel specs/2026-09/conversations-custom-channels-v2026-09.json GET /conversations/custom-channels/2026-09/{channelId}/messages/{messageId} カスタムチャネル経由で送信された特定のメッセージの詳細を取得 > **Supported products** > **Required Scopes** # Update a message Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/custom-channels/messages/update-custom-channel specs/2026-09/conversations-custom-channels-v2026-09.json PATCH /conversations/custom-channels/2026-09/{channelId}/messages/{messageId} メッセージのステータスを更新して、メッセージが正常に送信されたか、送信に失敗したか、または読まれたかを示します。失敗したメッセージの場合、これには失敗のエラーメッセージを含めることもできます。 > **Supported products** > **Required Scopes** # Conversations Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/guide # Generate visitor token Source: https://developers.hubspot.jp/docs/api-reference/latest/conversations/visitor-identification/create-visitor-identification specs/2026-09/conversations-visitor-identification-v2026-09.json POST /visitor-identification/2026-09/tokens/create 独自のシステムを使用して認証されたウェブサイト訪問者の特定トークンを生成します。このAPIから返される特定トークンを使用して、すでに認証済みの訪問者が判明しているコンタクトとして扱われるように、その訪問者に関する情報をチャットウィジェットに渡すことができます。これにより、サポートエージェントは訪問者をより効果的に認識して支援できます。 > **Supported products** > **Required Scopes** # Create calls Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/batch/create-calls specs/2026-09/crm-calls-v2026-09.json POST /crm/objects/2026-09/calls/batch/create コールをバッチ作成します。「inputs」配列には、他のCRMレコードとの[関連付け](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4)を定義する「associations」配列と一緒に各レコードのプロパティー値を定義する「properties」オブジェクトを含めることができます。 > **Supported products** > **Required Scopes** # Archive calls Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/batch/delete-calls specs/2026-09/crm-calls-v2026-09.json POST /crm/objects/2026-09/calls/batch/archive IDを基準にコールをバッチアーカイブします。削除したコールは削除から90日以内であれば復元できますが、コールのレコーディングは完全に削除されます。[アクティビティーレコードの復元](https://knowledge.hubspot.com/records/restore-deleted-activity-in-a-record)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Retrieve calls Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/batch/get-calls specs/2026-09/crm-calls-v2026-09.json POST /crm/objects/2026-09/calls/batch/read IDを基準にコールをバッチ取得します。 > **Supported products** > **Required Scopes** # Update calls Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/batch/update-calls specs/2026-09/crm-calls-v2026-09.json POST /crm/objects/2026-09/calls/batch/update IDを基準にコールをバッチ更新します。 > **Supported products** > **Required Scopes** # Upsert calls Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/batch/upsert-calls specs/2026-09/crm-calls-v2026-09.json POST /crm/objects/2026-09/calls/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create a call Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/create-call specs/2026-09/crm-calls-v2026-09.json POST /crm/objects/2026-09/calls 特定のプロパティーを使用してコールを作成し、IDを含めてそのオブジェクトのコピーを返します。標準コールの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive a call Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/delete-call specs/2026-09/crm-calls-v2026-09.json DELETE /crm/objects/2026-09/calls/{callId} 「{callId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Retrieve a call Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/get-call specs/2026-09/crm-calls-v2026-09.json GET /crm/objects/2026-09/calls/{callId} 「{callId}」によって特定されるオブジェクトを読み取ります。「{callId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve calls Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/get-calls specs/2026-09/crm-calls-v2026-09.json GET /crm/objects/2026-09/calls コールのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # エンゲージメント | コール Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/guide > **[Run in Postman](https://app.getpostman.com/run-collection/dd75d149eaa15806754f)** コールエンゲージメントAPIを使用することで、CRMレコードと[コールのインデックスページ](https://knowledge.hubspot.com/ja/records/view-and-filter-records)にコールを記録して管理できます。[HubSpot内でも](https://knowledge.hubspot.com/ja/records/manually-log-activities-on-records)、コールエンゲージメントAPIを使用することでも、コールをログに記録できます。以下にて、APIを使用したコールの基本的な管理方法を説明します。利用可能な全てのエンドポイントとそれぞれの要件については、 [リファレンスドキュメント](/docs/api-reference/crm-calls-v3/guide)でご覧いただけます。 > **スコープ要件** ## コールエンゲージメントを作成する コールエンゲージメントを作成するには、`/crm/v3/objects/calls`に`POST`リクエストを送信します。 リクエストの本文で、**プロパティー**オブジェクト内にコールの詳細を追加します。また、**関連付け**オブジェクトを追加して、新しいコールを既存のレコード(コンタクト、会社など)に関連付けることもできます。 ### プロパティー 以下に、プロパティーオブジェクトに含めることができるHubSpotのデフォルトのコールプロパティーを示します。また、[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)を使用してカスタムプロパティーを作成することもできます。 | フィールド | 説明 | | - | - | | `hs_timestamp` | 必須。このフィールドは、コールの作成時刻を記録し、レコードタイムラインでのそのコールの位置を決定します。ミリ秒単位またはUTC形式のUnixタイムスタンプを使用できます。 | | `hs_call_body` | コールの説明。必要に応じてメモを追加できます。 | | `hs_call_callee_object_id` | コールに関連付けられているHubSpotレコードのID。`OUTBOUND`コールの場合はコールの受信者、`INBOUND`コールの場合はコールの発信者になります。 | | `hs_call_callee_object_type` | コールに関連付けられているレコードが属するオブジェクトのタイプ(例えば、レコードがコンタクトまたは会社のどちらであるかを指定します)。`OUTBOUND`コールの場合は受信者のオブジェクト、`INBOUND`コールの場合は発信者のオブジェクトになります。 | | `hs_call_direction` | HubSpotユーザー側から見たコールの方向。ユーザーがコールの受信者である場合、方向は`INBOUND`に設定されます。ユーザーがコールを開始した場合、方向は`OUTBOUND`に設定されます。 | | `hs_call_disposition` | コールの成果。コールの通話結果を設定するには、内部GUID値を使用する必要があります。アカウントで[カスタムコールの成果](https://knowledge.hubspot.com/ja/calling/create-custom-call-and-meeting-outcomes)が設定されている場合、[このAPI](/docs/api-reference/crm-communications-v3/guide#get-call-engagement-dispositions)を使用してカスタムコール成果に対応する通話結果GUIDを検索できます。既定のHubSpot成果ラベルとそれぞれの内部値は次の通りです。
        • 話し中:`9d9162e7-6cf3-4944-bf63-4dff82258764`
        • 接続済み:`f240bbac-87c9-4f6e-bf70-924b57d47db7`
        • 伝言を残した:`a4c4c377-d246-4b32-a13b-75a56a4cd0ff`
        • 留守電を残した:`b2cf5968-551e-4856-9783-52b3da59a7d0`
        • 応答なし:`73a0d17f-1163-4015-bdd5-ec830791da20`
        • 番号間違い:`17b47fee-58de-441e-a44c-c6300d46f273`
        | | `hs_call_duration` | 通話時間(ミリ秒)。 | | `hs_call_from_number` | 発信元の電話番号。 | | `hs_call_recording_url` | 通話録音を保存するURL。.mp3ファイルまたは.wavファイルへのURLの場合、CRMレコードで再生できます。HTTPSを使用した安全なURLのみが受け入れられます。 | | `hs_call_status` | コールのステータス。ステータスは`BUSY`、`CALLING_CRM_USER`、`CANCELED`、`COMPLETED`、`CONNECTING`、`FAILED`、`IN_PROGRESS`、`NO_ANSWER`、`QUEUED`、および`RINGING`です。 | | `hs_call_title` | 通話のタイトル。 | | `hs_call_source` | 通話のソース。これは必須ではありませんが、[録音と文字起こしのパイプライン](/docs/apps/legacy-apps/extensions/calling-extensions/recordings-and-transcriptions#log-a-call-with-your-app-s-endpoint-using-the-engagements-api)を活用する必要があります。プロパティーが設定されている場合は、`INTEGRATIONS_PLATFORM`に設定する必要があります。 | | `hs_call_to_number` | コールを受信した電話番号。 | | `hubspot_owner_id` | コールに関連付けられている[担当者のID](/docs/api-reference/crm-crm-owners-v3/guide)。このフィールドにより、レコードタイムラインでコール作成者としてリストされるユーザーが決まります。 | | `hs_activity_type` | コールのタイプ。利用可能なオプションは、[HubSpotアカウントで設定されたコールタイプ](https://knowledge.hubspot.com/ja/meetings-tool/how-do-i-create-and-use-call-and-meeting-types)に基づきます。 | | `hs_attachment_ids` | コールの添付ファイルのID。複数の添付ファイルIDはそれぞれセミコロンで区切られます。 | ### 関連付け コールを作成して既存のレコードと関連付けるには、リクエストに関連付けオブジェクトを含めます。例えば、コールを作成してコンタクトとチケットに関連付ける場合、リクエスト本文は次のようになります。 ```json theme={null} // Example request body { "properties": { "hs_timestamp": "2021-03-17T01:32:44.872Z", "hs_call_title": "Support call", "hubspot_owner_id": "11349275740", "hs_call_body": "Resolved issue", "hs_call_duration": "3800", "hs_call_from_number": "(857) 829 5489", "hs_call_to_number": "(509) 999 9999", "hs_call_recording_url": "https://api.twilio.com/2010-04-01/Accounts/AC890b8e6fbe0d989bb9158e26046a8dde/Recordings/RE3079ac919116b2d22", "hs_call_status": "COMPLETED" }, "associations": [ { "to": { "id": 500 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 194 } ] }, { "to": { "id": 1234 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 220 } ] } ] } ``` 次のフィールドを関連付けオブジェクトに含める必要があります。 | フィールド | 説明 | | - | - | | `to` | コールに関連付けるレコード。一意の`id`値で指定します。 | | `types` | コールとレコード間の関連付けのタイプ。`associationCategory`および`associationTypeId`を含めます。既定の関連付けタイプIDは[このページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)に記載されています。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタム関連付けタイプ(ラベル)の値を取得することもできます。 | コールを一括で作成する方法の詳細については、 [リファレンスドキュメント](/docs/api-reference/crm-calls-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fcalls%2Fbatch%2Fcreate)でご覧いただけます。 ## コールを取得する コールの取得は個別または一括で行うことができます。一括取得の詳細については、[リファレンスドキュメント](/docs/api-reference/crm-calls-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fcalls%2Fbatch%2Fread)でご覧いただけます。 コールIDを指定することで個々のコールを取得するには、`/crm/v3/objects/calls/{callId}`に`GET`リクエストを送信します。リクエストのURLには、次のパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | 返されるプロパティー[](#call-properties-1)のカンマ区切りリスト。 | | `associations` | 関連するIDの取得対象となるオブジェクトタイプからなるカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | 全てのコールのリストを要求するには、`/crm/v3/objects/calls`に`GET`リクエストを送信します。リクエストのURLには、次のパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `limit` | ページごとに表示する結果の最大数。 | | `properties` | 返される[プロパティー](#call-properties-1)のカンマ区切りリスト。 | リクエストが正常に処理されると、レスポンスに`callId`が追加されます。このIDを使用してコールを取得、更新、削除できます。 ## ボイスメールと録音されたコールを識別する 録音されたコールとボイスメールに関しては、レコーディングが`hs_call_recording_url`プロパティーに保存されます。ご使用のアカウントで[インバウンドコール](https://knowledge.hubspot.com/ja/calling/receive-calls-in-hubspot)を利用できる場合、完了して録音されたコールと、ボイスメール付きインバウンドコールを区別するには、リクエストに`hs_call_status`および`hs_call_has_voicemail`プロパティーを含めます。 コールでボイスメールが残されている場合、`hs_call_status`の値は`missed`、`hs_call_has_voicemail`の値は`true`になります。`hs_call_has_voicemail`の値は、ボイスメールが残されていないインバウンドコールの場合は`false`に、コールのステータスが不在着信以外の場合は`null`になります。 ## コールを更新する コールを個別に、または一括で更新できます。コールIDを指定して個々のコールを更新するには、`/crm/v3/objects/calls/{callId}`に`PATCH`リクエストを送信します。 リクエストの本文に、更新するコールプロパティーを含めます。 ```json theme={null} //Example PATCH request to https://api.hubspot.com/crm/v3/objects/calls/{callID} { "properties": { "hs_timestamp": "2021-03-17T01:32:44.872Z", "hs_call_title": "Discovery call", "hubspot_owner_id": "11349275740", "hs_call_body": " Decision maker out, will call back tomorrow", "hs_call_duration": "3800", "hs_call_from_number": "(857) 829 5489", "hs_call_to_number": "(509) 999 9999", "hs_call_recording_url": "https://api.twilio.com/2010-04-01/Accounts/AC890b8e6fbe0d989bb9158e26046a8dde/Recordings/RE3079ac919116b2d22", "hs_call_status": "COMPLETED" } }' ``` HubSpotは、読み取り専用プロパティーおよび存在しないプロパティーの値を無視します。プロパティー値をクリアするには、リクエストの本文でプロパティーの空の文字列を渡します。 一括更新の詳細については、 [リファレンスドキュメント](/docs/api-reference/crm-calls-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fcalls%2Fbatch%2Fupdate)でご覧いただけます。 ### 既存のコールをレコードに関連付ける コールをレコード(コンタクトや、コンタクトに関連付けられている会社など)に関連付けるには、`PUT`リクエストを`/crm/v3/objects/calls/{callId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。リクエストのURLは次のフィールドからなります。 | フィールド | 説明 | | - | - | | `callId` | コールのID。 | | `toObjectType` | コールに関連付けるオブジェクトのタイプ(コンタクト、会社など)。 | | `toObjectId` | コールに関連付けるレコードのID。 | | `associationTypeId` | コールと他のオブジェクト間の関連付けタイプを示す一意の識別子。このIDは、数値またはスネークケース(例:`call_to_contact`)で表すことができます。[関連付けAPI](/docs/api-reference/crm-associations-v3/guide)を介して値を取得できます。 | 例えば、リクエストのURLは次のようになります。 `https://api.hubspot.com/crm/v3/objects/calls/17591596434/associations/contact/104901/194` ### 関連付けを削除する コールとレコード間の関連付けを削除するには、上記と同じURLに`DELETE`リクエストを送信します。 `/crm/v3/objects/calls/{callId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}` ## レコード上でコールをピン留めする レコードに[コールをピン留め](https://knowledge.hubspot.com/ja/records/pin-an-activity-on-a-record)して、レコードのタイムラインの上部に表示したままにすることができます。ピン留めする前に、コールがすでにレコードに関連付けられている必要があり、1つのレコードにつき1つのアクティビティーのみをピン留めできます。コールをピン留めするには、オブジェクトAPIを介してレコードを作成または更新するときに、`hs_pinned_engagement_id`フィールドにコールの`id`を含めます。[会社](/docs/api-reference/crm-companies-v3/guide#pin-an-activity-on-a-company-record)[、コンタクト](/docs/api-reference/crm-contacts-v3/guide#pin-an-activity-on-a-contact-record)、[取引](/docs/api-reference/crm-deals-v3/guide#pin-an-activity-on-a-deal-record)、[チケット](/docs/api-reference/crm-tickets-v3/guide#pin-an-activity-on-a-ticket-record)、および[カスタムオブジェクト](/docs/api-reference/crm-custom-objects-v3/guide)APIの使用の詳細については、こちらをご覧ください。 ## コールを削除する コールの削除は個別または一括で行うことができます。削除したコールは、HubSpot内のごみ箱に追加されます。そのため、必要に応じて後で[レコードタイムラインからコールを復元](https://knowledge.hubspot.com/ja/records/restore-deleted-activity-in-a-record)することも可能です。 コールIDを指定して個々のコールを削除するには、`DELETE`リクエストを`/crm/v3/objects/calls/{callId}`に送信します。 コールを削除する方法の詳細については、 [リファレンスドキュメント](/docs/api-reference/crm-calls-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Fcalls%2F%7Bcallid%7D)でご覧いただけます。 # Search for calls Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/search/search-calls specs/2026-09/crm-calls-v2026-09.json POST /crm/objects/2026-09/calls/search プロパティーで絞り込みを行い、関連付けを使用して検索し、結果を並べ替えることで、コールを検索します。[CRM検索](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Update a call Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/calls/update-call specs/2026-09/crm-calls-v2026-09.json PATCH /crm/objects/2026-09/calls/{callId} 「{callId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{callId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create emails Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/batch/create-emails specs/2026-09/crm-emails-v2026-09.json POST /crm/objects/2026-09/emails/batch/create 指定されたプロパティーを持つCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に作成できます。これは、一括データインポートや他のシステムからのデータ同期に役立ちます。レスポンスには、作成された各オブジェクトのIDを含むコピーが含まれます。 > **Supported products** > **Required Scopes** # Delete emails Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/batch/delete-emails specs/2026-09/crm-emails-v2026-09.json POST /crm/objects/2026-09/emails/batch/archive IDでCRMオブジェクトをバッチアーカイブします。このエンドポイントは、複数のオブジェクトを同時にアーカイブする必要がある場合に便利で、複数のオブジェクトをアーカイブに移動するプロセスを効率化します。 > **Supported products** > **Required Scopes** # Retrieve emails Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/batch/get-emails specs/2026-09/crm-emails-v2026-09.json POST /crm/objects/2026-09/emails/batch/read 内部IDまたは一意のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、効率的なデータ取得が可能になります。必要に応じて、アーカイブされたオブジェクトに絞り込むことができます。 > **Supported products** > **Required Scopes** # Update emails Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/batch/update-emails specs/2026-09/crm-emails-v2026-09.json POST /crm/objects/2026-09/emails/batch/update HubSpotでCRMオブジェクトを、一意の識別子を使用してバッチ更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを変更できるため、一括更新を効率的に行えます。リクエストボディに、更新する各オブジェクトに必要なプロパティーが含まれていることを確認してください。 > **Supported products** > **Required Scopes** # Upsert emails Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/batch/upsert-emails specs/2026-09/crm-emails-v2026-09.json POST /crm/objects/2026-09/emails/batch/upsert 固有のプロパティー値を使用して、HubSpotでCRMオブジェクトをバッチ作成またはバッチ更新します。このエンドポイントでは、指定された固有の識別子に基づいて新しいエントリーを作成するか、既存のエントリーを更新することにより、複数のオブジェクトを効率的に管理できます。 > **Supported products** > **Required Scopes** # Create an email Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/create-email specs/2026-09/crm-emails-v2026-09.json POST /crm/objects/2026-09/emails 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを返します。このエンドポイントは、定義済みの属性を持つ新しいオブジェクトをCRMシステムに追加するのに役立ちます。標準オブジェクトの作成に役立つドキュメントと例が提供されています。 > **Supported products** > **Required Scopes** # Delete an email Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/delete-email specs/2026-09/crm-emails-v2026-09.json DELETE /crm/objects/2026-09/emails/{emailId} {objectId}で識別されるオブジェクトをごみ箱に移動します。この操作により、一意のIDで特定のCRMオブジェクトをアーカイブし、利用対象から実質的に除外しながら、後で復元または参照できるようにシステム内に保持できます。 > **Supported products** > **Required Scopes** # Retrieve an email Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/get-email specs/2026-09/crm-emails-v2026-09.json GET /crm/objects/2026-09/emails/{emailId} `{objectId}`で識別されるオブジェクトを読み取ります。デフォルトでは、`{objectId}`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを指定することで、返されるデータを制御できます。 > **Supported products** > **Required Scopes** # Retrieve emails Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/get-emails specs/2026-09/crm-emails-v2026-09.json GET /crm/objects/2026-09/emails HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ってください。プロパティー、関連付け、アーカイブ済みレコードを含めるかどうかを指定することで、返されるデータを制御できます。このエンドポイントは、特定の詳細と関連付けを持つCRMオブジェクトのリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # エンゲージメント | Eメール Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/guide > **[Run in Postman](https://app.getpostman.com/run-collection/dd75d149eaa15806754f)** > **スコープ要件** EメールエンゲージメントAPIを使用して、CRMレコードのEメールを記録および管理できます。Eメールアクティビティーは、[HubSpot](https://knowledge.hubspot.com/ja/records/manually-log-activities-on-records)内で、またはEメールAPIを使用してログを記録できます。 この記事では、APIを使用したEメールの基本的な管理方法を説明します。利用可能な全てのエンドポイントとそれぞれの要件については、[リファレンスドキュメント](/docs/api-reference/crm-emails-v3/guide)でご確認いただけます。 ## Eメールを作成する Eメールエンゲージメントを作成するには、`POST`リクエストを`/crm/v3/objects/emails`に送信します。 リクエスト本文で、**properties**オブジェクト内にEメールの詳細を追加します。また、**associations**オブジェクトを追加して、新しいEメールを既存のレコード(コンタクト、会社など)に関連付けることもできます。 ### プロパティー Propertiesオブジェクトには、次のフィールドを含めることができます。 | フィールド | 説明 | | - | - | | `hs_timestamp` | 必須。このフィールドは、Eメールの作成時刻を記録し、レコードタイムラインでのそのEメールの表示位置を決定します。ミリ秒単位またはUTC形式のUnixタイムスタンプを使用できます。 | | `hubspot_owner_id` | Eメールに関連付けられている[所有者のID](/docs/api-reference/crm-crm-owners-v3/guide)。このフィールドにより、レコードタイムラインにEメール作成者として表示されるユーザーが決まります。 | | `hs_email_direction` | Eメールが送信された方向。指定できる値は次の通りです。`EMAIL`:[BCCアドレス](https://knowledge.hubspot.com/ja/connected-email/log-email-in-your-crm-with-the-bcc-or-forwarding-address)を使用してEメールをCRMから送信したか、CRMに送信して記録された場合。`INCOMING_EMAIL`:送信して記録されたEメールに返信するEメールの場合。`FORWARDED_EMAIL`:[CRMに転送](https://knowledge.hubspot.com/ja/connected-email/log-email-in-your-crm-with-the-bcc-or-forwarding-address)したEメールの場合。 | | `hs_email_html` | CRMレコードから送信された場合のEメールの本文。 | | `hs_email_status` | Eメールの送信ステータス。指定可能な値は、`BOUNCED`、`FAILED`、`SCHEDULED`、`SENDING`、`SENT`のいずれかです。 | | `hs_email_subject` | 記録されたEメールの件名行。 | | `hs_email_text` | Eメールの本文。 | | `hs_attachment_ids` | Eメールの添付ファイルのID。複数の添付ファイルIDはそれぞれセミコロンで区切られます。 | | `hs_email_headers` | Eメールのヘッダー。このプロパティーの値は、特定の読み取り専用Eメールプロパティーに自動的に入力されます。詳しくは後述の[Eメールヘッダーを設定する方法](/docs/api-reference/crm-emails-v3/guide#set-email-headers)をご確認ください。 | Eメールエンゲージメントを一括で作成する方法については、[リファレンスドキュメント](/docs/api-reference/crm-emails-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Femails%2Fbatch%2Fcreate)をご参照ください。 ### 読み取り専用プロパティー 読み取り専用のEメールプロパティーもあり、HubSpotによって自動的に入力されます。以下の表のプロパティーは全て`hs_email_headers`値から自動的に入力されます。 | フィールド | 説明 | | - | - | | `hs_email_from_email` | Eメール送信者のEメールアドレス。 | | `hs_email_from_firstname` | Eメール送信者の名。 | | `hs_email_from_lastname` | Eメール送信者の姓。 | | `hs_email_to_email` | Eメール受信者のEメールアドレス。 | | `hs_email_to_firstname` | Eメール受信者の名。 | | `hs_email_to_lastname` | Eメール受信者の姓。 | > [!WARNING] > > **注**: Eメールヘッダーを取得する際に、`From`と`Sender`の両方に値があることに気が付かれると思います。多くの場合、これらは同じ値ですが、`Sender`は実際のEメールの送信元を示すため、値が異なることがあります。例えば、EメールエイリアスからEメールが送信される場合、`From`の値はユーザーの実際のEメールアドレスを表し、`Sender`の値はEメールエイリアスを表します。 ### Eメールヘッダーを設定する ヘッダーによって自動的に読み取り専用プロパティーが入力されるため、Eメールヘッダーを手動で設定する必要がある場合も考えられます。`hs_email_headers`値を設定するには、次のデータを含むJSONエスケープ文字列を使用します。 ```json theme={null} //Example data { "from": { "email": "from@domain.com", "firstName": "FromFirst", "lastName": "FromLast" }, "to": [ { "email": "ToFirst ToLast", "firstName": "ToFirst", "lastName": "ToLast" } ], "cc": [], "bcc": [] } ``` 例えば、Eメールを作成するリクエストは次のようになります。 ```json theme={null} //Example request body { "properties": { "hs_timestamp": "2019-10-30T03:30:17.883Z", "hubspot_owner_id": "47550177", "hs_email_direction": "EMAIL", "hs_email_status": "SENT", "hs_email_subject": "Let's talk", "hs_email_text": "Thanks for youremail", "hs_email_headers": "{\"from\":{\"email\":\"from@domain.com\",\"firstName\":\"FromFirst\",\"lastName\":\"FromLast\"},\"sender\":{\"email\":\"sender@domain.com\",\"firstName\":\"SenderFirst\",\"lastName\":\"SenderLast\"},\"to\":[{\"email\":\"ToFirst+ToLast\",\"firstName\":\"ToFirst\",\"lastName\":\"ToLast\"}],\"cc\":[],\"bcc\":[]}" } } ``` ### 関連付け Eメールを作成して既存のレコードと関連付けるには、リクエストにassociationsオブジェクトを含めます。例えば、Eメールを作成して取引とコンタクトに関連付ける場合、リクエスト本文は次のようになります。 ```json theme={null} // Example request body { "properties": { "hs_timestamp": "2019-10-30T03:30:17.883Z", "hubspot_owner_id": "11349275740", "hs_email_direction": "EMAIL", "hs_email_status": "SENT", "hs_email_subject": "Let's talk", "hs_email_text": "Thanks for your interest let's find a time to connect" }, "associations": [ { "to": { "id": 601 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 210 } ] }, { "to": { "id": 602 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 198 } ] } ] } ``` Associationsオブジェクトには、次のものを含める必要があります。 | フィールド | 説明 | | - | - | | `to` | Eメールに関連付けるレコード。一意の`id`値で指定します。 | | `types` | Eメールとレコードの間の関連付けのタイプ。`associationCategory`および`associationTypeId`を含めます。デフォルトの関連付けタイプIDは[こちらのページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)に記載されています。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタム関連付けタイプ(ラベル)の値を取得することもできます。 | ## Eメールを取得する Eメールを個別に、または一括で取得することができます。一括取得の方法については、[リファレンスドキュメント](/docs/api-reference/crm-emails-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Femails%2Fbatch%2Fread)をご参照ください。 EメールIDを指定して個別にEメールを取得するには、`GET`リクエストを`/crm/v3/objects/emails/{emailId}`に送信します。また、リクエストのURLには次のパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | 返されるプロパティーのカンマ区切りリスト。 | | `associations` | 関連付けられているIDが取得されるオブジェクトタイプのカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | 全てのEメールのリストを取得するには、`GET`リクエストを`crm/v3/objects/emails`に送信します。リクエストのURLには、次のパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `limit` | ページごとに表示する結果の最大数。 | | `properties` | 返されるプロパティーのカンマ区切りリスト。 | ## Eメールを更新する Eメールを個別に、または一括で更新することができます。EメールIDを指定して個別にEメールを更新するには、`PATCH`リクエストを`/crm/v3/objects/emails/{emailId}`に送信します。 リクエスト本文に、更新するEメールプロパティーを含めます。例えば、リクエスト本文は次のようになります。 ```json theme={null} // Example request body { "properties": { "hs_timestamp": "2019-10-30T03:30:17.883Z", "hubspot_owner_id": "11349275740", "hs_email_direction": "EMAIL", "hs_email_status": "SENT", "hs_email_subject": "Let's talk tomorrow", "hs_email_text": "Thanks for your interest let's find a time to connect!" } } ``` HubSpotでは、読み取り専用プロパティーおよび存在しないプロパティーの値が無視されます。プロパティー値をクリアするには、リクエストの本文でプロパティーの空の文字列を渡します。 一括更新の方法については、[リファレンスドキュメント](/docs/api-reference/crm-emails-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Femails%2Fbatch%2Fupdate)をご参照ください。 ### 既存のEメールをレコードに関連付ける Eメールをレコード(コンタクトや、それに関連付けられている会社など)に関連付けるには、`PUT`リクエストを`/crm/v3/objects/emails/{emailId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。リクエストのURLには次のフィールドが含まれます。 | フィールド | 説明 | | - | - | | `emailId` | EメールのID。 | | `toObjectType` | Eメールに関連付けるオブジェクトのタイプ(コンタクト、会社など)。 | | `toObjectId` | Eメールに関連付けるレコードのID。 | | `associationTypeId` | Eメールと他のオブジェクトとの関連付けタイプを示す一意の識別子。このIDは、数値またはスネークケース(例:`email_to_contact`)で表すことができます。該当する値は[関連付けAPI](/docs/api-reference/crm-associations-v3/guide)を介して取得できます。 | 例えば、リクエストのURLは次のようになります。 `https://api.hubspot.com/crm/v3/objects/emails/17691787884/associations/contact/104901/198` ### 関連付けを削除する Eメールとレコードの間の関連付けを削除するには、上記と同じ以下のURLに対して`DELETE`リクエストを送信します。 `/crm/v3/objects/emails/{emailId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}` ## レコードでEメールをピン留めする レコードで[Eメールをピン留め](https://knowledge.hubspot.com/ja/records/pin-an-activity-on-a-record)して、レコードのタイムラインの上部に常に表示されるようにすることができます。ピン留めする前に、Eメールが既にレコードに関連付けられている必要があり、1つのレコードにつき1つのアクティビティーのみをピン留めできます。Eメールをピン留めするには、オブジェクトAPIを介してレコードを作成または更新するときに、`hs_pinned_engagement_id`フィールドにEメールの`id`を含めます。詳しくは、[会社](/docs/api-reference/crm-companies-v3/guide#pin-an-activity-on-a-company-record)、[コンタクト](/docs/api-reference/crm-contacts-v3/guide#pin-an-activity-on-a-contact-record)、[取引](/docs/api-reference/crm-deals-v3/guide#pin-an-activity-on-a-deal-record)、[チケット](/docs/api-reference/crm-tickets-v3/guide#pin-an-activity-on-a-ticket-record)、および[カスタムオブジェクト](/docs/api-reference/crm-custom-objects-v3/guide)のAPIの使用に関する説明をご参照ください。 ## Eメールを削除する Eメールをいったん削除すると、完全に削除され、復元することはできません。Eメールを個別に、または一括で削除することができます。 EメールIDを指定して個別にEメールを削除するには、`DELETE`リクエストを`/crm/v3/objects/emails/{emailId}`に送信します。 Eメールの削除方法については、[リファレンスドキュメント](/docs/api-reference/crm-emails-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Femails%2F%7Bemailid%7D)をご参照ください。 # Search for emails Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/search/search-emails specs/2026-09/crm-emails-v2026-09.json POST /crm/objects/2026-09/emails/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントでは、フィルターグループ、並べ替えオプション、およびレスポンスに含めるプロパティーを指定して、複雑な検索を実行できます。詳細な検索パラメーターに基づいて特定のオブジェクトを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update an email Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/emails/update-email specs/2026-09/crm-emails-v2026-09.json PATCH /crm/objects/2026-09/emails/{emailId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create meetings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/batch/create-meetings specs/2026-09/crm-meetings-v2026-09.json POST /crm/objects/2026-09/meetings/batch/create ミーティングをバッチ作成します。「inputs」配列には、他のオブジェクトレコードとの関係を定義する「associations」配列と一緒にレコードのプロパティー値を定義する「properties」オブジェクトを含めることができます。 > **Supported products** > **Required Scopes** # Delete meetings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/batch/delete-meetings specs/2026-09/crm-meetings-v2026-09.json POST /crm/objects/2026-09/meetings/batch/archive IDを基準にミーティングをバッチ削除します。 > **Supported products** > **Required Scopes** # Retrieve meetings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/batch/get-meetings specs/2026-09/crm-meetings-v2026-09.json POST /crm/objects/2026-09/meetings/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update meetings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/batch/update-meetings specs/2026-09/crm-meetings-v2026-09.json POST /crm/objects/2026-09/meetings/batch/update ID(「objectId」)または固有のプロパティー値(「idProperty」)を基準にミーティングをバッチ更新します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーがあるとエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Upsert meetings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/batch/upsert-meetings specs/2026-09/crm-meetings-v2026-09.json POST /crm/objects/2026-09/meetings/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create meeting Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/create-meeting specs/2026-09/crm-meetings-v2026-09.json POST /crm/objects/2026-09/meetings 特定のプロパティーを使用してミーティングを作成し、IDを含めてそのオブジェクトのコピーを返します。標準ミーティングの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Delete meeting Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/delete-meeting specs/2026-09/crm-meetings-v2026-09.json DELETE /crm/objects/2026-09/meetings/{meetingId} 「{meetingId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Retrieve meeting Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/get-meeting specs/2026-09/crm-meetings-v2026-09.json GET /crm/objects/2026-09/meetings/{meetingId} 「{meetingId}」によって特定されるオブジェクトを読み取ります。「{meetingId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve meetings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/get-meetings specs/2026-09/crm-meetings-v2026-09.json GET /crm/objects/2026-09/meetings ミーティングのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # エンゲージメント | ミーティング Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/guide > **[Run in Postman](https://app.getpostman.com/run-collection/dd75d149eaa15806754f)** ミーティングエンゲージメントAPIを使用して、CRMレコードのミーティングを記録および管理できます。ミーティングアクティビティーは、[HubSpot](https://knowledge.hubspot.com/ja/records/manually-log-activities-on-records)内で、またはミーティングAPIを使用して記録できます。レコードに手動で記録されたミーティング、[ミーティングツール](https://knowledge.hubspot.com/ja/meetings-tool/use-meetings)を使用して設定されたミーティング、または[Google カレンダーやMicrosoft 365カレンダーとの連携](https://knowledge.hubspot.com/ja/meetings-tool/schedule-a-meeting-on-a-record)を使用して設定されたミーティングのエンゲージメントを取得、更新、削除できます。 この記事では、APIを使用したミーティングの基本的な管理方法を説明します。利用可能な全てのエンドポイントとそれぞれの要件については、[リファレンスドキュメント](/docs/api-reference/crm-meetings-v3/guide)でご覧いただけます。 > **スコープ要件** ## ミーティングを作成する ミーティングエンゲージメントを作成するには、`POST`リクエストを`/crm/v3/objects/meetings`に送信します。 リクエスト本文で、**properties**オブジェクト内にミーティングの詳細を追加します。また、**associations**オブジェクトを追加して、新しいミーティングを既存のレコード(コンタクト、会社など)に関連付けることもできます。 ### プロパティー Propertiesオブジェクトには、次のフィールドを含めることができます。 | フィールド | 説明 | | - | - | | `hs_timestamp` | 必須。このフィールドは、ミーティングが実施された日時を示します。ミリ秒単位またはUTC形式のUnixタイムスタンプを使用できます。プロパティー値がない場合、デフォルトの値`hs_meeting_start_time.`に設定されます。 | | `hs_meeting_title` | ミーティングのタイトル。 | | `hubspot_owner_id` | ミーティングに関連付けられている[所有者のID](/docs/api-reference/crm-crm-owners-v3/guide)。このフィールドにより、レコードタイムラインにミーティング作成者として表示されるユーザーが決まります。 | | `hs_meeting_body` | ミーティングの説明。 | | `hs_internal_meeting_notes` | 出席者のミーティング説明に含まれていない、ミーティング中にチームのために取る内部メモ。 | | `hs_meeting_external_url` | カレンダーイベントの外部URL。Google カレンダーやMicrosoft Outlookカレンダーのリンクなどが含まれます。 | | `hs_meeting_location` | ミーティングの実施場所。値には、実際の住所、会議室、ビデオ会議のリンク、または電話番号のいずれかを指定できます。これは、出席者のカレンダーのカレンダー招待に表示されます。 | | `hs_meeting_start_time` | ミーティングが開始される日時。このプロパティーの値は、`hs_timestamp`の値と一致している必要があります。 | | `hs_meeting_end_time` | ミーティングが終了する日時。 | | `hs_meeting_outcome` | ミーティングの結果。結果の値は、スケジュール済み、完了、再スケジュール済み、欠席、またはキャンセル済みのいずれかです。 | | `hs_activity_type` | ミーティングのタイプ。利用可能なオプションは、[HubSpotアカウントで設定されたミーティングのタイプ](https://knowledge.hubspot.com/ja/meetings-tool/how-do-i-create-and-use-call-and-meeting-types)に基づきます。 | | `hs_attachment_ids` | ミーティングの添付ファイルのID。複数の添付ファイルIDはそれぞれセミコロンで区切られます。 | ### 関連付け ミーティングを作成して既存のレコードと関連付けるには、リクエストにassociationsオブジェクトを含めます。例えば、ミーティングを作成してコンタクトと関連付ける場合、リクエストの内容は次のようになります。 ```json theme={null} // Example request body { "properties": { "hs_timestamp": "2021-03-23T01:02:44.872Z", "hubspot_owner_id": "11349275740", "hs_meeting_title": "Intro meeting", "hs_meeting_body": "The first meeting to discuss options", "hs_internal_meeting_notes": "These are the meeting notes", "hs_meeting_external_url": "https://Zoom.com/0000", "hs_meeting_location": "Remote", "hs_meeting_start_time": "2021-03-23T01:02:44.872Z", "hs_meeting_end_time": "2021-03-23T01:52:44.872Z", "hs_meeting_outcome": "SCHEDULED" }, "associations": [ { "to": { "id": 101 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 200 } ] }, { "to": { "id": 102 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 200 } ] } ] } ``` Associationsオブジェクトには、以下を含める必要があります。 | フィールド | 説明 | | - | - | | `to` | ミーティングに関連付けるレコード。一意の`id`値で指定します。 | | `types` | ミーティングとレコードの間の関連付けのタイプ。`associationCategory`と`associationTypeId`を含めます。デフォルトの関連付けタイプIDは[こちらのページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)に記載されています。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタム関連付けタイプ(ラベル)の値を取得することもできます。 | ミーティングの一括作成の詳細については、[リファレンスドキュメント](/docs/api-reference/crm-meetings-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fmeetings%2Fbatch%2Fcreate)でご覧いただけます。 ## ミーティングを取得する ミーティングを個別に、または一括で取得することができます。一括取得の詳細については、[リファレンスドキュメント](/docs/api-reference/crm-meetings-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fmeetings%2Fbatch%2Fread)でご覧いただけます。 ミーティングIDで個別のミーティングを取得するには、`GET`リクエストを`/crm/v3/objects/meetings/{meetingId}`に送信します。また、リクエストのURLには次のパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | 返されるプロパティーのカンマ区切りリスト。 | | `associations` | 関連付けられたレコードIDの取得元となるオブジェクトのカンマ区切りリスト。 | 全てのミーティングのリストを取得するには、`GET`リクエストを`crm/v3/objects/meetings`に送信します。リクエストのURLには、次のパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `limit` | ページごとに表示する結果の最大数。 | | `properties` | 返されるプロパティーのカンマ区切りリスト。 | ## ミーティングを更新する ミーティングを個別に、または一括で更新することができます。ミーティングIDを指定して個別のミーティングを更新するには、`PATCH`リクエストを`/crm/v3/objects/meetings/{meetingId}`に送信します。 リクエスト本文に、更新するミーティングプロパティーを含めます。例えば、リクエスト本文は次のようになります。 ```json theme={null} //Example PATCH request to https://api.hubspot.com/crm/v3/objects/meetings/{meetingId} { "properties": { "hs_timestamp": "2019-10-30T03:30:17.883Z", "hubspot_owner_id": "11349275740", "hs_meeting_title": "Intro meeting", "hs_meeting_body": "The first meeting to discuss options", "hs_internal_meeting_notes": "These are the meeting notes", "hs_meeting_external_url": "https://Zoom.com/0000", "hs_meeting_location": "Remote", "hs_meeting_start_time": "2021-03-23T01:02:44.872Z", "hs_meeting_end_time": "2021-03-23T01:52:44.872Z", "hs_meeting_outcome": "SCHEDULED" } }' ``` HubSpotは、読み取り専用プロパティーおよび存在しないプロパティーの値を無視します。プロパティー値をクリアするには、リクエストの本文でプロパティーの空の文字列を渡します。 一括更新の詳細については、[リファレンスドキュメント](/docs/api-reference/crm-meetings-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fmeetings%2Fbatch%2Fupdate)でご覧いただけます。 ### 既存のミーティングをレコードに関連付ける ミーティングをレコード(コンタクトや、コンタクトに関連付けられている会社など)に関連付けるには、`PUT`リクエストを`/crm/v3/objects/meetings/{meetingId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。リクエストのURLは次のフィールドからなります。 | フィールド | 説明 | | - | - | | `meetingId` | ミーティングのID。 | | `toObjectType` | ミーティングに関連付けるオブジェクトのタイプ(コンタクト、会社など)。 | | `toObjectId` | ミーティングに関連付けるレコードのID。 | | `associationTypeId` | ミーティングと他のオブジェクトタイプとの間の関連付けタイプのID。この値は[関連付けAPI](/docs/api-reference/crm-associations-v3/guide)を介して取得できます。 | 例えば、リクエストのURLは次のようになります。 `https://api.hubspot.com/crm/v3/objects/meetings/17612479134/associations/contact/104901/200` ### 関連付けを削除する ミーティングとレコードの間の関連付けを削除するには、上記と同じURLに対して`DELETE`リクエストを送信します。 `/crm/v3/objects/meetings/{meetingId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}` ## レコードでミーティングをピン留めする レコードで[ミーティングをピン留め](https://knowledge.hubspot.com/ja/records/pin-an-activity-on-a-record)して、レコードのタイムラインの上部に常に表示されるようにすることができます。ピン留めする前に、ミーティングが既にレコードに関連付けられている必要があり、1つのレコードにつき1つのアクティビティーのみをピン留めできます。ミーティングをピン留めするには、オブジェクトAPIを介してレコードを作成または更新するときに、`hs_pinned_engagement_id`フィールドにミーティングの`id`を含めます。[会社](/docs/api-reference/crm-companies-v3/guide#pin-an-activity-on-a-company-record)、[コンタクト](/docs/api-reference/crm-contacts-v3/guide#pin-an-activity-on-a-contact-record)、[取引](/docs/api-reference/crm-deals-v3/guide#pin-an-activity-on-a-deal-record)、[チケット](/docs/api-reference/crm-tickets-v3/guide#pin-an-activity-on-a-ticket-record)、および[カスタムオブジェクト](/docs/api-reference/crm-custom-objects-v3/guide)APIの使用の詳細については、こちらをご覧ください。 ## ミーティングを削除する ミーティングを個別に、または一括で削除することができます。削除したミーティングは、HubSpot内のごみ箱に追加されます。そのため、必要に応じて後で[レコードタイムラインからミーティングを復元](https://knowledge.hubspot.com/ja/records/restore-deleted-activity-in-a-record)することも可能です。 ミーティングIDを指定して個別のミーティングを削除するには、`DELETE`リクエストを`/crm/v3/objects/meetings/{meetingId}`に送信します。 一括削除の詳細については、[リファレンスドキュメント](/docs/api-reference/crm-meetings-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Fmeetings%2F%7Bmeetingid%7D)でご覧いただけます。 # Search for meetings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/search/search-meetings specs/2026-09/crm-meetings-v2026-09.json POST /crm/objects/2026-09/meetings/search プロパティーで絞り込み、関連付けを検索し、結果を並べ替えて、ミーティングを検索します。 > **Supported products** > **Required Scopes** # Update meeting Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/meetings/update-meeting specs/2026-09/crm-meetings-v2026-09.json PATCH /crm/objects/2026-09/meetings/{meetingId} 「{meetingId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{meetingId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create notes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/batch/create-notes specs/2026-09/crm-notes-v2026-09.json POST /crm/objects/2026-09/notes/batch/create メモごとに必要なプロパティーを指定して、1つのリクエストで複数のメモを作成します。この処理では、固有IDを含めて、作成したメモを返します。 > **Supported products** > **Required Scopes** # Delete notes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/batch/delete-notes specs/2026-09/crm-notes-v2026-09.json POST /crm/objects/2026-09/notes/batch/archive 1つのリクエストでIDを基準に複数のメモをアーカイブします。この処理により、指定したメモがごみ箱に移動し、通常のクエリーでアクセスできなくなります。 > **Supported products** > **Required Scopes** # Retrieve notes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/batch/get-notes specs/2026-09/crm-notes-v2026-09.json POST /crm/objects/2026-09/notes/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update notes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/batch/update-notes specs/2026-09/crm-notes-v2026-09.json POST /crm/objects/2026-09/notes/batch/update 内部IDまたはプロパティーの固有値を使用して、複数のメモを更新します。この処理により、1つのリクエストで複数のメモのプロパティーを変更できるため、メモデータを一括で管理するプロセスが合理化されます。 > **Supported products** > **Required Scopes** # Upsert notes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/batch/upsert-notes specs/2026-09/crm-notes-v2026-09.json POST /crm/objects/2026-09/notes/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create note Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/create-note specs/2026-09/crm-notes-v2026-09.json POST /crm/objects/2026-09/notes 特定のプロパティーを使用してメモを作成し、IDを含めてそのオブジェクトのコピーを返します。標準メモの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Delete a note Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/delete-note specs/2026-09/crm-notes-v2026-09.json DELETE /crm/objects/2026-09/notes/{noteId} 「{noteId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Retrieve note Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/get-note specs/2026-09/crm-notes-v2026-09.json GET /crm/objects/2026-09/notes/{noteId} 「{noteId}」によって特定されるオブジェクトを読み取ります。「{noteId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve a note Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/get-notes specs/2026-09/crm-notes-v2026-09.json GET /crm/objects/2026-09/notes メモのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # エンゲージメント | メモ Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/guide > **[Run in Postman](https://app.getpostman.com/run-collection/dd75d149eaa15806754f)** > **スコープ要件** CRMレコードにメモを記録して、レコードのタイムラインに情報を追加したり、添付ファイルをレコードに関連付けたりすることができます。例えば、コンタクトとのオフラインコミュニケーションを追跡する必要がある場合は、そのコミュニケーションに関連する詳細情報やドキュメントをコンタクトレコードにメモとして追加できます。その後、アカウント内の他のユーザーがそのメモを表示して参照できるようになります。 メモは、[HubSpot](https://knowledge.hubspot.com/ja/records/manually-log-activities-on-records)内で、またはメモAPIを通じて管理できます。この記事では、APIを使用したノートの基本的な管理方法を説明します。利用可能な全てのエンドポイントは、[リファレンスドキュメント](/docs/api-reference/crm-notes-v3/guide)でご確認いただけます。 ## メモを作成する メモを作成するには、`POST`リクエストを`/crm/v3/objects/notes`に送信します。 リクエスト本文で、**properties**オブジェクト内にメモの詳細を追加します。また、**associations**オブジェクトを追加して、新しいメモを既存のレコード(コンタクト、会社など)に関連付けることもできます。 ### プロパティー Propertiesオブジェクトには、次のフィールドを含めることができます。 | フィールド | 説明 | | - | - | | `hs_timestamp` | 必須。このフィールドは、メモの作成時刻を記録し、レコードタイムラインでのそのメモの表示位置を決定します。ミリ秒単位またはUTC形式のUnixタイムスタンプを使用できます。 | | `hs_note_body` | メモのテキストコンテンツ。65,536文字までに制限されています。 | | `hubspot_owner_id` | メモに関連付けられている[担当者のID](/docs/api-reference/crm-crm-owners-v3/guide)。このフィールドにより、HubSpotのレコードタイムラインにメモ作成者として表示されるユーザーが決まります。 | | `hs_attachment_ids` | メモの添付ファイルのID。複数の添付ファイルIDはそれぞれセミコロンで区切られます。 | ### 関連付け メモを作成して既存のレコードと関連付けるには、リクエストにassociationsオブジェクトを含めます。例えば、メモを作成して会社と取引に関連付ける場合、リクエスト本文は次のようになります。 ```json theme={null} // Example POST request to https://api.hubspot.com/crm/v3/objects/notes { "properties": { "hs_timestamp": "2021-11-12T15:48:22Z", "hs_note_body": "Spoke with decision maker Carla. Attached the proposal and draft of contract.", "hubspot_owner_id": "14240720", "hs_attachment_ids": "24332474034;24332474044" }, "associations": [ { "to": { "id": 301 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 190 } ] }, { "to": { "id": 401 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 214 } ] } ] } ``` Associationsオブジェクトには、次のものを含める必要があります。 | フィールド | 説明 | | - | - | | `to` | メモに関連付けるレコード。一意の`id`値で指定します。 | | `types` | メモとレコードの間の関連付けのタイプ。`associationCategory`および`associationTypeId`を含めます。デフォルトの関連付けタイプIDは[こちらのページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)に記載されています。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタムの関連付けタイプ(ラベル)の値を取得することもできます。 | メモを一括で作成する方法については、[リファレンスドキュメント](/docs/api-reference/crm-notes-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fnotes%2Fbatch%2Fcreate)をご参照ください。 ## メモを取得する メモを個別に、または一括で取得することができます。個々のメモを取得するには、`GET`リクエストを`/crm/v3/objects/notes/{noteId}`に送信します。 全てのメモのリストを取得するには、`GET`リクエストを`/crm/v3/objects/notes`に送信します。 どちらのエンドポイントに対しても、リクエストのURLに次のクエリーパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | レスポンスで返される、プロパティーのカンマ区切りのリスト。リクエスト対象のメモで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `associations` | 関連付けられているIDが取得されるオブジェクトタイプのカンマ区切りのリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | 例えば、特定のテキストコンテンツおよび関連付けられているコンタクトIDを含むメモを取得する場合、リクエストURLは次のようになります。 `https://api.hubapi.com/crm/v3/objects/notes?limit=10&properties=hs_note_body&associations=contact&archived=false` 内部IDまたは一意のプロパティー値によってメモを一括で取得する方法については、[リファレンスドキュメント](/docs/api-reference/crm-notes-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fnotes%2Fbatch%2Fread)をご参照ください。 ## メモを更新する メモを個別に、または一括で更新することができます。メモIDを指定して個別のメモを更新するには、`PATCH`リクエストを`/crm/v3/objects/notes/{noteId}`に送信します。 リクエスト本文には次のように更新するメモプロパティーを含めます。 ```json theme={null} // Example PATCH request to https://api.hubspot.com/crm/v3/objects/notes/{noteID} { "properties": { "hs_note_body": "Spoke with decision maker Carla.", "hs_attachment_ids": "24332474034;24332474044" } } ``` HubSpotでは、読み取り専用プロパティーおよび存在しないプロパティーの値が無視されます。プロパティー値をクリアするには、リクエストの本文でプロパティーの空の文字列を渡します。 メモを一括で更新する方法については、[リファレンスドキュメント](/docs/api-reference/crm-notes-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fnotes%2Fbatch%2Fupdate)をご参照ください。 ### 既存のメモをレコードに関連付ける メモをコンタクトなどの他のCRMレコードに関連付けるには、`PUT`リクエストを`/crm/v3/objects/notes/{noteId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。リクエストのURLには次のフィールドが含まれます。 | フィールド | 説明 | | - | - | | `noteId` | メモのID。 | | `toObjectType` | メモに関連付けるオブジェクトのタイプ(コンタクト、会社など)。 | | `toObjectId` | メモに関連付けるレコードのID。 | | `associationTypeId` | メモと他のオブジェクトとの関連付けタイプを示す一意の識別子。このIDは、数値またはスネークケース(例:`note_to_contact`)で表すことができます。該当する値は[関連付けAPI](/docs/api-reference/crm-associations-v3/guide)を介して取得できます。 | 例えば、リクエストのURLは次のようになります。 `https://api.hubspot.com/crm/v3/objects/notes/17147287858/associations/contact/581751/202` ### 関連付けを削除する メモとレコードの間の関連付けを削除するには、上記と同じ以下のURLに対して`DELETE`リクエストを送信します。 `/crm/v3/objects/notes/{noteId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}` ## レコードでメモをピン留めする レコードで[メモをピン留め](https://knowledge.hubspot.com/ja/records/pin-an-activity-on-a-record)して、レコードのタイムラインの上部に常に表示されるようにすることができます。ピン留めする前に、メモが既にレコードに関連付けられている必要があり、1つのレコードにつき1つのアクティビティーのみをピン留めできます。メモをピン留めするには、オブジェクトAPIを介してレコードを作成または更新するときに、`hs_pinned_engagement_id`フィールドにメモの`id`を含めます。詳しくは、[会社](/docs/api-reference/crm-companies-v3/guide#pin-an-activity-on-a-company-record)、[コンタクト](/docs/api-reference/crm-contacts-v3/guide#pin-an-activity-on-a-contact-record)、[取引](/docs/api-reference/crm-deals-v3/guide#pin-an-activity-on-a-deal-record)、[チケット](/docs/api-reference/crm-tickets-v3/guide#pin-an-activity-on-a-ticket-record)、および[カスタムオブジェクト](/docs/api-reference/crm-custom-objects-v3/guide)のAPIの使用に関する説明をご参照ください。 ## メモを削除する メモを個別に、または一括で削除することができます。削除したメモは、HubSpot内のごみ箱に追加されます。そのため、後で[レコードタイムラインからメモを復元](https://knowledge.hubspot.com/ja/records/restore-deleted-activity-in-a-record)することも可能です。 メモIDを指定して個別のメモを削除するには、`DELETE`リクエストを`/crm/v3/objects/notes/{noteId}`に送信します。 メモの削除について詳しくは、[リファレンスドキュメント](/docs/api-reference/crm-notes-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Fnotes%2F%7Bnoteid%7D)をご参照ください。 # Search for notes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/search/search-notes specs/2026-09/crm-notes-v2026-09.json POST /crm/objects/2026-09/notes/search フィルター、並べ替えオプション、その他のクエリーパラメーターを使用してメモの検索を実行し、結果を絞り込みます。このエンドポイントでは、CRMシステム内の特定のメモを見つける複雑なクエリーを使用できます。 > **Supported products** > **Required Scopes** # Update note Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/notes/update-note specs/2026-09/crm-notes-v2026-09.json PATCH /crm/objects/2026-09/notes/{noteId} 「{noteId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{noteId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/batch/create-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json POST /crm/objects/2026-09/postal_mail/batch/create HubSpotで指定されたタイプのCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成でき、データの効率的なインポートや外部システムとの同期に役立ちます。リクエストボディには、作成する各オブジェクトのプロパティーを含める必要があります。 > **Supported products** > **Required Scopes** # Archive postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/batch/delete-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json POST /crm/objects/2026-09/postal_mail/batch/archive CRM内の2つのレコード間で関連付けラベルを設定します。このエンドポイントを使用すると、タイプとIDで識別されるオブジェクト間の特定の関連付けを定義し、HubSpotアカウント内のデータの関連性と整理を強化できます。 > **Supported products** > **Required Scopes** # Retrieve postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/batch/get-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json POST /crm/objects/2026-09/postal_mail/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、効率的なデータ取得が可能になります。アーカイブされたオブジェクトをレスポンスに含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Set default association Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/batch/update-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json PUT /crm/objects/2026-09/{fromObjectType}/{fromObjectId}/associations/default/{toObjectType}/{toObjectId} CRMで、指定された2つのオブジェクトタイプ間にデフォルトの関連付けタイプを作成します。このエンドポイントは、コンタクトと会社、取引とチケットなど、異なるCRMオブジェクト間の一般的な関係を確立するのに役立ちます。 > **Supported products** > **Required Scopes** # Update postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/batch/update-postal-mail-objectType specs/2026-09/crm-postal-mail-v2026-09.json POST /crm/objects/2026-09/postal_mail/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、複数のオブジェクトのプロパティーを一度に指定して変更できます。これは、CRMデータ管理における一貫性と効率性を確保する一括更新に役立ちます。 > **Supported products** > **Required Scopes** # Upsert postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/batch/upsert-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json POST /crm/objects/2026-09/postal_mail/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に管理し、提供された一意の識別子に基づいて各オブジェクトが作成または更新されるようにすることができます。 > **Supported products** > **Required Scopes** # Create postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/create-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json POST /crm/objects/2026-09/postal_mail 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを返します。このエンドポイントは、必要なすべての詳細情報を含む新しいレコードをCRMシステムに追加するのに役立ちます。標準オブジェクトを作成するためのドキュメントと例が提供されています。 > **Supported products** > **Required Scopes** # Archive postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/delete-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json DELETE /crm/objects/2026-09/postal_mail/{postalMailId} 「{objectId}」で識別されるオブジェクトをごみ箱に移動します。この操作により、特定のCRMオブジェクトをIDでアーカイブし、有効な使用から実質的に削除しながら、将来の復元に備えて保持できます。 > **Supported products** > **Required Scopes** # Get all postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/get-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json GET /crm/objects/2026-09/postal_mail HubSpotアカウントで、指定したタイプのオブジェクトのページを読み取ります。`properties`クエリーパラメーターで含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントは、特定の属性を持つオブジェクトのリストを取得し、さらに処理または分析を行う場合に役立ちます。 > **Supported products** > **Required Scopes** # Get postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/get-postal-mail-objectId specs/2026-09/crm-postal-mail-v2026-09.json GET /crm/objects/2026-09/postal_mail/{postalMailId} 指定された`{objectType}`で`{objectId}`によって識別されるオブジェクトを読み取ります。デフォルトでは、`{objectId}`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターを使用して一意のプロパティーを指定できます。`properties`クエリーパラメーターを使用して、レスポンスに含めるプロパティーを指定することで、返されるデータを制御できます。 > **Supported products** > **Required Scopes** # Postal Mail API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/guide # Search for postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/search/search-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json POST /crm/objects/2026-09/postal_mail/search さまざまなフィルターと条件を使用して、指定したタイプのCRMオブジェクトを検索します。このエンドポイントでは、複雑なクエリーを実行して、指定した条件に一致するオブジェクトを取得できます。プロパティーまたは関連付けに基づいて特定のオブジェクトを見つけるのに役立ちます。 > **Supported products** > **Required Scopes** # Update postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/update-postal-mail specs/2026-09/crm-postal-mail-v2026-09.json PATCH /crm/objects/2026-09/postal_mail/{postalMailId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update postal mail Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/postal-mail/update-postal-mail-objectId specs/2026-09/crm-postal-mail-v2026-09.json PATCH /crm/objects/2026-09/postal_mail/{postalMailId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a recurring task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/task-series/create-tasks-series specs/2026-09/crm-tasks-series-v2026-09.json POST /crm/task-series/2026-09 HubSpot CRMで新しい一連のタスクを作成します。このエンドポイントでは、必要なプロパティーと一連のタスクの詳細を指定して、一連のタスクを開始できます。CRMワークフロー内で反復的なタスクシーケンスを自動化するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve recurring task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/task-series/get-tasks-series specs/2026-09/crm-tasks-series-v2026-09.json GET /crm/task-series/2026-09/{taskId} 固有IDを使用して、特定の一連のタスクの詳細を取得します。このエンドポイントを使用すると、指定されたtaskIdに関連付けられているプロパティーと一連のタスクの情報にアクセスできます。カスタムプロパティーを含めて一連のタスクの詳細情報を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Task series API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/task-series/guide # Update recurring task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/task-series/update-tasks-series specs/2026-09/crm-tasks-series-v2026-09.json PATCH /crm/task-series/2026-09/{taskId} HubSpotアカウントの特定の一連のタスクの詳細を更新します。このエンドポイントでは、taskIdで識別されるタスクのプロパティーと一連のタスクの設定を変更できます。これを使用して、タスクのスケジュールを調整したり、タスク関連の情報を更新したりできます。 > **Supported products** > **Required Scopes** # HubSpot CRM embed Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/embed # CRM Search API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/search-the-crm # Understanding the CRM APIs Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/understanding-the-crm # Using Object APIs Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/using-object-apis # Stop recurring task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/task-series/delete-tasks-series specs/2026-09/crm-tasks-series-v2026-09.json DELETE /crm/task-series/2026-09/{taskId} 固有IDを使用して、HubSpotアカウントから特定の一連のタスクを削除します。この操作により、一連のタスクは完全に削除され、元に戻すことはできません。この操作を実行するために必要な権限があることを確認してください。 > **Supported products** > **Required Scopes** # Create tasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/batch/create-tasks specs/2026-09/crm-tasks-v2026-09.json POST /crm/objects/2026-09/tasks/batch/create タスクのプロパティーと関連付けを一括で指定して、1つのリクエストで複数のタスクを作成します。このエンドポイントでは、複数のタスクをまとめて処理することで、効率的にタスクを作成できます。 > **Supported products** > **Required Scopes** # Delete tasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/batch/delete-tasks specs/2026-09/crm-tasks-v2026-09.json POST /crm/objects/2026-09/tasks/batch/archive IDを基準にタスクをバッチアーカイブし、ごみ箱に移動します。この処理では、タスクIDのリストをリクエスト本文で指定する必要があります。 > **Supported products** > **Required Scopes** # Retrieve tasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/batch/get-tasks specs/2026-09/crm-tasks-v2026-09.json POST /crm/objects/2026-09/tasks/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update tasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/batch/update-tasks specs/2026-09/crm-tasks-v2026-09.json POST /crm/objects/2026-09/tasks/batch/update 内部IDまたはプロパティーの固有値を使用して、1つのリクエストで複数のタスクを更新します。この処理により、各タスクのプロパティーを一括で変更できるため、タスクデータを効率的に管理できます。 > **Supported products** > **Required Scopes** # Upsert tasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/batch/upsert-tasks specs/2026-09/crm-tasks-v2026-09.json POST /crm/objects/2026-09/tasks/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create a task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/create-task specs/2026-09/crm-tasks-v2026-09.json POST /crm/objects/2026-09/tasks 特定のプロパティーを使用してタスクを作成し、IDを含めてそのオブジェクトのコピーを返します。標準タスクの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Delete a task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/delete-task specs/2026-09/crm-tasks-v2026-09.json DELETE /crm/objects/2026-09/tasks/{taskId} 「{taskId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Retrieve a task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/get-task specs/2026-09/crm-tasks-v2026-09.json GET /crm/objects/2026-09/tasks/{taskId} 「{taskId}」によって特定されるオブジェクトを読み取ります。「{taskId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve tasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/get-tasks specs/2026-09/crm-tasks-v2026-09.json GET /crm/objects/2026-09/tasks タスクのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Tasks API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/guide # Search for tasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/search/search-tasks specs/2026-09/crm-tasks-v2026-09.json POST /crm/objects/2026-09/tasks/search フィルター、プロパティー、並べ替えオプションを含めて、指定された条件に基づいてタスクの検索を実行します。これにより、特定の条件またはプロパティー値に一致するタスクを取得できます。 > **Supported products** > **Required Scopes** # Subtasks Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/subtasks-guide # Update a task Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/activities/tasks/update-task specs/2026-09/crm-tasks-v2026-09.json PATCH /crm/objects/2026-09/tasks/{taskId} 「{taskId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{taskId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Associate records (default) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/batch/create-associations specs/2026-09/crm-associations-v2026-09.json POST /crm/associations/2026-09/{fromObjectType}/{toObjectType}/batch/associate/default オブジェクトタイプ間のデフォルトの(最も汎用性のある)関連付けタイプを作成 > **Supported products** > **Required Scopes** # Associate records (labeled) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/batch/create-associations-labeled specs/2026-09/crm-associations-v2026-09.json POST /crm/associations/2026-09/{fromObjectType}/{toObjectType}/batch/create オブジェクトの関連付けをバッチ作成 > **Supported products** > **Required Scopes** # Delete specific labels Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/batch/delete-association-labels specs/2026-09/crm-associations-v2026-09.json POST /crm/associations/2026-09/{fromObjectType}/{toObjectType}/batch/labels/archive オブジェクトの特定のレコードの関連付けラベルをバッチ削除します。ラベルなしの関連付けを削除すると、それらの2つのオブジェクト間のすべてのラベル付きの関連付けも削除されます > **Supported products** > **Required Scopes** # Remove associations Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/batch/delete-associations specs/2026-09/crm-associations-v2026-09.json POST /crm/associations/2026-09/{fromObjectType}/{toObjectType}/batch/archive オブジェクトの関連付けをバッチ削除 > **Supported products** > **Required Scopes** # Retrieve associations Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/batch/get-associations specs/2026-09/crm-associations-v2026-09.json POST /crm/associations/2026-09/{fromObjectType}/{toObjectType}/batch/read オブジェクトの関連付けを特定のオブジェクトタイプにバッチ読み取りします。返されるページングオブジェクトの「after」フィールドを「id」と共に追加して、そのobjectIdから関連付けの次のページを取得できます。「link」フィールドは非推奨であるため、無視されます。メモ:「paging」フィールドは、他のページがある場合は存在しますが、ない場合は存在しません。 > **Supported products** > **Required Scopes** # Remove association between records Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/delete-association specs/2026-09/crm-associations-v2026-09.json DELETE /crm/objects/2026-09/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} 2つのレコード間のすべての関連付けを削除します。 > **Supported products** > **Required Scopes** # CRM API | 関連付けv4 Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/guide > **[Run in Postman](https://app.getpostman.com/run-collection/26126890-ebc9dd6f-bbd4-412b-b688-3553b6507c49)** > **スコープ要件** # 関連付けv4 > [!WARNING] > > 以前のバージョンについては、[v3の関連付けAPI](/docs/api-reference/crm-associations-v3/guide)のドキュメントを参照してください。 関連付けは、HubSpotのCRM上のさまざまなオブジェクトとアクティビティー間の関係を表します。異なるオブジェクトのレコード間(例:コンタクトから会社)でも、同じオブジェクト内(例:会社から会社)でも、レコードを関連付けることができます。関連付けエンドポイントを使用することで、レコード、アクティビティー、またはレコード間の関連付けを作成、取得、更新、削除できます。 関連付けスキーマエンドポイントを使用すると、アカウントでサポートされている関連付けタイプを表示したり、独自の関連付けタイプを作成したり、レコードの関係にラベルを割り当てたりできます。関連付けラベルは、コンタクト、会社、取引、チケット、カスタムオブジェクト間でサポートされており、リストやワークフローなどの[HubSpotツール全体で使用](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels#use-association-labels-in-hubspot-tools)できます。 オブジェクト、レコード、プロパティー、および関連付けAPIの詳細については、「[CRMについて](/docs/guides/crm/understanding-the-crm)」のガイドをご確認ください。 > [!NOTE] > > \*\*注:\*\*v4関連付けAPI は、NodeJS HubSpot Clientのバージョン9.0.0以降でサポートされています。 ## HubSpotで定義されている関連付けタイプ HubSpotには、あらかじめ定義された一連の関連付けタイプが備わっています(例:会社へのコンタクトのラベルなしの関連付け)。しかし、アカウント管理者は[独自の関連付けラベルを定義](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels)して、レコード関係の追加情報を提供できます(マネージャー、従業員など)。HubSpot定義の関連付けタイプは次の2つです。 * \*\*プライマリー:\*\*他のレコードが関連付けられるメインの会社。プライマリー関連付けは、[リストやワークフロー](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels#use-associations-in-hubspot-tools)などのHubSpotツールで使用できます。複数の会社が関連付けられたレコードの場合、このAPIでは、プライマリーと見なされる会社の変更がサポートされます。 * **ラベルなし:**コンタクト、会社、取引、チケット、またはカスタムオブジェクトのレコードが関連付けられたときに追加される関連付けタイプ。このタイプは関連付けが存在することを示し、レスポンスで**ラベル**の値が常に`null`と返されます。レコードにプライマリー関連付けまたはカスタム関連付けラベルがある場合、これらのタイプは、ラベルなし関連付けタイプの横に表示されます。 HubSpotで定義されている全ての関連付けタイプを[このセクション](#association-type-id-values)で参照できます。 ## 単一のラベルとペアのラベル レコード間の関係を表すために使用できる[関連付けラベル](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels)には、次の2種類があります。 * \*\*単一:\*\*関係における両方のレコードに適用される1つのラベル。例えば「友人」、「同僚」などです。 * **ペア:**1組のラベル。関連付けられたレコードのそれぞれの側の関係性を表すために異なる語が使用される場合です。例えば**「親」と「子」**、「雇用主\*\*」と「従業員\*\*」などです。ペアのラベルを作成するには、リクエストに`inverseLabel`フィールドを含めて、ペアの2番目のラベルを指定する必要があります。 ## 関連付けタイプを作成する カスタム関連付けタイプは、[HubSpot](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels)内で、または関連付けスキーマAPIエンドポイントを使用して作成できます。各オブジェクトペア間に最大で10個の関連付けタイプを作成できます(例:コンタクトと会社、コンタクトとコンタクト)。 APIを使用して関連付けタイプを作成するには、`POST`リクエストを`/crm/v4/associations/{fromObjectType}/{toObjectType}/labels`に送信し、リクエストに次の情報を含めます。 * **name**:関連付けタイプの内部名。この値にハイフンを含めたり、値の先頭を数字にしたりすることはできません。 * **label**:[HubSpotで表示される関連付けラベル](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels)の名前。 * **inverseLabel**(ペアラベルのみ):ラベルのペアにおける2番目のラベルの名前。 例えば、リクエストは次のようになります。 ```json theme={null} ///Example request body - Single label { "label": "Partner", "name": "partner" } ``` ```json theme={null} ///Example request body - Paired labels { "label": "Manager", "inverseLabel": "Employee", "name": "manager_employee" } ``` ## 関連付けタイプを取得する 特定のオブジェクト間の関連付けタイプを表示するには、`GET`リクエストを`/crm/v4/associations/{fromObjectType}/{toObjectType}/labels`に送信します。 各項目に以下が含まれる配列が返されます。 * \*\*category:\*\*関連付けタイプがHubSpotとユーザーのどちらによって作成されたか(`HUBSPOT_DEFINED`または`USER_DEFINED`)を示します。 * \*\*typeId:\*\*その関連付けタイプの数値ID。これを使用して、[レコードを関連付けるときにラベルを設定](#associate-with-label)します。HubSpotで定義されている全ての`typeId`値については、[このリスト](#association-type-id-values)を参照してください。 * \*\*label:\*\*英数字のラベル。「ラベルなし」関連付けタイプの場合、これは`null`になります。 また、これらの値はHubSpotの[関連付け設定](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels#association-label-api-details)にもあります。 ## レコードを関連付ける ### ラベルなしでレコードを関連付ける 2つのレコード間に既定のラベルなし関連付けを作成したり、レコードにラベルなし関連付けを一括で設定したりできます。2つのレコード間に既定の関連付けを個別に設定するには、`PUT`リクエストを `/crm/v4/objects/{fromObjectType}/{fromObjectId}/associations/default/{toObjectType}/{toObjectId}`に送信します。 リクエストURLには、次の情報を含めます。 * `fromObjectType`\*\*:\*\*関連付けるオブジェクトのID。ID値を見つけるには、この[オブジェクトタイプIDのリスト](/docs/guides/crm/understanding-the-crm#object-type-id)を参照してください。コンタクト、会社、取引、チケット、メモには、オブジェクト名(`contact`、`company`など)を使用できます。 * `fromObjectId`\*\*:\*\*関連付けるレコードのID。 * `toObjectType`\*\*:\*\*レコードの関連付け先となるオブジェクトのID。ID値を見つけるには、この[オブジェクトタイプIDのリスト](/docs/guides/crm/understanding-the-crm#object-type-id)を参照してください。コンタクト、会社、取引、チケット、メモには、オブジェクト名(`contact`、`company`など)を使用できます。 * `toObjectId`\*\*:\*\*関連付け先となるレコードのID。 例えば、IDが12345であるコンタクトレコードを、IDが`67891`である会社レコードに関連付ける場合、リクエストURLは`/crm/v4/objects/contact/12345/associations/default/company/67891`になります。 既定の関連付けを一括で設定するには、`POST`リクエストを`crm/v4/associations/{fromObjectType}/{toObjectType}/batch/associate/default`に送信します。リクエスト本文に、関連付けるレコードの`objectId`値を含めます。 > [!WARNING] > > \*\*注:\*\*1つのレコードに含めることができる関連付けの数は、[オブジェクトとHubSpotの配信登録](https://legal.hubspot.com/hubspot-product-and-services-catalog#TechnicalLimits:~:text=CRM%20Record%20Association%20Limits)によって異なります。 ### ラベル付きでレコードを関連付ける 2つのレコードを関連付けて、その関連付けを記述するラベルを設定するには、`PUT`リクエストを`/crm/v4/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}`に送信します。リクエスト本文に、作成する関連付けのタイプを示す`associationCategory`と`associationTypeId`を含めます。 ラベルのない関連付けを作成する場合は、[上記のセクション](#associate-records-without-a-label)で概説した、`associationCategory`や`associationTypeId`を必要としない既定のエンドポイントを使用できます。ラベルを使った関連付けを作成する場合は、この[既定のタイプIDのリスト](#association-type-id-values)を参照できます。または、これらのオブジェクト間のカスタム関連付けタイプを取得する必要があります。 > [!NOTE] > > \*\*注:\*\*クロスオブジェクトおよびペアになったラベルの関係の場合は、正しい方向を示す`typeId`を必ず使用してください(例:コンタクトから会社、会社からコンタクト、従業員からマネージャー、マネージャーから従業員)。 例えば、カスタムラベルを使用してコンタクトを取引に関連付けるには、次のようにします。 1.`GET`リクエストを`/crm/v4/associations/contact/deal/labels`に送信します。 2.応答の中で、ラベルの`typeId`値と`category`値を確認します。IDは数値で(例えば`36`)、カスタムラベルの場合、カテゴリーは常に`USER_DEFINED`です。 3.次のリクエスト本文を使用して、`PUT`リクエストを`/crm/v4/objects/contact/{objectId}/associations/deal/{toObjectId}`に送信します。 ```json theme={null} /// Example request body [ { "associationCategory": "USER_DEFINED", "associationTypeId": 36 } ] ``` ## 関連付けの制限を設定および管理する オブジェクト間で関連付けられるレコードの数や、ラベルを使って関連付けを記述できる頻度に対して、[制限](https://knowledge.hubspot.com/object-settings/set-limits-for-record-associations)を設定することができます。また、[技術的な制限やご利用のHubSpotの配信登録に応じた制限](https://legal.hubspot.com/hubspot-product-and-services-catalog)もあります。 ### 関連付けの制限を作成または更新する オブジェクト間の関連付けの制限を新規作成したり、既存の制限を更新したりできます。 * 制限を作成するには、`POST`リクエストを`crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType}/batch/create`に送信します。 * 既存の制限を更新するには、`POST`リクエストを`crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType}/batch/update`に送信します。 リクエスト本文に、以下のものを使用した`inputs`を含めます。 | パラメーター | 説明 | | - | - | | `category` | 制限を設定する対象の関連付けのカテゴリー。`HUBSPOT_DEFINED`または`USER_DEFINED`のいずれかです。 | | `typeId` | 制限を設定する対象となる関連付けタイプの数値ID。既定の`typeId`値の[リスト](#association-type-id-values)を参照するか、カスタムラベルの[値を取得](#retrieve-association-types)してください。 | | `maxToObjectIds` | 関連付けタイプで許容される関連付けの最大数。 | 例えば、1つの取引に関連付けられるコンタクトは最大で5つ、取引の「Point of contact」というラベルを付けられるコンタクトは1つだけ、という制限を設定する場合には、次のようなリクエストになります。 ```json theme={null} //Example request POST crm/v4/associations/definitions/configurations/deal/contact/batch/create { "inputs": [ { "category": "HUBSPOT_DEFINED", "typeId": 3, "maxToObjectIds": 5 }, { "category": "USER_DEFINED", "typeId": 35, "maxToObjectIds": 1 } ] } ``` ### 関連付け制限を取得する * 定義されている全ての関連付け制限を読み取るには、`GET`リクエストを`/crm/v4/associations/definitions/configurations/all`に送信します。これにより、全てのオブジェクトで定義されているカスタム関連付け制限が返されます。 * 特定の2つのオブジェクト間の関連付け制限を読み取るには、`GET`リクエストを`/crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType}`に送信します。 どちらのリクエストの場合も、応答では関連付けの`category`、`typeId`、`maxToObjectIds`、`label`の値が返されます。例えば、取引とコンタクトの間の制限を取得する場合、応答は次のようになります。 ```json theme={null} //Example response GET crm/v4/associations/definitions/configurations/deal/contact { "results": [ { "category": "HUBSPOT_DEFINED", "typeId": 3, "userEnforcedMaxToObjectIds": 5, "label": null } ] } ``` ### 関連付けの制限を削除する 特定の関連付け制限を削除するには、`POST`リクエストを`/crm/v4/associations/definitions/configurations/{fromObjectType}/{toObjectType}/batch/purge`に送信します。リクエスト本文に、制限を削除する対象の関連付けタイプの`category`値と`typeId`値を含めます。 例えば、取引とコンタクトの間の「Point of contact」制限を削除するには、次のようなリクエストになります。 ```json theme={null} //Example request POST crm/v4/associations/definitions/configurations/deal/contact/batch/purge { "inputs": [ { "category": "USER_DEFINED", "typeId": 35 } ] } ``` これが成功すると204レスポンスが返され、含まれる制限はシステムの既定値に戻ります(つまり多くのコンタクトに*Point ofcontact*というラベルを使用できます)。 ## 高い関連付け使用率に関するレポート 1つのレコードに可能な関連付けの数には、技術的な[制限](https://legal.hubspot.com/hubspot-product-and-services-catalog)があります。関連付けAPIを使用すると、関連付けの上限に近づいている、または上限に達したレコードのレポートを取得できます。 レポートを取得するには、`POST`リクエストを`crm/v4/associations/usage/high-usage-report/{userID}`に送信します。ファイルには、関連付け制限の80%以上を使用しているレコードが含まれます。例えば、1つの会社を最大50,000件のコンタクトに関連付けることができる場合、既に40,000件以上のコンタクトが関連付けられている会社がファイルに含まれます。ファイルは、リクエストURLにIDが含まれていたユーザーのEメールに送信されます。[ユーザーAPI](/docs/api-reference/settings-user-provisioning-v3/guide)を使用してユーザーIDを取得する方法をご確認ください。 ## 関連付けタイプID値 HubSpotで定義された、関連付けのタイプを指定する`associationTypeId`値を以下の表に示します。関連付けタイプは、含まれるオブジェクトと関連付けの方向によって異なります(例えば「コンタクトから会社」は「会社からコンタクト」とは異なります)。カスタムオブジェクトまたはカスタム関連付けラベルを作成する場合、該当する関連付けタイプには固有の`typeId`値があり、これらの値を[取得する](#retrieve-association-type)か、[HubSpotの関連付け設定](https://knowledge.hubspot.com/object-settings/create-and-use-association-labels#association-label-api-details)でこれらの値を見つける必要があります。 > [!WARNING] > > **注**:既定の会社関連付けタイプには、ラベルなし関連付けタイプとプライマリー関連付けタイプが含まれています。レコードに複数の会社が関連付けられている場合、1つだけをプライマリー会社にすることができます。その他の関連付けには、ラベルがないか、またはカスタム関連付けラベルを付けることができます。 #### コンタクトからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `449` | コンタクトからコンタクトへ | | `279` | コンタクトから会社へ | | `1` | コンタクトから会社へ(プライマリー) | | `4` | コンタクトから取引へ | | `15` | コンタクトからチケットへ | | `193` | コンタクトからコールへ | | `197` | コンタクトからEメールへ | | `199` | コンタクトからミーティングへ | | `201` | コンタクトからメモへ | | `203` | コンタクトからタスクへ | | `82` | コンタクトからコミュニケーション機能へ(SMS、WhatsApp、またはLinkedInメッセージ) | | `454` | コンタクトから郵便へ | | `587` | コンタクトからカートへ | | `508` | コンタクトから注文へ | | `178` | コンタクトから請求書へ | | `388` | コンタクトから支払いへ | | `296` | コンタクトから配信登録へ | #### 会社からオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `450` | 会社から会社へ | | `14` | 子会社から親会社へ | | `13` | 親会社から子会社へ | | `280` | 会社からコンタクトへ | | `2` | 会社からコンタクトへ(プライマリー) | | `342` | 会社から取引へ | | `6` | 会社から取引へ(プライマリー) | | `340` | 会社からチケットへ | | `25` | 会社からチケットへ(プライマリー) | | `181` | 会社からコールへ | | `185` | 会社からEメールへ | | `187` | 会社からミーティングへ | | `189` | 会社からメモへ | | `191` | 会社からタスクへ | | `88` | 会社からコミュニケーション機能へ(SMS、WhatsApp、またはLinkedInメッセージ) | | `460` | 会社から郵便へ | | `180` | 会社から請求書へ | | `510` | 会社から注文へ | | `390` | 会社から支払いへ | | `298` | 会社から配信登録へ | #### 取引からオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `451` | 取引から取引へ | | `3` | 取引からコンタクトへ | | `341` | 取引から会社へ | | `5` | 取引から会社へ(プライマリー) | | `27` | 取引からチケットへ | | `205` | 取引からコールへ | | `209` | 取引からEメールへ | | `211` | 取引からミーティングへ | | `213` | 取引からメモへ | | `215` | 取引からタスクへ | | `86` | 取引からコミュニケーション機能へ(SMS、WhatsApp、またはLinkedInメッセージ) | | `458` | 取引から郵便へ | | `313` | 取引から取引分割へ | | `19` | 取引から商品項目へ | | `176` | 取引から請求書へ | | `511` | 取引から注文へ | | `392` | 取引から支払へ | | `630` | 取引から製品へ | | `63` | 取引から見積もりへ | | `300` | 取引から配信登録へ | #### チケットからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `452` | チケットからチケットへ | | `16` | チケットからコンタクトへ | | `339` | チケットから会社へ | | `26` | チケットから会社へ(プライマリー) | | `28` | チケットから取引へ | | `219` | チケットからコールへ | | `223` | チケットからEメールへ | | `225` | チケットからミーティングへ | | `227` | チケットからメモへ | | `229` | チケットからタスクへ | | `84` | チケットからコミュニケーション機能へ(SMS、WhatsApp、またはLinkedInメッセージ) | | `456` | チケットから郵便へ | | `32` | チケットからスレッドへ | | `278` | チケットからコミュニケーションへ | | `526` | チケットから注文へ | ### リードからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `578` | リードからプライマリーコンタクトへ | | `596` | リードからコールへ | | `598` | リードからEメールへ | | `600` | リードからミーティングへ | | `602` | リードからコミュニケーション機能へ | | `608` | リードからコンタクトへ | | `610` | リードから会社へ | | `646` | リードからタスクへ | #### コールからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `194` | コールからコンタクトへ | | `182` | コールから会社へ | | `206` | コールから取引へ | | `220` | コールからチケットへ | #### Eメールからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `198` | Eメールからコンタクトへ | | `186` | Eメールから会社へ | | `210` | Eメールから取引へ | | `224` | Eメールからチケットへ | #### ミーティングからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `200` | ミーティングからコンタクトへ | | `188` | ミーティングから会社へ | | `212` | ミーティングから取引へ | | `226` | ミーティングからチケットへ | #### メモからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `202` | メモからコンタクトへ | | `190` | メモから会社へ | | `214` | メモから取引へ | | `228` | メモからチケットへ | #### 郵便からオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `453` | 郵便からコンタクトへ | | `459` | 郵便から会社へ | | `457` | 郵便から取引へ | | `455` | 郵便からチケットへ | #### 見積もりからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `69` | 見積もりからコンタクトへ | | `71` | 見積もりから会社へ | | `64` | 見積もりから取引へ | | `67` | 見積もりから商品項目へ | | `286` | 見積もりから見積もりテンプレートへ | | `362` | 見積もりから割引へ | | `364` | 見積もりから料金へ | | `366` | 見積もりから税金へ | | `702` | コンタクト署名者(電子署名の場合) | | `733` | 見積もりからカートへ | | `408` | 見積もりから請求書へ | | `731` | 見積もりから注文へ | | `398` | 見積もりから支払いへ | | `304` | 見積もりから配信登録へ | #### タスクからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `204` | タスクからコンタクトへ | | `192` | タスクから会社へ | | `216` | タスクから取引へ | | `230` | タスクからチケットへ | #### コミュニケーション機能(SMS、WhatsApp、またはLinkedInメッセージ)からオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `81` | コミュニケーション機能(SMS、WhatsApp、またはLinkedInメッセージ)からコンタクトへ | | `87` | コミュニケーション機能(SMS、WhatsApp、またはLinkedInメッセージ)から会社へ | | `85` | コミュニケーション機能(SMS、WhatsApp、またはLinkedInメッセージ)から取引へ | | `83` | コミュニケーション機能(SMS、WhatsApp、またはLinkedInメッセージ)からチケットへ | ### 注文からオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `593` | 注文からカートへ | | `507` | 注文からコンタクトへ | | `509` | 注文から会社へ | | `512` | 注文から取引へ | | `519` | 注文から割引へ | | `521` | 注文から割引コードへ | | `518` | 注文から請求書へ | | `513` | 注文から商品項目へ | | `523` | 注文から支払へ | | `730` | 注文から見積もりへ | | `516` | 注文から配信登録へ | | `726` | 注文からタスクへ | | `525` | 注文からチケットへ | ### カートからオブジェクトへ | タイプID | 関連付けタイプ | | - | - | | `586` | カートからコンタクトへ | | `588` | カートから割引へ | | `590` | カートから商品項目へ | | `592` | カートから注文へ | | `732` | カートから見積もりへ | | `728` | カートからタスクへ | | `594` | カートからチケットへ | ## v1関連付け(レガシー) v1関連付けAPIを使用している場合、レコードを関連付けるときに使用するIDについて、下記の表を参照してください。 | 関連付けタイプ | ID | | - | - | | コンタクトから会社へ | 1 | | 会社からコンタクトへ(既定) | 2 | | 会社からコンタクトへ(全ラベル) | 280 | | 取引からコンタクトへ | 3 | | コンタクトから取引へ | 4 | | 取引から会社へ | 5 | | 会社から取引へ | 6 | | 会社からエンゲージメントへ | 7 | | エンゲージメントから会社へ | 8 | | コンタクトからエンゲージメントへ | 9 | | エンゲージメントからコンタクトへ | 10 | | 取引からエンゲージメントへ | 11 | | エンゲージメントから取引へ | 12 | | 親会社から子会社へ | 13 | | 子会社から親会社へ | 14 | | コンタクトからチケットへ | 15 | | チケットからコンタクトへ | 16 | | チケットからエンゲージメントへ | 17 | | エンゲージメントからチケットへ | 18 | | 取引から商品項目へ | 19 | | 商品項目から取引へ | 20 | | 会社からチケットへ | 25 | | チケットから会社へ | 26 | | 取引からチケットへ | 27 | | チケットから取引へ | 28 | # Report high usage Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/report-high-usage specs/2026-09/crm-associations-v2026-09.json POST /crm/associations/2026-09/usage/high-usage-report/{userId} ポータル内で関連付けの使用が多いすべてのオブジェクトのレポートが要求されます > **Supported products** > **Required Scopes** # Associate records (default) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/update-association specs/2026-09/crm-associations-v2026-09.json PUT /crm/objects/2026-09/{fromObjectType}/{fromObjectId}/associations/default/{toObjectType}/{toObjectId} オブジェクトタイプ間のデフォルトの(最も汎用性のある)関連付けタイプを作成 > **Supported products** > **Required Scopes** # Associate records (labeled) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/update-association-labeled specs/2026-09/crm-associations-v2026-09.json PUT /crm/objects/2026-09/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId} 2つのレコード間の関連付けラベルを設定します。 > **Supported products** > **Required Scopes** # Configure associations Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/guide # Create association label Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/labels/create-associations-label specs/2026-09/crm-associations-schema-v2026-09.json POST /crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels 2つの指定されたCRMオブジェクトタイプ間の関係について説明する新しいラベルを作成します。これは、関連付けをより効果的に分類して管理するのに便利です。 > **Supported products** > **Required Scopes** # Batch create labels Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/labels/create-associations-label-batch specs/2026-09/crm-associations-schema-v2026-09.json POST /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/create 2つのオブジェクトタイプ間の関連付け制限をバッチ設定します。 > **Supported products** > **Required Scopes** # Delete association label Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/labels/delete-associations-label specs/2026-09/crm-associations-schema-v2026-09.json DELETE /crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels/{associationTypeId} 2つのCRMオブジェクトタイプ間の関連付けから特定のラベルを削除します。 > **Supported products** > **Required Scopes** # Retrieve association labels Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/labels/get-associations-label specs/2026-09/crm-associations-schema-v2026-09.json GET /crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels 2つの指定されたCRMオブジェクトタイプ間の関係について説明するすべてのラベルを取得します。これらのラベルにより、関連付けの性質に関する背景情報が提供されます。 > **Supported products** > **Required Scopes** # Update association label Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/labels/update-associations-label specs/2026-09/crm-associations-schema-v2026-09.json PUT /crm/associations/2026-09/{fromObjectType}/{toObjectType}/labels 2つの指定されたCRMオブジェクトタイプ間の関係について説明する既存のラベルを更新します。これにより、関係の性質をより正確に反映するように既存の関連付けラベルを変更できます。 > **Supported products** > **Required Scopes** # Configure association limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/limits/create-associations-limits specs/2026-09/crm-associations-schema-v2026-09.json POST /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/create 2つのオブジェクトタイプ間の関連付け制限をバッチ設定します。 > **Supported products** > **Required Scopes** # Remove association limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/limits/delete-associations-limits specs/2026-09/crm-associations-schema-v2026-09.json POST /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/purge 2つのオブジェクトタイプ間の関連付けタイプに定義されている制限をバッチ削除します。 > **Supported products** > **Required Scopes** # Retrieve association limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/limits/get-all-associations-limits specs/2026-09/crm-associations-schema-v2026-09.json GET /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType} 2つの指定されたCRMオブジェクトタイプ間の関連付けの設定の詳細を取得します。このエンドポイントを使用して、特定の関連付けタイプに設定されている制限を把握します。 > **Supported products** > **Required Scopes** # Retrieve all association limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/limits/get-associations-limits specs/2026-09/crm-associations-schema-v2026-09.json GET /crm/associations/2026-09/definitions/configurations/all オブジェクト間の設定済み関連付け制限をすべて取得します。これには、さまざまなCRMオブジェクトタイプが互いにどのように関連付けられているかに関する詳細が含まれます。 > **Supported products** > **Required Scopes** # Update association limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associations-schema/limits/update-associations-limits specs/2026-09/crm-associations-schema-v2026-09.json POST /crm/associations/2026-09/definitions/configurations/{fromObjectType}/{toObjectType}/batch/update 2つのオブジェクトタイプ間で設定されている関連付けの制限をバッチ更新します。 > **Supported products** > **Required Scopes** # Associations overview Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/overview # Fetch object type enablement status Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/crm-data-model/get-object-library specs/2026-09/crm-object-library-v2026-09.json GET /crm/object-library/2026-09/enablement イネーブルメントをサポートするすべてのオブジェクトタイプについて、有効か無効かを返します。 > **Supported products** > **Required Scopes** # Is object type is enabled Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/crm-data-model/get-object-library-objectTypeId specs/2026-09/crm-object-library-v2026-09.json GET /crm/object-library/2026-09/enablement/{objectTypeId} オブジェクトタイプが有効にかどうかを取得 > **Supported products** > **Required Scopes** # Object Activation API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/crm-data-model/guide # Start an export Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/exports/create-export specs/2026-09/crm-exports-v2026-09.json POST /crm/exports/2026-09/export/async リクエスト本文で指定されているようにポータルでCRMデータのエクスポートが開始されます > **Supported products** > **Required Scopes** # Retrieve export details Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/exports/get-export specs/2026-09/crm-exports-v2026-09.json GET /crm/exports/2026-09/export/{exportId} 現在の状態やプロパティーなど、特定のCRMエクスポートに関する詳細情報を取得します。 > **Supported products** > **Required Scopes** # Retrieve export status Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/exports/get-export-status specs/2026-09/crm-exports-v2026-09.json GET /crm/exports/2026-09/export/async/tasks/{taskId}/status エクスポートステータスが「完了」の場合に、生成されたファイルのURLなど、taskIdを含むエクスポートのステータスが返されます > **Supported products** > **Required Scopes** # エクスポート Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/exports/guide エクスポートAPIを使用すると、HubSpotアカウントからのレコードやプロパティーデータのエクスポート、エクスポートファイルのダウンロードURL取得、およびエクスポートステータスの確認を行えます。また、HubSpotでは、[レコードをエクスポート](https://knowledge.hubspot.com/ja/import-and-export/export-records)することや、[アカウントで過去のエクスポートのログを表示](https://knowledge.hubspot.com/ja/import-and-export/view-a-log-of-your-users-exports-in-your-account)することもできます。 > **スコープ要件** ## エクスポートを開始する エクスポートを開始するには、`POST`リクエストを`/crm/v3/exports/export/async`に送信します。リクエスト本文では、ファイル形式、エクスポートするオブジェクトとプロパティー、実行するエクスポートの種類(例:オブジェクトビューまたはリストのエクスポート)などの情報を指定する必要があります。特定の演算子に基づいてエクスポートするプロパティーデータを絞り込むこともできます。 ビューとリストのどちらのエクスポートの場合も、リクエストに以下のフィールドを含めることができます。 | パラメーター | 説明 | | - | - | | `exportType` | エクスポートのタイプ。`VIEW`(オブジェクトのインデックスページからビューをエクスポートする場合)または`LIST`(リストをエクスポートする場合)のどちらかを指定します。 | | `format` | ファイル形式。オプションは、`XLSX`、`CSV`、または`XLS`です。 | | `exportName` | エクスポートの名前。 | | `language` | エクスポートファイルの言語。オプションは、`DE`、`EN`、`ES`、`FI`、`FR`、`IT`、`JA`、`NL`、`PL`、`PT`、または`SV`です。詳細については[HubSpotの対応言語](https://knowledge.hubspot.com/ja/help-and-resources/hubspot-language-offerings)をご確認ください。 | | `objectType` | エクスポートするオブジェクトの名前またはID。標準オブジェクトの場合はオブジェクトの名前(例:`CONTACT`)を使用できますが、カスタムオブジェクトの場合は`objectTypeId`値を使用する必要があります。この値は、`GET`リクエストを`/crm/v3/schemas`に送信することで取得できます。 | | `associatedObjectType` | エクスポートに含める関連付けられたオブジェクトの名前またはID。1回のリクエストにつき最大4つの関連付けられたオブジェクトをエクスポートできます。関連付けられたオブジェクトの場合、エクスポートにはそのオブジェクトに関連付けられたレコードIDが含まれます。関連付けられたオブジェクトを1つだけエクスポートするか、`includePrimaryDisplayPropertyForAssociatedObjects`フィールドを`true`に設定した場合、レコードのプライマリー表示プロパティー値もエクスポートされます(例:`name`会社)。 | | `objectProperties` | エクスポートに含めるプロパティーのリスト。デフォルトでは、プロパティーの名前と値は人間が判読できるラベルとして表示されますが、`exportInternalValuesOptions`パラメーターを使用して内部の名前と値を要求できます。 | | `includePrimaryDisplayPropertyForAssociatedObjects` | 関連付けられた全てのレコードのプライマリー表示プロパティー値をエクスポートするには、このフィールドを値`true`とともに含めます(例:会社の場合は`name`)。関連付けられたオブジェクトを1つだけエクスポートする場合(`associatedObjectType`フィールドで示されます)、これはデフォルトで`true`に設定されます。複数の関連付けられたオブジェクトをエクスポートする場合、この値は既定で`false`に設定されます。 | | `includeLabeledAssociations` | このフィールドを値`true`と共に含めると、[関連付けラベル](https://developers.hubspot.jp/docs/api-reference/latest/crm/associations/associate-records/guide#create-and-manage-association-types)をエクスポートして、関連付けられたレコード間の関係性を記述できます。 | | `exportInternalValuesOptions` | プロパティーの内部名や内部値をエクスポートするには、この配列を含めます。配列に、プロパティーの内部名(列ヘッダーとして表示されます)をエクスポートするための`NAMES`や、プロパティーの内部値(人間が判読できる日付ではなく、カスタム パイプライン ステージやタイムスタンプの数値など)をエクスポートするための`VALUES`を含めます。 | | `overrideAssociatedObjectsPerDefinitionPerRowLimit` | デフォルトの1行当たり関連付け1,000件までの[上限](https://developers.hubspot.jp/docsguides/api/crm/exports#limits)をオーバーライドするには、値を`true`にしてこのフィールドを含めます。 | ### ビューをエクスポートする [インデックスページのビュー](https://knowledge.hubspot.com/ja/records/view-and-filter-records)をエクスポートする場合、`exportType`の値を`VIEW`に設定する必要があります。また、以下のフィールドを含めることで、エクスポートするレコードの絞り込みや並べ替えも行えます。 | パラメーター | 説明 | | - | - | | `publicCrmSearchRequest` | 特定のプロパティー値と検索クエリーに基づいてエクスポートするデータを示します。このオブジェクトには、次のフィールドを含めることができます。 `filters`:レコードを絞り込む基準とするプロパティーとプロパティー値。 `sorts`:プロパティー値の並べ替え順。昇順(`ASC`)、降順(`DES`)のいずれかです。 `query`:レコードの値を検索するための文字列。 | 例えば、コンタクトとコンタクトに関連付けられている会社レコードのビューを、`email`プロパティーでフィルタリングして、プロパティーの内部名と内部値を含めてエクスポートする場合、リクエストは次のようになります。 **JSON** ```json theme={null} ///Example request body { "exportType": "VIEW", "exportName": "All contacts", "format": "xlsx", "language": "DE", "objectType": "CONTACT", "exportInternalValuesOptions": ["NAMES", "VALUES"], "objectProperties": ["email", "firstname", "lastname"], "associatedObjectType": "COMPANY", "publicCrmSearchRequest": { "filters": [ { "value": "hello@test.com", "propertyName": "email", "operator": "EQ" } ], "query": "hello", "sorts": [ { "propertyName": "email", "order": "ASC" } ] } } ``` ### リストをエクスポートする [リスト](https://knowledge.hubspot.com/ja/segments/create-active-or-static-lists)をエクスポートする場合、`exportType`の値を`LIST`に設定する必要があります。また、次のフィールドを使用して、エクスポートするリストを指定する必要もあります。 | パラメーター | 説明 | | - | - | | `listId` | エクスポートするリストの[ILSリストID](https://knowledge.hubspot.com/ja/lists/troubleshoot-lists#ils-list)。ILSリストIDの値は、HubSpotのリストの詳細から確認できます。[コンタクト]>[リスト]の順に進み、表内のいずれかのリストにカーソルを合わせて、[詳細]をクリックします。右側のパネルで、ILSリストIDの値の横に表示される[リストIDをコピー]をクリックします。コンタクトリストには2つの異なるID値がありますが、リクエストではILSリストIDの値を使用することが必須です。 | 例えば、コンタクトのEメールを含むリストをエクスポートする場合、リクエストは次のようになります。 **JSON** ```json theme={null} ///Example request body { "exportType": "LIST", "listId": 1234567, "exportName": "Marketing email contacts", "format": "xlsx", "language": "EN", "objectType": "CONTACT", "objectProperties": ["email"] } ``` ## エクスポートを取得する エクスポートが正常に完了すると、レスポンスでエクスポートの`id`が返されます。HubSpotアカウントからエクスポートを取得するには、`GET`リクエストを`/crm/v3/exports/export/async/tasks/{exportId}/status`に送信します。 エクスポートを取得する際は、エクスポートの`status`も返されます。返される可能性があるステータスには、`COMPLETE`、`PENDING`、`PROCESSING`、`CANCELED`があります。エクスポートのステータスが`COMPLETE`の場合、エクスポートしたファイルをダウンロードするために使用できるURLが返されます。ダウンロードURLは、リクエストが完了してから5分後に期限切れになります。期限切れになると、別の`GET`リクエストを実行して、新しい一意のURLを生成できます。 > [!WARNING] > > ### 注: > > 有効期限が切れるまでは、追加の承認なしでエクスポートのダウンロードURLにアクセスできます。データを保護するために、URLの共有や、このAPIを介したHubSpotとの連携は慎重に進めてください。 ## 上限 次の上限が適用されます。 * 24時間以内に最大30回のエクスポートを実行できます。一度に実行できるエクスポートは1つのみです。追加のエクスポートは、前回のエクスポートが完了するまでキューに入れられます。 * 大量のエクスポートを行う場合、複数のファイルが単一のzipファイルにまとめられることがあります。1,000,000行を超えるCSVファイルまたはXLSXファイル、および65,535行を超えるXLSファイルで発生します。CSVファイルも、ファイルが2MBを超えていれば、行数が1,000,000行未満であっても自動的にzip化されます。 * デフォルトでは、1行当たりの関連付けの数は1,000件までに制限されています。この上限をオーバーライドする場合は、`overrideAssociatedObjectsPerDefinitionPerRowLimit`フィールドを含めて値を`true`に指定します。 # Calling extensions SDK Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/calling-sdk # Create new channel connection settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/channel-connection-settings/create-channel-connection-settings specs/2026-09/crm-calling-extensions-v2026-09.json POST /crm/extensions/calling/2026-09/{appId}/settings/channel-connection Establish new channel connection settings for the specified app. > **Supported products** # Remove the channel connection settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/channel-connection-settings/delete-channel-connection-settings specs/2026-09/crm-calling-extensions-v2026-09.json DELETE /crm/extensions/calling/2026-09/{appId}/settings/channel-connection Delete the channel connection settings associated with the specified app. > **Supported products** # Retrieve the channel connection settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/channel-connection-settings/get-channel-connection-settings specs/2026-09/crm-calling-extensions-v2026-09.json GET /crm/extensions/calling/2026-09/{appId}/settings/channel-connection Access the current channel connection settings for the specified app. > **Supported products** # Update the channel connection settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/channel-connection-settings/update-channel-connection-settings specs/2026-09/crm-calling-extensions-v2026-09.json PATCH /crm/extensions/calling/2026-09/{appId}/settings/channel-connection Modify the existing channel connection settings for the specified app. > **Supported products** # Submit details of an inbound call to the CRM. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/inbound/create-inbound-call specs/2026-09/crm-calling-extensions-v2026-09.json POST /crm/extensions/calling/2026-09/inbound-call This endpoint allows you to submit information about an inbound call to the CRM system. The request must include details such as the external call ID, call status, and involved phone numbers. This operation helps in logging and managing inbound call data within the CRM. > **Supported products** > **Required Scopes** # CRM API | Receive calls in HubSpot when using calling apps Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/receive-incoming-calls # Mark a call recording as ready for retrieval. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/recording/call-recording-ready specs/2026-09/crm-calling-extensions-v2026-09.json POST /crm/extensions/calling/2026-09/recordings/ready This endpoint is used to mark a call recording as ready. It requires the engagementId to identify the specific recording. > **Supported products** > **Required Scopes** # Call recordings and transcripts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/recordings-and-transcriptions # Create new calling extension settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/settings/create-calling-extension specs/2026-09/crm-calling-extensions-v2026-09.json POST /crm/extensions/calling/2026-09/{appId}/settings Create new settings for the calling extension associated with the specified appId. > **Supported products** # Delete the calling extension settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/settings/delete-calling-extension specs/2026-09/crm-calling-extensions-v2026-09.json DELETE /crm/extensions/calling/2026-09/{appId}/settings Remove the calling extension settings associated with the specified appId. This action cannot be undone. > **Supported products** # Retrieve the calling extension settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/settings/get-calling-extensions specs/2026-09/crm-calling-extensions-v2026-09.json GET /crm/extensions/calling/2026-09/{appId}/settings Retrieve the current settings of the calling extension for the specified appId. > **Supported products** # Update the calling extension settings for a specific app. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/settings/update-calling-extension specs/2026-09/crm-calling-extensions-v2026-09.json PATCH /crm/extensions/calling/2026-09/{appId}/settings Modify existing calling extension settings for the specified appId. Only the fields provided in the request will be updated. > **Supported products** # Set up third-party calling in help desk Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/third-party-calling # Third-party transcripts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/calling-extensions/third-party-transcripts # Create a new card Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/create-crm-card specs/2026-09/crm-public-app-crm-cards-v2026-09.json POST /crm/extensions/cards-dev/2026-09/{appId} このアプリがインストールされたときにアカウントで有効になる新しいカードを定義します。 > **Supported products** # Delete a card Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/delete-crm-card specs/2026-09/crm-public-app-crm-cards-v2026-09.json DELETE /crm/extensions/cards-dev/2026-09/{appId}/{cardId} 指定されたIDのカード定義を完全に削除します。削除されると、このカードのデータ取得リクエストが各自のサービスに送信されなくなります。これは元に戻すことができません。 > **Supported products** # Get a card. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/get-crm-card specs/2026-09/crm-public-app-crm-cards-v2026-09.json GET /crm/extensions/cards-dev/2026-09/{appId}/{cardId} 指定されたIDのカードの定義を返します。 > **Supported products** # Get all cards Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/get-crm-cards specs/2026-09/crm-public-app-crm-cards-v2026-09.json GET /crm/extensions/cards-dev/2026-09/{appId} 指定されたアプリのカードのリストを返します。 > **Supported products** # Get sample card detail response Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/get-sample-response specs/2026-09/crm-public-app-crm-cards-v2026-09.json GET /crm/extensions/cards-dev/2026-09/sample-response サンプルカードの詳細のレスポンスを返します。これは、ユーザーに表示されるカードの詳細が含まれるペイロードです。これはアプリからレスポンスでデータ取得リクエストに送信する必要があります。 > **Supported products** # CRM API | CRMカード Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/guide > **[Run in Postman](https://app.getpostman.com/run-collection/26126890-b4ebfe97-5852-4a5d-a9be-d171474df3b1)** [公開アプリ](/docs/apps/legacy-apps/public-apps/overview)内でカスタムCRMカードを作成し、HubSpotのコンタクト、会社、取引、チケットのレコードに他のシステムからの情報を表示できます。各アプリには、最大25枚のCRMカードを含めることができます。 > [!NOTE] > > 2025年6月16日以降、この記事に記載されている従来のCRMカードの機能はサポートされなくなり、2026年10月31日に正式に廃止されます。この変更の詳細については[HubSpot開発者変更ログ](https://community.hubspot.com/t5/Developer-Announcements/Deprecating-Support-for-Classic-Legacy-CRM-Cards/m-p/1153039#M1048)をご確認ください。 > > 従来のCRMカードは、[プロジェクトでUI拡張機能として作成](https://developers.hubspot.jp/docs/guides/crm/ui-extensions/create)できるアプリカードとは異なります。新しいアプリカードでは、最新のReactベースのツールセットが使用され、柔軟性、カスタマイズ性、インタラクティブ性が向上しています。現在ご自身のアプリに旧型CRMカードが含まれている場合は、[プロジェクトフレームワークに移行](/docs/apps/developer-platform/build-apps/overview)して新しいアプリカードを使用する方法をご確認ください。 **使用例**: アプリマーケットプレイスに掲載する、バグ追跡ソフトウェア用の連携を構築しているとします。サポート担当者がユーザーに対応する際に参照できるよう、コンタクトレコードに追跡対象のバグが表示されるようにしたいと考えています。アプリにカスタムカードを定義すると、この情報をHubSpotコンタクトレコード上に表示できます。 ![CRM\_カード\_1](https://cdn2.hubspot.net/hubfs/53/CRM_Card_1.png) カードはアプリの機能設定の一部として定義できます。アプリをインストールしたユーザーがターゲットのCRMレコードを表示すると、HubSpotはアプリにリクエストを送信して関連するデータを取得し、レコードページ上のカードにそのデータを表示します。アプリには、この情報に基づいてユーザーが実行できるカスタムアクションを指定することもできます。例えば、HubSpot内でアプリ独自のUIを表示するためのモーダルを開くアクションをアプリに組み込むことができます。 ![crmカード-データフローチャート](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/crm-card-diagram.png) ## スコープの要件 カスタムCRMカードを作成するアプリは、カードを表示するCRMレコードの変更に必要なOAuthスコープをリクエストする必要があります。例えば、CRMカードをコンタクトレコードに表示するには、アプリに`crm.objects.contacts.read`スコープと`crm.objects.contacts.write`スコープが設定されている必要があります。後でアプリからCRMオブジェクトのスコープを削除する必要が生じたら、まず、それらのオブジェクトタイプを対象とした既存のカードを全て削除する必要があります。 [スコープの詳細](/docs/apps/legacy-apps/authentication/working-with-oauth)およびアプリの認証URLの設定については、OAuthのドキュメントをご参照ください。 ## CRMカードを作成する アプリのCRMカードは、APIを介して作成することも、開発者アカウントでのアプリの編集によって作成することもできます。APIを介してカードを設定する方法について詳しくは、[リファレンスドキュメント](/docs/api-reference/crm-public-app-crm-cards-v3/guide)をご確認ください。 HubSpotのUIを使用してCRMカードを作成するには、次の手順に従います。 * HubSpot開発者アカウントで、メインナビゲーションにある[アプリ]に移動します\*\*。 \*\* * カードを追加する対象の**アプリ**を選択します。 * 左のサイドバーメニューで[CRMカード]を選択します\*\*。 \*\* * 右上の[CRMカードを作成]をクリックします\*\*。 \*\* ![非公開-アプリ-作成-CRM-カード](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card.png) 以降のセクションで、各タブでの設定オプションについて詳しく説明します。 > [!NOTE] > > 開発者プロジェクトを使用して構築されたUI拡張機能では、外部コンテンツをフレーム内に表示するなど、より柔軟な方法でデータを表示してユーザーとやり取りできます。連携で非公開アプリを使用することが可能な場合は、[UI拡張機能のクイックスタートガイド](/docs/apps/developer-platform/build-apps/overview)でUI拡張機能の導入方法をご確認ください。また、[HubSpotのサンプルプロジェクトを参照](https://developers.hubspot.jp/docs/guides/crm/ui-extensions/sample-extensions/overview)して、UI拡張機能で実現可能なことの例をご確認いただくこともできます。 ## データリクエスト HubSpotユーザーが、CRMカードが設定されているCRMレコードを表示すると、HubSpotが連携にデータ取得リクエストを送信します。HubSpotが指定されたターゲットURLに送信するこのリクエストには、一連の既定のクエリーパラメーターの他に、カードの設定として指定されたプロパティーデータを含むパラメーターが追加されます。 ![非公開-アプリ-作成-CRM-カード-データ-リクエスト-タブ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card-data-request-tab.png) * [データ取得]フィールドに、データの取得元となる**URL**を入力します。\_ \_APIでは、このURLが`targetUrl`フィールドに追加されます。 * [ターゲット レコード タイプ]セクションで、**スイッチ**をクリックしてオンに切り替え、カードを表示するCRMレコードを選択します。\_ \_次に、[HubSpotから送信されたプロパティー]ドロップダウンメニューを使用して、リクエストURLにクエリーパラメーターとして含める**HubSpotプロパティー**を選択します\*\*。 \*\*APIでは、各レコードタイプとそれに対応するプロパティーが`objectTypes`配列内のオブジェクトとして追加されます。 ```json theme={null} { "title": "New CRM Card", "fetch": { "targetUrl": "https://www.example.com/demo-fetch", "objectTypes": [ { "name": "contacts", "propertiesToSend": [ "firstname", "email", "lastname" ] } ] } ... } ``` ### リクエストの例 上記のように設定すると、HubSpotは次のように`GET`リクエストを送信します。 ```shell theme={null} https://www.example.com/demo-fetch?userId=12345&userEmail=loggedinuser@hubspot.com&associatedObjectId=53701&associatedObjectType=CONTACT&portalId=987654&firstname=Tim&email=timrobinson@itysl.com&lastname=Robinson ``` | パラメーター | 型 | 説明 | | - | - | - | | `userId` | デフォルト | CRMレコードを読み込んだHubSpotユーザーのID。 | | `userEmail` | デフォルト | CRMレコードを読み込んだユーザーのEメールアドレス。 | | `associatedObjectId` | デフォルト | 読み込まれたCRMレコードのID。 | | `associatedObjectType` | デフォルト | 読み込まれたCRMレコードのタイプ(コンタクト、会社、取引など)。 | | `portalId` | デフォルト | CRMレコードが読み込まれたHubSpotアカウントのID。 | | `firstname` | カスタム | [HubSpotから送信されたプロパティー]ドロップダウンメニュー(アプリ内)および`propertiesToSend`配列(API)で指定された、コンタクトの名。\_ \_ | | `email` | カスタム | [HubSpotから送信されたプロパティー]ドロップメニュー(アプリ内)および`propertiesToSend`配列(API)で指定された、コンタクトのEメールアドレス。\_ \_ | | `lastname` | カスタム | [HubSpotから送信されたプロパティー]ドロップダウンメニュー(アプリ内)および`propertiesToSend`配列(API)で指定された、コンタクトの姓。\_ \_ | > [!WARNING] > > ### 注: > > 接続は3秒以内に確立される必要があり、5秒が経過するとリクエストはタイムアウトします。 ### レスポンスの例 以下に、インテグレーターが上記のリクエストに対して返すレスポンスの例を示します。 ```json theme={null} { "results": [ { "objectId": 245, "title": "API-22: APIs working too fast", "link": "http://example.com/1", "created": "2016-09-15", "priority": "HIGH", "project": "API", "description": "Customer reported that the APIs are just running too fast. This is causing a problem in that they're so happy.", "reporter_type": "Account Manager", "status": "In Progress", "ticket_type": "Bug", "updated": "2016-09-28", "actions": [ { "type": "IFRAME", "width": 890, "height": 748, "uri": "https://example.com/edit-iframe-contents", "label": "Edit", "associatedObjectProperties": [] }, { "type": "IFRAME", "width": 890, "height": 748, "uri": "https://example.com/reassign-iframe-contents", "label": "Reassign", "associatedObjectProperties": [] }, { "type": "ACTION_HOOK", "httpMethod": "PUT", "associatedObjectProperties": [], "uri": "https://example.com/tickets/245/resolve", "label": "Resolve" }, { "type": "CONFIRMATION_ACTION_HOOK", "confirmationMessage": "Are you sure you want to delete this ticket?", "confirmButtonText": "Yes", "cancelButtonText": "No", "httpMethod": "DELETE", "associatedObjectProperties": ["protected_account"], "uri": "https://example.com/tickets/245", "label": "Delete" } ] }, { "objectId": 988, "title": "API-54: Question about bulk APIs", "link": "http://example.com/2", "created": "2016-08-04", "priority": "HIGH", "project": "API", "reported_by": "ksmith@hubspot.com", "description": "Customer is not able to find documentation about our bulk Contacts APIs.", "reporter_type": "Support Rep", "status": "Resolved", "ticket_type": "Bug", "updated": "2016-09-23", "properties": [ { "label": "Resolved by", "dataType": "EMAIL", "value": "ijones@hubspot.com" }, { "label": "Resolution type", "dataType": "STRING", "value": "Referred to documentation" }, { "label": "Resolution impact", "dataType": "CURRENCY", "value": "94.34", "currencyCode": "GBP" } ], "actions": [ { "type": "IFRAME", "width": 890, "height": 748, "uri": "https://example.com/edit-iframe-contents", "label": "Edit" }, { "type": "CONFIRMATION_ACTION_HOOK", "confirmationMessage": "Are you sure you want to delete this ticket?", "confirmButtonText": "Yes", "cancelButtonText": "No", "httpMethod": "DELETE", "associatedObjectProperties": ["protected_account"], "uri": "https://example.com/tickets/245", "label": "Delete" } ] } ], "settingsAction": { "type": "IFRAME", "width": 890, "height": 748, "uri": "https://example.com/settings-iframe-contents", "label": "Settings" }, "primaryAction": { "type": "IFRAME", "width": 890, "height": 748, "uri": "https://example.com/create-iframe-contents", "label": "Create Ticket" } } ``` | プロパティー | タイプ | 説明 | | - | - | - | | `results` | 配列 | 最大5つの有効な[カードプロパティー](#card-properties)から成る配列。特定のCRMオブジェクトにこれよりも多くのプロパティーが含まれる場合は、アプリからリンクを設定できます。 | | `objectId` | 数値 | このオブジェクトの固有ID。 | | `title` | 文字列 | このオブジェクトのタイトル。 | | `link` | 文字列 | ユーザーがオブジェクトに関する詳細を取得するために使用できるURL。このプロパティーは任意指定ですが、リンクを持つオブジェクトがない場合は、`null`を指定してください。 | | `created` | 文字列 | オブジェクトの作成日を示す、カードの設定で定義された[カスタムプロパティー](#card-properties)。 | | `priority` | 文字列 | 外部チケットの優先度レベルを示す、カードの設定で定義された[カスタムプロパティー](#card-properties)。 | | `actions` | 配列 | ユーザーが実行できる[アクション](#action-types)のリスト。 | | `properties` | プロパティー | カード設定で定義されていないカスタムプロパティーのリスト。このリストを使用して、特定のオブジェクトに固有のプロパティーを表示することができます。これらのプロパティーは、カード設定で定義されたプロパティーの後に指定した順に示されます。 | | `settingsAction` | オブジェクト | ユーザーがアプリの設定を更新できるようになるiframeアクション。 | | `primaryAction` | オブジェクト | レコードタイプのプライマリーアクション(通常は作成アクション)。 | | `secondaryActions` | 配列 | カードに表示される他のアクションのリスト。 | ### リクエスト署名 リクエストが実際にHubSpotから送信されていることを確認するために、リクエストには次のリクエストヘッダーが組み込まれます。このヘッダーには、アプリケーションのアプリシークレットのハッシュとリクエストの詳細が設定されます。 `X-HubSpot-Signature: ` この署名を検証するには、次の手順に従います。 1. `` + `` + `` + ` (if present)`の形式で連結した文字列を作成します。 2. 連結した文字列のSHA-256ハッシュを生成します。 3. ハッシュ値を署名と比較します。一致する場合、リクエストは検証に合格したことになります。一致しない場合は、転送中のリクエストの改ざん、またはエンドポイントに対するリクエストのなりすましが発生した恐れがあります。 HubSpotからのリクエストを検証する方法は、[こちら](/docs/apps/legacy-apps/authentication/validating-requests)でご確認いただけます。 ## カードプロパティー [カードプロパティー]タブで、HubSpotのCRMカード上に表示させるカスタムプロパティーを定義します。\_ \_定義が完了すると、連携によってこれらのプロパティーがレスポンスに組み込まれ、値が取り込まれます。 * [プロパティーを追加]をクリックし、カードに表示する新しいプロパティーを追加します\*\*。 \*\*データ取得呼び出しに対して返すペイロードには、これら全てのプロパティーに値が設定されている必要があります。 * 右側のパネルで、プロパティーの一意の名前、表示ラベル、データタイプを設定します。データタイプとして[通貨]、[日付]、[日時]、[Eメール]、[リンク]、[数値]、[ステータス]、[文字列]のいずれかを選択できます。**\_\_\_\_** **\_\_\_\_**[拡張プロパティータイプの使用](/docs/apps/legacy-apps/extensions/overview)について詳細をご確認ください。 * [追加]をクリックしてプロパティーを保存します\*\*。 \*\* ![非公開-アプリ-作成-CRM-カード-カード-プロパティー-タブ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card-card-properties-tab.png) HubSpotがデータリクエストを送信すると、連携からのレスポンスでは、`results`に含まれる各オブジェクトの他の値に加えてこれらのプロパティーの値も取り込まれます。このタブで設定されたプロパティーの他に、連携によって独自のカスタムプロパティーが追加される場合もあり、これらのプロパティーをカードの設定で定義する必要はありません。 例えば、以下のレスポンスに含まれる`created`および`priority`は、どちらも[カードプロパティー]タブで定義されたものですが、`properties`配列では独自のプロパティー定義と値が送信されます。\_ \_これらのオブジェクト固有のプロパティーは、オブジェクトごとに定義する必要があります。 ```json theme={null} { "objectId": 988, "title": "API-54: Question about bulk APIs", "link": "http://example.com/2", "created": "2016-08-04", "priority": "HIGH", "properties": [ { "label": "Resolved by", "dataType": "EMAIL", "value": "ijones@hubspot.com" }, { "label": "Resolution type", "dataType": "STRING", "value": "Referred to documentation" }, { "label": "Resolution impact", "dataType": "CURRENCY", "value": "94.34", "currencyCode": "GBP" } ], "actions": [ ... ] } ``` カスタムプロパティーを送信する際には、各プロパティーの`dataType`フィールドを`CURRENCY`、`DATE`、`DATETIME`、`EMAIL`、`LINK``NUMERIC`、`STATUS``STRING`のいずれかに設定できます。プロパティーのタイプによっては、連携で追加のフィールドが必要になる場合があります。以降のセクションで、プロパティーの各タイプについて詳しく説明します。 ### 通貨プロパティー `CURRENCY`プロパティーには`currencyCode`を含める必要があり、このコードは有効な[ISO 4217](https://ja.wikipedia.org/wiki/ISO_4217)でなければなりません。これにより、ユーザーには正しい通貨記号と数字の書式が表示されます。 ```json theme={null} { "results": [ { "properties": [ { "label": "Resolution impact", "dataType": "CURRENCY", "value": "94.34", "currencyCode": "GBP" } ] } ] } ``` ### 日付プロパティー `DATE`プロパティーは`yyyy-mm-dd`の形式でなければなりません。これらのプロパティーは、ユーザーのロケールに適した形式で表示されます。タイムスタンプを含める必要がある場合は、代わりに`DATETIME`プロパティーを使用します。 ```json theme={null} { "results": [ { "properties": [ { "label": "Date", "dataType": "DATE", "value": "2023-10-13" } ] } ] } ``` ### 日時プロパティー `DATETIME`プロパティーは特定の時間を示します。エポック以降のミリ秒数で指定する必要があります。これらのプロパティーは、ユーザーのロケールに適した形式で表示されます。 ```json theme={null} { "results": [ { "properties": [ { "label": "Timestamp", "dataType": "DATETIME", "value": "1697233678777" } ] } ] } ``` ### Eメールプロパティー `EMAIL`プロパティーは、Eメールアドレスを含む値に使用されます。これらのプロパティーはmailtoリンクとして表示されます。 ```json theme={null} { "results": [ { "properties": [ { "label": "Email address", "dataType": "EMAIL", "value": "hobbes.baron@gmail.com" } ] } ] } ``` ### リンクプロパティー `LINK`プロパティーはハイパーリンクを表示し、新しいウィンドウで開きます。`linkLabel`を指定しない場合は、URL自体が表示されます。 ```json theme={null} { "results": [ { "properties": [ { "label": "Link property", "dataType": "LINK", "value": "https://www.hubspot.com", "linkLabel": "Test link" } ] } ] } ``` ### 数値プロパティー `NUMERIC`プロパティーは数値を表示します。 ```json theme={null} { "results": [ { "properties": [ { "label": "Number", "dataType": "NUMERIC", "value": "123.45" } ] } ] } ``` ### ステータスプロパティー `STATUS`プロパティーは色付きのインジケーターとして表示されます。ステータスプロパティーを定義するには、考えられるステータスを記述する`optionType`を連携で指定する必要があります。ステータスは以下の通りです: * `DEFAULT`:灰色 * `SUCCESS`:緑色 * `WARNING`:黄色 * `DANGER`:赤色 * `INFO`:青色 ```json theme={null} { "results": [ { "properties": [ { "label": "Status", "dataType": "STATUS", "value": "Errors occurring", "optionType": "DANGER" } ] } ] } ``` ### 文字列プロパティー `STRING`プロパティーはテキストを表示します。 ```json theme={null} { "results": [ { "properties": [ { "label": "First name", "dataType": "STRING", "value": "Tim Robinson" } ] } ] } ``` ## カスタムアクション [カスタムアクション]タブでは、ユーザーがアクションボタンをクリックしたときにリクエストするベースURLを定義できます。\_ \_CRMカードには、さまざまなアクションに対応する複数のアクションURLを含めることができます。 ![非公開-アプリ-作成-CRM-カード-カスタム-アクションー-タブ](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card-custom-actions-tab.png) アクションフックおよび確認フックリクエストには、リクエストを検証するための`X-HubSpot-Signature`ヘッダーが含まれます。Iframeアクションリクエストには、リクエスト署名は含まれません。詳細については、[リクエスト署名](#request-signatures)をご確認ください。 アクションの`uri`フィールドでアクションURLにアクセスします。[データ取得リクエスト](#data-request)と同様に、アクションフックには一連のデフォルトのクエリーパラメーターが組み込まれます。アクションに`associatedObjectProperties`フィールドを含めると、他のクエリーパラメーターを含めることができます。 レスポンスは、アクションのタイプによって異なります。以下で、アクションのタイプについて詳しく説明します。 ### アクションタイプ #### Iframeアクション `IFRAME`アクションは、指定されたURLを指すiframeを含むモーダルを開きます。CRM UIからiframeが開かれるとき、リクエスト署名は送信されません。その理由は、元のデータ取得リクエストでiframe URLが返され、追加のプロキシーリクエストが不要であるためです。 ```json theme={null} { "type": "IFRAME", "width": 890, "height": 748, "uri": "https://example.com/iframe-contents", "label": "Edit", "associatedObjectProperties": ["some_crm_property"] } ``` ユーザーがiframe内のアクションを完了したら、モーダルを閉じて、ユーザーを元のCRMレコードにリダイレクトする必要があります。モーダルを閉じるには、連携で`window.postMessage`を使用して、ユーザーの操作が完了したことをCRMに通知します。次のメッセージを使用できます。 * `{"action": "DONE"}`:ユーザーが正常にアクションを完了しました。 * `{"action": "CANCEL"}`:ユーザーがアクションをキャンセルしました。 ```json theme={null} window.parent.postMessage(JSON.stringify({"action": "DONE"}), "*"); ``` #### アクションフックのアクション `ACTION_HOOK`アクションは、サーバーサイドのリクエストをインテグレーターに送信します。このアクションでユーザーに表示されるUIは、成功メッセージまたはエラーメッセージのみです。このタイプのアクションは、さらなるユーザー入力を必要としない単純な操作に役立ちます。検証用に、リクエストに`X-HubSpot-Signature`ヘッダーが含まれます。[リクエスト署名](#request-signatures)の詳細については、こちらをご覧ください。 ```json theme={null} { "type": "ACTION_HOOK", "httpMethod": "POST", "uri": "https://example.com/action-hook", "label": "Example action", "associatedObjectProperties": ["some_crm_property"] } ``` `httpMethod`を`GET`、`POST`、`PUT`、`DELETE`、または`PATCH`に設定することができます。`GET`または`DELETE`を使用する場合、`associatedObjectProperties`値がリクエストURLの末尾にクエリーパラメーターとして追加されます。それ以外の場合、プロパティーはリクエスト本文で送信されます。 ```json theme={null} window.parent.postMessage(JSON.stringify({"action": "DONE"}), "*"); ``` #### 確認アクション `CONFIRMATION_ACTION_HOOK`アクションは、`ACTION_HOOK`アクションと同じように動作しますが、サーバーサイドのリクエストを実行する前にユーザーに確認ダイアログを表示するという点が異なります。検証用に、リクエストに`X-HubSpot-Signature`ヘッダーが含まれます。[リクエスト署名](#request-signatures)の詳細については、こちらをご覧ください。 ```json theme={null} { "type": "CONFIRMATION_ACTION_HOOK", "httpMethod": "POST", "uri": "https://example.com/action-hook", "label": "Example action", "associatedObjectProperties": ["some_crm_property"], "confirmationMessage": "Are you sure you want to run example action?", "confirmButtonText": "Yes", "cancelButtonText": "No" } ``` `httpMethod`を`GET`、`POST`、`PUT`、`DELETE`、または`PATCH`に設定することができます。`GET`または`DELETE`を使用する場合、`associatedObjectProperties`値がリクエストURLの末尾にクエリーパラメーターとして追加されます。それ以外の場合、プロパティーはリクエスト本文で送信されます。 ## CRMカードを削除する 作成後は、アプリの設定からCRMカードを削除できます。 * HubSpot開発者アカウントで、メインナビゲーションにある[アプリ]に移動します\*\*。 \*\* * カードを削除するアプリの**名前**をクリックします。 * 左のサイドバーメニューで[CRMカード]を選択します\*\*。 \*\* * カードにカーソルを合わせ[削除]をクリックします\*\*。 \*\* ![アプリ設定で旧型CRMカードを削除](https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/public-app-delete-crm-card.png) * ダイアログボックスで[このカードを削除]をクリックして削除を確定します\*\*。 \*\* # Migrate CRM card views Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/migrate-crm-card specs/2026-09/crm-public-app-crm-cards-v2026-09.json POST /crm/extensions/cards-dev/2026-09/{appId}/views/migrate ビューの旧CRMカードをアプリカードと入れ替えます。詳しくは、「旧CRMカードをアプリカードに移行」ドキュメントを参照してください。 > **Supported products** # Update a card Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/crm-cards/update-crm-card specs/2026-09/crm-public-app-crm-cards-v2026-09.json PATCH /crm/extensions/cards-dev/2026-09/{appId}/{cardId} 新しい詳細でカード定義を更新します。 > **Supported products** # Create a transcript Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/transcriptions/create-transcript specs/2026-09/crm-transcriptions-v2026-09.json POST /crm/extensions/calling/2026-09/transcripts HubSpotアカウントでコールの新しい文字起こしを作成します。このエンドポイントを使用すると、エンゲージメントIDや発話内容を含むコールの文字起こしの詳細を送信し、HubSpot内で保存および管理できます。これは、コールの文字起こしデータをCRMワークフローに統合するのに役立ちます。 > **Supported products** > **Required Scopes** # Delete a transcript Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/transcriptions/delete-transcript specs/2026-09/crm-transcriptions-v2026-09.json DELETE /crm/extensions/calling/2026-09/transcripts/{transcriptId} 一意の識別子を使用して、HubSpotアカウントから特定のコールの文字起こしを削除します。この操作は、不要になった文字起こしデータを管理およびクリーンアップするのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve a transcript Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/transcriptions/get-transcript specs/2026-09/crm-transcriptions-v2026-09.json GET /crm/extensions/calling/2026-09/transcripts/{transcriptId} 一意の識別子を使用して、特定のコールの文字起こしを取得します。このエンドポイントを使用すると、文字起こしの作成および更新のタイムスタンプ、エンゲージメントID、ソース、発話を含む詳細にアクセスできます。これは、HubSpotアカウントに保存されているコールでのやり取りを確認および分析するのに役立ちます。 > **Supported products** > **Required Scopes** # Transcribe inbound call Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/transcriptions/transcribe-inbound specs/2026-09/crm-transcriptions-v2026-09.json POST /crm/extensions/calling/2026-09/inbound-call このエンドポイントは、コールの詳細を含むリクエストを受け入れて着信コールを処理します。コールの外部ID、最終ステータス、関連する電話番号などの情報を含むJSONペイロードが必要です。この操作は、サードパーティーのコールデータをHubSpotに連携し、着信コールをスムーズに追跡・管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Delete settings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/video-conferencing-extension/delete-video-conferencing-extension specs/2026-09/crm-video-conferencing-extension-v2026-09.json DELETE /crm/extensions/videoconferencing/2026-09/settings/{appId} アプリのビデオ会議拡張機能の設定を削除 > **Supported products** # Get settings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/video-conferencing-extension/get-video-conferencing-extension specs/2026-09/crm-video-conferencing-extension-v2026-09.json GET /crm/extensions/videoconferencing/2026-09/settings/{appId} アプリのビデオ会議拡張機能の設定を取得 > **Supported products** # ビデオ会議拡張機能 Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/video-conferencing-extension/guide > **[Run in Postman](https://app.getpostman.com/run-collection/26126890-8f5582df-b553-403f-b001-6fe4cbafe4e4)** # ビデオ会議拡張機能 ビデオ会議APIを使用すると、[Google Meet](https://knowledge.hubspot.com/integrations/use-hubspots-integration-with-google-meet)連携や[Zoom](https://knowledge.hubspot.com/integrations/use-hubspots-integration-with-zoom)連携と同じように、ユーザーが[ビデオ会議を作成する](https://knowledge.hubspot.com/meetings-tool/create-and-edit-scheduling-pages#overview)ときにビデオ会議のリンクを追加するための[公開アプリ](/docs/apps/legacy-apps/public-apps/overview)を構成できます。このAPIを使用するには、次の作業が必要です。 1.ビデオ会議拡張機能Webhookを使用した公開アプリをセットアップします。このアプリに、HubSpotがミーティングの作成、更新、削除イベントが発生した時点でユーザーに通知するために使用するURIを設定します。2.ミーティングの作成Webhookと更新Webhookを処理するカスタムのバックエンドをセットアップします。3. 必要に応じて、ユーザーID検証Webhookを処理するようにバックエンドをセットアップします。 ビデオ会議APIに送信する全てのリクエストには、開発者アカウントの開発者APIキーを使用した認証が必要になります。このキーを`hapikey`クエリーパラメーターに格納して、リクエストURLの末尾に追加します。開発者アカウントで[開発者APIキーを確認](/docs/apps/legacy-apps/public-apps/overview#developer-api-keys)できます。 ## 前提条件 手順を開始する前に、[開発者アカウント](/docs/getting-started/account-types#developer-accounts)を作成し、そのアカウント内で[公開アプリ](/docs/apps/legacy-apps/public-apps/overview)を作成します。 ## Webhook URLを設定する まず、HubSpotがミーティングの作成、更新、削除イベントが発生した時点で送信する通知の宛先を把握できるよう、Webhook URLを設定します。 それには、`PUT`リクエストを`/crm/v3/extensions/videoconferencing/settings/{appId}?hapikey=YOUR_HUBSPOT_DEVELOPER_API_KEY`に送信します。 リクエスト本文に`createMeetingUrl`フィールドを含め、このフィールドに、HubSpotがミーティング作成Webhookのペイロードの送信先とするURLを設定する必要があります。必要に応じて、他のWebhook URLも追加できます。これらの値は、同じリクエストURLを使用して後で更新できます。 ```json theme={null} // Example request { "createMeetingUrl": "https://example.com/create-meeting", "updateMeetingUrl": "https://example.com/update-meeting", "deleteMeetingUrl": "https://example.com/delete-meeting" } ``` | フィールド | 型 | 説明 | | - | - | - | | `createMeetingUrl` | 文字列 | 新しいミーティングが作成されたときにHubSpotが通知するURL。このフィールドに、ミーティングの詳細を含むJSONペイロードが格納されます。URLでは、`https`プロトコルを使用する必要があります。 | | `updateMeetingUrl` | 文字列 | 既存のミーティングが更新されたときにHubSpotが通知するURL。このフィールドに、更新されたミーティングの詳細を含むJSONペイロードが格納されます。URLでは、`https`プロトコルを使用する必要があります。 | | `deleteMeetingUrl` | 文字列 | 既存のミーティングが削除されたときにHubSpotが通知するURL。このフィールドに、削除されたミーティングの`conferenceId`が格納されます。URLでは、`https`プロトコルを使用する必要があります。 | | `userVerifyUrl` | 文字列 | HubSpotが外部ビデオ会議システム内に当該ユーザーが存在することを確認するために使用するURL。 | **レスポンスの例:** ```json theme={null} // Example 200 response { "createMeetingUrl": "https://example.com/create-meeting", "updateMeetingUrl": "https://example.com/update-meeting", "deleteMeetingUrl": "https://example.com/delete-meeting" } ``` ### Webhook URLを取得する 既存のアプリ用に構成されたWebhook URLを取得するには、`GET`リクエストを`/crm/v3/extensions/videoconferencing/settings/{appId}`に送信します。 返されるレスポンスに、現在構成されているWebhook URLが含まれます。 ```json theme={null} // Example 200 response { "createMeetingUrl": "https://example.com/create-meeting", "updateMeetingUrl": "https://example.com/update- meeting", "deleteMeetingUrl": "https://example.com/delete-meeting", "userVerifyUrl": "https://example.com/user-verify" } ``` ## Webhookペイロード Webhook URLを設定すると、ミーティングの作成、更新、または削除イベントの発生時に、HubSpotがこれらのURLにペイロードを送信するようになります。 > [!NOTE] > > HubSpotから送信される全てのWebhookには、貴社のアプリシークレットを使用したHMACで署名が付けられます。詳細については、[Webhookのセキュリティーに関するドキュメント](/docs/api-reference/webhooks-webhooks-v3/guide#security)をご確認ください(このページの残りの部分は、これらのビデオ会議拡張機能Webhookには当てはまりません)。 ### ミーティング作成Webhook ミーティングが作成されると、HubSpotは`createMeetingUrl`フィールドで指定されたURLにリクエストを送信します。リクエストのペイロードは、HubSpotアカウントに関する情報、関連するHubSpotユーザー、ミーティングの詳細で構成されます。 ```json theme={null} // Example payload { "portalId": 123123, "userId": 123, "userEmail": "test.user@example.com", "topic": "A Test Meeting", "source": "MEETINGS", "startTime": 1534197600000, "endTime": 1534201200000 } ``` | フィールド | 型 | 説明 | | - | - | - | | `portalId` | 数値 | リクエストの送信元HubSpotアカウントのID。 | | `userId` | 数値 | ミーティングに割り当てられているHubSpotユーザーのID。 | | `userEmail` | 文字列 | ミーティングに割り当てられているHubSpotユーザーのEメールアドレス。 | | `topic` | 文字列 | ミーティングのタイトル。 | | `source` | 文字列 | ミーティングが作成された場所を示します。有効な値は次のとおりです。
        • `MEETINGS`:ミーティングは[ミーティングスケジュール設定ページ](https://knowledge.hubspot.com/meetings-tool/create-and-edit-scheduling-pages#create-scheduling-pages)で作成されました。
        • `MANUAL`:ミーティングは手動でCRMレコードから作成されました。
        | | `startTime` | 数値 | ミーティングの開始時刻(エポックミリ秒)。 | | `endTime` | 数値 | ミーティングの終了時刻(エポックミリ秒)。 | このWebhookを正常に処理するには、開発者がこのミーティング用のビデオ会議を生成(または、既存の会議にリンク)し、その会議に関する情報をレスポンスとして返す必要があります。このレスポンス内に想定されるフィールドは次のとおりです。 * `conferenceId`:このイベントで会議に関連付けられた固有のID。 このIDはシステム全体で重複しない値にする必要があります。HubSpotはこのIDを 更新Webhookで返します。 * `conferenceUrl:`ユーザーが会議に参加するために使用するURL。 * `conferenceDetails`:招待に関するプレーンテキストの情報。ここで、 イベントの出席者がこのビデオ会議にアクセスする方法が 説明されます。このテキスト内では改行が維持されますが、改行以外の書式はサポートされません。 例えば、次のようなレスポンスになります。 ```json theme={null} //example response { "conferenceId": "some-unique-id", "conferenceUrl": "https://example.com/join", "conferenceDetails": "Click here to join: https://example.com/join" } ``` ### ミーティング更新Webhook `updateMeetingUrl`を指定した場合、HubSpotはミーティング関連の詳細が変更されるたびに、このURIにリクエストを送信します。ビデオ会議のトピックまたは開催時間を最新の状態に維持する必要がある場合は、この通知が欠かせません。リクエストのペイロードは、HubSpotアカウントに関する情報、関連するHubSpotユーザー、ミーティングの詳細で構成されます。 ```json theme={null} //example request { "conferenceId": "some-unique-id", "userId": 123, "userEmail": "test.user@example.com", "portalId": 123123, "topic": "A Test Meeting (updated)", "startTime": 1534197600000, "endTime": 1534201200000 } ``` | フィールド | 型 | 説明 | | - | - | - | | `conferenceId` | 文字列 | ミーティング作成Webhookへのレスポンスとして、貴社の連携によって提供される会議の固有ID。 | | `userId` | 数値 | ミーティングに割り当てられているHubSpotユーザーのID。値は常に、ミーティング作成ペイロードに含まれるユーザーの値と同じです。 | | `userEmail` | 文字列 | ミーティングに割り当てられているHubSpotユーザーのEメールアドレス。値は常に、ミーティング作成ペイロードに含まれるユーザーの値と同じです。 | | `portalId` | 数値 | リクエストの送信元HubSpotアカウントのID。 | | `topic` | 文字列 | ミーティングのタイトル。 | | `startTime` | 数値 | ミーティングの開始時刻(エポックミリ秒)。 | | `endTime` | 数値 | ミーティングの終了時刻(エポックミリ秒)。 | これらのリクエストに応答する際のレスポンスに本文は必要ありません。必要なのは、このWebhookが正常に受信されたことをHubSpotに通知する`200`または`204`レスポンスコードのみです。 ### ミーティング削除Webhook HubSpotでミーティングが削除されると、`deleteMeetingUrl`フィールドで指定されたURLにリクエストが送信されます。ペイロードには、削除されたミーティングの`conferenceId`が含まれます。 ```json theme={null} // Example payload { "conferenceId": "some-unique-id" } ``` これらのリクエストに応答する際のレスポンスに本文は必要ありません。必要なのは、このWebhookが正常に受信されたことをHubSpotに通知する`200`または`204`レスポンスコードのみです。 ### ユーザー確認Webhook HubSpotのシステムは常に貴社のシステムに対し、ユーザーのHubSpot上のユーザーIDとHubSpotアカウントのEメールアドレスを通知します。HubSpotのシステム内のユーザーが、貴社のシステム上で別のEメールアドレスまたはIDとして存在する可能性があります。 HubSpotは、ビデオ会議リンクを作成、更新、削除するために貴社のシステムを呼び出す前に、アプリの設定で`userVerifyUrl`フィールドを確認します。このフィールドにURLが設定されている場合、HubSpotはネイティブユーザーIDを取得するために、そのURLを呼び出します。取得したIDは、以降のリクエストでユーザーのEメールアドレスとして送信されます。ユーザー確認用のURLが設定されていない場合、HubSpotは常に、ユーザーのIDは確認済みであると見なします。 この設定は任意であり、必要であるかどうかは自由に判断できます。システム内でユーザーマッピングを維持する必要があれば、呼び出しごとにHubSpotユーザーのIDまたはEメールアドレスを内部ユーザーIDにマッピングすることも可能です。 このWebhookのペイロードには、HubSpotアカウントIDとユーザーのEメールアドレスが含まれます。 ```json theme={null} //example request { "portalId": 123123, "userEmail": "test.user@example.com" } ``` `200`レスポンスまたは任意のエラーコード(`404`が適切です)を返すことができます。`200`を返す場合は、Eメールアドレスとして使用できる新しいIDを格納したペイロードを返してください。 ```json theme={null} //example response { "id": "any-string-id" } ``` # Create or update settings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/extensions/video-conferencing-extension/update-video-conferencing-extension specs/2026-09/crm-video-conferencing-extension-v2026-09.json PUT /crm/extensions/videoconferencing/2026-09/settings/{appId} アプリのビデオ会議拡張機能の設定を作成または更新 > **Supported products** # Cancel an active import Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/imports/cancel-import specs/2026-09/crm-imports-v2026-09.json POST /crm/imports/2026-09/{importId}/cancel これにより、開発者は有効なインポートをキャンセルできます。 > **Supported products** > **Required Scopes** # Start an import Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/imports/create-import specs/2026-09/crm-imports-v2026-09.json POST /crm/imports/2026-09 ファイルをアップロードし、インポート設定を指定して、HubSpotアカウントで新しいインポートを作成します。このエンドポイントを使用すると、必要なファイルと設定の詳細を指定してインポートプロセスを開始できます。 > **Supported products** > **Required Scopes** # Get the information on any import Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/imports/get-import specs/2026-09/crm-imports-v2026-09.json GET /crm/imports/2026-09/{importId} インポートレコードの完全な概要(更新を含む)。 > **Supported products** > **Required Scopes** # Retrieve errors for a specific import Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/imports/get-import-errors specs/2026-09/crm-imports-v2026-09.json GET /crm/imports/2026-09/{importId}/errors 特定のインポート処理の詳しいエラーレコードを取得し、処理中に失敗したレコードを特定してトラブルシューティングできるようにします。 > **Supported products** > **Required Scopes** # Retrieve imports Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/imports/get-imports specs/2026-09/crm-imports-v2026-09.json GET /crm/imports/2026-09 HubSpotアカウント内のインポートリストを取得します。このエンドポイントを使用すると、処理されたインポートを表示し、各インポートの詳細を確認できます。大量のインポートデータをナビゲートするためのページ分割をサポートしています。 > **Supported products** > **Required Scopes** # CRM API | インポート Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/imports/guide > **[Run in Postman](https://app.getpostman.com/run-collection/f30b00bcfdc29170b2e8)** > **スコープ要件** # インポート インポートAPIは、コンタクト、会社、コメントなどのCRMレコードとアクティビティーをHubSpotアカウントにインポートする際に使用します。インポートが完了した後は、レコードとアクティビティーへのアクセスおよび更新は、[コンタクトAPI、](/docs/guides/crm/understanding-the-crm)[関連付け](/docs/api-reference/crm-associations-v4/guide)API、[エンゲージメントAPI](/docs/api-reference/overview)などの各種CRM APIエンドポイントを通じて行えます。また、[HubSpotのガイド付きインポートツールを使用してレコードとアクティビティーをインポートする](https://knowledge.hubspot.com/ja/import-and-export/import-objects)こともできます。 インポートを開始する前に、次のナレッジベース記事をご確認ください。 * [ファイル要件](https://knowledge.hubspot.com/ja/import-and-export/set-up-your-import-file#file-requirements-and-technical-limits) * [レコードとアクティビティーのインポートに必要なプロパティー](https://knowledge.hubspot.com/ja/import-and-export/set-up-your-import-file#required-properties) * [マーケティングイベント参加者のインポートに必要なプロパティー](https://knowledge.hubspot.com/ja/integrations/import-marketing-event-participants#prepare-your-import-file) > [!WARNING] > > ### 注: > > カスタムイベントを作成する、またはイベントをレコードに関連付けるには、インポートではなく[カスタムイベントAPI](https://developers.hubspot.jp/docs/api-reference/events-send-event-completions-v3/guide)をご使用ください。 ## インポートを開始する インポートを開始するには、`POST`リクエストを`/crm/v3/imports`に送信します。その際、インポートファイルの列をHubSpot上の関連するプロパティーに割り当てる方法をリクエスト本文で指定します。 APIインポートはform-dataタイプのリクエストとして送信され、リクエスト本文には次のフィールドが含まれます。 * [importRequest](#format-the-importrequest-data):リクエストのJSONを格納するテキストフィールド。 * [files](#map-file-columns-to-hubspot-properties):インポートファイルを格納するファイルフィールド。 リクエストヘッダーには、`multipart/form-data`の値が含まれる`Content-Type`ヘッダーを追加します。 以下のスクリーンショットは、Postmanなどのアプリを使用したリクエストの例です ![応答がないpostmanインポートリクエスト](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/postman-import-request-no-response0.png) ### importRequestデータを書式設定する リクエストでは、インポートファイルの詳細(スプレッドシートの列のHubSpotデータに対するマッピングなど)を定義します。また、次のフィールドを含める必要があります。 * **name**:インポートの名前。これはHubSpot上で、リストなどの他のツールで参照できる名前で、[インポートツールにも表示される](https://knowledge.hubspot.com/ja/import-and-export/view-and-analyze-previous-imports)名前です。 * **importOperations**:この任意指定のフィールドを使用して、インポートで特定のオブジェクトやアクティビティーの[レコードの作成と更新、作成のみ、または更新のみ](https://knowledge.hubspot.com/ja/import-and-export/import-objects#choose-how-to-import)のいずれを行うかを指示します。オブジェクト/アクティビティーの`objectTypeId`を指定し、レコードの`UPSERT`(作成と更新)、`CREATE`、または`UPDATE`を行いたいかどうかを指定します。例えばリクエストのフィールドは次のようになります:`"importOperations": {"0-1": "CREATE"}`このフィールドを含めない場合、インポートに使用されるデフォルト値は`UPSERT`です。 * **dateFormat**:ファイルに含まれる日付の形式。これは既定では`MONTH_DAY_YEAR`に設定されていますが、`DAY_MONTH_YEAR`または`YEAR_MONTH_DAY`も使用できます。 * **marketableContactImport**:インポートファイルに含まれるコンタクトの[マーケティングステータス](https://knowledge.hubspot.com/ja/records/marketing-contacts)を示す任意指定のフィールド。これは、[マーケティングコンタクトの利用](https://knowledge.hubspot.com/ja/records/marketing-contacts#check-your-access-to-marketing-contacts)が可能なアカウントにコンタクトをインポートする場合にのみ使用します。ファイル内のコンタクトをマーケティング対象として設定するには、`true`の値を使用します。ファイル内のコンタクトをマーケティング対象外として設定するには、`false`の値を使用します。 * **createContactListFromImport**:インポートから[コンタクトの静的リストを作成](https://knowledge.hubspot.com/ja/import-and-export/import-objects#create-list-from-import)するための任意指定のフィールド。ファイルからリストを作成するには、`true`の値を使用します。 * **files**:インポートファイルの情報を格納する配列。 * **fileName**:インポートファイルの名前。 * **fileFormat**:インポートファイルの形式。CSVファイルの場合に使用する値は`CSV`です。Excelファイルの場合に使用する値は`SPREADSHEET`です。 * **fileImportPage**:インポートファイルのデータをHubSpotデータにマッピングするために必要な`columnMappings`配列が含まれます。列のマッピングの詳細については、以下で説明しています。 ### HubSpotプロパティーにファイルの列をマッピングする `columnMappings`配列内には、スプレッドシートの列ヘッダーの順序に合わせて、インポートファイルの各列に対応するエントリーを含めます。 各列には、次のフィールドを格納します。 * **columnObjectTypeId**: データが属するオブジェクトまたはアクティビティーの名前または`objectTypeId`値。`objectTypeId`値の一覧については、[こちらの記事](/docs/guides/crm/understanding-the-crm#object-type-id)をご覧ください。 * **columnName**: 列ヘッダーの名前。これは、ファイルの列ヘッダーの名前に完全一致する必要があります。 * **propertyName**: データのマッピング先となるHubSpotプロパティーの内部名。`toColumnObjectTypeId`フィールドが使用されている場合、[複数ファイルのインポート](#import-multiple-files)で共通する列では、`propertyName`が`null`である必要があります。 * **columnType**:これを使用して、列に[固有IDプロパティー](https://knowledge.hubspot.com/ja/import-and-export/understand-the-import-tool#unique-identifiers)が含まれることを指定します。インポートのプロパティーと目標に応じて、次のいずれかの値を使用します。 * **HUBSPOT\_OBJECT\_ID**: レコードのID。例えば、コンタクトのインポートファイルに、コンタクトに関連付けられる会社のIDを格納する「レコードID」列を含めるケースが考えられます。\_ \_ * **HUBSPOT\_ALTERNATE\_ID**: レコードID以外の固有ID。例えば、コンタクトのインポートファイルに、コンタクトのEメールアドレスを格納した「Eメール」列を含めるケースが考えられます。\_ \_ * **FLEXIBLE\_ASSOCIATION\_LABEL**:関連付けラベルが列に含まれることを示すには、この列タイプを含めます。 * **ASSOCIATION\_KEYS**:同じオブジェクト関連付けインポートの場合にのみ、関連付けられる同じオブジェクトレコードの固有IDにこの列タイプを含めます。例えば、連絡先の関連付けをインポートするリクエストでは、「Associated contact \[email/Record ID]」列の`columnType`を`ASSOCIATION_KEYS`にする必要があります。\_ \_詳しくは、[同じオブジェクト関連付けインポート用にインポートファイルを設定する](https://knowledge.hubspot.com/ja/import-and-export/set-up-your-import-file#same-object-association-imports)方法についてご確認ください。 * **toColumnObjectTypeId**:[複数のファイル](#import-multiple-files)または複数のオブジェクトをインポートする場合の、[共通する列](https://knowledge.hubspot.com/ja/import-and-export/set-up-your-import-file#import-associations-in-two-files)プロパティーまたは関連付けラベルが属するオブジェクトの名前または`objectTypeId`。プロパティーが属していないオブジェクトのファイルに共通する列プロパティー用にこのフィールドを含めます。例えば、共通する列として[Eメール]コンタクトプロパティーを持つ2つのファイルのコンタクトと会社を関連付ける場合、会社ファイルの「Eメール」列用に`toColumnObjectTypeId`を含めます。\_ \_\_ \_ * **foreignKeyType**:`associationTypeId`と`associationCategory`で指定された、共通の列が使用する関連付けのタイプ([複数ファイルのインポート](#import-multiple-files)の場合のみ)。プロパティーが属していないオブジェクトのファイルに共通する列プロパティー用にこのフィールドを含めます。例えば、共通する列として[Eメール]コンタクトプロパティーを持つ2つのファイルのコンタクトと会社を関連付ける場合、会社ファイルの「Eメール」列用に`foreignKeyType`を含めます。\_ \_\_ \_ * **associationIdentifierColumn**:レコードを関連付けるために共通の列で使用されるプロパティーを示します([複数ファイルのインポート](#import-multiple-files)の場合のみ)。プロパティーが属しているオブジェクトのファイルに共通する列プロパティー用にこのフィールドを含めます。例えば、共通する列として[Eメール]コンタクトプロパティーを持つ2つのファイルのコンタクトと会社を関連付ける場合、会社ファイルの「Eメール」列について`associationIdentifierColumn`を`true`に設定します。\_ \_\_ \_ ## 1つのオブジェクトを含む1つのファイルをインポートする 以下は、1つのファイルをインポートしてコンタクトを作成するためのリクエスト本文の例です。 ```json example.json theme={null} // Example POST to https://api.hubspot.com/crm/v3/imports // Content-Type header set to multipart/form-data { "name": "November Marketing Event Leads", "importOperations": { "0-1": "CREATE" }, "dateFormat": "DAY_MONTH_YEAR", "files": [ { "fileName": "Nov-event-leads.csv", "fileFormat": "CSV", "fileImportPage": { "hasHeader": true, "columnMappings": [ { "columnObjectTypeId": "0-1", "columnName": "First Name", "propertyName": "firstname" }, { "columnObjectTypeId": "0-1", "columnName": "Last Name", "propertyName": "lastname" }, { "columnObjectTypeId": "0-1", "columnName": "Email", "propertyName": "email", "columnType": "HUBSPOT_ALTERNATE_ID" } ] } } ] } ``` ```python example.py theme={null} # This example a local file named 'test_import.csv' # This file contains a list of contact records to import. import requests import json import os url = "https://api.hubapi.com/crm/v3/imports" YOUR_ACCESS_TOKEN = 'xxxxxxx'; # Content-Type header will be set automatically by the requests library headers = { 'authorization': 'Bearer %s' % YOUR_ACCESS_TOKEN } data = { "name": "November Marketing Event Leads", "importOperations": { "0-1": "CREATE" }, "dateFormat": "DAY_MONTH_YEAR", "files": [ { "fileName": "Nov-event-leads.csv", "fileFormat": "CSV", "fileImportPage": { "hasHeader": True, "columnMappings": [ { "columnObjectTypeId": "0-1", "columnName": "First Name", "propertyName": "firstname" }, { "columnObjectTypeId": "0-1", "columnName": "Last Name", "propertyName": "lastname" }, { "columnObjectTypeId": "0-1", "columnName": "Email", "propertyName": "email", "columnType": "HUBSPOT_ALTERNATE_ID" } ] } } ] } datastring = json.dumps(data) payload = {"importRequest": datastring} current_dir = os.path.dirname(__file__) relative_path = "./test_import.csv" absolute_file_path = os.path.join(current_dir, relative_path) files = [ ('files', open(absolute_file_path, 'rb')) ] print(files) response = requests.request("POST", url, data=payload, files=files, headers=headers) print(response.text.encode('utf8')) print(response.status_code) ``` ```text シェルスクリプト.txt theme={null} # Using this endpoint requires using sending multi-part form encoded data. Here is an example curl request: # importing a file named import_file.csv # create a variable for the importRequest JSON myJSON=$(cat < [!WARNING] > > ### 注: > > インポートを取得する際、レスポンスには同じアプリによって実行されたインポートのみが含まれます。HubSpotまたは別のアプリを介して完了したインポートは返されません。 ## インポートをキャンセルする インポートをキャンセルするには、`/crm/v3/imports/{importId}/cancel`に`POST`リクエストを送信します。 ## インポートエラーの意味とトラブルシューティング 特定のインポートのエラーを表示するには、`/crm/v3/imports/{importId}/errors`に`GET`リクエストを送信します。[典型的なインポートエラーとその解決方法](https://knowledge.hubspot.com/ja/import-and-export/troubleshoot-import-errors)で詳細をご確認ください。 「列数が正しくありません」、「JSONを解析できません」」、「このURLは解析できません」、「404 text/htmlは受け付けられません」などのエラーが返された場合は、次のようにします。 * ファイル内の各列に列ヘッダーがあり、リクエスト本文に各列の`columnMapping`エントリが含まれていることを確認します。次の条件を満たしている必要があります。 * リクエスト本文とインポートファイルの列の順序は一致していなければなりません。列の順序が一致しない場合、自動的な並べ替えの試行に失敗し、インポートの開始時にエラーが発生する可能性があります。 * 全ての列がマッピングされていなければなりません。列がマッピングされていない場合でもインポートリクエストは成功する可能性がありますが、インポートの開始時に「列数が正しくありません」というエラーが発生する場合もあります。 * ファイルの名前がリクエストのJSONの`fileName`フィールドと一致していて、`fileName`フィールドにファイル拡張子が含まれていることを確かめてください(例:*import\_name.csv*)。 * `multipart/form-data`の値のある`Content-Type`がヘッダーが含まれていることを確かめます。 ```json example.json theme={null} Example POST URL: https://api.hubapi.com/crm/v3/imports? Example importRequest JSON data: This example contains 3 columns: - First name, mapped to the firstname contact property - Email, mapped to the email contact property - Company ID, which contains a list of company record IDs that the contact will be assocated with. { "name": "test_import", "files": [ { "fileName": "final_emails.csv", "fileImportPage": { "hasHeader": true, "columnMappings": [ { "ignored": false, "columnName": "First Name", "idColumnType": null, "propertyName": "firstname", "foreignKeyType": null, "columnObjectType": "CONTACT", "associationIdentifierColumn": false }, { "ignored": false, "columnName": "Email", "idColumnType": "HUBSPOT_ALTERNATE_ID", "propertyName": "email", "foreignKeyType": null, "columnObjectType": "CONTACT", "associationIdentifierColumn": false }, { "ignored": false, "columnName": "Company ID", "idColumnType": "HUBSPOT_OBJECT_ID", "propertyName": null, "foreignKeyType": { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 1 }, "columnObjectType": "CONTACT", "associationIdentifierColumn": false } ] } } ] } ``` ```python example.py theme={null} # This example a local file named 'final_emails.csv' # This file contains a list of contact records to import. # Each row in the file contains a column named "Company ID" that contains the companyId # that the contact should be associated with. import requests import json post_url = 'http://api.hubapi.com/crm/v3/imports?hapikey=4324...5432' importRequest = { "name": "test_import", "files": [ { "fileName": "final_emails.csv", "fileImportPage": { "hasHeader": True, "columnMappings": [ { "ignored": False, "columnName": "First Name", "idColumnType": None, "propertyName": "firstname", "foreignKeyType": None, "columnObjectType": "CONTACT", "associationIdentifierColumn": False }, { "ignored": False, "columnName": "Email", "idColumnType": "HUBSPOT_ALTERNATE_ID", "propertyName": "email", "foreignKeyType": None, "columnObjectType": "CONTACT", "associationIdentifierColumn": False }, { "ignored": False, "columnName": "Company ID", "idColumnType": "HUBSPOT_OBJECT_ID", "propertyName": None, "foreignKeyType": { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 1 }, "columnObjectType": "CONTACT", "associationIdentifierColumn": False } ] } } ] ``` ```php example.php theme={null} $csv_file, "importRequest" => $config_json ); $ch = curl_init(); @curl_setopt($ch, CURLOPT_POST, true); @curl_setopt($ch, CURLOPT_URL, $post_url); @curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); $response = @curl_exec($ch); //Log the response from HubSpot as needed. $status_code = @curl_getinfo($ch, CURLINFO_HTTP_CODE); //Log the response status code @curl_close($ch); echo $status_code . " " . $response; ?> ``` ```text シェルスクリプト.txt theme={null} # Using this endpoint requires using sending multi-part form encoded data. Here is an example curl request: # importing a file named import_file.csv # create a variable for the importRequest JSON myJSON=$(cat < [!WARNING] > > ### 注: > > エラーが発生する場合は、`Content-Type`などの重複するヘッダーがあるかどうかを確認してください。これが発生する可能性があるのは、Postmanを使用しているか、PythonスクリプトのヘッダーにPostmanが含まれている場合です。リクエストを完了する前に重複を削除してください。 ## 上限 インポートAPIを使用すると、1日あたり最大80,000,000行をインポートできます。ただし、個々のインポートファイルの上限として、1,048,576行または512MBのうち最初に到達した条件が適用されます。 リクエストが行制限またはサイズ制限のいずれかを超えた場合、HubSpotから429 HTTPエラーが返されます。このような上限に近づいたら、インポートを複数のリクエストに分割することをお勧めします。 # Read calculation property limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-calculated-properties specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/calculated-properties 計算プロパティーの全体の上限とオブジェクトごとの使用状況が返されます > **Supported products** > **Required Scopes** # Read custom object limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-custom-object-types specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/custom-object-types カスタム オブジェクト スキーマの上限と使用状況が返されます > **Supported products** > **Required Scopes** # Read custom property limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-custom-properties specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/custom-properties カスタムプロパティーのオブジェクトごとの上限と使用状況が返されます > **Supported products** > **Required Scopes** # Read record association limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-from specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/associations/records/from 関連付けの上限に近づいているか、上限に達したレコードが含まれるオブジェクトが返されます > **Supported products** > **Required Scopes** # Read association label limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-limits-tracking specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/associations/labels カスタム関連付けラベルの上限と使用状況が返されます > **Supported products** > **Required Scopes** # Read record association limits from an object Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-limits-tracking-fromObjectTypeId specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/associations/records/{fromObjectTypeId}/to その関連付け元オブジェクトに関連付けの上限に近づいているか、上限に達したレコードが含まれるオブジェクトが返されます > **Supported products** > **Required Scopes** # Read record association limits between two objects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-limits-tracking-toObjectTypeId specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/associations/records/{fromObjectTypeId}/{toObjectTypeId} 2つのオブジェクト間で関連付けの上限に近づいているか、上限に達したレコードが返されます > **Supported products** > **Required Scopes** # Read pipeline limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-pipelines specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/pipelines パイプラインのオブジェクトごとの上限と使用状況が返されます > **Supported products** > **Required Scopes** # Read record limits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/get-records specs/2026-09/crm-limits-tracking-v2026-09.json GET /crm/limits/2026-09/records レコードのオブジェクトごとの上限と使用状況が返されます > **Supported products** > **Required Scopes** # Limits Tracking API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/limits-tracking/guide # Create List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/create-list specs/2026-09/crm-lists-v2026-09.json POST /crm/lists/2026-09 指定されたパラメーターを使用して、HubSpotアカウントに新しいリストを作成します。このエンドポイントでは、リストのプロパティーと条件を定義でき、コンタクトやその他のCRMオブジェクトを整理して管理するために使用できます。 > **Supported products** > **Required Scopes** # Delete Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/delete-list specs/2026-09/crm-lists-v2026-09.json DELETE /crm/lists/2026-09/{listId} 固有IDを使用して、HubSpotアカウント内の特定のリストを削除します。この操作により、リストとその関連付けられたデータが完全に削除され、アクセスできなくなります。 > **Supported products** > **Required Scopes** # List all Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/get-all-lists specs/2026-09/crm-lists-v2026-09.json POST /crm/lists/2026-09/all CRMシステム内のすべてのリストを取得します。このエンドポイントでは、使用可能なすべてのリストの包括的なリストを取得でき、CRMデータを効果的に管理および整理するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/get-list specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/object-type-id/{objectTypeId}/name/{listName} HubSpotアカウントで、名前とオブジェクトタイプIDを使用して特定のリストを取得します。このエンドポイントでは、リストの詳細にアクセスでき、CRMデータを管理して分析できます。レスポンスにフィルターを含めることもできます。 > **Supported products** > **Required Scopes** # Retrieve segment size and edits history Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/get-list-history specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/{listId}/size-and-edits-history/between 定義済みの日付範囲内の特定のリストのサイズと編集履歴を取得します。このエンドポイントは、変更を追跡し、リストサイズの変化の推移追跡してその進化を把握するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve list Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/get-list-listId specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/{listId} リストの固有IDを使用して、HubSpotアカウント内の特定のリストの詳細を取得します。このエンドポイントでは、必要に応じてリストに関連付けられたフィルターをレスポンスに含めることができます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/get-lists specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09 HubSpotアカウントのCRMリストのリストを取得します。このエンドポイントでは、リストをIDで絞り込み、必要に応じてリストに適用されるフィルターを含めることができます。特定のリストにアクセスすることで、CRMデータを管理および整理するのに役立ちます。 > **Supported products** > **Required Scopes** # Segments API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/guide # Restore Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/restore-list specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/restore HubSpotアカウントで以前に削除したリストを復元します。この操作により、削除されたリストを復元し、関連付けられたデータや設定をすべて回復できます。これは、誤って削除されたリストや、今後の操作で再度必要になるリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update list name Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/update-list-name specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/update-list-name HubSpotアカウント内の特定のリストの名前を更新します。このエンドポイントでは、新しい名前をクエリーパラメーターとして指定することで、リストの名前を変更できます。リストを整理し、関連性の高いタイトルで最新の状態に保つのに役立ちます。 > **Supported products** > **Required Scopes** # Segment (list) filters overview Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/filters/guide # Update list filters Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/filters/update-list-filters specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/update-list-filters HubSpotアカウント内の特定のリストのフィルターを更新します。この操作により、リストにオブジェクトを含めるために使用される条件を変更できます。更新されたフィルターに基づいて、オブジェクトをワークフローに登録する必要があるかどうかも指定できます。 > **Supported products** > **Required Scopes** # Retrieve ID Mapping Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/id-mapping/translate-id specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/idmapping HubSpotシステムで、旧リストIDから現在のIDへの対応付けを取得します。このエンドポイントは、旧リストIDに依存するシステムを移行または更新する場合に役立ちます。 > **Supported products** > **Required Scopes** # Map IDs Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/id-mapping/translate-id-batch specs/2026-09/crm-lists-v2026-09.json POST /crm/lists/2026-09/idmapping 旧リストIDをHubSpotシステム内の対応する新しいIDに対応付けます。このエンドポイントは、古いシステムから現在のHubSpot構造にデータを移行するのに役立ち、すべてのリスト参照が適切に更新されるようにできます。 > **Supported products** > **Required Scopes** # Cancel the conversion of a segment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/cancel-conversion specs/2026-09/crm-lists-v2026-09.json DELETE /crm/lists/2026-09/{listId}/schedule-conversion HubSpotアカウント内の特定のリストに対してスケジュールされたコンバージョンを削除します。この操作は、listIdで識別されるリストに対して以前にスケジュールしたコンバージョンをキャンセルする必要がある場合に役立ちます。 > **Supported products** > **Required Scopes** # Create Folder Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/create-folder specs/2026-09/crm-lists-v2026-09.json POST /crm/lists/2026-09/folders HubSpotアカウントのCRMリスト内に新しいフォルダーを作成します。この操作により、リストをフォルダーに整理して、管理やアクセスをしやすくできます。 > **Supported products** > **Required Scopes** # Delete folder Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/delete-folder specs/2026-09/crm-lists-v2026-09.json DELETE /crm/lists/2026-09/folders/{folderId} フォルダーの固有IDを指定して、CRMリスト内の特定のフォルダーを削除します。この操作は、不要になったフォルダーを削除したり、CRMリスト内のフォルダー構造を整理したりするのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve the conversion details for a segment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/get-conversion-details specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/{listId}/schedule-conversion HubSpotアカウント内の特定のリストについて、スケジュール済みコンバージョンの詳細を取得します。このエンドポイントは、指定されたリストのスケジュール済みコンバージョンに関する情報を提供し、リストのコンバージョンを効果的に管理および追跡できます。 > **Supported products** > **Required Scopes** # List folders Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/get-folder specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/folders CRMリスト内のフォルダーのリストを取得します。このエンドポイントは、フォルダーIDを指定することでフォルダー構造を移動するために使用できます。フォルダー内のリストを整理および管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Move Folder Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/move-folder specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/folders/{folderId}/move/{newParentFolderId} CRMリスト内でフォルダーを新しい親フォルダーに移動します。この操作は、指定されたフォルダーの親フォルダーを変更することで、フォルダー構造を再編成するのに役立ちます。 > **Supported products** > **Required Scopes** # Move List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/move-list-to-folder specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/folders/move-list HubSpotアカウント内のリストを別のフォルダーに移動します。この操作には、リストとターゲットフォルダーを指定する必要があります。リストをさまざまなカテゴリーや構造に整理するのに役立ちます。 > **Supported products** > **Required Scopes** # Rename folder Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/rename-folder specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/folders/{folderId}/rename フォルダーのIDと新しい名前を指定することで、CRMリスト内の既存のフォルダーの名前を変更します。これは、アカウント内のフォルダー構造を整理および更新するのに役立ちます。 > **Supported products** > **Required Scopes** # Schedule or update the conversion of a segment to static Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/list-management/schedule-conversion specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/schedule-conversion HubSpotアカウント内の特定のリストのコンバージョンをスケジュールします。この操作により、listIdで識別されるリストのコンバージョン時間を設定できます。このエンドポイントを使用して、リストのコンバージョンスケジュールを効果的に管理できます。 > **Supported products** > **Required Scopes** # Add memberships Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/add-to-list specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/memberships/add HubSpotアカウントの指定されたリストにメンバーシップを追加します。このエンドポイントでは、listIdで識別されるリストに複数のメンバーシップを追加できます。これは、リストメンバーシップを一括で管理するのに役立ち、指定されたレコードが確実にリストに含まれるようになります。 > **Supported products** > **Required Scopes** # Add memberships Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/add-to-list-from-source-list specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/memberships/add-from/{sourceListId} 別のソースリストから指定されたリストにメンバーシップを追加します。この操作は、あるリストから別のリストにメンバーを転送することで、リストメンバーシップを統合するのに役立ちます。このエンドポイントでは、正常に実行されてもコンテンツが返されません。 > **Supported products** > **Required Scopes** # Delete all records from a segment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/delete-list-listId specs/2026-09/crm-lists-v2026-09.json DELETE /crm/lists/2026-09/{listId}/memberships HubSpotアカウント内の特定のリストに関連付けられているすべてのメンバーシップを削除します。この操作は、リストからすべてのメンバーを削除し、メンバーシップデータを効果的にクリアする必要がある場合に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve memberships Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/get-lists-per-record specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/records/{objectTypeId}/{recordId}/memberships 指定されたオブジェクトタイプ内の特定のレコードのリストメンバーシップを取得します。このエンドポイントは、指定されたオブジェクトタイプとレコードIDに基づいて、特定のレコードがどのリストのメンバーであるかを把握するのに役立ちます。 > **Supported products** > **Required Scopes** # Batch read memberships Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/get-memberships-batch specs/2026-09/crm-lists-v2026-09.json POST /crm/lists/2026-09/records/memberships/batch/read 指定されたリスト内のレコードのメンバーシップ情報をバッチ取得します。このエンドポイントは、メンバーシップの詳細を一括で取得するのに役立ち、複数のレコードを扱う際に効率的なデータを取得できます。 > **Supported products** > **Required Scopes** # Fetch segment memberships ordered by added to segment date Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/get-memberships-by-added-date specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/{listId}/memberships/join-order HubSpotアカウント内の特定のリストにおけるメンバーシップの参加順序を取得します。このエンドポイントでは、レコードがリストに参加した順序を表示でき、メンバーシップの変更の推移を追跡するのに役立ちます。 > **Supported products** > **Required Scopes** # List memberships Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/get-memberships-by-id specs/2026-09/crm-lists-v2026-09.json GET /crm/lists/2026-09/{listId}/memberships HubSpotアカウント内の特定のリストのメンバーシップを取得します。このエンドポイントでは、カーソルベースのページ分割を使用してリストメンバーシップをページ分割できます。特定のリストの詳細なメンバーシップ情報を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Remove segment memberships Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/remove-from-list specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/memberships/remove HubSpotアカウントの特定のリストからメンバーシップを削除します。この操作は、指定されたレコードをリストから削除することで、リストメンバーシップを管理するのに役立ちます。このリクエストには、指定されたリストから削除するレコードIDのリストが必要です。 > **Supported products** > **Required Scopes** # Update segment membership Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/memberships/update-list-memberships specs/2026-09/crm-lists-v2026-09.json PUT /crm/lists/2026-09/{listId}/memberships/add-and-remove 単一の操作でメンバーの追加および削除を行うことで、リストのメンバーシップを更新します。このエンドポイントでは、1つのリクエストで追加するメンバーと削除するメンバーを指定することにより、リストメンバーシップを効率的に管理できます。 > **Supported products** > **Required Scopes** # Search Lists Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/lists/search/search-lists specs/2026-09/crm-lists-v2026-09.json POST /crm/lists/2026-09/search さまざまな条件を使用して、HubSpotアカウント内のリストを検索します。このエンドポイントでは、特定の検索パラメーターに基づいてリストを絞り込んで取得できるため、リストを効果的に管理および整理しやすくなります。 > **Supported products** > **Required Scopes** # Create a batch of appointments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/batch/create-appointments specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/create 1つのリクエストで複数のアポイントを作成します。 > **Supported products** > **Required Scopes** # Archive a batch of appointments by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/batch/delete-appointments specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/archive IDを使用して複数のアポイントをアーカイブします。 > **Supported products** > **Required Scopes** # Read a batch of appointments by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/batch/get-appointments specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update a batch of appointments by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/batch/update-appointments specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/update HubSpotで指定されたタイプのCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを変更できるため、一括更新を効率的に行えます。リクエストボディには、更新するオブジェクトとそのプロパティーを含める必要があります。 > **Supported products** > **Required Scopes** # Create or update a batch of appointments by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/batch/upsert-appointments specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create appointment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/create-appointment specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType} 特定のプロパティーを使用してアポイントを作成し、IDを含めてそのオブジェクトのコピーを返します。標準アポイントの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Delete appointment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/delete-appointment specs/2026-09/crm-appointments-v2026-09.json DELETE /crm/objects/2026-09/{objectType}/{objectId} 「{appointmentId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Retrieve appointment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/get-appointment specs/2026-09/crm-appointments-v2026-09.json GET /crm/objects/2026-09/{objectType}/{objectId} 「{appointmentId}」によって特定されるオブジェクトを読み取ります。「{appointmentId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve appointments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/get-appointments specs/2026-09/crm-appointments-v2026-09.json GET /crm/objects/2026-09/{objectType} アポイントのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Appointments API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/guide # Merge two appointments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/merge/merge-appointments specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType}/merge 2つのオブジェクトタイプをマージ > **Supported products** > **Required Scopes** # Appointment object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/object-definition # Search for appointments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/search/search-appointments specs/2026-09/crm-appointments-v2026-09.json POST /crm/objects/2026-09/{objectType}/search 指定された条件に基づいてアポイントを検索します。[CRM検索](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Update appointment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/appointments/update-appointment specs/2026-09/crm-appointments-v2026-09.json PATCH /crm/objects/2026-09/{objectType}/{objectId} 「{appointmentId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{appointmentId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create carts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/batch/create-carts specs/2026-09/crm-carts-v2026-09.json POST /crm/objects/2026-09/carts/batch/create HubSpotアカウントでCRMオブジェクトをバッチ作成します。このエンドポイントでは、プロパティーを指定することで、複数のオブジェクトを一度に作成できます。レスポンスには、IDを含め、作成された各オブジェクトのコピーが含まれます。これは、大量のデータをCRMに効率的に追加するのに役立ちます。 > **Supported products** > **Required Scopes** # Archive carts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/batch/delete-carts specs/2026-09/crm-carts-v2026-09.json POST /crm/objects/2026-09/carts/batch/archive IDによって識別されたCRMオブジェクトをバッチアーカイブします。この操作により、指定されたオブジェクトはごみ箱に移動され、実質的に一括アーカイブされます。これは、同時にアーカイブする必要がある大量のデータを管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve carts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/batch/get-carts specs/2026-09/crm-carts-v2026-09.json POST /crm/objects/2026-09/carts/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、効率的なデータ取得が可能になります。アーカイブされたオブジェクトをレスポンスに含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update carts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/batch/update-carts specs/2026-09/crm-carts-v2026-09.json POST /crm/objects/2026-09/carts/batch/update HubSpotアカウントで複数のCRMオブジェクトをバッチ更新します。このエンドポイントでは、プロパティーを指定することで、複数のオブジェクトを一度に変更できます。複数のレコードの情報を同時に変更する必要がある一括更新で役立ちます。 > **Supported products** > **Required Scopes** # Upsert carts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/batch/upsert-carts specs/2026-09/crm-carts-v2026-09.json POST /crm/objects/2026-09/carts/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。この操作では、指定された一意の識別子に基づいて、新しいオブジェクトを挿入するか、既存のオブジェクトを更新できます。オブジェクトを最新の状態に保ち、存在しない場合は追加する必要がある一括操作に役立ちます。 > **Supported products** > **Required Scopes** # Create a cart Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/create-cart specs/2026-09/crm-carts-v2026-09.json POST /crm/objects/2026-09/carts 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを受け取ります。このエンドポイントは、定義済みのプロパティーを持つ新しいオブジェクトをCRMシステムに追加する際に便利です。標準オブジェクトの作成に関するドキュメントと例が提供されます。 > **Supported products** > **Required Scopes** # Archive a cart Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/delete-cart specs/2026-09/crm-carts-v2026-09.json DELETE /crm/objects/2026-09/carts/{cartId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作は、オブジェクトを完全に削除せずに一時的に削除する場合に便利です。これにより、最終的な削除の前に復元または確認できる可能性があります。 > **Supported products** > **Required Scopes** # Retrieve a cart Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/get-cart specs/2026-09/crm-carts-v2026-09.json GET /crm/objects/2026-09/carts/{cartId} `{objectId}`で識別されるオブジェクトを読み取ります。デフォルトでは、`{objectId}`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを使用して、返すプロパティーを指定することで、レスポンスの内容を制御できます。 > **Supported products** > **Required Scopes** # Retrieve all carts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/get-carts specs/2026-09/crm-carts-v2026-09.json GET /crm/objects/2026-09/carts 指定されたタイプのオブジェクトのページを読み取ります。レスポンスに含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントは、オプションの絞り込み機能とページ分割機能を備えたCRMオブジェクトのリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Carts API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/guide # Cart object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/object-definition # Search for carts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/search/search-carts specs/2026-09/crm-carts-v2026-09.json POST /crm/objects/2026-09/carts/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントでは、フィルターグループ、並べ替えオプション、およびレスポンスに含めるプロパティーを指定して、CRMオブジェクトにクエリーを実行できます。特定の検索パラメーターに基づいてカスタマイズされたオブジェクトのリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update a cart Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/carts/update-cart specs/2026-09/crm-carts-v2026-09.json PATCH /crm/objects/2026-09/carts/{cartId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create payments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/batch/create-commerce-payments specs/2026-09/crm-commerce-payments-v2026-09.json POST /crm/objects/2026-09/commerce_payments/batch/create 指定されたプロパティーを持つCRMオブジェクトをバッチで作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に作成でき、作成されたオブジェクトの詳細を含むレスポンスが返されます。これは、複数のオブジェクトを一度に追加する必要がある一括データ操作に役立ちます。 > **Supported products** > **Required Scopes** # Delete payments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/batch/delete-commerce-payments specs/2026-09/crm-commerce-payments-v2026-09.json POST /crm/objects/2026-09/commerce_payments/batch/archive IDでCRMオブジェクトをバッチアーカイブします。このエンドポイントは、複数のオブジェクトを単一のリクエストでごみ箱に移動するのに役立ち、大規模なデータセットを管理するプロセスを効率化できます。 > **Supported products** > **Required Scopes** # Retrieve payments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/batch/get-commerce-payments specs/2026-09/crm-commerce-payments-v2026-09.json POST /crm/objects/2026-09/commerce_payments/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトをバッチ読み取りします。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを取得できるため、大量のデータを効率的に取得できます。アーカイブされたオブジェクトの絞り込みもサポートしています。 > **Supported products** > **Required Scopes** # Update payments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/batch/update-commerce-payments specs/2026-09/crm-commerce-payments-v2026-09.json POST /crm/objects/2026-09/commerce_payments/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、指定したタイプの複数のオブジェクトを1つのリクエストで変更できます。これは一括更新に役立ち、指定されたすべてのオブジェクトが整合性をもって効率的に更新されるようにします。 > **Supported products** > **Required Scopes** # Upsert payments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/batch/upsert-commerce-payments specs/2026-09/crm-commerce-payments-v2026-09.json POST /crm/objects/2026-09/commerce_payments/batch/upsert 一意のプロパティー値でCRMオブジェクトをバッチ作成または更新します。このエンドポイントを使用すると、1つのリクエストで複数のオブジェクトを効率的に管理し、必要に応じて既存のオブジェクトを更新し、新しいオブジェクトを作成できます。 > **Supported products** > **Required Scopes** # Create a payment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/create-commerce-payment specs/2026-09/crm-commerce-payments-v2026-09.json POST /crm/objects/2026-09/commerce_payments 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを返します。このエンドポイントは、CRMシステムに新しいレコードを追加するのに役立ちます。標準オブジェクトを作成するためのドキュメントと例が提供されています。 > **Supported products** > **Required Scopes** # Delete a payment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/delete-commerce-payment specs/2026-09/crm-commerce-payments-v2026-09.json DELETE /crm/objects/2026-09/commerce_payments/{commercePaymentId} {objectId}で識別されるオブジェクトをごみ箱に移動します。この操作により、オブジェクトは実質的にアーカイブされ、アクティブではなくなりますが、必要に応じて取得できます。 > **Supported products** > **Required Scopes** # Retrieve a payment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/get-commerce-payment specs/2026-09/crm-commerce-payments-v2026-09.json GET /crm/objects/2026-09/commerce_payments/{commercePaymentId} `objectId`で識別されるオブジェクトを読み取ります。デフォルトでは、`objectId`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターを使用して一意のプロパティー値を指定できます。`properties`クエリーパラメーターを使用して特定のプロパティーを含めることで、レスポンスの内容を制御できます。 > **Supported products** > **Required Scopes** # Retrieve payments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/get-commerce-payments specs/2026-09/crm-commerce-payments-v2026-09.json GET /crm/objects/2026-09/commerce_payments 指定されたタイプのCRMオブジェクトのページを取得します。プロパティー、関連付け、アーカイブステータスを指定することで、返されるデータを制御できます。このエンドポイントは、特定の属性と関連付けを持つオブジェクトのリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Payments API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/guide # Commerce payment object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/object-definition # Search for payments Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/search/search-commerce-payments specs/2026-09/crm-commerce-payments-v2026-09.json POST /crm/objects/2026-09/commerce_payments/search 指定された検索条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、さまざまなプロパティーに基づいてオブジェクトを絞り込み、並べ替えることができ、CRMから特定のデータセットを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update a payment Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-payments/update-commerce-payment specs/2026-09/crm-commerce-payments-v2026-09.json PATCH /crm/objects/2026-09/commerce_payments/{commercePaymentId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/batch/create-commerce-subscriptions specs/2026-09/crm-commerce-subscriptions-v2026-09.json POST /crm/objects/2026-09/subscriptions/batch/create 1回のバッチオペレーションで複数のサブスクリプションオブジェクトを作成し、効率的なデータ入力や管理を実現します。 > **Supported products** > **Required Scopes** # Archive multiple subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/batch/delete-commerce-subscriptions specs/2026-09/crm-commerce-subscriptions-v2026-09.json POST /crm/objects/2026-09/subscriptions/batch/archive リクエスト本文でIDを指定することで、サブスクリプションオブジェクトをバッチアーカイブします。 > **Supported products** > **Required Scopes** # Retrieve subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/batch/get-commerce-subscriptions specs/2026-09/crm-commerce-subscriptions-v2026-09.json POST /crm/objects/2026-09/subscriptions/batch/read IDを基準に、指定したプロパティーやその履歴を含めてCRMサブスクリプションオブジェクトをバッチ取得します。 > **Supported products** > **Required Scopes** # Update subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/batch/update-commerce-subscriptions specs/2026-09/crm-commerce-subscriptions-v2026-09.json POST /crm/objects/2026-09/subscriptions/batch/update 1回のバッチオペレーションで複数のサブスクリプションオブジェクトを更新し、CRMサブスクリプションレコードの効率的な変更を実現します。 > **Supported products** > **Required Scopes** # Upsert subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/batch/upsert-commerce-subscriptions specs/2026-09/crm-commerce-subscriptions-v2026-09.json POST /crm/objects/2026-09/subscriptions/batch/upsert このエンドポイントでは、サブスクリプションオブジェクトに対するバッチ更新/挿入処理を実行できます。この処理では、既存のレコードを更新するか、まだレコードが存在しない場合は新規作成します。この処理ではステータス、タイムスタンプ、正常に処理されたオブジェクトのリストが返されます。 > **Supported products** > **Required Scopes** # Create a subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/create-commerce-subscription specs/2026-09/crm-commerce-subscriptions-v2026-09.json POST /crm/objects/2026-09/subscriptions 指定したプロパティーおよび任意の関連付けを持つ新しいサブスクリプションオブジェクトを作成します。 > **Supported products** > **Required Scopes** # Delete a subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/delete-commerce-subscription specs/2026-09/crm-commerce-subscriptions-v2026-09.json DELETE /crm/objects/2026-09/subscriptions/{subscriptionId} IDを基準に特定のサブスクリプションを削除します。 > **Supported products** > **Required Scopes** # Retrieve a subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/get-commerce-subscription specs/2026-09/crm-commerce-subscriptions-v2026-09.json GET /crm/objects/2026-09/subscriptions/{subscriptionId} IDを基準に、そのプロパティーや関連付けを含めて特定のサブスクリプションを取得します。 > **Supported products** > **Required Scopes** # Retrieve subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/get-commerce-subscriptions specs/2026-09/crm-commerce-subscriptions-v2026-09.json GET /crm/objects/2026-09/subscriptions プロパティー、関連付け、アーカイブ済みステータスで絞り込むオプションを使用して、サブスクリプションオブジェクトのリストを取得します。 > **Supported products** > **Required Scopes** # Subscriptions API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/guide # Commerce subscription object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/object-definition # Search for subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/search/search-commerce-subscriptions specs/2026-09/crm-commerce-subscriptions-v2026-09.json POST /crm/objects/2026-09/subscriptions/search 定義されたフィルター、プロパティー、並べ替えオプションに基づいてCRMコマースサブスクリプションの検索を実行します。このエンドポイントでは、特定のサブスクリプションデータを取得する複雑なクエリーを使用でき、ページ分割やさまざまな検索パラメーターがサポートされます。 > **Supported products** > **Required Scopes** # Update a subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/commerce-subscriptions/update-commerce-subscription specs/2026-09/crm-commerce-subscriptions-v2026-09.json PATCH /crm/objects/2026-09/subscriptions/{subscriptionId} IDを基準に、新しいプロパティー値で特定のサブスクリプションを更新します。 > **Supported products** > **Required Scopes** # Create communications Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/batch/create-communications specs/2026-09/crm-communications-v2026-09.json POST /crm/objects/2026-09/communications/batch/create HubSpotアカウントで、指定されたプロパティーを持つCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、1つのリクエストで複数のオブジェクトを作成でき、IDを含む各オブジェクトのコピーが返されます。これは、多数のオブジェクトを一度に効率的に追加する場合に便利です。 > **Supported products** > **Required Scopes** # Archive communications Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/batch/delete-communications specs/2026-09/crm-communications-v2026-09.json POST /crm/objects/2026-09/communications/batch/archive IDでCRMオブジェクトを一括アーカイブします。このエンドポイントを使用すると、指定したタイプの複数のオブジェクトを1つのリクエストでごみ箱に移動できます。不要なレコードや古いレコードを削除することで、大量のデータを効率的に管理および整理するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve communications Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/batch/get-communications specs/2026-09/crm-communications-v2026-09.json POST /crm/objects/2026-09/communications/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトをバッチで読み取ります。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを取得できるため、一連のオブジェクトのデータを効率的に収集するのに役立ちます。レスポンスにアーカイブされたオブジェクトを含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update communciations Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/batch/update-communications specs/2026-09/crm-communications-v2026-09.json POST /crm/objects/2026-09/communications/batch/update オブジェクトタイプを指定し、リクエストボディに必要なデータを提供することで、HubSpotでCRMオブジェクトをバッチ更新します。このエンドポイントは、単一のAPI呼び出しでコンタクトや取引などのオブジェクトを一括更新するのに役立ちます。複数のオブジェクトの同時更新をサポートし、CRM内のデータ管理プロセスを効率化します。 > **Supported products** > **Required Scopes** # Upsert communications Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/batch/upsert-communications specs/2026-09/crm-communications-v2026-09.json POST /crm/objects/2026-09/communications/batch/upsert 一意のプロパティー値を使用して、CRMオブジェクトをバッチ作成またはバッチ更新します。このエンドポイントでは、一意のプロパティーに基づいて新しいオブジェクトを挿入するか、既存のオブジェクトを更新することで、大量のオブジェクトを効率的に管理できます。 > **Supported products** > **Required Scopes** # Create a communication Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/create-communication specs/2026-09/crm-communications-v2026-09.json POST /crm/objects/2026-09/communications 指定されたプロパティーを持つCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを受け取ります。このエンドポイントは、CRMシステムに新しいレコードを追加するのに役立ちます。標準オブジェクトのドキュメントに従って、必要なすべてのプロパティーがリクエストボディに含まれていることを確認してください。 > **Supported products** > **Required Scopes** # Delete a communication Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/delete-communication specs/2026-09/crm-communications-v2026-09.json DELETE /crm/objects/2026-09/communications/{communicationId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、一意の識別子に基づいて特定のCRMオブジェクトをアーカイブし、通常の利用対象から実質的に削除しながら、必要に応じて後で復元できるようにします。 > **Supported products** > **Required Scopes** # Retrieve a communication Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/get-communication specs/2026-09/crm-communications-v2026-09.json GET /crm/objects/2026-09/communications/{communicationId} `objectId`で識別されるオブジェクトを読み取ります。このエンドポイントを使用すると、IDまたは`idProperty`クエリーパラメーターで指定された一意のプロパティー値を使用して、特定のCRMオブジェクトの詳細を取得できます。`properties`クエリーパラメーターで目的のプロパティーを指定することにより、返されるデータを制御できます。 > **Supported products** > **Required Scopes** # Retrieve communications Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/get-communications specs/2026-09/crm-communications-v2026-09.json GET /crm/objects/2026-09/communications HubSpotアカウントで、指定したタイプのオブジェクトのページを読み取ります。クエリーパラメーターでプロパティー、関連付け、アーカイブステータスを指定することで、返されるデータを制御できます。このエンドポイントは、特定の詳細を持つCRMオブジェクトのリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Communications API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/guide # Communication object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/object-definition # Search for messages Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/search/search-communications specs/2026-09/crm-communications-v2026-09.json POST /crm/objects/2026-09/communications/search 指定された検索条件を使用して、特定のタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、さまざまなプロパティーと条件に基づいて結果を絞り込んで並べ替えることができます。検索パラメーターに一致する特定のオブジェクトを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update a communication Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/communications/update-communication specs/2026-09/crm-communications-v2026-09.json PATCH /crm/objects/2026-09/communications/{communicationId} `{objectId}`で識別されるオブジェクトの部分的な更新を実行します。デフォルトでは、`{objectId}`は内部オブジェクトIDを指しますが、`idProperty`クエリーパラメーターを使用して任意の一意のプロパティー値を指定できます。指定されたプロパティー値は既存の値を上書きし、読み取り専用および存在しないプロパティーは無視されます。プロパティー値をクリアするには、空の文字列を渡します。 > **Supported products** > **Required Scopes** # Create a batch of companies Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/batch/create-companies specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies/batch/create 会社レコードをバッチ作成します。「inputs」配列には、他のCRMレコードとの[関連付け](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4)を定義する「associations」配列と一緒に各会社レコードのプロパティー値を定義する「properties」オブジェクトを含めることができます。 > **Supported products** > **Required Scopes** # Retrieve a batch of companies Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/batch/get-companies specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies/batch/read ID(「companyId」)または固有のプロパティー(「idProperty」)を基準に会社レコードをバッチ取得します。「properties」クエリーパラメーターを使用して、返される内容を指定できます。 > **Supported products** > **Required Scopes** # Update a batch of companies Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/batch/update-companies specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies/batch/update IDを基準に会社レコードをバッチ更新します。 > **Supported products** > **Required Scopes** # Create a company Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/create-company specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies 1件の会社レコードを作成します。他のCRMレコードとの[関連付け](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4)を定義する「associations」配列と一緒に会社レコードの[プロパティー値](https://developers.hubspot.com/docs/guides/api/crm/properties)を定義する「properties」オブジェクトを含めます。 > **Supported products** > **Required Scopes** # Archive a company Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/delete-company specs/2026-09/crm-companies-v2026-09.json DELETE /crm/objects/2026-09/companies/{companyId} IDを基準に会社レコードを削除します。削除した会社レコードは削除から90日以内であれば復元できます。[レコードの復元](https://knowledge.hubspot.com/records/restore-deleted-records)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Retrieve companies Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/get-companies specs/2026-09/crm-companies-v2026-09.json GET /crm/objects/2026-09/companies 返される情報を制御するクエリーパラメーターを使用してすべての会社レコードを取得します。 > **Supported products** > **Required Scopes** # Retrieve a company Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/get-company specs/2026-09/crm-companies-v2026-09.json GET /crm/objects/2026-09/companies/{companyId} ID(「companyId」)または固有のプロパティー(「idProperty」)を基準に会社レコードを取得します。「properties」クエリーパラメーターを使用して、返される内容を指定できます。 > **Supported products** > **Required Scopes** # CRM API | 会社レコード Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/guide > **[Run in Postman](https://app.getpostman.com/run-collection/caf616003f52c955b5f6)** > **スコープ要件** # 会社レコード HubSpotの会社レコードには、自社とやり取りする組織に関する情報が保存されます。会社エンドポイントを使用することにより、会社レコードを作成および管理したり、HubSpotと他のシステムの間で会社データを同期したりできます。 オブジェクト、レコード、プロパティー、および関連付けAPIの詳細については、[CRMについて](/docs/guides/crm/understanding-the-crm)のガイドをご確認ください。HubSpotのオブジェクトとレコードに関する一般的な情報については、[CRMデータベースを管理する方法](https://knowledge.hubspot.com/ja/get-started/manage-your-crm-database)をご確認ください。 ## 会社レコードを作成する 新しい会社レコードを作成するには、`POST`リクエストを`/crm/v3/objects/companies`に送信します。 リクエスト内のpropertiesオブジェクトに会社データを含めます。また、associationsオブジェクトを追加して、新しい会社レコードを既存のレコード(コンタクト、取引など)やアクティビティー(ミーティング、メモなど)に関連付けることもできます。 ### プロパティー 会社の詳細は、会社プロパティーに保存されます。[HubSpotのデフォルトの会社プロパティー](https://knowledge.hubspot.com/ja/properties/hubspot-crm-default-company-properties)がありますが、[カスタムプロパティーを作成](https://knowledge.hubspot.com/ja/contacts/manage-your-properties)することもできます。 新しい会社レコードを作成する際は、`name`または`domain`プロパティーのうち、少なくとも1つをリクエストに含める必要があります。ドメイン名は会社レコードを[一意に識別する主要なID](https://knowledge.hubspot.com/ja/records/deduplication-of-records#automatic-deduplication-in-hubspot)であるため、HubSpotで会社が重複しないようにするために、常に`domain`を含めることを推奨します。会社レコードに[複数のドメイン](https://knowledge.hubspot.com/ja/records/add-multiple-domain-names-to-a-company-record)が含まれている場合は、`hs_additional_domains`フィールドに各ドメインをセミコロンで区切って指定することにより、API経由でドメインを追加できます。例:`"hs_additional_domains" : "domain.com; domain2.com; domain3.com"` 利用可能な全てのプロパティーを確認するには`GET`リクエストを`/crm/v3/properties/companies`に送信して、アカウントの会社プロパティーのリストを取得します。詳しくは[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)をご参照ください。 > [!WARNING] > > **注**: リクエストに`lifecyclestage`を含める場合、値はライフサイクルステージの内部名を参照する必要があります。デフォルトのステージの内部名はテキスト値であり、ステージの[ラベル](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties)(`subscriber`や`marketingqualifiedlead`など)を編集しても変更されません。[カスタムステージ](https://knowledge.hubspot.com/ja/object-settings/create-and-customize-lifecycle-stages)の内部名は数値です。ステージの内部IDを見つけるには、[ライフサイクルステージ設定](https://knowledge.hubspot.com/ja/object-settings/create-and-customize-lifecycle-stages)を確認するか、APIを使ってライフサイクル ステージ プロパティーを取得します。 例えば、新しい会社レコードを作成する場合、リクエストの内容は次のようになります。 **JSON** ```json theme={null} ///Example request body { "properties": { "name": "HubSpot", "domain": "hubspot.com", "city": "Cambridge", "industry": "Technology", "phone": "555-555-555", "state": "Massachusetts", "lifecyclestage": "51439524" } } ``` ### 関連付け 新しい会社レコードを作成する際に、その会社レコードをassociationsオブジェクトの[既存のレコード](https://knowledge.hubspot.com/ja/records/associate-records)や[アクティビティー](https://knowledge.hubspot.com/ja/records/associate-activities-with-records)に関連付けることもできます。例えば、新しい会社レコードに既存のコンタクトとEメールアドレスを関連付ける場合、リクエストの内容は次のようになります。 **JSON** ```json theme={null} ///Example request body { "properties": { "name": "HubSpot", "domain": "hubspot.com", "city": "Cambridge", "industry": "Technology", "phone": "555-555-555", "state": "Massachusetts", "lifecyclestage": "51439524" }, "associations": [ { "to": { "id": 101 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 280 } ] }, { "to": { "id": 556677 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 185 } ] } ] } ``` 次のものをassociationsオブジェクトに含める必要があります。 | パラメーター | 説明 | | - | - | | `to` | 会社レコードを関連付けるレコードまたはアクティビティー。一意の`id`値で指定します。 | | `types` | 会社とレコード/アクティビティーの間の関連付けのタイプ。`associationCategory`および`associationTypeId`を含めます。デフォルトの関連付けタイプIDは、[このページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)で確認できます。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタム関連付けタイプ(ラベル)の値を取得することもできます。 | ## 会社レコードを取得する 会社レコードを個別に、または一括で取得できます。 * 個々の会社レコードを取得するには、`GET`リクエストを`/crm/v3/objects/companies/{companyId}`に送信します。 * 全ての会社レコードのリストを要求するには、`GET`リクエストを`/crm/v3/objects/companies`に送信します。 これらのエンドポイントに対し、リクエストのURLに次のクエリーパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | レスポンスで返されるプロパティーのカンマ区切りリスト。リクエスト対象の会社レコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `propertiesWithHistory` | レスポンスで返される現在および過去のプロパティーのカンマ区切りリスト。リクエスト対象の会社レコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `associations` | 関連付けられているIDが取得されるオブジェクトのカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | * レコードIDまたは[カスタムの固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を指定して、特定の会社レコードを一括で取得するには、`POST`リクエストを`crm/v3/objects/companies/batch/read`に送信します。このバッチエンドポイントは関連付けを取得できません。[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用して関連付けを一括で読み取る方法について説明します。 一括読み取りエンドポイントの場合は、任意指定の`idProperty`パラメーターを使用し、カスタムの[固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を指定して、会社レコードを取得することもできます。デフォルトで、リクエストの`id`値はレコードID(`hs_object_id`)を参照するため、レコードIDを使って取得するときには`idProperty`パラメーターは不要です。カスタムの固有の値のプロパティーを使用して会社レコードを取得するには、`idProperty`パラメーターを含める必要があります。 例えば、会社レコードを一括で取得する場合のリクエストは、次のいずれかのようになります。 ```json theme={null} ///Example request body with record ID { "properties": ["name", "domain"], "inputs": [ { "id": "56789" }, { "id": "23456" } ] } ``` ```json theme={null} ///Example request body with a unique value property { "properties": ["name", "domain"], "idProperty": "uniquepropertyexample", "inputs": [ { "id": "abc" }, { "id": "def" } ] } ``` プロパティーの現在の値と過去の値を含む会社を取得する場合のリクエストは、次のようになります。 ```json theme={null} ///Example request body with record ID (current and historical values) { "propertiesWithHistory": ["name"], "inputs": [ { "id": "56789" }, { "id": "23456" } ] } ``` ## 会社レコードを更新する 会社レコードを個別に、または一括で更新できます。既存の会社の場合、APIを介して会社レコードを更新するために使用可能な固有の値は、会社のレコードIDです。 会社IDを基に会社レコードを個別に更新するには、`PATCH`リクエストに更新対象のデータを含めて`/crm/v3/objects/companies/{companyId}`に送信します。 > [!WARNING] > > \*\*注 \*\*:`lifecyclestage`プロパティーを更新する場合、ライフサイクルステージの先のステージにのみ値を設定できます。ライフサイクルステージの前のステージに設定するには、まずレコードの既存のライフサイクルステージの値をクリアする必要があります。この値は[手動でクリア](https://knowledge.hubspot.com/ja/records/update-a-property-value-for-a-record)できます。または、[ワークフロー](https://knowledge.hubspot.com/ja/records/change-record-lifecycle-stages-in-bulk)やコンタクトデータを同期する連携機能によってこの値を自動的にクリアすることもできます。 ### 既存の会社レコードを他のレコードまたはアクティビティーに関連付ける 会社レコードを他のCRMレコードまたはアクティビティーに関連付けるには、`PUT`リクエストを`/crm/v3/objects/companies/{companyId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。 > [!NOTE] > > `associationTypeId`値を取得するには、デフォルト値の[このリスト](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)を参照するか、`GET`リクエストを`/crm/v4/associations/{fromObjectType}/{toObjectType}/labels`に送信します。 レコード関連付けの詳細については[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご確認ください。 ### 関連付けを削除する 会社レコードと他のレコードまたはアクティビティーの関連付けを削除するには、`DELETE`リクエストを`/crm/v3/objects/companies/{companyId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。 ## 会社レコードでアクティビティーをピン留めする リクエストに`hs_pinned_engagement_id`フィールドを含めることで、APIを介して会社レコードでアクティビティーをピン留めできます。フィールドに、ピン留めするアクティビティーの`id`を含めます。これは[エンゲージメントAPI](/docs/api-reference/overview)を介して取得できます。レコードごとに1つのアクティビティーをピン留めすることができ、そのアクティビティーはピン留めする前にすでに会社レコードに関連付けられている必要があります。 会社にピン留めするアクティビティーを設定または更新する場合、リクエストは次のようになります。 ```json theme={null} ///Example request body PATCH /crm/v3/objects/companies/{companyId} { "properties": { "hs_pinned_engagement_id": 123456789 } } ``` 同じリクエスト内で、会社を作成し、既存のアクティビティーに関連付け、アクティビティーをピン留めすることもできます。以下に例を示します。 ```json theme={null} ///Example request body POST /crm/v3/objects/companies { "properties": { "domain": "example.com", "name": "Example Company", "hs_pinned_engagement_id": 123456789 }, "associations": [ { "to": { "id": 123456789 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 189 } ] } ] } ``` ## 会社レコードを削除する 会社レコードを個別に、または一括で削除できます。削除した会社レコードは、HubSpot内のごみ箱に追加されます。そのため、必要に応じて後で[HubSpot内で会社レコードを復元](https://knowledge.hubspot.com/ja/records/restore-deleted-records)できます。 IDを基準に会社レコードを個別に削除するには、`DELETE`リクエストを`/crm/v3/objects/companies/{companyId}`に送信します。 会社を一括で削除する方法について詳しくは、 [リファレンスドキュメント](/docs/api-reference/crm-companies-v3/guide)をご確認ください。 # Merge two companies Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/merge-companies specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies/merge 2件の会社レコードをマージします。[レコードのマージ](https://knowledge.hubspot.com/records/merge-records)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Company object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/object-definition # Update a company Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/update-company specs/2026-09/crm-companies-v2026-09.json PATCH /crm/objects/2026-09/companies/{companyId} ID(「companyId」)または固有のプロパティー値(「idProperty」)を基準に会社レコードを更新します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Archive a batch of companies Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/batch/delete-companies specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies/batch/archive IDを基準に会社レコードをバッチ削除します。削除した会社レコードは削除から90日以内であれば復元できます。[レコードの復元](https://knowledge.hubspot.com/records/restore-deleted-records)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Create or update a batch of companies by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/batch/upsert-companies specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies/batch/upsert 「idProperty」クエリーパラメーターによって指定されているように、固有のプロパティー値によって特定される会社レコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Search for companies Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/companies/search/search-companies specs/2026-09/crm-companies-v2026-09.json POST /crm/objects/2026-09/companies/search プロパティーで絞り込みを行い、関連付けを使用して検索し、結果を並べ替えることで、会社レコードを検索します。[CRM検索](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Create contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/batch/create-contacts specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts/batch/create コンタクトをバッチ作成します。「inputs」配列には、他のCRMレコードとの[関連付け](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4)を定義する「associations」配列と一緒に各レコードのプロパティー値を定義する「properties」オブジェクトを含めることができます。 > **Supported products** > **Required Scopes** # Delete contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/batch/delete-contacts specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts/batch/archive IDを基準にコンタクトをバッチアーカイブします。アーカイブしたコンタクトは削除から90日以内であれば復元できます。[コンタクトの削除によって影響を受けるデータ](https://knowledge.hubspot.com/privacy-and-consent/understand-restorable-and-permanent-contact-deletions)や[アーカイブしたレコードを復元](https://knowledge.hubspot.com/records/restore-deleted-records)する方法についてもっと詳しく。 > **Supported products** > **Required Scopes** # Retrieve contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/batch/get-contacts specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts/batch/read ID(「contactId」)または固有のプロパティー値(「idProperty」)を基準にコンタクトをバッチ取得します。 > **Supported products** > **Required Scopes** # Update contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/batch/update-contacts specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts/batch/update ID(「contactId」)または固有のプロパティー値(「idProperty」)を基準にコンタクトをバッチ更新します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーがあるとエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Upsert contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/batch/upsert-contacts specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts/batch/upsert コンタクトをバッチで更新/挿入します。「inputs」配列には各レコードのプロパティー値を定義する「properties」オブジェクトを含めることができます。 > **Supported products** > **Required Scopes** # Create a contact Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/create-contact specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts 1件のコンタクトを作成します。他のCRMレコードとの[関連付け](https://developers.hubspot.com/docs/guides/api/crm/associations/associations-v4)を定義する「associations」配列と一緒にコンタクトの[プロパティー値](https://developers.hubspot.com/docs/guides/api/crm/properties)を定義する「properties」オブジェクトを含めます。 > **Supported products** > **Required Scopes** # Delete a contact Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/delete-contact specs/2026-09/crm-contacts-v2026-09.json DELETE /crm/objects/2026-09/contacts/{contactId} IDを基準にコンタクトを削除します。削除したコンタクトは削除から90日以内であれば復元できます。[コンタクトの削除によって影響を受けるデータ](https://knowledge.hubspot.com/privacy-and-consent/understand-restorable-and-permanent-contact-deletions)や[アーカイブしたレコードを復元](https://knowledge.hubspot.com/records/restore-deleted-records)する方法についてもっと詳しく。 > **Supported products** > **Required Scopes** # Retrieve a contact Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/get-contact specs/2026-09/crm-contacts-v2026-09.json GET /crm/objects/2026-09/contacts/{contactId} ID(「contactId」)または固有のプロパティー(「idProperty」)を基準にコンタクトを取得します。「properties」クエリーパラメーターを使用して、返される内容を指定できます。 > **Supported products** > **Required Scopes** # Retrieve contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/get-contacts specs/2026-09/crm-contacts-v2026-09.json GET /crm/objects/2026-09/contacts 返される情報を指定するクエリーパラメーターを使用してすべてのコンタクトを取得します。 > **Supported products** > **Required Scopes** # CRM API | コンタクト Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/guide > **[Run in Postman](https://app.getpostman.com/run-collection/dd75d149eaa15806754f)** > **スコープ要件** # コンタクト HubSpotのコンタクトレコードには、自社とやりとりする個人に関する情報が保存されます。コンタクトエンドポイントを使用することにより、HubSpotアカウントでコンタクトレコードを作成および管理したり、HubSpotと他のシステムの間でコンタクトデータを同期したりできます。 オブジェクト、レコード、プロパティー、および関連付けAPIの詳細については、「[CRMについて](/docs/guides/crm/understanding-the-crm)」のガイドをご確認ください。HubSpotのオブジェクトとレコードに関する一般的な情報については、[CRMデータベースを管理する方法](http://knowledge.hubspot.com/contacts-user-guide)をご確認ください。 ## コンタクトを作成する 新しいコンタクトを作成するには、`POST`リクエストを`/crm/v3/objects/contacts`に送信します。 リクエスト内のプロパティーオブジェクトにコンタクトデータを含めます。また、関連付けオブジェクトを追加して、新しいコンタクトを既存のレコード(会社、取引など)やアクティビティー(ミーティング、メモなど)に関連付けることもできます。 ### プロパティー コンタクトの詳細は、コンタクトプロパティーに保存されます。[HubSpotのデフォルトのコンタクトプロパティー](https://knowledge.hubspot.com/ja/properties/hubspots-default-contact-properties)がありますが、[カスタムのコンタクトプロパティーを作成](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties)することもできます。 新しいコンタクトを作成する際は、`email`、`firstname`、または`lastname`プロパティーのうち、少なくとも1つをリクエストに含める必要があります。Eメールアドレスはコンタクトを[一意に識別する主要なID](https://knowledge.hubspot.com/ja/records/deduplication-of-records#automatic-deduplication-in-hubspot)であるため、HubSpotでコンタクトが重複しないようにするために、常に`email`を含めることを推奨します。 利用可能な全てのプロパティーを確認するには、`GET`リクエストを`/crm/v3/properties/contacts`に送信することで、アカウントのコンタクトプロパティーのリストを取得できます。詳しくは[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)をご参照ください。 > [!WARNING] > > ### 注: > > リクエストに`lifecyclestage`を含める場合、値はライフサイクルステージの内部名を参照する必要があります。デフォルトのステージの内部名はテキスト値であり、ステージの[ラベル](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties)(`subscriber`や`marketingqualifiedlead`など)を編集しても変更されません。[カスタムステージ](https://knowledge.hubspot.com/ja/object-settings/create-and-customize-lifecycle-stages)の内部名は数値です。ステージの内部IDは、[ライフサイクルステージ設定](https://knowledge.hubspot.com/ja/object-settings/create-and-customize-lifecycle-stages)か、API経由でライフサイクルステージプロパティーを取得することで確認できます。 例えば、新しいコンタクトを作成する場合、リクエストの内容は次のようになります。 **JSON** ```json theme={null} ///Example request body { "properties": { "email": "example@hubspot.com", "firstname": "Jane", "lastname": "Doe", "phone": "+18884827768", "company": "HubSpot", "website": "hubspot.com", "lifecyclestage": "marketingqualifiedlead" } } ``` ### 関連付け また、新しいコンタクトを作成する際に関連付けオブジェクトを含めることで、そのコンタクトを[既存のレコード](https://knowledge.hubspot.com/ja/records/associate-records)や[アクティビティー](https://knowledge.hubspot.com/ja/records/associate-activities-with-records)に関連付けることもできます。例えば、新しいコンタクトを既存の会社レコードとEメールに関連付ける場合、リクエストの内容は次のようになります。 **JSON** ```json theme={null} ///Example request body { "properties": { "email": "example@hubspot.com", "firstname": "Jane", "lastname": "Doe", "phone": "+18884827768", "company": "HubSpot", "website": "hubspot.com", "lifecyclestage": "marketingqualifiedlead" }, "associations": [ { "to": { "id": 123456 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 279 } ] }, { "to": { "id": 556677 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 197 } ] } ] } ``` 関連付けオブジェクトには、次のものを含める必要があります。 | パラメーター | 説明 | | - | - | | `to` | コンタクトに関連付けるレコードまたはアクティビティー。一意の`id`値で指定します。 | | `types` | コンタクトとレコードまたはアクティビティー間の関連付けのタイプである`associationCategory`と`associationTypeId`を含めます。デフォルトの関連付けタイプIDは[こちらのページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)に記載されています。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタム関連付けタイプ(ラベル)の値を取得することもできます。 | ## レコードID、Eメール、またはカスタムの固有値のプロパティーを指定してコンタクトを取得する コンタクトレコードを個別に、または一括で取得できます。 * 個々のコンタクトを取得するには、`GET`リクエストを`/crm/v3/objects/contacts/{contactId} or`または`/crm/v3/objects/contacts/{email}?idProperty=email`に送信します。 * 全てのコンタクトリストを取得するには`GET`リクエストを`/crm/v3/objects/contacts`に送信します。 これらのエンドポイントに対し、リクエストのURLに次のクエリーパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | レスポンスで返されるプロパティーのカンマ区切りリスト。リクエスト対象のコンタクトレコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `propertiesWithHistory` | レスポンスで返される現在および過去のプロパティーのカンマ区切りリスト。リクエスト対象のコンタクトレコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `associations` | 関連付けられたIDを取得する対象のオブジェクトのカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | * レコードID、Eメールアドレス、または[カスタムの固有の識別子のプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を指定して、特定のコンタクトを一括で取得するには`POST`リクエストを`crm/v3/objects/contacts/batch/read`に送信します。このバッチエンドポイントは関連付けを取得できません。[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用してバッチが関連付けを読み取る方法について説明します。 一括読み取りエンドポイントの場合は、任意指定の`idProperty`パラメーターを使用し、`email`またはカスタムの[固有の識別子のプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を指定して、コンタクトを取得することもできます。デフォルトで、リクエストの`id`値はレコードID(`hs_object_id`)を参照するため、レコードIDを使って取得するときには`idProperty`パラメーターは不要です。`email`またはカスタムの固有の値のプロパティーを使用してコンタクトを取得する場合は、`idProperty`パラメーターを含める必要があります。 例えば、レコードIDの値に基づいてコンタクトを一括で取得する場合のリクエストは、次のようになります(現在の値のみ、または現在と過去の値)。 ```json theme={null} { "properties": ["email", "lifecyclestage", "jobtitle"], "inputs": [ { "id": "1234567" }, { "id": "987456" } ] } ``` ```json theme={null} { "propertiesWithHistory": ["lifecyclestage", "hs_lead_status"], "inputs": [ { "id": "1234567" }, { "id": "987456" } ] } ``` Eメールアドレスまたはカスタムの固有の識別子のプロパティー(例:自社に固有の顧客ID番号)に基づいてコンタクトレコードを取得する場合のリクエストは、次のようになります。 ```json theme={null} { "properties": ["email", "lifecyclestage", "jobtitle"], "idProperty": "email", "inputs": [ { "id": "lgilmore@thedragonfly.com" }, { "id": "sstjames@thedragonfly.com" } ] } ``` ```json theme={null} { "properties": ["email", "lifecyclestage", "jobtitle"], "idProperty": "internalcustomerid", "inputs": [ { "id": "12345" }, { "id": "67891" } ] } ``` ## コンタクトを更新する コンタクトレコードを個別に、または一括で更新できます。 個別の コンタクトを更新するには、レコードID(`id`)またはコンタクトのEメールアドレス(`email`)を使用します。 * レコードIDを基準に個別のコンタクトを更新するには、`PATCH`リクエストを`/crm/v3/objects/contacts/{contactId}`に送信し、更新対象のデータを含めます。 * Eメールを基準に個別のコンタクトを更新するには、`PATCH`リクエストを`/crm/v3/objects/contacts/{email}?idProperty=email`に送信し、更新対象のデータを含めます。 以下に例を示します。 ```json theme={null} { "properties": { "favorite_food": "burger", "jobtitle": "Manager", "lifecyclestage": "Customer" } } ``` > [!WARNING] > > ### 注: > > `lifecyclestage`プロパティーを更新する場合、ライフサイクルステージの先のステージにのみ値を設定できます。ライフサイクルステージの前のステージに設定するには、まずレコードの既存のライフサイクルステージの値をクリアする必要があります。この値は[手動でクリア](https://knowledge.hubspot.com/ja/records/update-a-property-value-for-a-record)できます。または、[ワークフロー](https://knowledge.hubspot.com/ja/records/change-record-lifecycle-stages-in-bulk)やコンタクトデータを同期する連携機能によってこの値を自動的にクリアすることもできます。 一括で コンタクトを更新する場合は、コンタクトのレコードID値(`id`)を使用できます。複数のコンタクトを更新するには、`POST`リクエストを`/crm/v3/objects/contacts/batch/update`に送信します。リクエスト本文に、各コンタクトのレコードIDを`id`として含め、更新対象のプロパティーを含めます。 以下に例を示します。 ```json theme={null} { "inputs": [ { "id": "123456789", "properties": { "favorite_food": "burger" } }, { "id": "56789123", "properties": { "favorite_food": "Donut" } } ] } ``` ## コンタクトを一括更新する 一括更新エンドポイントを使用して、一括でコンタクトを作成し、同時に更新することもできます。このエンドポイントでは、`email`または[カスタムの固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を使用できます。リクエストに従って、コンタクトがすでに存在する場合は更新され、コンタクトが存在しない場合は作成されます。 コンタクトを一括更新するには、`POST`リクエストを`/crm/v3/objects/contacts/batch/upsert`に送信します。リクエスト本文に`idProperty`パラメーターを含め、`email`またはカスタムの固有IDプロパティーのどちらを使用しているかを識別します。そのプロパティーの値を`id`として含め、設定または更新する他のプロパティーを追加します。 > [!WARNING] > > ### 注: > > `email`をコンタクトの`idProperty`として使用する場合、部分的なアップサート(更新または挿入)はサポートされません。部分的なアップサートを実行するには、代わりにカスタムの固有IDプロパティーを`idProperty`として使用します。 例えば、リクエストは次のようになります。 ```json theme={null} { "inputs": [ { "properties": { "phone": "+18884827768" }, "id": "test@test.com", "idProperty": "email" }, { "properties": { "phone": "+18888888888" }, "id": "example@hubspot.com", "idProperty": "email" } ] } ``` ## 既存のコンタクトを他のレコードまたはアクティビティーに関連付ける コンタクトを他のCRMレコードまたはアクティビティーに関連付けるには、`PUT`リクエストを`/crm/v3/objects/contacts/{contactId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。 > [!NOTE] > > `associationTypeId`値を取得するには、[デフォルト値リスト](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)を参照するか、`GET`リクエストを`/crm/v4/associations/{fromObjectType}/{toObjectType}/labels`に送信します。 詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 ### 関連付けを削除する コンタクトとレコードまたはアクティビティーの間の関連付けを削除するには、`DELETE`リクエストを`/crm/v3/objects/contacts/{contactID}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。 ## コンタクトレコードでアクティビティーをピン留めする リクエストに`hs_pinned_engagement_id`フィールドを含めることで、コンタクトレコードで[アクティビティーをピン留め](https://knowledge.hubspot.com/ja/records/pin-an-activity-on-a-record)できます。フィールドに、ピン留めするアクティビティーの`id`を含めます。このIDは、[エンゲージメントAPI](/docs/api-reference/overview)を介して取得できます。レコードごとに1つのアクティビティーをピン留めすることができ、そのアクティビティーはピン留めする前に既にコンタクトに関連付けられている必要があります。 コンタクトのピン留めされたアクティビティーを設定または更新するリクエストは、次のようになります。 ```json theme={null} { "properties": { "hs_pinned_engagement_id": 123456789 } } ``` コンタクトを作成し、既存のアクティビティーに関連付け、同じリクエストにアクティビティーをピン留めすることもできます。以下に例を示します。 ```json theme={null} { "properties": { "email": "example@hubspot.com", "firstname": "Jane", "lastname": "Doe", "phone": "+18884827768", "hs_pinned_engagement_id": 123456789 }, "associations": [ { "to": { "id": 123456789 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 201 } ] } ] } ``` ## コンタクトを削除する コンタクトレコードを個別に、または一括で削除できます。削除したコンタクトレコードは、HubSpot内のごみ箱に追加されます。そのため、必要に応じて後で[HubSpot内でコンタクトを復元](https://knowledge.hubspot.com/ja/records/restore-deleted-records)できます。 IDを基準に個々のコンタクトを削除するには、`DELETE`リクエストを`/crm/v3/objects/contacts/{contactId}`に送信します。 コンタクトを一括で削除する方法については、[こちらの資料](/docs/api-reference/crm-contacts-v3/guide)をご確認ください。 ## 追加のEメール 追加のEメールアドレスは、コンタクトが複数のEメールを持っている場合に使用されます。[HubSpotのコンタクトレコードに手動で追加](https://knowledge.hubspot.com/ja/records/add-multiple-email-addresses-to-a-contact)することも、[コンタクトのマージ](https://knowledge.hubspot.com/ja/records/merge-records#contact-merge-exceptions)後に自動的に追加することもできます。追加のEメールアドレスは引き続きコンタクトの一意の識別子であるため、複数のコンタクトに同じ追加のEメールアドレスを登録することはできません。 コンタクトの追加のEメールアドレスを表示するには、全てまたは個々のコンタクトを取得するときに、`properties`パラメーターに`email`と`hs_additional_emails`のプロパティーを含めます。コンタクトのプライマリーEメールアドレスは`email`フィールドに表示され、追加のEメールアドレスは`hs_additional_emails`フィールドに表示されます。 ## 制限 一括処理は、一度に100件のレコードに制限されています。例えば、1つのリクエストで100件を超えるコンタクトを一括で更新することはできません。[コンタクトとフォーム送信](https://developers.hubspot.jp/docs#limits_contacts)にも上限があります。 # Merge two contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/merge-contacts specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts/merge 2件のコンタクトレコードをマージします。[レコードのマージ](https://knowledge.hubspot.com/records/merge-records)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Contact object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/object-definition # Search for contacts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/search/search-contacts specs/2026-09/crm-contacts-v2026-09.json POST /crm/objects/2026-09/contacts/search プロパティーで絞り込みを行い、関連付けを使用して検索し、結果を並べ替えることで、コンタクトを検索します。[CRM検索](https://developers.hubspot.com/docs/guides/api/crm/search#make-a-search-request)についてもっと詳しく。 > **Supported products** > **Required Scopes** # Update a contact Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contacts/update-contact specs/2026-09/crm-contacts-v2026-09.json PATCH /crm/objects/2026-09/contacts/{contactId} IDまたはEメールまたは固有のプロパティー値によって識別した、既存のコンタクトを更新します。IDによってコンタクトを識別するには、リクエストURLパスにIDを含めます。Eメールアドレスなどの固有のプロパティーによってコンタクトを識別するには、リクエストURLパスにemail/property値を含め、「idProperty」クエリーパラメーター(`/crm/v3/objects/contacts/jon@website.com?idProperty=email`)を追加します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーまたは存在しないプロパティーはエラーになります。プロパティー値は空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Batch retrieve contracts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contracts/batch/get-contracts specs/2026-09/crm-contracts-v2026-09.json POST /crm/objects/2026-09/contracts/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Required Scopes** # Retrieve contract Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contracts/get-contract specs/2026-09/crm-contracts-v2026-09.json GET /crm/objects/2026-09/contracts/{contractId} 「{contractId}」によって特定されるオブジェクトを読み取ります。「{contractId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contracts/get-contracts specs/2026-09/crm-contracts-v2026-09.json GET /crm/objects/2026-09/contracts 契約のページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Required Scopes** # Contracts API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/contracts/guide # Create a batch of courses Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/batch/create-courses specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/0-410/batch/create HubSpotで指定されたタイプのCRMオブジェクトをバッチで作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成できるため、一括操作を効率的に実行できます。レスポンスには、作成された各オブジェクトのIDを含むコピーが含まれます。これは、大量のデータを初期化したり、外部データソースをHubSpotと連携したりするのに役立ちます。 > **Supported products** > **Required Scopes** # Delete courses Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/batch/delete-courses specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/0-410/batch/archive IDでCRMオブジェクトをバッチアーカイブします。この操作は、同時にアーカイブする必要がある大量のオブジェクトを管理し、データ管理プロセスを効率化するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve courses Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/batch/get-courses specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/0-410/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、効率的なデータ取得が可能になります。アーカイブされたオブジェクトを結果に含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update courses Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/batch/update-courses specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/0-410/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、リクエストボディで詳細を指定することで、複数のオブジェクトを同時に変更できます。これは、大量のデータを効率的に更新し、指定されたすべてのオブジェクトが単一の操作で更新されるようにする場合に役立ちます。 > **Supported products** > **Required Scopes** # Upsert courses Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/batch/upsert-courses specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/0-410/batch/upsert 一意のプロパティー値を使用してCRMオブジェクトをバッチ作成またはバッチ更新します。このエンドポイントでは、単一のリクエストで複数のオブジェクトを効率的に管理でき、既存のオブジェクトを更新したり、必要に応じて新しいオブジェクトを作成したりできます。 > **Supported products** > **Required Scopes** # Create a course Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/create-course specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/0-410 指定されたプロパティーでCRMオブジェクトを作成し、IDを含むオブジェクトのコピーを受け取ります。このエンドポイントは、CRMシステムに新しいオブジェクトを追加し、特定のプロパティーでカスタマイズするのに役立ちます。 > **Supported products** > **Required Scopes** # Delete a course Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/delete-course specs/2026-09/crm-courses-v2026-09.json DELETE /crm/objects/2026-09/0-410/{courseId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、一意の識別子を使用して特定のCRMオブジェクトをアーカイブし、通常の利用対象から実質的に除外しながら、必要に応じた復元または参照のためにシステム内に保持できます。 > **Supported products** > **Required Scopes** # Retrieve a course Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/get-course specs/2026-09/crm-courses-v2026-09.json GET /crm/objects/2026-09/0-410/{courseId} `objectId`で識別されるオブジェクトを読み取ります。デフォルトでは、`objectId`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを使用して含めるプロパティーを指定することで、レスポンスの内容を制御できます。 > **Supported products** > **Required Scopes** # Retrieve courses Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/get-courses specs/2026-09/crm-courses-v2026-09.json GET /crm/objects/2026-09/0-410 指定されたタイプのCRMオブジェクトのページを読み取ります。レスポンスに含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、関連付けられたオブジェクトIDとアーカイブされたレコードを取得できます。 > **Supported products** > **Required Scopes** # Courses API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/guide # Merge two courses Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/merge/merge-courses specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/courses/merge HubSpotアカウントで、同じタイプの2つのCRMオブジェクトをマージします。この操作により、指定されたオブジェクトのプロパティーが結合され、マージされたデータを持つ単一のオブジェクトが作成されます。このエンドポイントを使用して、重複するレコードを統合したり、関連データを単一のオブジェクトにまとめたりできます。 > **Supported products** > **Required Scopes** # Course object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/object-definition # Search for objects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/search/search-courses specs/2026-09/crm-courses-v2026-09.json POST /crm/objects/2026-09/0-410/search さまざまな条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、プロパティーに基づいてオブジェクトを絞り込み、並べ替えることができるため、関連データを効率的に取得できます。これは、特定のレコードを見つけたり、CRM内のデータトレンドを分析したりするのに役立ちます。 > **Supported products** > **Required Scopes** # Update a course Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/courses/update-course specs/2026-09/crm-courses-v2026-09.json PATCH /crm/objects/2026-09/0-410/{courseId} `{objectId}`で識別されるオブジェクトの部分的な更新を実行します。デフォルトでは、`{objectId}`は内部オブジェクトIDを指しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を指すこともできます。指定されたプロパティー値は既存の値を上書きします。読み取り専用および存在しないプロパティーは無視されます。プロパティーの値をクリアするには、空の文字列を渡してください。 > **Supported products** > **Required Scopes** # Create a batch of objects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/batch/create-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/create HubSpotで指定されたオブジェクトタイプのCRMオブジェクトをバッチ作成します。このエンドポイントでは、単一のリクエストで複数のオブジェクトを作成できるため、一括操作を効率的に行うことができます。レスポンスには、作成されたオブジェクトとそれらのIDが含まれます。これは、大規模なデータセットを初期化したり、HubSpotにデータを移行したりするのに役立ちます。 > **Supported products** > **Required Scopes** # Archive a batch of objects by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/batch/delete-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/archive IDで識別されたCRMオブジェクトのバッチをアーカイブします。この操作は、複数のオブジェクトを1つのリクエストでごみ箱に移動するのに役立ち、大規模なデータセットを管理するプロセスを効率化できます。 > **Supported products** > **Required Scopes** # Read a batch of objects by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/batch/get-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/read 内部IDまたは一意のプロパティー値を使用して、CRMオブジェクトのバッチを取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、パフォーマンスを最適化し、必要なAPI呼び出しの数を減らすことができます。アーカイブされたオブジェクトをレスポンスに含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of objects by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/batch/update-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、リクエストボディに詳細を指定することで、複数のオブジェクトを一度に修正できます。オブジェクトプロパティーの一括更新を効率的に行う場合に便利です。 > **Supported products** > **Required Scopes** # Create or update a batch of objects by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/batch/upsert-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。このエンドポイントを使用すると、一意の識別子に基づいて新しいオブジェクトを作成したり、既存のオブジェクトを更新したりすることで、大量のデータを効率的に管理できます。これは、システム間でデータを同期したり、CRMデータを最新の状態に保ったりするのに特に役立ちます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/create-custom-object specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType} 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含めてオブジェクトのコピーを返します。このエンドポイントでは、CRMシステム内で標準オブジェクトを作成でき、ガイダンスとなるドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/delete-custom-object specs/2026-09/crm-custom-objects-v2026-09.json DELETE /crm/objects/2026-09/{objectType}/{objectId} 「{objectId}」で識別されるオブジェクトをごみ箱に移動します。この操作により、指定されたオブジェクトは実質的にアーカイブされ、無効になりますが、システムから完全に削除されることはありません。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/get-custom-object specs/2026-09/crm-custom-objects-v2026-09.json GET /crm/objects/2026-09/{objectType}/{objectId} `objectId`で識別されるオブジェクトを読み取ります。`objectId`は、デフォルトでは内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを使用して、返される内容を制御できます。このエンドポイントは、HubSpotアカウントから特定のオブジェクトとその詳細を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/get-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json GET /crm/objects/2026-09/{objectType} HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ってください。プロパティー、関連付け、アーカイブ済みレコードを含めるかどうかを指定することで、返されるデータを制御できます。このエンドポイントは、特定の詳細と関連付けを持つCRMオブジェクトのリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # CRM | カスタムオブジェクト Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/guide > **サポートされる製品** > **必須スコープ** > **[Run in Postman](https://app.getpostman.com/run-collection/40a2452fc88665fbe786)** HubSpotアカウントごとに、標準CRMオブジェクトとして、コンタクト、会社、取引、チケットがあります。ビジネスニーズに基づいてCRMデータを表示し、整理するためのカスタムオブジェクトを作成することもできます。HubSpotで[カスタムオブジェクトを作成](https://knowledge.hubspot.com/ja/object-settings/create-custom-objects)するか、カスタムオブジェクトAPIを使用して、カスタムオブジェクト、プロパティー、他のCRMオブジェクトとの関連付けを定義できます。 このページでは、APIを使用してカスタムオブジェクトを作成、管理する方法を説明し、[例を交えてカスタムオブジェクトの作成手順](#custom-object-example)を解説します。 カスタムオブジェクトの作成の詳細については、HubSpot開発者ブログの以下の投稿をご参照ください。 * [拡張可能なカスタムオブジェクトの作成方法](https://developers.hubspot.com/blog/how-to-think-like-an-architect-by-building-scalable-custom-objects) * [非公開アプリを使用したカスタムオブジェクトの作成方法](https://developers.hubspot.com/blog/how-to-build-a-custom-object-using-private-apps) > [!WARNING] > > ### 注: > > 注:カスタムオブジェクトはアカウントごとに固有であり、作成できるカスタムオブジェクトの数にはご契約内容に応じて制限があります。適用される上限について詳しくは、[HubSpot製品・サービスカタログ](https://legal.hubspot.com/hubspot-product-and-services-catalog)をご参照ください。 ## 認証方法 次の認証方法のいずれかを使用して、カスタムオブジェクトの作成、読み取り、更新を行うことができます。 * [OAuth](https://developers.hubspot.com/custom-objects-schema-pilot) * [非公開アプリのアクセストークン](/docs/api-reference/auth-oauth-v1/guide) ## カスタムオブジェクトを作成する カスタムオブジェクトを作成するには、まず、オブジェクトスキーマを定義する必要があります。スキーマには、オブジェクトの名前、プロパティー、および他のCRMオブジェクトとの関連付けを含めます。スキーマリクエストの詳細については、この記事の上部の「オブジェクトスキーマ」セクションでご確認いただけます。また、[サンプルに関する手順を追った説明](#custom-object-example)でリクエストの例を確認することもできます。 カスタムオブジェクトのスキーマを作成するには、`crm/v3/schemas`に対して`POST`リクエストを送信します。リクエスト本文に、オブジェクトスキーマの定義(オブジェクトの名前、プロパティー、関連付け)を含めます。 カスタムオブジェクトに名前を付ける際は、次の点に留意してください。 * オブジェクトを作成した後に、オブジェクトの名前とラベルを変更することはできません。 * 名前には、文字、数字、アンダースコアのみを使用できます。 * 名前はアルファベットで始める必要があります。 * 製品の特定の部分では、長いラベルが切り詰められる場合があります。 オブジェクトのプロパティーと関連付けに必要な定義については、以下の説明をお読みください。 ### プロパティー リクエスト本文で定義したプロパティーは、個々のカスタムオブジェクトレコードに情報を格納するために使用されます。 > [!WARNING] > > ### 注: > > 注:HubSpotアカウントで、カスタムオブジェクトごとに作成できる[固有の値のプロパティー](/docs/guides/crm/understanding-the-crm#:~:text=Creating%20your%20own%20unique%20identifiers)は10件までです。 定義したプロパティーを使用して、以下のプロパティーベースのフィールドに値を入力します。 * **requiredProperties**: 新しいカスタムオブジェクトレコードを作成するときに必要なプロパティー。 * **searchableProperties**: HubSpotでの検索に使用するためにインデックス付けされるプロパティー。 * **primaryDisplayProperty**: 個々のカスタムオブジェクトレコードに名前を付けるために使用されるプロパティー。 * **secondaryDisplayProperties**: primaryDisplayPropertyに属する個々のレコードに表示されるプロパティー。 ![custom-object-secondary-display-properties0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/custom-object-secondary-display-properties0.png) * `secondaryDisplayProperties`にリストされる最初のプロパティーは、そのタイプが以下のいずれかの場合、オブジェクト一覧ページにも4つ目のフィルターとして追加されます。 * `string` * `number` * `enumeration` * `boolean` * `datetime` ![custom-object-dashboard-filter0](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/custom-object-dashboard-filter0.png) * UIから表示プロパティーを削除するには、一度プロパティーを削除してから再作成する必要があります。 デフォルトでは、スキーマリクエストによってプロパティーを作成する際に、`type`プロパティーは`string`に設定され、`fieldType`プロパティーは`text`に設定されます。以下の値を使用して、さまざまなタイプのプロパティーを作成できます。 | `type` | 説明 | 有効な`fieldType`値 | | - | - | - | | `enumeration` | 一連のオプションを表す文字列。各オプションをセミコロンで区切って入力します。 | `booleancheckbox`、`checkbox`、`radio`、`select` | | `date` | 特定の年、月、日を表す[ISO 8601形式の値](https://ja.wikipedia.org/wiki/ISO_8601)。 | `date` | | `dateTime` | 特定の年、月、日、時刻を表す[ISO 8601形式の値](https://ja.wikipedia.org/wiki/ISO_8601)。HubSpotアプリ上には時刻は表示されません。 | `date` | | `string` | プレーンテキスト文字列。文字数の上限は65,536文字です。 | `file`、`text`、`textarea` | | `number` | 小数第1位までの数値。 | `number` | | `fieldType` | 説明 | | - | - | | `booleancheckbox` | ユーザーが「はい」または「いいえ」のいずれかを選択できる入力。フォーム内で使用する場合、1つのチェックボックスとして表示されます。 | | `checkbox` | プロパティー内で使用可能な選択肢の中からユーザーが複数選択できるチェックボックスのリスト。 | | `date` | 日付値。日付入力として表示されます。 | | `file` | フォームへのファイルのアップロードが可能。ファイルへのURLリンクとして格納および表示されます。 | | `number` | 10進数または科学的表記で記述された、数字の文字列または数値。 | | `radio` | プロパティーで使用可能な選択肢の中からユーザーがいずれか1つを選択できる入力。フォーム内で使用する場合、一連のラジオボタンとして表示されます。 | | `select` | プロパティーで許容される選択肢の中からユーザーがいずれか1つを選択できるドロップダウンの入力。 | | `text` | プレーンテキスト文字列。単行テキスト入力として表示されます。 | | `textarea` | プレーンテキスト文字列。単行テキスト入力として表示されます。 | ### 関連付け HubSpotは、カスタムオブジェクトに自動的にEメール、ミーティング、メモ、タスク、コール、コミュニケーションオブジェクトを関連付けます。さらに、カスタムオブジェクトに他の標準的なHubSpotオブジェクトや他のカスタムオブジェクトを関連付けることもできます。 スキーマ作成リクエストによって関連付けを作成する場合は、以下の例に示すように、名前を使用して標準のオブジェクトを識別し、`objectTypeId`値を使用してカスタムオブジェクトを識別します。例: ```json theme={null} "associatedObjects": [ "CONTACT", "COMPANY", "TICKET", "DEAL", "2-3453932" ] ``` ## 既存のカスタムオブジェクトを取得する 全てのカスタムオブジェクトを取得するには、`/crm/v3/schemas`に対して`GET`リクエストを送信します。 特定のカスタムオブジェクトを取得する場合は、次のエンドポイントのいずれかに対して`GET`リクエストを送信します。 * `/crm/v3/schemas/{fullyQualifiedName}`オブジェクトのスキーマに含まれる `fullyQualifiedName`は、そのオブジェクトのスキーマに含まれます。これは、`p{portal_id}_{object_name}`から派生したものです。[アカウント情報API](/docs/api-reference/account-account-info-v3/guide)を使用して、アカウントのポータルIDを確認できます。 例えば、IDが`1234`で、`lender`という名前のオブジェクトを持つアカウントの場合、リクエストURLは次のようになります。 * [`https://api.hubapi.com/crm/v3/schemas/p1234_lende`](https://api.hubapi.com/crm/v3/schemas/p1234_lender) ## カスタムオブジェクトレコードを取得する カスタムオブジェクトレコードを取得することもできます。 * レコードIDの値を使用して特定のレコードを取得するには、`crm/v3/objects/{objectType}/{recordId}`に対して`GET`リクエストを送信します。 このエンドポイントに対し、リクエストのURLに次のクエリーパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | レスポンスで返されるプロパティーのカンマ区切りリスト。リクエスト対象のカスタムオブジェクトレコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `propertiesWithHistory` | レスポンスで返される現在および過去のプロパティーのカンマ区切りリスト。リクエスト対象のカスタムオブジェクトレコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `associations` | 関連付けられたIDを取得する対象のオブジェクトのカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | * 複数のレコードを取得するには、`crm/v3/objects/{objectType}/batch/read`に対して`POST`リクエストを送信します。このバッチエンドポイントは関連付けを取得できません。詳しくは、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用して関連付けを一括読み取りする方法をご参照ください。 リクエストで、レコードID(`hs_object_id`)またはカスタムの[固有のIDプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を取得できます。デフォルトで、リクエストの`id`値はレコードIDを参照するため、レコードIDを使って取得するときには`idProperty`パラメーターは不要です。カスタムの固有の値のプロパティーを使用する場合は、`idProperty`パラメーターを含める必要があります。 例えば、カスタムオブジェクトレコードを一括で取得する場合のリクエストは、次のいずれかのようになります。 ```json theme={null} { "properties": ["petname"], "inputs": [ { "id": "12345" }, { "id": "67891" } ] } ``` ```json theme={null} { "properties": ["petname"], "idProperty": "uniquepropertyexample", "inputs": [ { "id": "abc" }, { "id": "def" } ] } ``` プロパティーの現在の値と過去の値を含むカスタムオブジェクトレコードを取得する場合のリクエストは、次のようになります。 ```json theme={null} { "propertiesWithHistory": ["pet_owner"], "inputs": [ { "id": "12345" }, { "id": "67891" } ] } ``` ## 既存のカスタムオブジェクトを更新する オブジェクトのスキーマを更新するには、`https://api.hubapi.com/crm/v3/schemas/{objectTypeId}`に対して`PATCH`リクエストを送信します。 カスタムオブジェクトを定義した後は、以下の点にご留意ください。 * オブジェクトの名前とラベル(単数形と複数形)を変更することはできません。 * `requiredProperties`、`searchableProperties`、`primaryDisplayProperty`、`secondaryDisplayProperties`は、オブジェクトのスキーマを更新することで変更できます。新しいプロパティーを、必須プロパティー、検索可能プロパティー、または表示プロパティーとして設定するには、スキーマを更新する前にそのプロパティーを作成する必要があります。 * カスタムオブジェクトプロパティーは、[HubSpotで](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties#view-and-edit-properties)、または[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)を使用して作成および編集できます。 ### 関連付けを更新する カスタムオブジェクトに他のオブジェクト関連付けを追加するには、`/crm/v3/schemas/_{objectTypeId}_/associations`に対して`POST`リクエストを送信します。 カスタムオブジェクトには、標準のHubSpotオブジェクト(「コンタクト」「会社」「取引」「チケット」など)または他のカスタムオブジェクトを関連付けることができます。`toObjectTypeId`フィールドで、カスタムオブジェクトはその`objectTypeId`値で識別し、標準のオブジェクトはその名前で識別します。以下に例を示します。 ```json theme={null} { "fromObjectTypeId": "2-3444025", "toObjectTypeId": "ticket", "name": "cat_to_ticket" } ``` ## カスタムオブジェクトを削除する カスタムオブジェクトは、そのタイプの全てのオブジェクトインスタンスが削除された後にのみ削除できます。カスタムオブジェクトを削除するには、`/crm/v3/schemas/{objectType}`に対して`DELETE`リクエストを送信します。 削除したオブジェクトと同じ名前で新しいカスタムオブジェクトを作成する必要がある場合は、`/crm/v3/schemas/{objectType}?archived=true`に`DELETE`リクエストを送信して、スキーマのハード(物理)削除を行う必要があります。カスタムオブジェクトタイプの削除は、そのタイプの全てのオブジェクトインスタンス、関連付け、カスタムオブジェクトのプロパティーの削除後のみでしか行えません。 ## カスタムオブジェクトの例 以下で、カスタムオブジェクトのサンプルの作成手順を詳しく見ていきます。記載されているリクエストの詳細については、記事の上部にある「オブジェクト」セクションをご参照ください。 ここでは以下の手順について取り上げます。 1. カスタムオブジェクトスキーマの作成 2. カスタムオブジェクトレコードの作成 3. カスタムオブジェクトレコードへのHubSpotコンタクトの関連付け 4. カスタムオブジェクトとHubSpotチケットとの間の新しい関連付け定義の作成 5. 新しいプロパティー定義の作成 6. 新しいプロパティーの追加による、オブジェクトスキーマ(`secondaryDisplayProperties`)の更新 *** **目標**: CarSpotという自動車販売店では、在庫情報をHubSpotに保存するために、カスタムオブジェクトを使用したいと考えています。車両の所有権と購入をトラッキングするために、車両をコンタクトレコードに関連付ける必要があります。その過程で、HubSpotチケットとカスタムプロパティーを使用して車両メンテナンスのトラッキングも行います。 ### オブジェクトスキーマを作成する CarSpotでは、次の属性をプロパティーとして表すことができるオブジェクトスキーマを作成する必要があります。 1. **条件(新車または中古車)**: enumeration 2. **販売店受付日**: date 3. **製造年**: number 4. **メーカー**: string 5. **モデル**: string 6. **VIN**: string(固有の値) 7. **色**: string 8. **走行距離**: number 9. **価格**: number 10. **メモ**: string また、オブジェクトの使用方法に関するコンテキストを提供する説明を追加し、カスタムオブジェクトと標準のコンタクトオブジェクトの関連付けを定義して、車を見込み客に結び付けられるようにします。 データモデルが完成したら、オブジェクトスキーマを作成するために、`/crm/v3/schemas`に対して`POST`リクエストを送信します。このリクエストの本文は次のように設定します。 ```json theme={null} { "name": "cars", "description": "Cars keeps track of cars currently or previously held in our inventory.", "labels": { "singular": "Car", "plural": "Cars" }, "primaryDisplayProperty": "model", "secondaryDisplayProperties": ["make"], "searchableProperties": ["year", "make", "vin", "model"], "requiredProperties": ["year", "make", "vin", "model"], "properties": [ { "name": "condition", "label": "Condition", "type": "enumeration", "fieldType": "select", "options": [ { "label": "New", "value": "new" }, { "label": "Used", "value": "used" } ] }, { "name": "date_received", "label": "Date received", "type": "date", "fieldType": "date" }, { "name": "year", "label": "Year", "type": "number", "fieldType": "number" }, { "name": "make", "label": "Make", "type": "string", "fieldType": "text" }, { "name": "model", "label": "Model", "type": "string", "fieldType": "text" }, { "name": "vin", "label": "VIN", "type": "string", "hasUniqueValue": true, "fieldType": "text" }, { "name": "color", "label": "Color", "type": "string", "fieldType": "text" }, { "name": "mileage", "label": "Mileage", "type": "number", "fieldType": "number" }, { "name": "price", "label": "Price", "type": "number", "fieldType": "number" }, { "name": "notes", "label": "Notes", "type": "string", "fieldType": "text" } ], "associatedObjects": ["CONTACT"] } ``` > [!TIP] > > オブジェクトスキーマを作成した後、CarSpotは新しいオブジェクトの`{objectTypeId}`フィールドの値を確認します。後でオブジェクトを取得および更新する際にこの値を使用するためです。必要に応じて、`{fullyQualifiedName}`の値を使用することもできます。 ### カスタムオブジェクトレコードを作成する。 カスタムオブジェクトが作成されたら、CarSpotは、在庫にある車両ごとにオブジェクトレコードを作成できます。 最初の車両のオブジェクトレコードを作成するために、次のようにリクエスト本文を設定した`POST`リクエストを`/crm/v3/objects/2-3465404`に対して送信します。 ```json theme={null} { "properties": { "condition": "used", "date_received": "1582416000000", "year": "2014", "make": "Nissan", "model": "Frontier", "vin": "4Y1SL65848Z411439", "color": "White", "mileage": "80000", "price": "12000", "notes": "Excellent condition. No accidents." } } ``` このAPI呼び出しの応答は次のようになります。 ```json theme={null} { "id": "181308", "properties": { "color": "White", "condition": "used", "make": "Nissan", "mileage": "80000", "model": "Frontier", "vin": "4Y1SL65848Z411439", "notes": "Excellent condition. No accidents.", "price": "12000", "year": "2014", "date_received": "1582416000000" }, "createdAt": "2020-02-23T01:44:11.035Z", "updatedAt": "2020-02-23T01:44:11.035Z", "archived": false } ``` レコードが作成された後は、`id`値を使用して、車両に既存のコンタクトを関連付けることができます。 > [!WARNING] > > 後から、このレコードと特定のプロパティーを取得する場合は、`https://api.hubapi.com/crm/v3/objects/2-3465404/181308?portalId=1234567&properties=year&properties=make&properties=model`に対して`GET`リクエストを送信します。 ### カスタムオブジェクトレコードを別のレコードに関連付ける 新しい車両レコードのID(`181308`)と別のレコードのIDを使用して、カスタムオブジェクトレコードを別のオブジェクトのレコードに関連付けることができます。 関連付けを作成するには、`/crm/v3/objects/{objectType}/{objectId}/associations/{toObjectType}/{toObjectId}/{associationType}`に対して`PUT`リクエストを送信します。オブジェクトの関係がすでに[定義](#defining-a-new-association)されている場合、`associationType`値を判別するには、`crm/v3/schemas/{objectType}`に対して`GET`リクエストを送信します。 例えば、コンタクトID`51`と関連付けタイプ`75`を使用して、CarSpotは車両レコードにコンタクトを関連付けることができます。上記のIDを使用して、次のリクエストURLが作成されます。 `https://api.hubspot.com/crm/v3/objects/2-3465404/181308/associations/contacts/51/75` ### 新しい関連付けを定義する CarSpotは次に、車両の販売後サービスのトラッキングを開始したいと考えています。そのために、HubSpotのチケットを使用して、実施されたメンテナンスをログに記録します。 車両とチケットを関連付けられるようにするために、次のようにリクエストの本文を設定した`POST`リクエストを\*\*`/crm/v3/schemas/2-3465404/associations`\*\*に対して送信して、新しい関連付けを作成します。 ```json theme={null} { "fromObjectTypeId": "2-3465404", "toObjectTypeId": "ticket", "name": "car_to_ticket" } ``` このAPI呼び出しの応答は次のようになります。 ```json theme={null} { "id": "121", "createdAt": "2020-02-23T01:52:12.893826Z", "updatedAt": "2020-02-23T01:52:12.893826Z", "fromObjectTypeId": "2-3465404", "toObjectTypeId": "0-5", "name": "car_to_ticket" } ``` > [!NOTE] > > 2つのカスタムオブジェクト間に新しい関連付けを作成する場合は、toObjectTypeIdフィールドのobjectTypeIdでカスタムオブジェクトを指定します。標準オブジェクトの場合、名前で指定するか、次の値を使用できます。 > > * **コンタクト**: 0-1 > * **会社名**: 0-2 > * **取引**: 0-3 > * **チケット**: 0-5 ### 新しいプロパティーを定義する メンテナンスのトラッキングを進めるにつれて、CarSpotはメンテナンスサービスをパッケージにして提供できる可能性があることに気づきました。個々の車両レコードでこれらのメンテナンスパッケージのトラッキングを行うために、利用可能なパッケージを含む新しいenumeration型プロパティーを作成します。 新しいプロパティーを定義するには、`POST`リクエストを`/crm/v3/properties/2-3465404`に送信します。このリクエストの本文は次のようになります。 ```json theme={null} { "groupName": "car_information", "name": "maintenance_package", "label": "Maintenance Package", "type": "enumeration", "fieldType": "select", "options": [ { "label": "Basic", "value": "basic" }, { "label": "Oil change only", "value": "oil_change_only" }, { "label": "Scheduled", "value": "scheduled" } ] } ``` このAPI呼び出しの応答は次のようになります。 ```json theme={null} { "updatedAt": "2020-02-23T02:08:20.055Z", "createdAt": "2020-02-23T02:08:20.055Z", "name": "maintenance_package", "label": "Maintenance Package", "type": "enumeration", "fieldType": "select", "groupName": "car_information", "options": [ { "label": "Basic", "value": "basic", "displayOrder": -1, "hidden": false }, { "label": "Oil change only", "value": "oil_change_only", "displayOrder": -1, "hidden": false }, { "label": "Scheduled", "value": "scheduled", "displayOrder": -1, "hidden": false } ], "displayOrder": -1, "calculated": false, "externalOptions": false, "archived": false, "hasUniqueValue": false, "hidden": false, "modificationMetadata": { "archivable": true, "readOnlyDefinition": false, "readOnlyValue": false }, "formField": false } ``` プロパティーが作成されたので、このプロパティーを各車両レコードのサイドバーに表示して、営業担当者や技術者が情報をすぐに利用できるようにしたいと考えています。それを行うためには、次のようにリクエスト本文を設定した`PATCH`リクエストを`/crm/v3/schemas/2-3465404`に送信して、このプロパティーを`secondaryDisplayProperties`に追加します。 ```json theme={null} { "secondaryDisplayProperties": ["maintenance_package"] } ``` このAPI呼び出しの応答は次のようになります。 ```json theme={null} { "id": "3465404", "createdAt": "2020-02-23T01:24:54.537Z", "updatedAt": "2020-02-23T02:12:24.175874Z", "labels": { "singular": "Car", "plural": "Cars" }, "requiredProperties": ["year", "model", "vin", "make"], "searchableProperties": ["year", "model", "vin", "make"], "primaryDisplayProperty": "model", "secondaryDisplayProperties": ["maintenance_package"], "portalId": 1234567, "name": "car" } ``` これで、技術者が車両に関連付けられたコンタクトレコードを開くと、プロパティーがサイドバーのカスタムオブジェクトのカードに表示されるようになります。 ![Screen Shot 2020-03-06 at 11.08.41 AM](https://developers.hubspot.com/hs-fs/hubfs/Screen%20Shot%202020-03-06%20at%2011.08.41%20AM.png?width=386\&name=Screen%20Shot%202020-03-06%20at%2011.08.41%20AM.png) CarSpotはHubSpotの使用を継続すればするほど、HubSpotのAPIを通じて、このカスタムオブジェクトを改善し、拡張する方法を見出していくことでしょう。さらには、[カスタムオブジェクトデータを使用して動的ページを作成](/docs/cms/start-building/features/data-driven-content/crm-data-in-cms-pages)することも考えられます。 # Merge two objects with same type Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/merge-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/merge 同じタイプの2つのCRMオブジェクトを1つのオブジェクトにマージします。この操作は、重複するレコードを統合し、データの一貫性を確保するのに役立ちます。リクエストでは、プライマリーオブジェクトとマージするオブジェクトを指定する必要があります。 > **Supported products** > **Required Scopes** # Search for CRM objects of a specified type. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/search/search-custom-objects specs/2026-09/crm-custom-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/search 指定された検索条件を使用して、特定のタイプのCRMオブジェクトを検索します。このエンドポイントでは、さまざまなプロパティーに基づいてオブジェクトを絞り込み、並べ替え、一致するオブジェクトのコレクションと合計数を返します。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/custom-objects/update-custom-object specs/2026-09/crm-custom-objects-v2026-09.json PATCH /crm/objects/2026-09/{objectType}/{objectId} CRMで`{objectId}`によって識別されるオブジェクトの部分更新を実行します。`{objectId}`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された任意の一意のプロパティー値を参照することもできます。指定されたプロパティー値は既存の値を上書きし、読み取り専用および存在しないプロパティーは無視します。空の文字列を渡すことでプロパティーをクリアできます。 > **Supported products** > **Required Scopes** # Retrieve deal splits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deal-splits/get-deal-splits specs/2026-09/crm-deal-splits-v2026-09.json POST /deal-splits/2026-09/batch/read 関連付けられた取引分割オブジェクト内部IDで取引分割オブジェクトをバッチで読み取ります > **Supported products** > **Required Scopes** # Deal Splits API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deal-splits/guide # Upsert deal splits Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deal-splits/upsert-deal-splits specs/2026-09/crm-deal-splits-v2026-09.json POST /deal-splits/2026-09/batch/upsert 指定されたIDを使用して、取引の取引分割の作成または置換を行います。各取引の取引分割の割合は合計で1.0(100%)にする必要があり、小数点以下は8桁まで指定できます。 > **Supported products** > **Required Scopes** # Create a batch of deals Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/batch/create-deals specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3/batch/create 1つのリクエストで複数の取引を作成します。 > **Supported products** > **Required Scopes** # Archive a batch of deals by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/batch/delete-deals specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3/batch/archive IDを使用して、複数の取引をアーカイブします。 > **Supported products** > **Required Scopes** # Read a batch of deals by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/batch/get-deals specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update a batch of deals by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/batch/update-deals specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3/batch/update 内部IDまたは固有プロパティー値を使用して、複数の取引を更新します。 > **Supported products** > **Required Scopes** # Create or update a batch of deals by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/batch/upsert-deals specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/create-deal specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3 特定のプロパティーを使用して取引を作成し、IDを含めてそのオブジェクトのコピーを返します。標準取引の作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/delete-deal specs/2026-09/crm-deals-v2026-09.json DELETE /crm/objects/2026-09/0-3/{dealId} 「{dealId}」によって特定されるオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/get-deal specs/2026-09/crm-deals-v2026-09.json GET /crm/objects/2026-09/0-3/{dealId} 「{dealId}」によって特定されるオブジェクトを読み取ります。「{dealId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/get-deals specs/2026-09/crm-deals-v2026-09.json GET /crm/objects/2026-09/0-3 取引のページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # CRM API | 取引 Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/guide > **[Run in Postman](https://app.getpostman.com/run-collection/8b5f74a661b06f5a54bd)** > **スコープ要件** HubSpotにおける「取引」とは、コンタクトまたは会社との間で進めている商取引を表します。[パイプラインステージ](https://knowledge.hubspot.com/ja/object-settings/set-up-and-customize-pipelines)上で成約または失注になるまでの間、営業プロセスを通してトラッキングが行われます。取引エンドポイントを使用することにより、取引レコードを作成、管理したり、HubSpotと他のシステムの間で取引データを同期したりできます。 オブジェクト、レコード、プロパティー、および関連付けAPIの詳細については、[CRMのガイド](/docs/guides/crm/understanding-the-crm)をご確認ください。HubSpotのオブジェクトとレコードに関する一般的な情報については、[CRMデータベースを管理する方法](https://knowledge.hubspot.com/ja/get-started/manage-your-crm-database)をご確認ください。 ## 取引を作成する 新しい取引を作成するには、`POST`リクエストを`/crm/v3/objects/deals`に送信します。 リクエスト本文の`properties`オブジェクトに取引データを含めます。また、`associations`オブジェクトを追加して、新しい取引を既存のレコード(コンタクト、会社など)またはアクティビティー(ミーティング、メモなど)に関連付けることもできます。 ### プロパティー 取引の詳細は、取引プロパティーに格納されます。HubSpot には[デフォルトの取引プロパティー](https://knowledge.hubspot.com/ja/properties/hubspots-default-deal-properties)が用意されていますが、[カスタムプロパティーを作成](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties)することもできます。 新しい取引を作成する際には`dealname`と`dealstage`のプロパティーをリクエストに含める必要があります。また、複数のパイプラインがある場合は`pipeline`も含めます。パイプラインが指定されない場合、デフォルトのパイプラインが使用されます。 利用可能な全てのプロパティーを確認するには、`GET`リクエストを`/crm/v3/properties/deals`に送信して、アカウントの取引プロパティーのリストを取得します。詳しくは[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)をご参照ください。 > [!WARNING] > > ### 注: > > APIを介して取引を作成する際は、取引ステージまたはパイプラインの内部IDを使用する必要があります。APIを介して取引を取得すると、内部IDも返されます。取引ステージまたはパイプラインの内部IDは、[取引パイプライン設定](https://knowledge.hubspot.com/ja/object-settings/set-up-and-customize-pipelines#edit-or-delete-pipelines)で確認できます。 例えば、新しい取引レコードを作成する場合、リクエストの内容は以下のようになります。 ```json theme={null} { "properties": { "amount": "1500.00", "closedate": "2019-12-07T16:50:06.678Z", "dealname": "New deal", "pipeline": "default", "dealstage": "contractsent", "hubspot_owner_id": "910901", "hs_all_collaborator_owner_ids": ";12345678;9101112" } } ``` ### 関連付け また、新しい取引を作成する際には、`associations`オブジェクトで[既存のレコード](https://knowledge.hubspot.com/ja/records/associate-records)または[アクティビティー](https://knowledge.hubspot.com/ja/records/associate-activities-with-records)に関連付けることもできます。例えば、新しい取引を既存のコンタクトと会社に関連付ける場合、リクエストの内容は以下のようになります。 ```json theme={null} { "properties": { "amount": "1500.00", "closedate": "2019-12-07T16:50:06.678Z", "dealname": "New deal", "pipeline": "default", "dealstage": "contractsent", "hubspot_owner_id": "910901" }, "associations": [ { "to": { "id": 201 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 5 } ] }, { "to": { "id": 301 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 3 } ] } ] } ``` 以下を`associations`オブジェクトに含める必要があります。 | パラメーター | 説明 | | - | - | | `to` | 取引に関連付けるレコードまたはアクティビティー。一意の`id`値で指定します。 | | `types` | 取引とレコードまたはアクティビティーの間の関連付けのタイプ。`associationCategory`と`associationTypeId`を含めます。デフォルトの関連付けタイプIDは[こちらのページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)に記載されています。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタム関連付けタイプ(ラベル)の値を取得することもできます。 | ## 取引を取得する 取引レコードを個別に、または一括で取得できます。 * 取引を個別に取得するには、`GET`リクエストを`/crm/v3/objects/deals/{dealId}`に送信します。 * 全ての取引のリストを要求するには、`GET`リクエストを`/crm/v3/objects/deals`に送信します。 これらのエンドポイントに対し、リクエストのURLに次のクエリーパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | レスポンスで返されるプロパティーのカンマ区切りリスト。リクエスト対象の取引レコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `propertiesWithHistory` | レスポンスで返される現在および過去のプロパティーのカンマ区切りリスト。リクエスト対象の取引レコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `associations` | 関連付けられたIDを取得する対象のオブジェクトのカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | * レコードIDまたは[カスタム固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を指定して特定の取引を一括で取得するには、`POST`リクエストを`crm/v3/objects/deals/batch/read`に送信します。 * このバッチエンドポイントは関連付けを取得できません。詳しくは、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用して関連付けを一括読み取りする方法をご参照ください。 * 取引IDではなくカスタムの[固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)によって取引を取得するには、リクエスト本文に`idProperty`パラメーターを含めてプロパティー名を指定します。次に、`inputs`配列に取引IDではなく固有IDプロパティーの値を含めます。 例えば、取引レコードを一括で取得する場合のリクエストは、以下のいずれかのようになります。 ```text get by id.txt theme={null} { "properties": ["dealname", "dealstage", "pipeline"], "inputs": [ { "id": "7891023" }, { "id": "987654" } ] } ``` ```text get by unique property.txt theme={null} { "properties": ["dealname", "dealstage", "pipeline"], "idProperty": "uniqueordernumber", "inputs": [ { "id": "0001111" }, { "id": "0001112" } ] } ``` 特定のプロパティーの現在の値と過去の値を含む取引を取得するには、以下の通り、リクエスト本文に`propertiesWithHistory`パラメーターを含めます。 ```json theme={null} { "propertiesWithHistory": ["dealstage"], "inputs": [ { "id": "7891023" }, { "id": "987654" } ] } ``` ## 取引を更新する 取引レコードを個別に、または一括で更新できます。既存の取引の場合、APIを介してそのレコードを更新するために使用できるデフォルトの一意の値は、取引IDです。ただし、[カスタムの固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を使用して取引を識別することもできます。 * レコードIDを基に取引を個別に更新するには、`PATCH`リクエストに更新対象のデータを含めて`/crm/v3/objects/deals/{dealId}`に送信します。 * 複数の取引を更新するには、`POST`リクエストを`/crm/v3/objects/deals/batch/update`に送信します。リクエストの本文に、取引の識別子と更新するプロパティーを含む配列を含めます。 ### 既存の取引を他のレコードまたはアクティビティーに関連付ける 取引を他のCRMレコードやアクティビティーに関連付けるには、`PUT`リクエストを`/crm/v3/objects/deals/{dealId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。 > [!NOTE] > > `associationTypeId`値を取得するには、[デフォルト値のリスト](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)を参照するか、`GET`リクエストを`/crm/v4/associations/{fromObjectType}/{toObjectType}/labels`に送信します。 レコード関連付けの詳細については[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご確認ください。 ### 関連付けを削除する 取引とレコードまたはアクティビティーの間の関連付けを削除するには、`DELETE`リクエストを`/crm/v3/objects/deals/{dealId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。 ## 取引レコード上でアクティビティーをピン留めする リクエストに`hs_pinned_engagement_id`パラメーターを含めることで、APIを介して取引レコードでアクティビティーをピン留めできます。パラメーターの値には、ピン留めするアクティビティーのIDを指定します。これは[エンゲージメントAPI](/docs/api-reference/overview)を介して取得できます。レコードごとに1つのアクティビティーをピン留めすることができ、そのアクティビティーはピン留めする前にすでに取引に関連付けられている必要があります。 取引にピン留めするアクティビティーを設定または更新する場合、リクエストは以下のようになります。 ```json theme={null} { "properties": { "hs_pinned_engagement_id": 123456789 } } ``` 同じリクエスト内で、取引を作成し、既存のアクティビティーに関連付け、アクティビティーをピン留めすることもできます。以下に例を示します。 ```json theme={null} { "properties": { "dealname": "New deal", "pipelines": "default", "dealstage": "contractsent", "hs_pinned_engagement_id": 123456789 }, "associations": [ { "to": { "id": 123456789 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 213 } ] } ] } ``` ## 取引を削除する 取引レコードを個別に、または一括で削除できます。削除した取引レコードは、HubSpot内のごみ箱に追加されます。後から[HubSpot内で取引を復元](https://knowledge.hubspot.com/ja/records/restore-deleted-records)することも可能です。 * IDを基準に[取引を個別に削除](/docs/api-reference/crm-deals-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Fdeals%2F%7Bdealid%7D)するには、`DELETE`リクエストを`/crm/v3/objects/deals/{dealId}`に送信します。このリクエストにリクエスト本文は必要ありません。 * [取引を一括で削除する](/docs/api-reference/crm-deals-v3/guide#post-%2Fcrm%2Fv3%2Fobjects%2Fdeals%2Fbatch%2Farchive)には、`POST`リクエストを`/crm/v3/objects/deals/batch/archive`に送信します。以下の例のように、リクエスト本文には取引IDの値を`id`入力として含めます。 ```json theme={null} { "inputs": [ { "id": "123456" }, { "id": "7891011" }, { "id": "12123434" } ] } ``` 取引の削除について詳しくは、[リファレンスドキュメント](/docs/api-reference/crm-deals-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Fdeals%2F%7Bdealid%7D)をご参照ください。 # Merge two deals with same type Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/merge-deals specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3/merge 同じタイプの2つの取引を1つの取引にまとめます。 > **Supported products** > **Required Scopes** # Deal object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/object-definition # Search for deals using various filters and criteria to retrieve specific records. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/search-deals specs/2026-09/crm-deals-v2026-09.json POST /crm/objects/2026-09/0-3/search 指定した条件とフィルターを使用して、取引を検索します。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/deals/update-deal specs/2026-09/crm-deals-v2026-09.json PATCH /crm/objects/2026-09/0-3/{dealId} 「{dealId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{dealId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create discounts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/batch/create-discounts specs/2026-09/crm-discounts-v2026-09.json POST /crm/objects/2026-09/discounts/batch/create HubSpotアカウントで、指定されたプロパティーを持つCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に作成でき、各オブジェクトのIDを含むコピーが返されます。これは、複数のオブジェクトを同時に作成する必要がある一括データ操作に役立ちます。 > **Supported products** > **Required Scopes** # Delete discounts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/batch/delete-discounts specs/2026-09/crm-discounts-v2026-09.json POST /crm/objects/2026-09/discounts/batch/archive IDで識別されたCRMオブジェクトのバッチをアーカイブします。この操作により、指定されたオブジェクトはアーカイブに移動され、通常の利用対象から除外されますが、将来復元できるよう保持されます。これは、現在の業務では不要でも、履歴やコンプライアンスの目的で将来必要になる可能性がある大量のデータを管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve discounts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/batch/get-discounts specs/2026-09/crm-discounts-v2026-09.json POST /crm/objects/2026-09/discounts/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトのバッチを取得します。このエンドポイントは、複数のオブジェクトを一度に取得するのに役立ち、レスポンスに含めるプロパティーを指定できます。アーカイブされたオブジェクトの絞り込みをサポートしています。 > **Supported products** > **Required Scopes** # Update discounts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/batch/update-discounts specs/2026-09/crm-discounts-v2026-09.json POST /crm/objects/2026-09/discounts/batch/update プロパティーを指定して、CRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、指定したタイプのオブジェクトに対して一括更新を実行でき、データの同期や複数のレコードへの変更の効率的な適用に役立ちます。 > **Supported products** > **Required Scopes** # Upsert discounts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/batch/upsert-discounts specs/2026-09/crm-discounts-v2026-09.json POST /crm/objects/2026-09/discounts/batch/upsert 一意のプロパティー値を使用してCRMオブジェクトをバッチ作成またはバッチ更新します。このエンドポイントでは、単一のリクエストで複数のオブジェクトを効率的に管理でき、既存のオブジェクトを更新したり、必要に応じて新しいオブジェクトを作成したりできます。 > **Supported products** > **Required Scopes** # Create a discount Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/create-discount specs/2026-09/crm-discounts-v2026-09.json POST /crm/objects/2026-09/discounts 指定されたプロパティーでCRMオブジェクトを作成し、IDを含むオブジェクトのコピーを受け取ります。このエンドポイントは、CRMシステムに新しいオブジェクトを追加するのに役立ち、新しく作成されたオブジェクトの詳細をすぐに受け取ることができます。 > **Supported products** > **Required Scopes** # Delete a discount Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/delete-discount specs/2026-09/crm-discounts-v2026-09.json DELETE /crm/objects/2026-09/discounts/{discountId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、指定されたタイプのオブジェクトをアーカイブし、通常の利用対象から実質的に削除しながら、将来復元できるようにシステム内に保持します。 > **Supported products** > **Required Scopes** # Retrieve a discount Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/get-discount specs/2026-09/crm-discounts-v2026-09.json GET /crm/objects/2026-09/discounts/{discountId} 「{objectId}」によって特定されるオブジェクトを読み取ります。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve discounts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/get-discounts specs/2026-09/crm-discounts-v2026-09.json GET /crm/objects/2026-09/discounts HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ります。プロパティー、関連付けに加え、アーカイブ済みレコードを含めるかどうかを指定することで、返されるデータを制御できます。このエンドポイントでは、カーソルトークンを使用したページ分割がサポートされます。 > **Supported products** > **Required Scopes** # Discounts API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/guide # Discount object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/object-definition # Search for a discount Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/search/search-discounts specs/2026-09/crm-discounts-v2026-09.json POST /crm/objects/2026-09/discounts/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、特定の条件に一致するオブジェクトを取得するための複雑なクエリーを実行できます。検索結果には、一致するオブジェクトの総数とオブジェクト自体が含まれます。 > **Supported products** > **Required Scopes** # Update a discount Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/discounts/update-discount specs/2026-09/crm-discounts-v2026-09.json PATCH /crm/objects/2026-09/discounts/{discountId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Read a batch of feedback submissions by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/feedback-submissions/batch/get-feedback-submissions specs/2026-09/crm-feedback-submissions-v2026-09.json POST /crm/objects/2026-09/feedback_submissions/batch/read 内部IDまたは一意のプロパティー値を使用して、CRMオブジェクトのバッチを取得します。このエンドポイントでは、レスポンスに含めるプロパティーを指定できます。これは、単一のリクエストで複数のオブジェクトに関する詳細情報を取得するのに役立ち、データ分析や同期タスクに利用できます。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/feedback-submissions/get-feedback-submission specs/2026-09/crm-feedback-submissions-v2026-09.json GET /crm/objects/2026-09/feedback_submissions/{feedbackSubmissionId} HubSpot CRMで`{objectId}`によって識別されるオブジェクトを読み取ります。デフォルトでは、`{objectId}`は内部オブジェクトIDを指しますが、`idProperty`クエリーパラメーターを使用して任意の一意のプロパティー値を指定できます。`properties`クエリーパラメーターで特定のプロパティーを選択して、レスポンスをカスタマイズできます。このエンドポイントは、プロパティー、履歴、関連付け、アーカイブステータスなど、特定のCRMオブジェクトに関する詳細情報を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/feedback-submissions/get-feedback-submissions specs/2026-09/crm-feedback-submissions-v2026-09.json GET /crm/objects/2026-09/feedback_submissions 指定されたタイプのCRMオブジェクトを1ページ分読み取ります。`properties`クエリーパラメーターを使用して、返されるプロパティーを制御します。このエンドポイントはページ分割をサポートしており、指定すると関連付けられたオブジェクトIDを含めることができます。 > **Supported products** > **Required Scopes** # Survey Responses API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/feedback-submissions/guide # Feedback submission object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/feedback-submissions/object-definition # Search for feedback submissions using specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/feedback-submissions/search/search-feedback-submissions specs/2026-09/crm-feedback-submissions-v2026-09.json POST /crm/objects/2026-09/feedback_submissions/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントでは、フィルターグループ、並べ替えオプション、およびレスポンスに含めるプロパティーを指定して、複雑な検索を実行できます。これは、特定の条件を満たすオブジェクトのサブセットを取得するのに有用です。 > **Supported products** > **Required Scopes** # Create fees Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/batch/create-fees specs/2026-09/crm-fees-v2026-09.json POST /crm/objects/2026-09/fees/batch/create HubSpotで指定されたタイプのCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成でき、CRMに新しいデータを入力するプロセスを効率化できます。各オブジェクトには必要なプロパティーが定義されている必要があり、レスポンスには作成されたオブジェクトとそのIDが含まれます。 > **Supported products** > **Required Scopes** # Delete fees Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/batch/delete-fees specs/2026-09/crm-fees-v2026-09.json POST /crm/objects/2026-09/fees/batch/archive IDでCRMオブジェクトをバッチアーカイブします。このエンドポイントは、複数のオブジェクトを単一のリクエストでごみ箱に移動するのに役立ち、大規模なデータセットを管理するプロセスを効率化できます。 > **Supported products** > **Required Scopes** # Retrieve fees Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/batch/get-fees specs/2026-09/crm-fees-v2026-09.json POST /crm/objects/2026-09/fees/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、大規模なデータセットを扱う際のパフォーマンスを最適化できます。アーカイブされたオブジェクトをレスポンスに含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update fees Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/batch/update-fees specs/2026-09/crm-fees-v2026-09.json POST /crm/objects/2026-09/fees/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、指定したタイプの複数のオブジェクトを1つのリクエストで変更できます。これは、複数のオブジェクトのプロパティーを一度に変更する必要がある一括更新に役立ちます。リクエストボディには、更新するオブジェクトと新しいプロパティー値を含める必要があります。 > **Supported products** > **Required Scopes** # Upsert fees Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/batch/upsert-fees specs/2026-09/crm-fees-v2026-09.json POST /crm/objects/2026-09/fees/batch/upsert 一意のプロパティー値でCRMオブジェクトをバッチ作成または更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に管理し、各オブジェクトが一意のプロパティーに基づいて作成または更新されるようにできます。 > **Supported products** > **Required Scopes** # Create a fee Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/create-fee specs/2026-09/crm-fees-v2026-09.json POST /crm/objects/2026-09/fees 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを受け取ります。このエンドポイントは、定義済みの属性を持つ新しいオブジェクトをCRMシステムに追加する際に便利です。標準オブジェクトの作成に関するドキュメントと例が利用可能です。 > **Supported products** > **Required Scopes** # Delete a fee Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/delete-fee specs/2026-09/crm-fees-v2026-09.json DELETE /crm/objects/2026-09/fees/{feeId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、一意の識別子で特定のCRMオブジェクトをアーカイブし、通常の利用から実質的に除外しつつ、必要に応じて後で復元できる状態で保持します。 > **Supported products** > **Required Scopes** # Retrieve a fee Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/get-fee specs/2026-09/crm-fees-v2026-09.json GET /crm/objects/2026-09/fees/{feeId} `objectId`で識別されるオブジェクトを読み取ってください。このエンドポイントを使用すると、内部IDまたは`idProperty`クエリーパラメーターで指定された一意のプロパティー値を使用して、特定のCRMオブジェクトの詳細を取得できます。`properties`クエリーパラメーターで目的のプロパティーを指定することで、レスポンスの内容を制御できます。 > **Supported products** > **Required Scopes** # Retrieve fees Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/get-fees specs/2026-09/crm-fees-v2026-09.json GET /crm/objects/2026-09/fees 指定されたタイプのCRMオブジェクトのページを取得します。`properties`クエリーパラメーターを使用して、返される特定のプロパティーを選択することで、レスポンスをカスタマイズできます。このエンドポイントはページ分割をサポートしており、必要に応じて関連付けられたオブジェクトIDを含めることができます。 > **Supported products** > **Required Scopes** # Fees API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/guide # Fee object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/object-definition # Search for fees Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/search/search-fees specs/2026-09/crm-fees-v2026-09.json POST /crm/objects/2026-09/fees/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、特定のプロパティーと条件に基づいてオブジェクトを取得でき、CRMデータに柔軟にクエリーを実行できます。 > **Supported products** > **Required Scopes** # Update a fee Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/fees/update-fee specs/2026-09/crm-fees-v2026-09.json PATCH /crm/objects/2026-09/fees/{feeId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Retrieve a forecast type Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/forecasts/forecast-types/get-forecast-type specs/2026-09/crm-forecast-types-v2026-09.json GET /forecast-settings/2026-09/forecast-types/{forecastTypeId} HubSpotアカウントから、IDを指定して特定のフォーキャストタイプを取得します。このエンドポイントは、フォーキャスト計算で使用されるプロパティーを定義する特定のフォーキャストタイプに関する詳細情報にアクセスする場合に便利です。 > **Supported products** # Retrieve forecast types Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/forecasts/forecast-types/get-forecast-types specs/2026-09/crm-forecast-types-v2026-09.json GET /forecast-settings/2026-09/forecast-types ポータル用に設定されているすべてのフォーキャストタイプを返します。フォーキャストタイプは、フォーキャストの計算に使用されるプロパティーを定義します。このエンドポイントは、HubSpotアカウントで利用可能なさまざまなフォーキャスト設定を取得する場合に便利で、さまざまなプロパティーに基づいてフォーキャストがどのように生成されるかを理解できます。 > **Supported products** # Forecasts API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/forecasts/guide # Search for forecasts Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/forecasts/search/search-forecasts specs/2026-09/crm-forecasts-v2026-09.json POST /crm/objects/2026-09/{objectType}/search HubSpotアカウント内の既存のフォーキャストを検索します。このエンドポイントでは、さまざまな条件に基づいてオブジェクトをフィルタリングおよび並べ替えることができるため、必要なデータを柔軟に取得できます。特定のプロパティーや条件に一致するオブジェクトを検索する場合に役立ちます。 > **Supported products** > **Required Scopes** # Create goal targets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/batch/create-goal-targets specs/2026-09/crm-goal-targets-v2026-09.json POST /crm/objects/2026-09/goal_targets/batch/create 1回のバッチ操作によって複数の目標ターゲットを作成します。 > **Supported products** > **Required Scopes** # Delete goal targets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/batch/delete-goal-targets specs/2026-09/crm-goal-targets-v2026-09.json POST /crm/objects/2026-09/goal_targets/batch/archive 複数の目標ターゲットを、IDを使用して1回のバッチ操作によってアーカイブします。 > **Supported products** > **Required Scopes** # Retrieve goal targets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/batch/get-goal-targets specs/2026-09/crm-goal-targets-v2026-09.json POST /crm/objects/2026-09/goal_targets/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update goal targets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/batch/update-goal-targets specs/2026-09/crm-goal-targets-v2026-09.json POST /crm/objects/2026-09/goal_targets/batch/update 複数の目標ターゲットを、内部IDまたは固有プロパティー値を使用して、1回のバッチ操作によって更新します。 > **Supported products** > **Required Scopes** # Create or update a batch of goal targets by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/batch/upsert-goal-targets specs/2026-09/crm-goal-targets-v2026-09.json POST /crm/objects/2026-09/goal_targets/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create a goal target Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/create-goal-target specs/2026-09/crm-goal-targets-v2026-09.json POST /crm/objects/2026-09/goal_targets 特定のプロパティーを使用して目標ターゲットを作成し、IDを含めてそのオブジェクトのコピーを返します。標準目標ターゲットの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Delete a goal target Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/delete-goal-target specs/2026-09/crm-goal-targets-v2026-09.json DELETE /crm/objects/2026-09/goal_targets/{goalTargetId} 「{goalTargetId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Retrieve goal target Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/get-goal-target specs/2026-09/crm-goal-targets-v2026-09.json GET /crm/objects/2026-09/goal_targets/{goalTargetId} 「{goalTargetId}」によって特定されるオブジェクトを読み取ります。「{goalTargetId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve goal targets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/get-goal-targets specs/2026-09/crm-goal-targets-v2026-09.json GET /crm/objects/2026-09/goal_targets 目標ターゲットのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Goals API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/guide # Goal object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/object-definition # Search for goal targets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/search/search-goal-targets specs/2026-09/crm-goal-targets-v2026-09.json POST /crm/objects/2026-09/goal_targets/search 指定した条件を使用して目標ターゲットを検索します。 > **Supported products** > **Required Scopes** # Update a goal target Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/update-goal-target specs/2026-09/crm-goal-targets-v2026-09.json PATCH /crm/objects/2026-09/goal_targets/{goalTargetId} 「{goalTargetId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{goalTargetId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/goals/update-goal-target-objectId specs/2026-09/crm-goal-targets-v2026-09.json PATCH /crm/objects/2026-09/goal_targets/{goalTargetId} 「{goalTargetId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{goalTargetId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of invoices Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/batch/create-invoices specs/2026-09/crm-invoices-v2026-09.json POST /crm/objects/2026-09/invoices/batch/create 指定されたプロパティーを持つCRMオブジェクトをバッチ作成し、作成されたオブジェクトをIDを含めて返します。このエンドポイントは、単一のリクエストで複数のオブジェクトをCRMに効率的に追加するのに役立ちます。 > **Supported products** > **Required Scopes** # Archive a batch of invoices by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/batch/delete-invoices specs/2026-09/crm-invoices-v2026-09.json POST /crm/objects/2026-09/invoices/batch/archive IDでCRMオブジェクトをバッチアーカイブします。このエンドポイントでは、単一のリクエストで複数のオブジェクトをアーカイブに移動できるため、大規模なデータセットの管理や一括操作を効率的に実行するのに役立ちます。 > **Supported products** > **Required Scopes** # Read a batch of invoices by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/batch/get-invoices specs/2026-09/crm-invoices-v2026-09.json POST /crm/objects/2026-09/invoices/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトをバッチで読み取ります。このエンドポイントは、複数のオブジェクトを1つのリクエストで取得するのに役立ち、各オブジェクトに対して個別のリクエストを行うよりも効率的です。レスポンスにはオブジェクトの詳細が含まれ、アーカイブされたオブジェクトを含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of invoices by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/batch/update-invoices specs/2026-09/crm-invoices-v2026-09.json POST /crm/objects/2026-09/invoices/batch/update HubSpotアカウントで、指定したタイプのCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、1つのリクエストで複数のオブジェクトを作成できるため、データを効率的にインポートしたり、外部システムと同期したりするのに役立ちます。レスポンスには、作成されたオブジェクトの詳細(IDを含む)が含まれます。 > **Supported products** > **Required Scopes** # Create or update a batch of invoices by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/batch/upsert-invoices specs/2026-09/crm-invoices-v2026-09.json POST /crm/objects/2026-09/invoices/batch/upsert HubSpotアカウントで、一意のプロパティー値を使用してCRMオブジェクトをバッチ作成またはバッチ更新します。この操作により、複数のオブジェクトを一度に効率的に管理し、必要に応じて既存のオブジェクトを更新したり、新しいオブジェクトを作成したりできます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/create-invoice specs/2026-09/crm-invoices-v2026-09.json POST /crm/objects/2026-09/invoices 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを返します。このエンドポイントは、CRMシステムに新しいオブジェクトを追加するのに役立ち、作成時にプロパティーを定義できます。レスポンスには、新しく作成されたオブジェクトの詳細が含まれます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/delete-invoice specs/2026-09/crm-invoices-v2026-09.json DELETE /crm/objects/2026-09/invoices/{invoiceId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、特定のCRMオブジェクトをアーカイブして非アクティブにできますが、システムから完全に削除されるわけではありません。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/get-invoice specs/2026-09/crm-invoices-v2026-09.json GET /crm/objects/2026-09/invoices/{invoiceId} `objectId`で識別されるオブジェクトを読み取ります。`objectId`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定することで、オプションで任意の一意のプロパティー値を参照できます。`properties`クエリーパラメーターを使用して、返される内容を制御できます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/get-invoices specs/2026-09/crm-invoices-v2026-09.json GET /crm/objects/2026-09/invoices HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ります。`properties`クエリーパラメーターを使用して含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、指定された場合はアーカイブされたレコードを返すことができます。 > **Supported products** > **Required Scopes** # Invoices API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/guide # Invoice object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/object-definition # Search for invoices using specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/search/search-invoices specs/2026-09/crm-invoices-v2026-09.json POST /crm/objects/2026-09/invoices/search 指定された検索条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントでは、フィルター、並べ替え、および検索結果で返すプロパティーを指定できます。複雑なクエリーに基づいて特定のオブジェクトを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/update-invoice specs/2026-09/crm-invoices-v2026-09.json PATCH /crm/objects/2026-09/invoices/{invoiceId} `objectId`で識別されるオブジェクトの部分更新を実行します。`objectId`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。指定されたプロパティー値は上書きされ、読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティーは、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/invoices/update-invoice-objectId specs/2026-09/crm-invoices-v2026-09.json PATCH /crm/objects/2026-09/invoices/{invoiceId} `objectId`で識別されるオブジェクトの部分更新を実行します。`objectId`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。指定されたプロパティー値は上書きされ、読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティーは、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of leads Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/batch/create-leads specs/2026-09/crm-leads-v2026-09.json POST /crm/objects/2026-09/leads/batch/create リードデータを一括で指定して、1つのリクエストで複数のリードレコードを作成します。このエンドポイントでは、リードをまとめて処理することにより、効率的に作成できます。これは、他のシステムからのデータを同期する場合や大規模なデータセットをインポートする場合に有用となる可能性があります。 > **Supported products** > **Required Scopes** # Archive a batch of leads by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/batch/delete-leads specs/2026-09/crm-leads-v2026-09.json POST /crm/objects/2026-09/leads/batch/archive 1つのリクエストでIDを基準に複数のリードをアーカイブし、ごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read a batch of leads by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/batch/get-leads specs/2026-09/crm-leads-v2026-09.json POST /crm/objects/2026-09/leads/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update a batch of leads by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/batch/update-leads specs/2026-09/crm-leads-v2026-09.json POST /crm/objects/2026-09/leads/batch/update 内部IDまたはプロパティーの固有値を使用して複数のリードレコードを更新します。このエンドポイントでは更新のバッチ処理が可能であり、指定された入力に基づいて各リードのプロパティーを変更できます。エラーを回避するために、更新するプロパティーがリードオブジェクトに存在することを確かめてください。 > **Supported products** > **Required Scopes** # Create or update a batch of leads by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/batch/upsert-leads specs/2026-09/crm-leads-v2026-09.json POST /crm/objects/2026-09/leads/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/create-lead specs/2026-09/crm-leads-v2026-09.json POST /crm/objects/2026-09/leads 特定のプロパティーを使用してリードを作成し、IDを含めてそのオブジェクトのコピーを返します。標準リードの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/delete-lead specs/2026-09/crm-leads-v2026-09.json DELETE /crm/objects/2026-09/leads/{leadsId} 「{leadsId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/get-lead specs/2026-09/crm-leads-v2026-09.json GET /crm/objects/2026-09/leads/{leadsId} 「{leadsId}」によって特定されるオブジェクトを読み取ります。「{leadsId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/get-leads specs/2026-09/crm-leads-v2026-09.json GET /crm/objects/2026-09/leads リードのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Leads API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/guide # Lead object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/object-definition # Search for leads Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/search/search-leads specs/2026-09/crm-leads-v2026-09.json POST /crm/objects/2026-09/leads/search 指定されたフィルターグループ、プロパティー、並べ替えオプションに基づいてリードの検索を実行します。このリクエストではページ送りが可能であり、ページごとに最大200件の結果を返すことができます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/leads/update-lead specs/2026-09/crm-leads-v2026-09.json PATCH /crm/objects/2026-09/leads/{leadsId} 「{leadsId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{leadsId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of line items Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/batch/create-line-items specs/2026-09/crm-line-items-v2026-09.json POST /crm/objects/2026-09/line_items/batch/create HubSpotアカウントで、指定したタイプのCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、1つのリクエストで複数のオブジェクトを作成できるため、データを効率的にインポートしたり、外部システムと同期したりするのに役立ちます。レスポンスには、作成されたオブジェクトの詳細(IDを含む)が含まれます。 > **Supported products** > **Required Scopes** # Archive a batch of line items by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/batch/delete-line-items specs/2026-09/crm-line-items-v2026-09.json POST /crm/objects/2026-09/line_items/batch/archive IDを指定してCRMオブジェクトをバッチアーカイブします。このエンドポイントを使用すると、指定したタイプの複数のオブジェクトを単一のリクエストでごみ箱に移動できます。これは、一括データ管理やクリーンアップ操作に役立ちます。 > **Supported products** > **Required Scopes** # Read a batch of line items by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/batch/get-line-items specs/2026-09/crm-line-items-v2026-09.json POST /crm/objects/2026-09/line_items/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトのバッチを取得します。このエンドポイントでは、各オブジェクトに対してどのプロパティーとプロパティー履歴を返すかを指定できます。必要に応じて、アーカイブ済みのオブジェクトのみを含めるように結果を絞り込むこともできます。 > **Supported products** > **Required Scopes** # Update a batch of line items by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/batch/update-line-items specs/2026-09/crm-line-items-v2026-09.json POST /crm/objects/2026-09/line_items/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、更新されたプロパティーを指定することで、複数のオブジェクトを同時に変更できます。これは、複数のレコードに一度に変更を適用する必要がある一括更新に役立ちます。 > **Supported products** > **Required Scopes** # Create or update a batch of line items by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/batch/upsert-line-items specs/2026-09/crm-line-items-v2026-09.json POST /crm/objects/2026-09/line_items/batch/upsert 一意のプロパティー値を使用してCRMオブジェクトをバッチ作成またはバッチ更新します。このエンドポイントでは、単一のリクエストで複数のオブジェクトを効率的に管理でき、既存のオブジェクトを更新したり、必要に応じて新しいオブジェクトを作成したりできます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/create-line-item specs/2026-09/crm-line-items-v2026-09.json POST /crm/objects/2026-09/line_items 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含めてオブジェクトのコピーを返します。このエンドポイントでは、HubSpotアカウントで標準オブジェクトを作成でき、そのプロセスに関するドキュメントと例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/delete-line-item specs/2026-09/crm-line-items-v2026-09.json DELETE /crm/objects/2026-09/line_items/{lineItemId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、特定のCRMオブジェクトをアーカイブし、通常の利用対象から実質的に削除しながら、必要に応じて後で復元できるようにします。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/get-line-item specs/2026-09/crm-line-items-v2026-09.json GET /crm/objects/2026-09/line_items/{lineItemId} HubSpotアカウントで`objectId`によって識別されるオブジェクトを読み取ります。デフォルトでは、`objectId`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターを使用して一意のプロパティーを指定できます。レスポンスで返されるプロパティーは、`properties`クエリーパラメーターを使用して制御できます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/get-line-items specs/2026-09/crm-line-items-v2026-09.json GET /crm/objects/2026-09/line_items HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ります。クエリーパラメーターで目的のプロパティーを指定することで、返されるデータを制御できます。このエンドポイントは、コンタクトや取引などのCRMオブジェクトのリストを、必要に応じた絞り込みとページ分割で取得するのに役立ちます。 > **Supported products** > **Required Scopes** # CRM API | 商品項目 Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/guide > **[Run in Postman](https://app.getpostman.com/run-collection/c6e6832eb67946d66554)** > **スコープ要件** HubSpotにおいて商品項目は、[製品](/docs/api-reference/crm-products-v3/guide)の個々のインスタンスです。製品は取引に紐付けられると、商品項目になります。個別の見積もり上に作成した商品項目は、製品ライブラリーには追加されません。商品項目エンドポイントを使用することにより、商品項目データを管理したり、HubSpotと他のシステムとの間で同期したりできます。 **使用例**: 営業担当者から潜在顧客に送信するための[見積もり](/docs/api-reference/crm-quotes-v3/guide)一式を作成する際に、商品項目APIを使用して、見積もりごとにスタンドアロンの商品項目ならびに既存の製品に関連付けられた商品項目を作成できます。 ## スコープの要件 使用するエンドポイントに基づいて、次のスコープを承認する必要があります。 * `crm.objects.line_items.read`:商品項目データを取得するためのアクセス権を提供します。 * `crm.objects.line_items.write`:商品項目を作成および更新するためのアクセス権を提供します。 * `tax_rates.read`:アカウントで設定した税率を取得するためのアクセス権を提供します。 ## 商品項目を作成する 商品項目を作成するには、`POST`リクエストを`/crm/v3/objects/line_items`に送信します。POSTリクエスト本文に、商品項目の詳細(名前、数量、価格など)を含めます。リクエスト本文に追加のデータを含めることもできます。 * 既存の製品([製品API](/docs/api-reference/crm-products-v3/guide)を使用して作成された、または[HubSpot内](https://knowledge.hubspot.com/ja/products/create-and-manage-products)で作成された)に基づく商品項目を作成するには、POSTリクエスト本文に`hs_product_id`を含めます。 * 商品項目の[税率](#retrieve-tax-rates)を含めるには、リクエスト本文の`properties`フィールドにIDを`hs_tax_rate_group_id`として含めます。 * POSTリクエスト本文に`associations`配列を含めることで、商品項目を取引、見積もり、請求書、支払いリンク、サブスクリプションに関連付けることも可能です。例えば、以下のような本文でPOSTリクエストを送信すると、取引(ID:`12345`)が関連付けられた「New standalone line item」という名前の商品項目が作成されます。 ```js theme={null} { "properties": { "price": 10, "quantity": 1, "name": "New standalone line item", "hs_tax_rate_group_id": "2148420997" }, "associations": [ { "to": { "id": 12345 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 20 } ] } ] } ``` > [!WARNING] > > ### 注: > > * 商品項目は、1つの単一親オブジェクトに属します。オブジェクトを関連付ける場合、商品項目はラインアイテムはオブジェクトごとに個別にする必要があります。例えば取引と見積もりを作成する場合は、取引用に1つの商品項目セットを作成し、見積もり用に別の商品項目セットを作成する必要があります。これは、オブジェクト間でCRMデータを合理化し、商品項目を変更する必要があるときに予期しないデータ損失が発生しないようにするのに役立ちます(例えば、見積もりを削除すると見積もりの商品項目が削除され、それらの商品項目が取引に関連付けられている場合には、取引の商品項目も削除されます)。 > * `properties`フィールド内で指定された`price`を負の値にすることはできません。 > * 商品項目の[期間]プロパティー(`hs_recurring_billing_period`)では、[ISO-8601の期間形式](https://docs.oracle.com/javase/8/docs/api/java/time/Period.html)のPnYnMnDおよびPnWを使用できます。\_ \_ ## 商品項目を取得する 商品項目を個別に、または一括で取得できます。 * 特定の商品項目を取得するには、`GET`リクエストを`/crm/v3/objects/line_items/{lineItemId}`に送信します。`lineItemId`は商品項目のIDを指します。 * 全ての商品項目を取得するには、`GET`リクエストを`/crm/v3/objects/line_items`に送信します。 リクエストのURLには、次のパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | レスポンスで返されるプロパティーのカンマ区切りリスト。指定したプロパティーのいずれかがリクエスト対象のオブジェクトに存在しない場合、これらのプロパティーは無視されます。 | | `propertiesWithHistory` | 以前の値の履歴と併せて取得するプロパティーのカンマ区切りのリスト。指定したプロパティーのいずれかがリクエスト対象のオブジェクトに存在しない場合、これらのプロパティーは無視されます。 | ## 商品項目を更新する 商品項目を更新するには、`PATCH`リクエストを`/crm/v3/objects/line_items/{lineItemId}`に送信します。`lineItemId`は商品項目のIDを指します。 リクエスト本文に、更新するプロパティー値を含めます。このメソッドを使用して関連付けを更新することはできません。代わりに、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用する必要があります。 例えば、リクエスト本文は次のようになります。 ```js theme={null} { "properties": { "price": 25, "quantity": 3, "name": "Updated line item" } } ``` ## 商品項目を削除する 商品項目を削除するには、`DELETE`リクエストを`/crm/v3/objects/line_items/{lineItemId}`に送信します。`lineItemId`は商品項目のIDを指します。 ## 商品項目のプロパティー 商品項目データを管理する場合は、以下の表に示す一般的なプロパティーのいくつかを使用することをお勧めします。全ての商品項目プロパティーを取得するには、`GET`リクエストを`/crm/v3/properties/line_item`に送信します。[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)の使用について詳細をご確認ください。 | プロパティー名 | UIのラベル | 説明 | | - | - | - | | `name` | 名前 | 商品項目の名前 | | `description` | 説明 | 製品の詳細な説明 | | `hs_sku` | SKU | 製品の固有ID | | `hs_recurring_billing_start_date` | 請求開始日 | 商品項目の定期請求開始日 | | `hs_recurring_billing_end_date` | 請求終了日 | 商品項目の定期請求終了日 | | `recurringbillingfrequency` | 請求の頻度 | 定期請求がある商品項目の請求頻度。取引および見積もりの価格計算の情報が取得されます。1回限りの請求がある商品項目は含まれていません。 | | `quantity` | 数量 | この商品項目に含まれる製品の単位数 | | `price` | 単価 | 製品のコスト | | `amount` | 正価 | 商品項目の合計コスト(数量×単価)。 | | `hs_line_item_currency_code` | 通貨 | 商品項目の通貨コード | ## 税率を取得する 各商品項目に税率を適用できます(例:マサチューセッツ州の売上税6.26%)。HubSpot[アカウントで税率ライブラリーを設定し](https://knowledge.hubspot.com/ja/payments/set-up-automated-tax-and-tax-rates#add-a-tax-rate-to-the-tax-library)たら、`GET`リクエストを`/tax-rates/v1/tax-rates`へ送信して全ての税率を取得するか、`/tax-rates/v1/tax-rates/{taxRateId}`へ送信してIDを基準にした税率を取得できます。このリクエストを行うには、アプリで`tax_rates.read`スコープが承認されている必要があります。 結果の応答は、次のようになります。 ```json theme={null} { "name": "MA Sales tax 2025", "percentageRate": 6.25 "label": "Sales Tax", "active": true, "id": "2148420997", "createdAt": "2024-12-12T23:20:39.923Z", "updatedAt": "2024-12-12T23:20:39.923Z" } ``` 各税率オブジェクトには、次のプロパティーが含まれます。 | プロパティータイプ | 説明 | | - | - | | `name` | 税率の内部記述子。 | | `percentageRate` | パーセントで表される税率の値。 | | `label` | 購入者に表示される税率の説明子。見積もり、請求書、またはその他の親オブジェクトに表示されます。 | | `active` | 税率を新しい見積もりまたは請求書に適用できるかどうかを示すブール値。これは、適用されなくなった前年度の税率に対して`false`に設定することもできます。 | | `id` | 税率のID。 | | `createdAt` | 税率の作成時期を示すISO 8601タイムスタンプ。 | | `updatedAt` | 税率が最後に更新された日付を示すISO 8601タイムスタンプ。 | 適用する税率のIDを取得したら、商品項目を作成する際に`properties`フィールドに`hs_tax_rate_group_id`の`id`を指定します。商品項目の作成の詳細については、[上記のセクション](#create-a-line-item)をご参照ください。 # Line item object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/object-definition # Search for line items using specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/search/search-line-items specs/2026-09/crm-line-items-v2026-09.json POST /crm/objects/2026-09/line_items/search さまざまなフィルターと条件を使用して、指定したタイプのCRMオブジェクトを検索します。このエンドポイントでは、複雑な検索を実行して、指定した条件に一致するオブジェクトを取得できます。プロパティー値やその他の属性に基づいて特定のレコードを見つけるのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/line-items/update-line-item specs/2026-09/crm-line-items-v2026-09.json PATCH /crm/objects/2026-09/line_items/{lineItemId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of listings Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/batch/create-listings specs/2026-09/crm-listings-v2026-09.json POST /crm/objects/2026-09/0-420/batch/create HubSpotで指定したオブジェクトタイプのCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成できるため、大量のデータを効率的に追加するのに役立ちます。レスポンスには、作成されたオブジェクトがそれぞれ固有のIDとともに含まれます。 > **Supported products** > **Required Scopes** # Archive a batch of listings by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/batch/delete-listings specs/2026-09/crm-listings-v2026-09.json POST /crm/objects/2026-09/0-420/batch/archive IDでCRMオブジェクトをバッチアーカイブします。このエンドポイントは、複数のオブジェクトを単一のリクエストでごみ箱に移動するのに役立ち、大規模なデータセットを管理するプロセスを効率化できます。 > **Supported products** > **Required Scopes** # Read a batch of listings by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/batch/get-listings specs/2026-09/crm-listings-v2026-09.json POST /crm/objects/2026-09/0-420/batch/read 内部IDまたは一意のプロパティー値を使用して、CRMオブジェクトをバッチで読み取ります。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを取得できるため、大規模なデータセットを効率的に管理するのに役立ちます。結果にアーカイブされたオブジェクトを含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of listings by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/batch/update-listings specs/2026-09/crm-listings-v2026-09.json POST /crm/objects/2026-09/0-420/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、複数のオブジェクトを一度に変更できるため、データ更新プロセスを効率化できます。操作の成功または失敗を示すステータスが返され、一部の更新が失敗した場合は、詳細なエラー情報とともに部分的な成功も返されます。 > **Supported products** > **Required Scopes** # Create or update a batch of listings by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/batch/upsert-listings specs/2026-09/crm-listings-v2026-09.json POST /crm/objects/2026-09/0-420/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に管理し、一意の識別子に基づいてオブジェクトが作成または更新されるようにすることができます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/create-listing specs/2026-09/crm-listings-v2026-09.json POST /crm/objects/2026-09/0-420 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含めてオブジェクトのコピーを返します。このエンドポイントでは、CRMシステムで標準オブジェクトを作成でき、ガイダンスとなるドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/delete-listing specs/2026-09/crm-listings-v2026-09.json DELETE /crm/objects/2026-09/0-420/{listingId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、一意の識別子を使用して特定のCRMオブジェクトをアーカイブし、通常の利用対象から実質的に除外しますが、必要に応じた復元または参照のためにシステム内に保持できます。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/get-listing specs/2026-09/crm-listings-v2026-09.json GET /crm/objects/2026-09/0-420/{listingId} `{objectId}`で識別されるオブジェクトを読み取ります。デフォルトでは、`{objectId}`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを使用して、返されるデータを制御できます。このエンドポイントは、特定のオブジェクトに関する詳細情報(プロパティーや関連付けを含む)を取得するのに役立ちます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/get-listings specs/2026-09/crm-listings-v2026-09.json GET /crm/objects/2026-09/0-420 指定されたタイプのCRMオブジェクトのページを読み取ります。クエリーパラメーターで必要なプロパティーを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、必要に応じて履歴プロパティー値と関連付けを含めることができます。 > **Supported products** > **Required Scopes** # Listings API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/guide # Search for listings using various criteria and filters. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/search/search-listings specs/2026-09/crm-listings-v2026-09.json POST /crm/objects/2026-09/0-420/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントでは、フィルターグループ、並べ替えオプション、および結果に含めるプロパティーを指定して、CRMオブジェクトに対して複雑な検索を実行できます。詳細な検索条件に基づいてCRMから特定のデータセットを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/update-listing specs/2026-09/crm-listings-v2026-09.json PATCH /crm/objects/2026-09/0-420/{listingId} `objectId`で識別されるオブジェクトの部分更新を実行します。`objectId`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定することで、オプションで任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされ、読み取り専用および存在しないプロパティーは無視されます。プロパティーは空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/listings/update-listing-objectId specs/2026-09/crm-listings-v2026-09.json PATCH /crm/objects/2026-09/0-420/{listingId} `objectId`で識別されるオブジェクトの部分更新を実行します。`objectId`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定することで、オプションで任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされ、読み取り専用および存在しないプロパティーは無視されます。プロパティーは空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create tag Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/object-tags/create-object-tag specs/2026-09/crm-object-tags-v2026-09.json POST /crm/object-tags/2026-09/{objectTypeId} HubSpotアカウントで、指定したオブジェクトタイプ用の新しいCRMオブジェクトタグを作成します。このエンドポイントでは、タグの名前、色、フィルター条件などのプロパティーを定義できます。カスタム条件に基づいてCRMオブジェクトを分類および整理するのに役立ちます。 > **Supported products** > **Required Scopes** # Delete Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/object-tags/delete-object-tag specs/2026-09/crm-object-tags-v2026-09.json DELETE /crm/object-tags/2026-09/{objectTypeId}/{tagId} オブジェクトタイプIDとタグIDで識別される特定のCRMオブジェクトタグを削除します。この操作により、システムからタグが削除され、使用または参照できなくなります。 > **Supported products** > **Required Scopes** # Retrieve Tag Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/object-tags/get-object-tag specs/2026-09/crm-object-tags-v2026-09.json GET /crm/object-tags/2026-09/{objectTypeId}/{tagId} 固有IDを使用して、特定のCRMオブジェクトタグを取得します。このエンドポイントは、CRMオブジェクトタイプに関連付けられた特定のタグに関する詳細を取得するのに役立ち、HubSpotアカウント内のタグ付けされたデータを管理または分析しやすくなります。 > **Supported products** > **Required Scopes** # Retrieve tags Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/object-tags/get-object-tags specs/2026-09/crm-object-tags-v2026-09.json GET /crm/object-tags/2026-09/{objectTypeId} HubSpotアカウントで、指定されたオブジェクトタイプのCRMオブジェクトタグを取得します。このエンドポイントでは、特定のオブジェクトタイプに関連付けられたタグにアクセスでき、CRMデータを効果的に分類および管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Object Tags API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/object-tags/guide # Update tag (Partial) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/object-tags/partially-update-object-tag specs/2026-09/crm-object-tags-v2026-09.json PATCH /crm/object-tags/2026-09/{objectTypeId}/{tagId} HubSpotアカウントで既存のCRMオブジェクトタグを更新します。このエンドポイントでは、tagIdとobjectTypeIdで識別される特定のタグのプロパティーを変更できます。これを使用して、色、説明、関連付けられたフィルターなどのタグ属性を変更します。 > **Supported products** > **Required Scopes** # Update tag (Replace) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/object-tags/update-object-tag specs/2026-09/crm-object-tags-v2026-09.json PUT /crm/object-tags/2026-09/{objectTypeId}/{tagId} HubSpotアカウントで既存のCRMオブジェクトタグを更新します。この操作では、objectTypeIdとtagIdで識別されるタグのプロパティーを変更できます。このエンドポイントを使用して、名前、色、関連付けられたフィルターなどのタグの詳細を変更します。 > **Supported products** > **Required Scopes** # Create a batch of objects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/batch/create-objects specs/2026-09/crm-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/create > **Supported products** > **Required Scopes** # Archive a batch of objects by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/batch/delete-objects specs/2026-09/crm-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/archive > **Supported products** > **Required Scopes** # Read a batch of objects by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/batch/get-objects specs/2026-09/crm-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/read Retrieve records by record ID or include the `idProperty` parameter to retrieve records by a custom unique value property. > **Supported products** > **Required Scopes** # Update a batch of objects by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/batch/update-objects specs/2026-09/crm-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/update > **Supported products** > **Required Scopes** # Create or update a batch of objects by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/batch/upsert-objects specs/2026-09/crm-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/upsert Create or update records identified by a unique property value as specified by the `idProperty` query param. `idProperty` query param refers to a property whose values are unique for the object. > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/create-object specs/2026-09/crm-objects-v2026-09.json POST /crm/objects/2026-09/{objectType} Create a CRM object with the given properties and return a copy of the object, including the ID. Documentation and examples for creating standard objects is provided. > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/delete-object specs/2026-09/crm-objects-v2026-09.json DELETE /crm/objects/2026-09/{objectType}/{objectId} Move an Object identified by `{objectId}` to the recycling bin. > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/get-object specs/2026-09/crm-objects-v2026-09.json GET /crm/objects/2026-09/{objectType}/{objectId} Read an Object identified by `{objectId}`. `{objectId}` refers to the internal object ID by default, or optionally any unique property value as specified by the `idProperty` query param. Control what is returned via the `properties` query param. > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/get-objects specs/2026-09/crm-objects-v2026-09.json GET /crm/objects/2026-09/{objectType} Read a page of objects. Control what is returned via the `properties` query param. > **Supported products** > **Required Scopes** # Search records Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/search/search-objects specs/2026-09/crm-objects-v2026-09.json POST /crm/objects/2026-09/{objectType}/search > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/objects/update-object specs/2026-09/crm-objects-v2026-09.json PATCH /crm/objects/2026-09/{objectType}/{objectId} Perform a partial update of an Object identified by `{objectId}`or optionally a unique property value as specified by the `idProperty` query param. `{objectId}` refers to the internal object ID by default, and the `idProperty` query param refers to a property whose values are unique for the object. Provided property values will be overwritten. Read-only and non-existent properties will result in an error. Properties values can be cleared by passing an empty string. > **Supported products** > **Required Scopes** # Create a batch of orders Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/batch/create-orders specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/batch/create HubSpotアカウントで、指定したタイプのCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成できるため、大量のデータインポートや外部システムからのデータ同期に役立ちます。レスポンスには、作成されたオブジェクトとそのIDが含まれます。 > **Supported products** > **Required Scopes** # Archive a batch of orders by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/batch/delete-orders specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/batch/archive IDで識別されたCRMオブジェクトをバッチアーカイブします。この操作により、指定されたオブジェクトはごみ箱に移動され、実質的にアーカイブされます。これは、同時にアーカイブする必要がある大量のオブジェクトを管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Read a batch of orders by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/batch/get-orders specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/batch/read 内部IDまたは一意のプロパティー値を使用して、CRMオブジェクトのバッチを取得してください。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、パフォーマンスを向上させ、必要なAPI呼び出しの数を減らすことができます。指定した場合、アーカイブされたオブジェクトもレスポンスに含めることができます。 > **Supported products** > **Required Scopes** # Update a batch of orders by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/batch/update-orders specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/batch/update タイプを指定してCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを変更し、CRMデータを効率的に更新できます。リクエストボディには、更新するオブジェクトとそのプロパティーを含める必要があります。 > **Supported products** > **Required Scopes** # Create or update a batch of orders by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/batch/upsert-orders specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。このエンドポイントを使用すると、単一のリクエストで新しいエントリーを作成するか、既存のエントリーを更新することにより、大量のオブジェクトを効率的に管理できます。これは、外部システムからHubSpotにデータを同期する際に特に役立ちます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/create-order specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders 特定のプロパティーを使用してCRMオブジェクトを作成し、IDを含めてそのオブジェクトのコピーを返します。標準オブジェクトの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/delete-order specs/2026-09/crm-orders-v2026-09.json DELETE /crm/objects/2026-09/orders/{orderId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、特定のCRMオブジェクトをそのタイプと一意の識別子でアーカイブし、通常の利用対象から実質的に削除しながら、必要に応じて後で復元できるようにします。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/get-order specs/2026-09/crm-orders-v2026-09.json GET /crm/objects/2026-09/orders/{orderId} `objectId`で識別されるオブジェクトを読み取ります。デフォルトでは、`objectId`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された任意の一意のプロパティー値にすることもできます。`properties`クエリーパラメーターを使用して、レスポンスの内容を制御できます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/get-orders specs/2026-09/crm-orders-v2026-09.json GET /crm/objects/2026-09/orders HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ります。プロパティー、関連付け、アーカイブステータスをクエリーパラメーターで指定することで、返されるデータを制御できます。このエンドポイントは、大量のオブジェクトセットをナビゲートするためのページ分割をサポートしています。 > **Supported products** > **Required Scopes** # Orders API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/guide # Merge two orders Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/merge/merge-orders specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/merge HubSpotアカウント内で、同じタイプの2つのCRMオブジェクトをマージします。この操作により、指定されたオブジェクトのプロパティーと関連付けが、プライマリーオブジェクトIDで識別される単一のオブジェクトに結合されます。このエンドポイントを使用して、重複するレコードを統合したり、データを統一したりできます。 > **Supported products** > **Required Scopes** # Order object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/object-definition # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/update-order specs/2026-09/crm-orders-v2026-09.json PATCH /crm/objects/2026-09/orders/{orderId} `{objectId}`によって特定されるオブジェクトの部分更新を実行します。`{objectId}`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された任意の一意のプロパティー値を参照できます。指定されたプロパティー値は上書きされ、読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティーは空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/update-order-objectId specs/2026-09/crm-orders-v2026-09.json PATCH /crm/objects/2026-09/orders/{orderId} `{objectId}`によって特定されるオブジェクトの部分更新を実行します。`{objectId}`はデフォルトで内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された任意の一意のプロパティー値を参照できます。指定されたプロパティー値は上書きされ、読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティーは空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Search for orders in the CRM using various filters and sorting options to retrieve specific order data. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/orders/search/search-orders specs/2026-09/crm-orders-v2026-09.json POST /crm/objects/2026-09/orders/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、特定のプロパティーと条件に基づいてオブジェクトを取得でき、CRMデータのクエリーに柔軟性をもたらします。検索結果には、条件に一致するオブジェクトの総数が含まれます。 > **Supported products** > **Required Scopes** # Retrieve a batch of partner client objects. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-clients/batch/get-partner-clients specs/2026-09/crm-partner-clients-v2026-09.json POST /crm/objects/2026-09/partner_clients/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを効率的に取得するのに役立ちます。レスポンスにはオブジェクトの詳細が含まれ、アーカイブされたオブジェクトを含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Retrieve a partner client Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-clients/get-partner-client specs/2026-09/crm-partner-clients-v2026-09.json GET /crm/objects/2026-09/partner_clients/{partnerClientId} `objectId`で識別されるオブジェクトを読み取ります。デフォルトでは、`objectId`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを指定することで、返されるデータを制御できます。 > **Supported products** > **Required Scopes** # Retrieve partner clients Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-clients/get-partner-clients specs/2026-09/crm-partner-clients-v2026-09.json GET /crm/objects/2026-09/partner_clients 指定されたタイプのCRMオブジェクトのページを取得します。プロパティー、関連付け、アーカイブ済みレコードを含めるかどうかを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、大量のデータをナビゲートできます。 > **Supported products** > **Required Scopes** # Search for partner clients Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-clients/search/search-partner-clients specs/2026-09/crm-partner-clients-v2026-09.json POST /crm/objects/2026-09/partner_clients/search 指定されたタイプのCRMオブジェクトを、さまざまなフィルターと条件を使用して検索します。このエンドポイントを使用すると、特定のプロパティーまたは条件に基づいてCRMオブジェクトを取得するための複雑なクエリーを実行できます。HubSpotアカウント内で特定の条件を満たすオブジェクトを見つけるのに便利です。 > **Supported products** > **Required Scopes** # Update a partner client Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-clients/update-partner-client specs/2026-09/crm-partner-clients-v2026-09.json PATCH /crm/objects/2026-09/partner_clients/{partnerClientId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update properties of a specific partner client. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-clients/update-partner-client-objectId specs/2026-09/crm-partner-clients-v2026-09.json PATCH /crm/objects/2026-09/partner_clients/{partnerClientId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Read a batch of partner services by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-services/batch/get-partner-services specs/2026-09/crm-partner-services-v2026-09.json POST /crm/objects/2026-09/partner_services/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、効率的なデータ取得が可能になります。アーカイブされたオブジェクトを結果に含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of partner services by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-services/batch/update-partner-services specs/2026-09/crm-partner-services-v2026-09.json POST /crm/objects/2026-09/partner_services/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、複数のオブジェクトのプロパティーを一度に指定して変更できます。CRMデータを効率的に一括更新するのに役立ちます。レスポンスには、更新されたオブジェクトと、更新プロセス中に発生したエラーが含まれます。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-services/get-partner-service specs/2026-09/crm-partner-services-v2026-09.json GET /crm/objects/2026-09/partner_services/{partnerServiceId} 「{objectId}」によって特定されるオブジェクトを読み取ります。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-services/get-partner-services specs/2026-09/crm-partner-services-v2026-09.json GET /crm/objects/2026-09/partner_services 指定されたタイプのCRMオブジェクトのページを読み込みます。レスポンスに含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントは、特定の詳細を持つオブジェクトのリストを取得するのに役立ち、大規模なデータセットのページ分割をサポートしています。 > **Supported products** > **Required Scopes** # Search for partner services using specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-services/search/search-partner-services specs/2026-09/crm-partner-services-v2026-09.json POST /crm/objects/2026-09/partner_services/search 指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、リクエストボディで定義されたさまざまな条件に基づいてオブジェクトを絞り込んで取得できます。検索パラメーターに一致する特定のレコードまたはレコードセットを見つけるのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-services/update-partner-service specs/2026-09/crm-partner-services-v2026-09.json PATCH /crm/objects/2026-09/partner_services/{partnerServiceId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/partner-services/update-partner-service-objectId specs/2026-09/crm-partner-services-v2026-09.json PATCH /crm/objects/2026-09/partner_services/{partnerServiceId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Batch retrieve price book items Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/price-book-items/batch/get-price-book-items specs/2026-09/crm-price-book-items-crm-reads-api-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、効率的なデータ取得が可能になります。アーカイブされたオブジェクトを結果に含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Retrieve a price book item Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/price-book-items/get-price-book-item specs/2026-09/crm-price-book-items-crm-reads-api-v2026-09.json GET /crm/objects/2026-09/{objectType}/{objectId} 「{objectId}」によって特定されるオブジェクトを読み取ります。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Retrieve price book items Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/price-book-items/get-price-book-items specs/2026-09/crm-price-book-items-crm-reads-api-v2026-09.json GET /crm/objects/2026-09/{objectType} 指定されたタイプのCRMオブジェクトのページを取得します。プロパティーや関連付けに加えて、アーカイブ済みのレコードを含めるかどうかを指定することで、返されるデータを制御できます。このエンドポイントは、特定の属性または関連付けがあるオブジェクトのリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Batch retrieve price books Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/price-books/batch/get-price-books specs/2026-09/crm-price-books-crm-reads-api-v2026-09.json POST /crm/objects/2026-09/{objectType}/batch/read 内部IDまたは固有のプロパティー値でCRMオブジェクトをバッチ取得します。このエンドポイントでは、レスポンスに含めるプロパティーとその履歴を指定できます。単一のリクエストで複数のオブジェクトのデータを効率的に取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/price-books/get-price-book specs/2026-09/crm-price-books-crm-reads-api-v2026-09.json GET /crm/objects/2026-09/{objectType}/{objectId} 「{objectId}」で識別されるオブジェクトを読み取ります。デフォルトでは、「{objectId}」は内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターを使用して任意の固有のプロパティー値を指定できます。レスポンスで返されるプロパティーを制御するには、「properties」クエリーパラメーターを使用します。 > **Supported products** > **Required Scopes** # Retrieve price books Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/price-books/get-price-books specs/2026-09/crm-price-books-crm-reads-api-v2026-09.json GET /crm/objects/2026-09/{objectType} HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ります。プロパティー、関連付けに加え、アーカイブ済みレコードを含めるかどうかを指定することで、返されるデータを制御できます。このエンドポイントでは、カーソルトークンを使用したページ分割がサポートされます。 > **Supported products** > **Required Scopes** # CRM API | Price books Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/price-books/guide # Create a batch of products Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/batch/create-products specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products/batch/create 指定されたプロパティーを持つCRMオブジェクトをバッチで作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成できるため、大量のデータセットを効率的にインポートしたり、外部システムからデータを同期したりする場合に役立ちます。レスポンスには、作成されたオブジェクトとそのIDが含まれます。 > **Supported products** > **Required Scopes** # Archive a batch of products by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/batch/delete-products specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products/batch/archive IDでCRMオブジェクトのバッチをアーカイブします。このエンドポイントは、同時にアーカイブする必要がある多数のオブジェクトを管理するのに役立ちます。この操作は成功してもコンテンツを返しませんが、これはオブジェクトが正常にアーカイブされたことを示します。 > **Supported products** > **Required Scopes** # Read a batch of products by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/batch/get-products specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトのバッチを読み取ります。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、効率的なデータ取得が可能になります。アーカイブされたオブジェクトを結果に含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of products by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/batch/update-products specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、リクエストボディでプロパティーを指定することで、指定したタイプの複数のオブジェクトを更新できます。個別に更新することなく、オブジェクトを一括更新するのに便利です。 > **Supported products** > **Required Scopes** # Create or update a batch of products by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/batch/upsert-products specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に管理し、各オブジェクトが一意の識別子に基づいて作成または更新されるようにすることができます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/create-product specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含めてオブジェクトのコピーを返します。このエンドポイントでは、HubSpotアカウントで標準オブジェクトを作成でき、ガイダンスとなるドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/delete-product specs/2026-09/crm-products-v2026-09.json DELETE /crm/objects/2026-09/products/{productId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、一意の識別子で特定のCRMオブジェクトをアーカイブし、通常の利用対象から実質的に削除しながら、復元や監査が必要になった場合に備えてシステム内に保持できます。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/get-product specs/2026-09/crm-products-v2026-09.json GET /crm/objects/2026-09/products/{productId} `objectId`で識別されるオブジェクトを読み取ります。`objectId`は、デフォルトでは内部オブジェクトIDを参照しますが、オプションで`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを使用して目的のプロパティーを指定することで、レスポンスコンテンツを制御できます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/get-products specs/2026-09/crm-products-v2026-09.json GET /crm/objects/2026-09/products 指定されたタイプのCRMオブジェクトのページを取得します。プロパティー、関連付け、およびアーカイブ済みレコードを含めるかどうかを指定することで、返されるデータを制御できます。このエンドポイントは、特定の属性と関連付けを持つオブジェクトのリストを取得するのに有用です。 > **Supported products** > **Required Scopes** # CRM API | 製品 Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/guide > **[Run in Postman](https://app.getpostman.com/run-collection/b4ad6241d1138c449a57)** > **スコープ要件** # 製品 HubSpotの製品は、販売する品物やサービスを表します。[製品ライブラリー](https://knowledge.hubspot.com/ja/products/create-and-manage-products)を構築すると、効率的に製品を取引に追加したり、見積もりを作成したり、製品の実績についてレポートを作成したりできます。製品エンドポイントを使用すると、製品データを管理したり、HubSpotと他のシステムとの間で同期したりできます。 製品は、会社、コンタクト、取引、チケット、商品項目、見積もりと同様にHubSpotのCRMツールのオブジェクトです。オブジェクトのプロパティー、関連付け、関係性などの詳細は、HubSpotの「[CRMオブジェクトについて](/docs/guides/crm/understanding-the-crm)」のガイドをご覧ください。 **使用例**: 営業担当者が取引や見積もりなどに商品とサービスを簡単に追加できるように、製品APIを使用して製品カタログをHubSpotにインポートします。 ## 製品を作成する 製品を作成するには、`POST`リクエストを`crm/v3/objects/products`に送信します。リクエスト本文に、作成時に設定する製品プロパティーを含む`properties`オブジェクトを含めます。後から同じエンドポイントに`PATCH`リクエストを送信することで、製品のプロパティーを更新できます。 利用可能な全ての製品プロパティーを表示するには、[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)に`GET`リクエストを送信します。製品プロパティーを取得する場合のリクエストURLは`/crm/v3/properties/products`になります。 ```json theme={null} { "properties": { "name": "Implementation Service", "price": "6000.00", "hs_sku": "123456", "description": "Onboarding service for data product", "hs_cost_of_goods_sold": "600.00", "hs_recurring_billing_period": "P12M" } } ``` > [!NOTE] > > `hs_recurring_billing_period`の値は`P#M`という形式(# は月数)であることに注意してください。 ## 製品を関連付ける 製品自体を他のCRMオブジェクトに関連付けることはできません。ただし、製品の情報を取引または見積もりに関連付けるために、その製品に基づく[商品項目](/docs/api-reference/crm-line-items-v3/guide)を作成できます。商品項目は製品の個々のインスタンスであり、製品とは別のオブジェクトであるため、製品自体を更新することなく、必要に応じて取引や見積もりで商品やサービスを調整できます。 例えば、いずれか1つの製品が販売される取引をまとめるときには、まず製品から商品項目を作成し、それを取引に関連付けます。商品項目の作成と関連付けは、2つの別々の呼び出しで行うことも、1つの呼び出しで行うこともできます。両方のオプションを以下に示します。 > [!WARNING] > > ### 注: > > 商品項目は、1つの単一親オブジェクトに属します。オブジェクトを関連付ける場合、商品項目はラインアイテムはオブジェクトごとに個別にする必要があります。例えば取引と見積もりを作成する場合は、取引用に1つの商品項目セットを作成し、見積もり用に別の商品項目セットを作成する必要があります。これは、オブジェクト間でCRMデータを合理化し、商品項目を変更する必要があるときに予期しないデータ損失が発生しないようにするためです。例えば、見積もりを削除すると、見積もりの商品項目も削除されます。それらの商品項目が取引に関連付けられている場合、取引の商品項目も削除されます。 ### 商品項目を作成して関連付ける(複数の呼び出し) まず、IDが`1234567`である製品に基づいて商品項目を作成します。利用可能な商品項目プロパティー全てのリストを取得するには、[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)に`GET`リクエストを送信します。商品項目のURLは`crm/v3/properties/line_items`となります。既存の製品から商品項目を作成しているため、その製品から価格などのプロパティー値を継承します。 ```json theme={null} { "properties": { "quantity": 1, "hs_object_id": "1234567", //the object ID of the product "name": "New line item (product-based)" } } ``` レスポンスで返される商品項目IDを使用すると、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使ってそれを取引に関連付けることができます。この例では、返された商品項目IDが`7791176460`であると仮定します。 商品項目を既存の取引(ID:`14795354663`)に関連付けるには、`PUT`リクエストを`/crm/v4/objects/line_items/7791176460/associations/default/deals/14795354663`に送信します。このリクエストでは、デフォルトの関連付けタイプを使用します。 `200`レスポンスで、以下のような情報が返されます。 ```json theme={null} { "status": "COMPLETE", "results": [ { "from": { "id": "14795354663" }, "to": { "id": "7791176460" }, "associationSpec": { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 19 } }, { "from": { "id": "7791176460" }, "to": { "id": "14795354663" }, "associationSpec": { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 20 } } ], "startedAt": "2023-12-21T20:06:52.083Z", "completedAt": "2023-12-21T20:06:52.192Z" } ``` HubSpotでは、取引レコードの商品項目カードに「商品項目」が表示されます。 ![取引レコードに商品項目を関連付け](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/deal-record-line-item-association.png) ### 商品項目を作成して関連付ける(単一の呼び出し) 単一の呼び出しを使用して既存の製品から商品項目を作成し、取引に関連付けるには、商品項目の作成リクエストに`associations`配列を含めます。 商品項目を作成するには、`POST`リクエストを`crm/v3/objects/line_item`に送信します。リクエスト本文は以下のようになります。商品項目と取引の関連付けの`associationTypeId`は`20`であることに注意してください。詳しくは、[さまざまなタイプのCRMレコード間の関連付けタイプ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)をご確認ください。 ```json theme={null} { "properties": { "quantity": 1, "hs_object_id": "1234567", //the object ID of the product "name": "New line item (product-based)" }, "associations": [ { "to": { "id": "14795354663" }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 20 } ] } ] } ``` `200`レスポンスで、新しい商品項目の詳細が返されます。HubSpotでは、取引レコードの商品項目カードに「商品項目」が表示されます。 ![取引レコードに商品項目を関連付け](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/deal-record-line-item-association.png) # Product object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/object-definition # Search for products using specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/search/search-products specs/2026-09/crm-products-v2026-09.json POST /crm/objects/2026-09/products/search 指定されたタイプのCRMオブジェクトを、さまざまなフィルターと条件を使用して検索します。このエンドポイントを使用すると、リクエストボディで定義された検索パラメーターに基づいてオブジェクトのコレクションを取得できます。これは、HubSpotアカウント内で特定の条件に一致するレコードを見つけるのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/products/update-product specs/2026-09/crm-products-v2026-09.json PATCH /crm/objects/2026-09/products/{productId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of projects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/batch/create-projects specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects/batch/create HubSpotで指定されたプロパティーを持つCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成できるため、一括操作を効率的に行えます。レスポンスには、作成されたオブジェクトとそのIDが含まれます。このエンドポイントを使用して、CRM内の大規模なデータセットの作成を効率化できます。 > **Supported products** > **Required Scopes** # Archive a batch of projects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/batch/delete-projects specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects/batch/archive IDによってCRMオブジェクトをバッチアーカイブします。この操作により、指定されたオブジェクトはごみ箱に移動され、実質的にアーカイブされます。このエンドポイントを使用して、同時にアーカイブする必要がある大量のオブジェクトを管理します。 > **Supported products** > **Required Scopes** # Read a batch of projects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/batch/get-projects specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトをバッチで読み取ります。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを取得できるため、一連のオブジェクトに関するデータを効率的に収集するのに役立ちます。結果にアーカイブ済みオブジェクトを含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of projects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/batch/update-projects specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、リクエストボディに詳細を指定することで、複数のオブジェクトを一度に変更できます。これは、複数のオブジェクトのプロパティーを同時に変更する必要がある一括更新に役立ちます。レスポンスには、各更新操作のステータスが含まれます。 > **Supported products** > **Required Scopes** # Create or update a batch of projects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/batch/upsert-projects specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に管理でき、提供された一意の識別子に基づいて各オブジェクトが作成または更新されます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/create-project specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects 指定されたプロパティーでCRMオブジェクトを作成し、IDを含むオブジェクトのコピーを受け取ります。このエンドポイントでは、標準オブジェクトの作成が可能で、そのプロセスを支援するためのドキュメントと例が提供されています。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/delete-project specs/2026-09/crm-projects-v2026-09.json DELETE /crm/objects/2026-09/projects/{projectId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、特定のCRMオブジェクトをアーカイブし、通常の利用対象から実質的に削除しながら、後で復元したり監査したりできるようにシステム内に保持します。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/get-project specs/2026-09/crm-projects-v2026-09.json GET /crm/objects/2026-09/projects/{projectId} 「{objectId}」によって特定されるオブジェクトを読み取ります。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/get-projects specs/2026-09/crm-projects-v2026-09.json GET /crm/objects/2026-09/projects 指定されたタイプのCRMオブジェクトのページを読み取ります。レスポンスに含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、関連付けられたオブジェクトIDとアーカイブされたレコードを取得できます。 > **Supported products** > **Required Scopes** # Projects API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/guide # Merge two projects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/merge-projects specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects/merge HubSpotアカウントで、同じタイプの2つのCRMオブジェクトをマージします。この操作により、指定されたオブジェクトのプロパティーが単一のオブジェクトに結合され、プライマリーオブジェクトのIDが保持されます。このエンドポイントを使用して、重複するレコードを統合したり、データを単一のオブジェクトにまとめたりします。 > **Supported products** > **Required Scopes** # Search for projects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/search/search-projects specs/2026-09/crm-projects-v2026-09.json POST /crm/objects/2026-09/projects/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、特定の条件に一致するオブジェクトを見つけるための複雑なクエリーを実行できます。検索条件を満たすオブジェクトのコレクションと、結果の合計数が返されます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/projects/update-project specs/2026-09/crm-projects-v2026-09.json PATCH /crm/objects/2026-09/projects/{projectId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of quotes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/batch/create-quotes specs/2026-09/crm-quotes-v2026-09.json POST /crm/objects/2026-09/quotes/batch/create それぞれに独自のプロパティーと任意の関連付けが含まれる見積もりオブジェクトを一括で指定して、1つのリクエストで複数の見積もりを作成します。 > **Supported products** > **Required Scopes** # Archive a batch of quotes by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/batch/delete-quotes specs/2026-09/crm-quotes-v2026-09.json POST /crm/objects/2026-09/quotes/batch/archive 1つのリクエストでIDを基準に複数の見積もりをアーカイブし、実質的にごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read a batch of quotes by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/batch/get-quotes specs/2026-09/crm-quotes-v2026-09.json POST /crm/objects/2026-09/quotes/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update a batch of quotes by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/batch/update-quotes specs/2026-09/crm-quotes-v2026-09.json POST /crm/objects/2026-09/quotes/batch/update 内部IDまたはプロパティーの固有値を使用して、複数の見積もりを更新します。このエンドポイントでは見積もり更新のバッチ処理が可能であり、1つのリクエストで複数のレコードを効率的に管理できます。 > **Supported products** > **Required Scopes** # Create or update a batch of quotes by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/batch/upsert-quotes specs/2026-09/crm-quotes-v2026-09.json POST /crm/objects/2026-09/quotes/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/create-quote specs/2026-09/crm-quotes-v2026-09.json POST /crm/objects/2026-09/quotes 特定のプロパティーを使用して見積もりを作成し、IDを含めてそのオブジェクトのコピーを返します。標準見積もりの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/delete-quote specs/2026-09/crm-quotes-v2026-09.json DELETE /crm/objects/2026-09/quotes/{quoteId} 「{quoteId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/get-quote specs/2026-09/crm-quotes-v2026-09.json GET /crm/objects/2026-09/quotes/{quoteId} 「{quoteId}」によって特定されるオブジェクトを読み取ります。「{quoteId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/get-quotes specs/2026-09/crm-quotes-v2026-09.json GET /crm/objects/2026-09/quotes 見積もりのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # CRM API | 見積もり Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/guide 見積もりAPIを使用して、見込み客に価格情報を共有するための見積書を作成、管理、および取得します。設定が完了すると、指定されたURLまたはPDFのいずれかで、購入者に見積もりを共有できます。また、[HubSpotで見積もりを管理](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes-legacy#manage-quotes)して、詳細の追加や関連付けの更新などを行うこともできます。 [HubSpot決済機能](https://knowledge.hubspot.com/ja/payment-processing/set-up-payments)または[Stripe決済処理](https://knowledge.hubspot.com/ja/payment-processing/connect-your-stripe-account-as-a-payment-processor-in-hubspot)のいずれかを設定している場合は、このAPIを介して見積もりを支払い可能に設定できます。詳しくは[支払い可能な見積もり](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-payments)をご確認ください。 ![見積もりAPIの使用例](https://www.hubspot.jp/hubfs/Knowledge_Base_2023/example-quote-api.png) **使用例**: 貴社の年次SEO監査サービスパッケージの購入に関心がある顧客向けの契約提案書を作成する必要があるとします。 以下では、APIを使用して見積もりを作成し、さまざまなプロパティー、関連付け、ステータスなどを構成する方法について説明します。 > **スコープ要件** ## 概要 見積もりの作成プロセスは、次の手順に分けることができます。 1. **見積もりの作成**: 名前や有効期限など、いくつかの詳細を含む見積もりを作成します。また、[電子署名](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-e-signatures)と[決済](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-payments)[](https://knowledge.hubspot.com/ja/quotes/use-e-signatures-with-quotes)が有効になるように見積もりを設定することもできます。 2. **関連付けの設定**: 見積もりと他のタイプのCRMオブジェクトに関連付けます。例えば、商品項目、見積もりテンプレート、取引などを関連付けます。次のステップで、見積もりはこれらの関連付けられたレコードの一部とアカウントの設定から、プロパティー値を継承します。 3. **見積もりステータスの設定**: 見積もりのステータスを設定し、購入者と共有できる状態かどうかを示します。見積もりのステータスを「下書き」または「公開中」などに設定すると、関連付けられたCRMレコードとアカウント設定から[特定のプロパティーが継承](#properties-set-by-quote-state)されます。 4. **見積もりの共有**: 見積もりが公開されると、購入者と共有できるようになります。 ## 見積もりの作成 見積もりを作成するには、まず`/crm/v3/objects/quotes`に`POST`リクエストを送信して、基本的な情報を設定します。その後、見積もりを他のオブジェクト(見積もりテンプレート、商品項目、取引など)に関連付けるために、別の呼び出しを行います。 > [!NOTE] > > ご希望のワークフローに応じて、[1つのPOSTリクエストで関連付けのある見積もりを作成](#create-a-quote-with-associations-single-request)することもできます。 POSTリクエスト本文には、次の必須プロパティーを含めて、基本的な情報を設定します。 ```json theme={null} { "properties": { "hs_title": "CustomerName - annual SEO audit", "hs_expiration_date": "2023-12-10" } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `hs_title` | 文字列 | 見積もりの名前。 | | `hs_expiration_date` | 文字列 | 見積もりの有効期限。 | 上記は見積もりを作成するために最小限必要なプロパティーですが、見積もりを公開するには[他のプロパティー](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#adding-associations)も必要です。利用可能な全ての見積もりプロパティーを確認するには、`crm/v3/properties/quotes`に`GET`リクエストを送信します。詳しくは[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)をご参照ください。 レスポンスには`id`が含まれ、これを使用して見積もりの設定を続けることができます。`PATCH`リクエストを`/crm/v3/objects/quotes/{quoteId}`に送信することで、見積もりプロパティーをいつでも更新できます。 ### 見積もり担当者 `hubspot_owner_id`プロパティーは計算プロパティーであるため、手動で設定することはできません。値があれば、全ての値がオーバーライドされます。見積もりを使用する場合、プロパティーは次のように機能します。 * 取引が[見積もり](#adding-associations)に関連付けられている場合、`hubspot_owner_id`プロパティーには`hs_associated_deal_owner_id`プロパティーが反映されます(`hs_associated_deal_owner_id`は計算プロパティーです)。 * 取引が見積もりに関連付けられていない場合、`hubspot_owner_id`プロパティーには`hs_quote_owner_id`プロパティーが反映されます。 ### 電子署名を有効にする 見積もりで電子署名を有効にするには、`true`の値を持つ`hs_esign_enabled`ブール値プロパティーをリクエスト本文に含めます。APIを使用して副署名者を追加することはできないため、見積もりを公開する前にHubSpotで副署名者を追加する必要があります。また、[毎月の電子署名数の制限を超えた](https://knowledge.hubspot.com/ja/quotes/use-e-signatures-with-quotes#monitor-e-signature-usage)場合は、電子署名を有効にして見積もりを公開することはできません。 ```json theme={null} { "properties": { "hs_title": "CustomerName - annual SEO audit", "hs_expiration_date": "2023-12-10", "hs_esign_enabled": "true" } } ``` 後から、見積もりを署名者に関連付ける必要があります。見積もりに署名するコンタクトはHubSpotにコンタクトとして存在しますが、コンタクトとは別の関連付けタイプとして保存されます。詳しくは[見積もり署名者を関連付ける](#associating-quote-signers)方法をご確認ください。 ### 支払いを有効にする 見積もりで支払いを有効にするには、リクエスト本文に`hs_payment_enabled`ブール値プロパティーを含めて、その値を`true`に設定します。また、決済代行事業者と受け入れ可能な支払い方法によっては、`hs_payment_type`と`hs_allowed_payment_methods`も設定する必要があります。 > [!WARNING] > > ### 注: > > この機能を使用する前に、HubSpotアカウントで[HubSpot決済機能](https://knowledge.hubspot.com/ja/payment-processing/set-up-payments)または[Stripe決済処理](https://knowledge.hubspot.com/ja/payment-processing/connect-your-stripe-account-as-a-payment-processor-in-hubspot)のいずれかが設定されている必要があります。 | パラメーター | タイプ | 説明 | | - | - | - | | `hs_payment_enabled` | ブール値 | `true`に設定すると、見積もりでHubSpot決済機能またはStripe決済処理のいずれかを使用して支払いを回収できるようになります。デフォルトの値は`false`です。 | | `hs_payment_type` | 列挙 | 使用する決済代行事業者を決定します。値は`HUBSPOT`または`BYO_STRIPE`のいずれかです。 | | `hs_allowed_payment_methods` | 列挙 | 使用する支払い方法(クレジットカードなど)。 | | `hs_collect_billing_address` | ブール値 | `true`に設定すると、購入者は注文の確認時に請求先住所を入力できます。 | | `hs_collect_shipping_address` | ブール値 | `true`に設定すると、購入者は注文の確認時に発送先住所を入力できます。 | 例えば見積もりを作成し、クレジットカードおよびデビットカードまたはACHによるHubSpot決済機能を有効にする場合、リクエストは次のようになります。 ```json theme={null} { "properties": { "hs_title": "CustomerName - annual SEO audit", "hs_expiration_date": "2023-12-10", "hs_payment_enabled": "true", "hs_payment_type": "HUBSPOT", "hs_allowed_payment_methods": "CREDIT_OR_DEBIT_CARD;ACH" } } ``` 支払いを追跡する目的で、HubSpotは`hs_payment_status`プロパティーと`hs_payment_date`プロパティーを自動的に更新します。 * 支払いが有効な状態で見積もりが公開されると、HubSpotは自動的に`hs_payment_status`プロパティーを`PENDING`に設定します。 * ACHを使用している場合、支払いが処理されると、HubSpotは自動的に`hs_payment_status`プロパティーを`PROCESSING`に設定します。 * 支払いが確認されると、HubSpotは自動的に`hs_payment_status`プロパティーを`PAID`に設定します。 * 見積もりが支払われると、HubSpotは自動的に`hs_payment_date`を支払い確認日時に設定します。 * 支払いが確認されると、支払いは見積もりに自動的に関連付けられます。支払いの詳細を取得する場合は、[決済API](/docs/api-reference/crm-commerce-payments-v3/guide)をご確認ください。 ## 関連付けを追加する 完全な見積もりを作成するには、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用して、商品項目など他のCRMレコードと関連付ける必要があります。次の表は、完全な見積もりに必要なCRMレコードの関連付けと、オプションの関連付けを示しています。IDの取得と、IDを使用して必要な関連付けを作成する方法の詳細については、続きをお読みください。 | オブジェクトタイプ | 必須 | 説明 | | - | - | - | | [商品項目](https://developers.hubspot.jp/docs/api-reference/crm-line-items-v3/guide) | はい | 見積もりを通して販売されている商品またはサービス。[製品ライブラリー内の製品](https://developers.hubspot.jp/docs/api-reference/crm-products-v3/guide)から商品項目を作成したり、カスタムのスタンドアロン商品項目を作成したりすることができます。 | | [見積もりテンプレート](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes-legacy) | はい | 見積もりを表示するテンプレート。見積もりのデフォルト設定(言語など)が含まれます。見積もりごとに1つのテンプレートを関連付けることができます。 | | [取引](/docs/api-reference/crm-deals-v3/guide) | はい | 収益と営業ライフサイクルを追跡するために使用される取引レコード。見積もりには、関連付けられた取引からの値(担当者、通貨など)が継承されます。見積もりごとに1つの取引を関連付けることができます。 | | [コンタクト](/docs/api-reference/crm-contacts-v3/guide) | いいえ | 見積もりの対象となる特定の顧客。 | | [会社](/docs/api-reference/crm-companies-v3/guide) | いいえ | 見積もりの対象となる特定の会社。見積もりごとに1つの会社を関連付けることができます。 | | [割引](/docs/api-reference/crm-discounts-v3/guide)、[手数料](/docs/api-reference/crm-fees-v3/guide)、[税金](https://developers.hubspot.com/docs/api-reference/legacy/crm/objects/taxes/guide) | いいえ | 決済時に適用される任意の割引、手数料、税金。合計見積もり金額を算定する際、HubSpotはまず割引を適用し、次に手数料、そして税金を適用します。`hs_sort_order`フィールドを使用すると、同じタイプのオブジェクトを並べ替えることができます。`hs_type`の値を`FIXED`または`PERCENT`に設定することで、固定値またはパーセンテージを指定できます。 | ### 関連付けのIDの取得 各関連付けを作成するには、まず関連付ける各オブジェクトのIDを取得する必要があります。各IDを取得するには、関連するオブジェクトエンドポイントに`GET`リクエストを送信します。各CRMオブジェクトで同様の処理を行います。また、各リクエストを送信するときには、必要に応じて`properties`クエリーパラメーターを含めることで、特定のプロパティーを返すことができます。以下は、各タイプのオブジェクトに対する`GET`リクエストの例です。 ```text hubl.txt theme={null} GET request for line items /crm/v3/objects/line_items?properties=name GET request for quote templates /crm/v3/objects/quote_template?properties=hs_name GET request for deals /crm/v3/objects/deals?properties=dealname GET request for contacts /crm/v3/objects/contacts?properties=email GET request for companies /crm/v3/objects/companies?properties=name GET request for discounts crm/v3/objects/discounts?properties=hs_type,hs_value GET request for fees crm/v3/objects/fees?properties=hs_type,hs_value GET request for taxes crm/v3/objects/taxes?properties=hs_type,hs_value ``` ```text シェルスクリプト.txt theme={null} #GET request for line items curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/line_items?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #GET request for quote templates curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/quote_templates?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #GET request for deals curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/deals?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #GET request for contacts curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/contacts?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #GET request for companies curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/companies?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #GET request for discounts curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/discounts?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #GET request for fees curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/fees?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #GET request for taxes curl --request GET \ --url 'https://api.hubapi.com/crm/v3/properties/taxes?archived=false' \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' ``` 呼び出しが成功するたびに、取得された各オブジェクトタイプの詳細を含む`200`レスポンスが返されます。次のステップでは、`id`フィールドの値を使用して関連付けを設定します。 ```json theme={null} { "results": [ { "id": "235425923863", "properties": { "hs_createdate": "2023-06-12T16:27:32.794Z", "hs_lastmodifieddate": "2023-06-12T16:27:32.794Z", "hs_name": "Default Basic", "hs_object_id": "235425923863" }, "createdAt": "2023-06-12T16:27:32.794Z", "updatedAt": "2023-06-12T16:27:32.794Z", "archived": false }, { "id": "235425923864", "properties": { "hs_createdate": "2023-06-12T16:27:32.794Z", "hs_lastmodifieddate": "2023-06-12T16:27:32.794Z", "hs_name": "Default Modern", "hs_object_id": "235425923864" }, "createdAt": "2023-06-12T16:27:32.794Z", "updatedAt": "2023-06-12T16:27:32.794Z", "archived": false }, { "id": "235425923865", "properties": { "hs_createdate": "2023-06-12T16:27:32.794Z", "hs_lastmodifieddate": "2023-06-12T16:27:32.794Z", "hs_name": "Default Original", "hs_object_id": "235425923865" }, "createdAt": "2023-06-12T16:27:32.794Z", "updatedAt": "2023-06-12T16:27:32.794Z", "archived": false } ] } ``` ### 関連付けの作成 IDが取得されると、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を呼び出して関連付けを作成できるようになります。 見積もりに関連付けるオブジェクトのタイプごとに、以下のURL構造を使って`PUT`リクエストを送信することで、個別の呼び出しを行う必要があります。 `/crm/v4/objects/quotes/{fromObjectId}/associations/default/{toObjectType}/{toObjectId}` | パラメーター | 説明 | | - | - | | `fromObjectId` | 見積もりのID。 | | `toObjectType` | 関連付けているオブジェクトのタイプ。例えば、`line_items`、`deals`、`quote_template`などです。 | | `toObjectId` | 見積もりに関連付けているオブジェクトのID。 | 以下は、各タイプのオブジェクトに対する`PUT`リクエストの例です。 ```text hubl.txt theme={null} PUT request to associate a line item /crm/v4/objects/quotes/{quoteId}/associations/default/line_items/{lineItemId} PUT request to associate a quote template /crm/v4/objects/quotes/{quoteId}/associations/default/quote_template/{quoteTemplateId} PUT request to associate a deal /crm/v4/objects/quotes/{quoteId}/associations/default/deals/{dealId} PUT request to associate contacts /crm/v4/objects/quotes/{quoteId}/associations/default/contacts/{contactId} PUT request to associate companies /crm/v4/objects/quotes/{quoteId}/associations/default/companies/{companyId} PUT request to associate discounts /crm/v4/objects/quotes/{quoteId}/associations/default/discounts/{discountId} PUT request to associate fees /crm/v4/objects/quotes/{quoteId}/associations/default/fees/{feeId} PUT request to associate taxes /crm/v4/objects/quotes/{quoteId}/associations/default/taxes/{taxId} ``` ```text シェルスクリプト.txt theme={null} #PUT request to associate line items curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/line_items/{lineItemId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #PUT request to associate a quote template curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quote_ID}/associations/default/quote_template/{quoteTemplateId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #PUT request to associate a deal curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/deals/{dealId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #PUT request to associate contacts curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/contacts/{contactId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #PUT request to associate a company curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/companies/{companyId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #PUT request to associate discounts curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/discounts/{discountId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #PUT request to associate fees curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/fees/{feeId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' #PUT request to associate taxes curl --request PUT \ --url https://api.hubapi.com/crm/v4/objects/quotes/{quoteId}/associations/default/line_items/{taxId} \ --header 'authorization: Bearer YOUR_ACCESS_TOKEN' ``` 例えば、見積もりのIDが`123456`である場合、見積もりを関連付けるリクエストは次のような内容になります。 * **商品項目(ID:`55555`、`66666`)**: * `/crm/v4/objects/quotes/123456/associations/default/line_items/55555` * `/crm/v4/objects/quotes/123456/associations/default/line_items/66666` * **見積もりテンプレート(ID**: `987654`**)**: `/crm/v4/objects/quotes/123456/associations/default/quote_template/987654` * **取引(ID:`345345`)**: `/crm/v4/objects/quotes/123456/associations/default/deals/345345` 関連付けが成功するたびに、その関連付けの詳細を含む`200`レスポンスが返されます。上記の呼び出しは、オブジェクトを両方向に関連付け、各方向に独自のIDがあります。例えば、見積もりを見積もりテンプレートに関連付けると、レスポンスには両方からの関連付けが記述されます。以下のレスポンスの例で、`286`は見積もりと見積もりテンプレートの関連付けタイプID、`285`は見積もりテンプレートと見積もりの関連付けタイプIDです。 ```json theme={null} { "status": "COMPLETE", "results": [ { "from": { "id": "115045534742" }, "to": { "id": "102848290" }, "associationSpec": { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 285 } }, { "from": { "id": "102848290" }, "to": { "id": "115045534742" }, "associationSpec": { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 286 } } ], "startedAt": "2023-10-12T16:48:40.624Z", "completedAt": "2023-10-12T16:48:40.712Z" } ``` > [!WARNING] > > ### 見積もりを見積もりテンプレートに関連付けるときには、次の点に注意してください。 > > * 見積もりテンプレートに見積もりを関連付ける前に、見積もりテンプレートを[作成](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes-legacy)しておく必要があります。 > * 見積もりは1つの見積もりテンプレートにのみ関連付けることができます。 > * このAPIは、旧バージョンの見積もりや見積もり提案をサポートしていません。`CUSTOMIZABLE_QUOTE_TEMPLATE`テンプレートタイプのみ使用できます。 ### 見積もり署名者を関連付ける [見積もりで電子署名の使用を有効にする](#enable-e-signatures)場合は、特定の見積もりとコンタクト間の[関連付けラベル](/docs/api-reference/crm-associations-v4/guide#associate-records-with-a-label)を使用して、見積もりと署名者であるコンタクトとの間に関連付けを作成する必要もあります。 上記のデフォルトの関連付けエンドポイントを使用するのではなく、次のURLに`PUT`リクエストを送信する必要があります。 `/crm/v4/objects/quote/{quoteId}/associations/contact/{contactId}` リクエスト本文で、次のように`associationCategory`と`associationTypeId`を指定する必要があります。 ```json theme={null} [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 702 } ] ``` ## 関連付けのある見積もりを作成する(1つのリクエスト) 次のリクエスト本文では、見積もりテンプレート、取引、2つの商品項目、およびコンタクトに関連付けられた、新しい見積もりを作成します。 > [!NOTE] > > 以下のリクエスト本文でアカウント内に見積もりを作成するには、CRMの既存データに合わせて`associations`フィールドのオブジェクトIDを更新する必要があります。さらに詳しいガイダンスについては、[関連付けのIDの取得](#retrieving-ids-for-associations)セクションを参照してください。 `POST` `/crm/v3/objects/quote` ```json theme={null} { "properties": { "hs_title": "CustomerName - annual SEO audit", "hs_expiration_date": "2023-09-30" }, "associations": [ { "to": { "id": 115045534742 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 286 } ] }, { "to": { "id": 14795354663 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 64 } ] }, { "to": { "id": 75895447 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 67 } ] }, { "to": { "id": 256143985 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 67 } ] } ] } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `properties` | オブジェクト | 見積もりの詳細を定義するプロパティー値。`hs_title`と`hs_expiration_date`のプロパティーは必須です。
        • `hs_title`:見積もりの名前。
        • `hs_expiration_date`:見積もりの有効期限。
        • `hs_status`:[見積もりのステータス](#update-quote-state)。作成時に指定しなかった場合、ユーザーはHubSpotで見積もりを編集できません。
        | | `associations` | 配列 | 見積もりに関連付けられているその他のCRMレコードとオブジェクト。見積もりを公開可能にするには、取引と見積もりテンプレートが関連付けられている必要があります。見積もりに関連付けられた商品項目は、見積もりの取引に関連付けられた商品項目とは異なる必要があります(つまり、商品項目のコピーを作成する必要があります)。 それぞれの関連付けを設定するには、以下のフィールドを持つ個別のオブジェクトを配列に含めます。
        • `to`:見積もりに関連付けるレコードまたはオブジェクトのID。
        • `associationCategory`:関連付けタイプの[ラベルカテゴリー](/docs/api-reference/crm-associations-v4/guide#associate-records-with-a-label)。`"HUBSPOT_DEFINED"`(デフォルトラベル)または`"USER_DEFINED"`(カスタムラベル)のいずれかを指定します。
        • `associationTypeId`:作成されている[関連付けタイプのID](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)。例えば以下の値があります。
          • `286`:見積もりを見積もりテンプレートに関連付け
          • `64`:見積もりを取引に関連付け
          • `67`:見積もりを商品項目に関連付け
        | > [!WARNING] > > ### 注: > > これらの商品項目は、関連付けられている場合でも(見積もりを取引に関連付ける場合など)、他のオブジェクトの商品項目とは異なる必要があります。詳細については、[商品項目APIのドキュメント](https://developers.hubspot.jp/docs/api-reference/crm-line-items-v3/guide)をご確認ください。 ## 見積もりステータスの更新 見積もりのステータスは、初期設定段階から公開までの作成プロセスの中で、どの段階に進んでいるかを表すものです。見積もり承認がアカウントに対して有効になっている場合、見積もりのステータスは[見積もりの承認プロセス](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)を反映することもできます。見積もりのステータスを設定すると、HubSpotでは[特定のプロパティーが自動的に入力](#properties-set-by-quote-state)されます。 見積もりのステータスを更新するには、`/crm/v3/objects/quote/{quoteId}`に`PATCH`リクエストを送信します。 見積もりのステータスは`hs_status`フィールドに基づきます。特定の見積もりのステータスで、ユーザーは見積もり承認ワークフローで見積もりを編集、公開、使用できます。以下の見積もりのステータスを利用できます。 * **ステータスなし**: `hs_status`フィールドに値が指定されていない場合、見積もりには最小限のステータスが適用されます。この場合、見積もりは見積もりツールのインデックスページに表示されますが、直接編集することはできません。このステータスの見積もりも、シーケンスツールなどの自動化やレポートツール内での分析に使用できます。 * `DRAFT`:HubSpotで見積もりを編集できます。このステータスは、見積もりが完全に設定されていない場合や、HubSpotでの見積もり設定プロセスを営業担当者によって完了できるようにしたい場合に役立ちます。 * `APPROVAL_NOT_NEEDED`:[承認](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)を必要とせずに、誰でもアクセス可能なURL(`hs_quote_link`)で見積もりを公開します。 * `PENDING_APPROVAL`:見積もりが公開される前の[承認待ち](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)状態であることを示します。 * `APPROVED`:見積もりが既に[承認](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)され、誰でもアクセス可能なURL(`hs_quote_link`)に公開されました。 * `REJECTED`:見積もりが設定されたものの、まだ公開が[承認](https://knowledge.hubspot.com/ja/quotes/set-up-legacy-quotes)されておらず、編集してから承認用に再送信する必要があることを示します。 > [!WARNING] > > ### 注: > > 見積もりで[電子署名を有効にしている](#enabling-e-signatures)場合、[毎月の電子署名数の制限](https://knowledge.hubspot.com/ja/quotes/use-e-signatures-with-quotes#monitor-e-signature-usage)を超えると見積もりを公開できなくなります。 例えば次のリクエストは、誰でもアクセス可能なURLで見積もりを公開します。 ```json theme={null} { "properties": { "hs_status": "APPROVAL_NOT_NEEDED" } } ``` > [!WARNING] > > ### 注: > > デフォルトでは、[見積もりのステータスを更新](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#update-quote-state)した後には、HubSpotによって見積もりの`hs_template_type`プロパティーが`CUSTOMIZABLE_QUOTE_TEMPLATE`に設定されます。このテンプレートタイプはv3 APIでサポートされていますが、次のテンプレートタイプは従来のテンプレートであり、サポートが終了しています。 > > * `QUOTE` > * `PROPOSAL` ### 見積もりステータスで設定されたプロパティー 見積もりのステータスを更新すると、次のプロパティーが更新されます。 * `hs_quote_amount`:関連付けられている商品項目、税金、割引、手数料に基づいて計算されます。 * `hs_domain`:関連付けられている見積もりテンプレートから設定されます。 * `hs_slug`:指定されていない場合は、無作為に生成されます。 * `hs_quote_total_preference`:ご使用のアカウントの設定に基づいて設定されます。この設定が指定されていない場合には、デフォルト値としてtotal\_first\_paymentフィールドの値が使用されます。 * `hs_timezone`:デフォルト値としてHubSpotアカウントのタイムゾーンが使用されます。 * `hs_locale`:関連付けられている見積もりテンプレートから設定されます。 * `hs_quote_number`:指定されていない場合、現在の日付と時刻に基づいて設定されます。 * `hs_language`:関連付けられている見積もりテンプレートから設定されます。 * `hs_currency`:関連付けられている取引に基づいて設定されます。見積もりに取引を関連付けていない場合、HubSpotアカウントのデフォルトの通貨がデフォルト値として使用されます。 見積もりが「公開中」ステータスに設定されるときには、次のプロパティーも計算されます。 * `hs_pdf_download_link`:見積もりのPDFのURLが取り込まれます。 * `hs_locked`:`true`に設定されます。見積もりを公開した後にいずれかのプロパティーを変更するには、まず見積もりの`hs_status`を`DRAFT`、`PENDING_APPROVAL`、または`REJECTED`に更新する必要があります。 * `hs_quote_link`:見積もりの一般公開URL。これは読み取り専用プロパティーで、公開後にAPIを介して設定することはできません。 * `hs_esign_num_signers_required`:[電子署名を有効](#enable-e-signatures)にしている場合、必要な署名の数が表示されます。 * `hs_payment_status`:支払いを有効にしている場合の支払い回収のステータス。支払いを有効にして公開すると、このプロパティーはPENDINGに設定されます。購入者が見積もりを通じて支払いを送信すると、ステータスはそれに応じて自動的に更新されます。詳しくは[支払いを有効にする](https://developers.hubspot.jp/docs/api-reference/crm-quotes-v3/guide#enable-payments)方法をご確認ください。 ## 見積もりを取得する 見積もりを個別に、または一括で取得できます。 * 個々の見積もりを取得するには、`/crm/v3/objects/quotes/{quoteID}`に`GET`リクエストを送信します。 * 全ての見積もりのリストをリクエストするには`/crm/v3/objects/quotes`に`GET`リクエストを送信します。 これらのエンドポイントに対し、リクエストのURLに次のクエリーパラメーターを含めることができます。 \| パラメーター | 説明 | \| --- | --- | --- | \| `properties` | レスポンスで返されるプロパティーのカンマ区切りリスト。リクエスト対象の見積もりで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | \| `propertiesWithHistory` | レスポンスで返される現在および過去のプロパティーのカンマ区切りリスト。リクエスト対象の見積もりで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | \| `associations` | 関連付けられたIDを取得する対象のオブジェクトのカンマ区切りリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide) | をご参照ください。 | IDを指定して特定の複数の見積もりを一括取得するには、`POST`リクエストを`crm/v3/objects/quotes/batch/read`に送信し、そのリクエスト本文に取得する見積もりのIDを含めます。また、返すプロパティーを指定する`properties`配列を含めることもできます。このバッチエンドポイントは関連付けを取得できません。詳しくは、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用して関連付けを一括読み取りする方法をご参照ください。 ```json theme={null} { "inputs": [ { "id": "342007287" }, { "id": "81204505203" } ], "properties": ["hs_content", "hs_sentiment", "hs_submission_timestamp"] } ``` ## スコープ 有効で公開可能な見積もりを作成するには、次のスコープが必要です。 * `crm.objects.quotes.write`、`crm.objects.quotes.read`、`crm.objects.line_items.write`、`crm.objects.line_items.read`、`crm.objects.owners.read`、`crm.objects.contacts.write`、`crm.objects.contacts.read`、`crm.objects.deals.write`、`crm.objects.deals.read`、`crm.objects.companies.write`、`crm.objects.companies.read` * `crm.schemas.quote.read`、`crm.schemas.line_items.read`、`crm.schemas.contacts.read`、`crm.schemas.deals.read`、`crm.schemas.companies.read` # Quote rules syntax Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/quote-rules-syntax # Search for quotes using specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/search/search-quotes specs/2026-09/crm-quotes-v2026-09.json POST /crm/objects/2026-09/quotes/search フィルター、プロパティー、並べ替えオプションなど、リクエスト本文で定義された条件に基づいて、見積もりの検索を実行します。このエンドポイントでは、見積もりレコードの詳細なクエリー処理を行い、特定のデータセットを取得できます。 > **Supported products** > **Required Scopes** # Partially update a quote Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/update-quote specs/2026-09/crm-quotes-v2026-09.json PATCH /crm/objects/2026-09/quotes/{quoteId} 「{quoteId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{quoteId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update a quote Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/quotes/update-quote-objectId specs/2026-09/crm-quotes-v2026-09.json PATCH /crm/objects/2026-09/quotes/{quoteId} 「{quoteId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{quoteId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Retrieve multiple custom object schemas in a batch request. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/schemas/batch/get-schemas specs/2026-09/crm-schemas-v2026-09.json POST /crm-object-schemas/2026-09/schemas/batch/read 指定された入力を含むバッチリクエストを提供することで、複数のカスタムオブジェクトスキーマの詳細を取得します。この操作により、単一のAPI呼び出しで複数のカスタムオブジェクトのプロパティーや関連付けを含むスキーマ情報を取得できます。 > **Supported products** > **Required Scopes** # Create a new custom object schema. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/schemas/create-schema specs/2026-09/crm-schemas-v2026-09.json POST /crm-object-schemas/2026-09/schemas プロパティーと関連付けを定義して、新しいカスタムオブジェクトスキーマを作成します。 > **Supported products** > **Required Scopes** # Delete the schema of a specified custom object. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/schemas/delete-schema specs/2026-09/crm-schemas-v2026-09.json DELETE /crm-object-schemas/2026-09/schemas/{objectType} オブジェクトタイプIDまたは完全修飾名を使用して、アカウントからカスタムオブジェクトスキーマを削除します。 > **Supported products** > **Required Scopes** # Retrieve the schema of a specified custom object. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/schemas/get-schema specs/2026-09/crm-schemas-v2026-09.json GET /crm-object-schemas/2026-09/schemas/{objectType} オブジェクトタイプIDまたは完全修飾名を使用して、プロパティーや関連付けを含めてカスタムオブジェクトスキーマの詳細を取得します。 > **Supported products** > **Required Scopes** # Retrieve all custom object schemas. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/schemas/get-schemas specs/2026-09/crm-schemas-v2026-09.json GET /crm-object-schemas/2026-09/schemas プロパティー定義、関連付けの定義、監査メタデータを含めるオプションを使用して、すべてのカスタムオブジェクトスキーマを取得します。 > **Supported products** > **Required Scopes** # Schemas API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/schemas/guide # Update the schema of a specified custom object. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/schemas/update-schema specs/2026-09/crm-schemas-v2026-09.json PATCH /crm-object-schemas/2026-09/schemas/{objectType} オブジェクトタイプIDまたは完全修飾名を使用して、プロパティーやラベルなどのカスタムオブジェクトスキーマの属性を更新します。 > **Supported products** > **Required Scopes** # Create a batch of services Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/batch/create-services specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/0-162/batch/create HubSpotで指定したタイプのCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成でき、CRMに新しいデータを入力するプロセスを効率化できます。各オブジェクトには、作成に必要なプロパティーを含める必要があります。 > **Supported products** > **Required Scopes** # Archive a batch of services by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/batch/delete-services specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/0-162/batch/archive IDでCRMオブジェクトをバッチアーカイブします。この操作により、指定されたオブジェクトがごみ箱に移動され、実質的にアーカイブされます。このエンドポイントは、同時にアーカイブする必要がある多数のオブジェクトを管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Read a batch of services by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/batch/get-services specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/0-162/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトをバッチ取得します。このエンドポイントは、複数のオブジェクトを一度にフェッチするのに役立ち、アーカイブされたオブジェクトをレスポンスに含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of services by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/batch/update-services specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/0-162/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントを使用すると、リクエストボディで詳細を指定することで、複数のオブジェクトを一度に変更できます。これは、オブジェクトプロパティーの一括更新を効率的に行う場合に便利です。 > **Supported products** > **Required Scopes** # Create or update a batch of services by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/batch/upsert-services specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/0-162/batch/upsert 一意のプロパティー値を使用して、HubSpotでCRMオブジェクトのバッチを作成または更新します。このエンドポイントでは、指定されたプロパティーに基づいて新しいエントリーを作成するか、既存のエントリーを更新することで、複数のオブジェクトを効率的に管理できます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/create-service specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/0-162 指定されたプロパティーでCRMオブジェクトを作成し、そのIDを含めてオブジェクトのコピーを返します。このエンドポイントでは、HubSpotアカウントで標準オブジェクトを作成でき、ガイダンスとなるドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/delete-service specs/2026-09/crm-services-v2026-09.json DELETE /crm/objects/2026-09/0-162/{serviceId} 「{objectId}」で識別されるオブジェクトをごみ箱に移動します。この操作により、特定のCRMオブジェクトをその固有IDで識別してアーカイブできます。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/get-service specs/2026-09/crm-services-v2026-09.json GET /crm/objects/2026-09/0-162/{serviceId} `objectId`で識別されるオブジェクトを読み取ります。デフォルトでは、`objectId`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値にすることもできます。`properties`クエリーパラメーターを使用して、特定のオブジェクトプロパティーを含めるようにレスポンスをカスタマイズできます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/get-services specs/2026-09/crm-services-v2026-09.json GET /crm/objects/2026-09/0-162 指定されたタイプのCRMオブジェクトのページを取得します。`properties`クエリーパラメーターを使用して含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、アーカイブステータスに基づいて結果を絞り込めます。 > **Supported products** > **Required Scopes** # Services API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/guide # Merge two services Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/merge/merge-services specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/services/merge HubSpotアカウントで、同じタイプの2つのCRMオブジェクトをマージします。この操作により、指定されたオブジェクトのプロパティーと関連付けが、プライマリーオブジェクトIDで識別される単一のオブジェクトに結合されます。このエンドポイントを使用して、重複するレコードを統合したり、データを単一のエンティティに統合したりします。 > **Supported products** > **Required Scopes** # Search across objects Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/search/search-services specs/2026-09/crm-services-v2026-09.json POST /crm/objects/2026-09/0-162/search 指定されたタイプのCRMオブジェクトを、さまざまなフィルターと条件を使用して検索します。このエンドポイントを使用すると、プロパティーに基づいてオブジェクトをクエリーし、指定された検索条件に一致する結果を返すことができます。CRMシステムから特定のデータサブセットを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/update-service specs/2026-09/crm-services-v2026-09.json PATCH /crm/objects/2026-09/0-162/{serviceId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/services/update-service-objectId specs/2026-09/crm-services-v2026-09.json PATCH /crm/objects/2026-09/0-162/{serviceId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of taxes Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/batch/create-taxes specs/2026-09/crm-taxes-v2026-09.json POST /crm/objects/2026-09/taxes/batch/create 指定されたプロパティーを持つCRMオブジェクトをバッチで作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に作成でき、作成された各オブジェクトのIDを含むコピーが返されます。これは、複数のオブジェクトを同時に作成する必要がある一括操作に役立ちます。 > **Supported products** > **Required Scopes** # Archive a batch of taxes by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/batch/delete-taxes specs/2026-09/crm-taxes-v2026-09.json POST /crm/objects/2026-09/taxes/batch/archive IDで識別されたCRMオブジェクトをバッチアーカイブします。このエンドポイントは、複数のオブジェクトを単一のリクエストでごみ箱に移動するのに役立ち、大規模なデータセットを管理するプロセスを効率化します。 > **Supported products** > **Required Scopes** # Read a batch of taxes by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/batch/get-taxes specs/2026-09/crm-taxes-v2026-09.json POST /crm/objects/2026-09/taxes/batch/read 内部IDまたは固有のプロパティー値を使用して、CRMオブジェクトをバッチ取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、データ取得プロセスを効率化します。アーカイブされたオブジェクトを結果に含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of taxes by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/batch/update-taxes specs/2026-09/crm-taxes-v2026-09.json POST /crm/objects/2026-09/taxes/batch/update HubSpotアカウントでCRMオブジェクトをバッチ更新します。このエンドポイントでは、リクエストボディで詳細を指定することで、複数のオブジェクトを一度に変更できます。複数のオブジェクトのプロパティーを同時に変更する必要がある一括更新に役立ちます。 > **Supported products** > **Required Scopes** # Create or update a batch of taxes by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/batch/upsert-taxes specs/2026-09/crm-taxes-v2026-09.json POST /crm/objects/2026-09/taxes/batch/upsert HubSpotアカウントで、一意のプロパティー値を使用してCRMオブジェクトをバッチで作成または更新します。このエンドポイントを使用すると、一意の識別子に基づいて新しいエントリーを作成したり、既存のエントリーを更新したりすることで、大量のオブジェクトを効率的に管理できます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/create-tax specs/2026-09/crm-taxes-v2026-09.json POST /crm/objects/2026-09/taxes 指定されたプロパティーを使用してCRMオブジェクトを作成し、そのIDを含むオブジェクトのコピーを受け取ります。このエンドポイントは、CRMシステムに新しいオブジェクトを追加するのに役立ち、作成時にオブジェクトのプロパティーを定義できます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/delete-tax specs/2026-09/crm-taxes-v2026-09.json DELETE /crm/objects/2026-09/taxes/{taxId} 「{objectId}」で識別されるオブジェクトをごみ箱に移動します。この処理により、特定のCRMオブジェクトをアーカイブできます。アーカイブされたオブジェクトは有効ではなくなりますが、必要に応じてごみ箱から復元できます。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/get-tax specs/2026-09/crm-taxes-v2026-09.json GET /crm/objects/2026-09/taxes/{taxId} 指定された`objectType`で`objectId`によって識別されるオブジェクトを読み取ります。デフォルトでは、`objectId`は内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを使用して、レスポンスの内容を制御できます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/get-taxes specs/2026-09/crm-taxes-v2026-09.json GET /crm/objects/2026-09/taxes 指定されたタイプのCRMオブジェクトのページを読み取ります。`properties`クエリーパラメーターを使用して、含めるオブジェクトプロパティーを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、指定されたオブジェクトタイプの関連付けIDを取得できます。 > **Supported products** > **Required Scopes** # Taxes API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/guide # Search for taxes using specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/search/search-taxes specs/2026-09/crm-taxes-v2026-09.json POST /crm/objects/2026-09/taxes/search 指定されたタイプのCRMオブジェクトを検索します。このエンドポイントを使用すると、さまざまな条件に基づいてオブジェクトを絞り込みおよび並べ替え、オブジェクトの特定のプロパティーを取得できます。特定の条件に一致するオブジェクトを見つけたり、分析のためにデータのサブセットを取得したりするのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/taxes/update-tax specs/2026-09/crm-taxes-v2026-09.json PATCH /crm/objects/2026-09/taxes/{taxId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/create-ticket specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets 指定されたプロパティーを使用してCRMオブジェクトを作成し、そのIDを含めて、オブジェクトのコピーを返します。このエンドポイントは、CRMシステムに新しいオブジェクトを追加するのに役立ち、作成時にオブジェクトのプロパティーを定義できます。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/get-ticket specs/2026-09/crm-tickets-v2026-09.json GET /crm/objects/2026-09/tickets/{ticketId} `objectId`で識別されるオブジェクトを読み取ります。`objectId`は、デフォルトでは内部オブジェクトIDを参照しますが、`idProperty`クエリーパラメーターで指定された一意のプロパティー値を参照することもできます。`properties`クエリーパラメーターを使用して、返される内容を制御できます。このエンドポイントを使用すると、特定のCRMオブジェクトに関する詳細情報(プロパティー、関連付け、履歴など)を取得できます。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/get-tickets specs/2026-09/crm-tickets-v2026-09.json GET /crm/objects/2026-09/tickets HubSpotアカウントで、指定されたタイプのオブジェクトのページを読み取ります。レスポンスに含めるプロパティーを指定することで、返されるデータを制御できます。このエンドポイントはページ分割をサポートしており、関連付けられたオブジェクトIDとアーカイブされたレコードを取得できます。 > **Supported products** > **Required Scopes** # CRM API | チケット Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/guide > **[Run in Postman](https://app.getpostman.com/run-collection/26126890-98d91102-ed47-41b0-8304-23f04f12ed0f)** > **スコープ要件** # チケット HubSpotでは、顧客からのサポートリクエストのことをチケットと呼びます。チケットは、[パイプラインステータス](https://knowledge.hubspot.com/ja/object-settings/set-up-and-customize-pipelines)でサポートプロセスを通して、クローズされるまで追跡されます。チケットエンドポイントを使用することにより、チケットレコードを作成および管理したり、HubSpotと他のシステムの間でチケットデータを同期したりできます。 オブジェクト、レコード、プロパティー、および関連付けAPIの詳細については、[CRMについて](/docs/guides/crm/understanding-the-crm)のガイドをご確認ください。HubSpotのオブジェクトとレコードに関する一般的な情報については、[CRMデータベースを管理する方法](https://knowledge.hubspot.com/ja/get-started/manage-your-crm-database)をご確認ください。 ## チケットを作成する 新しいチケットを作成するには、`POST`リクエストを`/crm/v3/objects/tickets`に送信します。 リクエスト内のプロパティーオブジェクトにチケットデータを含めます。また、 関連付けオブジェクトを追加して、新しいチケットを既存のレコード(コンタクト、会社など)やアクティビティー(ミーティング、メモなど)に関連付けることもできます。 ### プロパティー チケットの詳細は、チケットプロパティーに保存されます。[HubSpotの既定のチケットプロパティー](https://knowledge.hubspot.com/ja/properties/hubspots-default-ticket-properties)がありますが、[カスタムプロパティーを作成](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties)することもできます。 新しいチケットを作成する際は、`subject`(チケット名)および`hs_pipeline_stage`(チケットのステータス)の各プロパティーをリクエストに含める必要があります。また、複数のパイプラインがある場合は`hs_pipeline`も含めます。パイプラインが指定されていない場合は、既定のパイプラインが使用されます。 利用可能な全てのプロパティーを確認するには、`GET`リクエストを`/crm/v3/properties/tickets`に送信して、アカウントのチケットプロパティーのリストを取得します。詳しくは[プロパティーAPI](/docs/api-reference/crm-properties-v3/guide)をご参照ください。 > [!WARNING] > > **注**:APIを介してチケットを作成するときには、チケットステータスまたはパイプラインの内部IDを使用する必要があります。内部IDは数値であり、APIを介してチケットを取得するときにこれも返されます。チケットステータスまたはパイプラインの内部IDは、[チケットパイプライン設定で確認できます。](https://knowledge.hubspot.com/ja/object-settings/set-up-and-customize-pipelines) 例えば、新しいチケットを作成する場合、リクエストの内容は次のようになります。 **JSON** ```json theme={null} ///Example request body { "properties": { "hs_pipeline": "0", "hs_pipeline_stage": "1", "hs_ticket_priority": "HIGH", "subject": "troubleshoot report" } } ``` ### 関連付け 新しいチケットを作成する際に、関連付けオブジェクトを含めることで、そのチケットを[既存のレコード](https://knowledge.hubspot.com/ja/records/associate-records)や[アクティビティー](https://knowledge.hubspot.com/ja/records/associate-activities-with-records)に関連付けることもできます。例えば、新しいチケットを既存のコンタクトと会社に関連付ける場合、リクエストの内容は次のようになります。 **JSON** ```json theme={null} ///Example request body { "properties": { "hs_pipeline": "0", "hs_pipeline_stage": "1", "hs_ticket_priority": "HIGH", "subject": "troubleshoot report" }, "associations": [ { "to": { "id": 201 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 16 } ] }, { "to": { "id": 301 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 26 } ] } ] } ``` 関連付けオブジェクトには、次のものを含める必要があります。 | パラメーター | 説明 | | - | - | | `to` | チケットを関連付けるレコードまたはアクティビティー。一意の`id`値で指定します。 | | `types` | チケットとレコード/アクティビティーの間の関連付けのタイプ。`associationCategory`および`associationTypeId`を含めます。既定の関連付けタイプIDは[こちらのページ](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)に記載されています。または、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide#retrieve-association-types)を使用して、カスタム関連付けタイプ(ラベル)の値を取得することもできます。 | ## チケットを取得する チケットを個別に、または一括で取得できます。 * 個々のチケットを取得するには、`GET`リクエストを`/crm/v3/objects/tickets/{ticketId}`に送信します。 * 全てのチケットのリストを取得するには`GET`リクエストを`/crm/v3/objects/tickets`に送信します。 これらのエンドポイントに対し、リクエストのURLに次のクエリーパラメーターを含めることができます。 | パラメーター | 説明 | | - | - | | `properties` | レスポンスで返されるプロパティーのカンマ区切りのリスト。リクエスト対象のチケットレコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `propertiesWithHistory` | レスポンスで返される現在および過去のプロパティーのカンマ区切りのリスト。リクエスト対象のチケットレコードで、指定したプロパティーに値が設定されていない場合、そのプロパティーはレスポンスに含まれません。 | | `associations` | 関連付けられているIDが取得されるオブジェクトのカンマ区切りのリスト。存在しない関連付けを指定した場合、その関連付けはレスポンスで返されません。詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 | * レコードIDまたは[一意のカスタム識別子プロパティー](/docs/api-reference/crm-properties-v3/guide#create-unique-identifier-properties)を指定して、特定のチケットを一括で取得するには、`POST`リクエストを`crm/v3/objects/tickets/batch/read`に送信します。このバッチエンドポイントは関連付けを取得できません。詳しくは、[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)を使用して関連付けを一括読み取りする方法をご参照ください。 一括読み取りエンドポイントの場合は、任意指定の`idProperty`パラメーターを使用し、カスタムの[固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#固有idプロパティーを作成する)を指定して、チケットを取得することもできます。既定で、リクエストの`id`値はレコードID(`hs_object_id`)を参照するため、レコードIDを使]\(/guides/api/crm/properties#固有idプロパティーを作成する)用して取得する場合は`idProperty`パラメーターは不要です。固有のカスタム値プロパティーを使用してチケットを取得する場合は、`idProperty`パラメーターを含める必要があります。 例えば、チケットを一括で取得する場合のリクエストは、次のいずれかのようになります。 ```json theme={null} ///Example request body with record ID { "properties": ["subject", "hs_pipeline_stage", "hs_pipeline"], "inputs": [ { "id": "4444888856" }, { "id": "666699988" } ] } ``` ```json theme={null} ///Example request body with a unique value property { "properties": ["subject", "hs_pipeline_stage", "hs_pipeline"], "idProperty": "uniquepropertyexample", "inputs": [ { "id": "abc" }, { "id": "def" } ] } ``` プロパティーの現在の値と過去の値を含むチケットを取得する場合のリクエストは、次のようになります。 ```json theme={null} ///Example request body with record ID (current and historical values) { "propertiesWithHistory": ["hs_pipeline_stage"], "inputs": [ { "id": "4444888856" }, { "id": "666699988" } ] } ``` ## チケットを更新する チケットレコードを個別に、または一括で更新できます。既存のチケットの場合、APIを介してそのチケットを更新するために使用できる固有の既定値は、レコードIDです。ただし、[カスタムの固有IDプロパティー](/docs/api-reference/crm-properties-v3/guide#固有idプロパティーを作成する)を使用してチケットを識別して更新することもできます。 * レコードIDを指定して個別にチケットを更新するには、更新するデータを含めて、`PATCH`リクエストを`/crm/v3/objects/tickets/{ticketId}`に送信します。 * 複数のチケットを更新するには、`POST`リクエストを`/crm/v3/objects/tickets/batch/update`に送信します。リクエストの本文に、チケットの識別子と更新するプロパティーを含む配列を含めます。 ### 既存のチケットを他のレコードまたはアクティビティーに関連付ける チケットを他のCRMレコードまたはアクティビティーに関連付けるには、`PUT`リクエストを`/crm/v3/objects/tickets/{ticketId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`に送信します。 > [!NOTE] > > `associationTypeId`値を取得するには、[この既定値リスト](/docs/api-reference/crm-associations-v4/guide#association-type-id-values)を参照するか、`GET`リクエストを`/crm/v4/associations/{fromObjectType}/{toObjectType}/labels`に送信します。 詳しくは[関連付けAPI](/docs/api-reference/crm-associations-v4/guide)をご参照ください。 ### 関連付けを削除する チケットレコードと他のレコードまたはアクティビティーの関連付けを削除するには、`DELETE`リクエストを`/crm/v3/objects/tickets/{ticketId}/associations/{toObjectType}/{toObjectId}/{associationTypeId}`のURLに送信します。 ## チケットレコードでアクティビティーをピン留めする リクエストに`hs_pinned_engagement_id`フィールドを含めると、APIを介してチケットレコードでアクティビティーをピン留めできます。フィールドに、ピン留めするアクティビティーの`id`を含めます。これは、[エンゲージメントAPI](/docs/api-reference/overview)を介して取得できます。レコードごとに1つのアクティビティーをピン留めすることができます。ただし、そのアクティビティーはピン留めを行う前にチケットに関連付けられている必要があります。 チケット内のピン留めされたアクティビティーを設定または更新するリクエストは、次のようになります。 ```json theme={null} ///Example request body PATCH /crm/v3/objects/tickets/{ticketId} { "properties": { "hs_pinned_engagement_id": 123456789 } } ``` チケットを作成し、既存のアクティビティーに関連付け、同じリクエストにアクティビティーをピン留めすることもできます。以下で、例をご確認いただけます。 ```json theme={null} ///Example request body POST /crm/v3/objects/tickets { "properties": { "hs_pipeline": "0", "hs_pipeline_stage": "1", "hs_ticket_priority": "HIGH", "subject": "troubleshoot report", "hs_pinned_engagement_id": 123456789 }, "associations": [ { "to": { "id": 123456789 }, "types": [ { "associationCategory": "HUBSPOT_DEFINED", "associationTypeId": 227 } ] } ] } ``` ## チケットを削除する チケットレコードを個別に、または一括で削除できます。削除したチケットレコードは、HubSpot内のごみ箱に追加されます。そのため、必要に応じて後で[HubSpot内でチケットを復元](https://knowledge.hubspot.com/ja/records/restore-deleted-records)できます。 チケットIDを指定して個別にチケットを削除するには、`DELETE`リクエストを`/crm/v3/objects/tickets/{ticketId}`に送信します。 チケットの削除の詳細については、 [リファレンスドキュメント](/docs/api-reference/crm-tickets-v3/guide#delete-%2Fcrm%2Fv3%2Fobjects%2Ftickets%2F%7Bticketid%7D)をご確認ください。 # Merge two tickets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/merge-tickets specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets/merge HubSpotアカウントで、同じタイプの2つのCRMオブジェクトをマージします。この操作により、指定されたオブジェクトのプロパティーと関連付けが、プライマリーオブジェクトIDで識別される単一のオブジェクトに結合されます。 > **Supported products** > **Required Scopes** # Ticket object definition Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/object-definition # Create a batch of tickets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/batch/create-tickets specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets/batch/create 指定されたプロパティーでCRMオブジェクトをバッチ作成します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを作成できるため、大量のデータセットをHubSpotアカウントに効率的に追加するのに役立ちます。レスポンスには、作成された各オブジェクトのIDを含むコピーが含まれます。 > **Supported products** > **Required Scopes** # Archive a batch of tickets by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/batch/delete-tickets specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets/batch/archive IDで識別されたCRMオブジェクトのバッチをアーカイブします。このエンドポイントは、複数のオブジェクトを単一のリクエストでごみ箱に移動するのに役立ち、大規模なデータセットを管理するプロセスを効率化します。 > **Supported products** > **Required Scopes** # Read a batch of tickets by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/batch/get-tickets specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets/batch/read 内部IDまたは一意のプロパティー値でCRMオブジェクトのバッチを取得します。このエンドポイントは、単一のリクエストで複数のオブジェクトを取得するのに役立ち、パフォーマンスを最適化し、必要なAPI呼び出しの数を減らすことができます。結果にアーカイブされたオブジェクトを含めるかどうかを指定できます。 > **Supported products** > **Required Scopes** # Update a batch of tickets by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/batch/update-tickets specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets/batch/update HubSpotアカウントで複数のCRMオブジェクトをバッチ更新します。このエンドポイントでは、リクエストボディで詳細を指定することで、複数のオブジェクトを一度に変更できます。複数のオブジェクトのプロパティーを同時に変更する必要がある一括更新で役立ちます。 > **Supported products** > **Required Scopes** # Create or update a batch of tickets by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/batch/upsert-tickets specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets/batch/upsert 一意のプロパティー値に基づいて、CRMオブジェクトのバッチを作成または更新します。このエンドポイントを使用すると、単一のリクエストで複数のオブジェクトを効率的に管理し、既存のオブジェクトを更新しながら新しいオブジェクトを作成できます。これは、外部システムとのデータ同期や、HubSpotアカウントのレコードを最新の状態に保つ場合に役立ちます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/delete-ticket specs/2026-09/crm-tickets-v2026-09.json DELETE /crm/objects/2026-09/tickets/{ticketId} `{objectId}`で識別されるオブジェクトをごみ箱に移動します。この操作により、特定のCRMオブジェクトをIDでアーカイブし、通常の利用対象から実質的に削除しながら、将来復元できるようにシステム内に保持します。 > **Supported products** > **Required Scopes** # Search for tickets Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/search/search-tickets specs/2026-09/crm-tickets-v2026-09.json POST /crm/objects/2026-09/tickets/search さまざまなフィルターと条件を使用して、指定されたタイプのCRMオブジェクトを検索します。このエンドポイントでは、フィルターグループ、プロパティー、並べ替えオプションを指定して、複雑な検索を実行できます。詳細な検索パラメーターに基づいて特定のオブジェクトを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/update-ticket specs/2026-09/crm-tickets-v2026-09.json PATCH /crm/objects/2026-09/tickets/{ticketId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Update Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/tickets/update-ticket-objectId specs/2026-09/crm-tickets-v2026-09.json PATCH /crm/objects/2026-09/tickets/{ticketId} 「{objectId}」によって特定されるオブジェクトの部分更新を実行します。「{objectId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーは無視されます。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Create a batch of users Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/batch/create-users specs/2026-09/crm-users-v2026-09.json POST /crm/objects/2026-09/users/batch/create ユーザーのプロパティーと関連付けを一括で指定して、1つのリクエストで複数のユーザーを作成します。このエンドポイントでは、IDを含めて作成したユーザーを返します。 > **Supported products** > **Required Scopes** # Archive a batch of users by ID Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/batch/delete-users specs/2026-09/crm-users-v2026-09.json POST /crm/objects/2026-09/users/batch/archive 1つのリクエストでIDを基準に複数のユーザーをアーカイブします。この処理により、指定したユーザーがごみ箱に移動し、実質的に無効化されます。 > **Supported products** > **Required Scopes** # Read a batch of users by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/batch/get-users specs/2026-09/crm-users-v2026-09.json POST /crm/objects/2026-09/users/batch/read レコードIDによってレコードを取得する、または「idProperty」パラメーターを含めてカスタムの固有値プロパティーによってレコードを取得します。 > **Supported products** > **Required Scopes** # Update a batch of users by internal ID, or unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/batch/update-users specs/2026-09/crm-users-v2026-09.json POST /crm/objects/2026-09/users/batch/update 内部IDまたはプロパティーの固有値を指定して、1つのリクエストで複数のユーザーレコードを更新します。この処理では、ユーザーデータをバッチ処理し、複数のユーザープロファイルでの効率的な更新を行うことができます。 > **Supported products** > **Required Scopes** # Create or update a batch of users by unique property values Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/batch/upsert-users specs/2026-09/crm-users-v2026-09.json POST /crm/objects/2026-09/users/batch/upsert 「idProperty」クエリーパラメーターによる指定通り、固有のプロパティー値によって特定されるレコードを作成または更新します。「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。 > **Supported products** > **Required Scopes** # Create Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/create-user specs/2026-09/crm-users-v2026-09.json POST /crm/objects/2026-09/users 特定のプロパティーを使用してユーザーを作成し、IDを含めてそのオブジェクトのコピーを返します。標準ユーザーの作成に関するドキュメントや例が提供されます。 > **Supported products** > **Required Scopes** # Archive Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/delete-user specs/2026-09/crm-users-v2026-09.json DELETE /crm/objects/2026-09/users/{userId} 「{userId}」によって特定したオブジェクトをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/get-user specs/2026-09/crm-users-v2026-09.json GET /crm/objects/2026-09/users/{userId} 「{userId}」によって特定されるオブジェクトを読み取ります。「{userId}」はデフォルトで内部オブジェクトIDを参照しますが、「idProperty」クエリーパラメーターによって指定することで、必要に応じて任意の固有のプロパティー値を参照できます。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # List Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/get-users specs/2026-09/crm-users-v2026-09.json GET /crm/objects/2026-09/users ユーザーのページを読み取ります。「properties」クエリーパラメーターを使用して返される内容を制御します。 > **Supported products** > **Required Scopes** # Users API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/guide # Search for users based on specified criteria. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/search/search-users specs/2026-09/crm-users-v2026-09.json POST /crm/objects/2026-09/users/search 定義されたフィルター、プロパティー、並べ替えオプションを使用してユーザーの検索を実行します。このリクエストには検索クエリーを含める必要があり、リクエストごとに最大200件の結果を返すことができます。 > **Supported products** > **Required Scopes** # Update user Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/objects/users/update-user specs/2026-09/crm-users-v2026-09.json PATCH /crm/objects/2026-09/users/{userId} 「{userId}」によって特定されるオブジェクトの部分更新を実行するか、必要に応じて「idProperty」クエリーパラメーターによって指定される固有のプロパティー値の部分更新を実行します。「{userId}」はデフォルトで内部オブジェクトIDを参照し、「idProperty」クエリーパラメーターはオブジェクトについて値が固有のプロパティーを参照します。指定されたプロパティー値は上書きされます。読み取り専用のプロパティーや存在しないプロパティーはエラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。 > **Supported products** > **Required Scopes** # Retrieve an owner Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/owners/get-owner specs/2026-09/crm-crm-owners-v2026-09.json GET /crm/owners/2026-09/{ownerId} 「id」または「userId」を使用して特定の担当者の詳細を取得します。 > **Supported products** > **Required Scopes** # Retrieve all owners Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/owners/get-owners specs/2026-09/crm-crm-owners-v2026-09.json GET /crm/owners/2026-09 HubSpotアカウントからオーナーのページ分割されたリストを取得します。このエンドポイントでは、Eメールで絞り込むことができ、afterパラメーターによるページ分割をサポートしています。また、ページあたりの最大結果数を指定したり、アーカイブされたオーナーをレスポンスに含めることも選択できます。 > **Supported products** > **Required Scopes** # CRM API | 所有者 Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/owners/guide > **[Run in Postman](https://app.getpostman.com/run-collection/78f10c037170a05f3b3a)** > **スコープ要件** # 所有者 HubSpot所有者は特定のユーザーをレコード、アクティビティー、またはマーケティングタスクに[割り当て](https://knowledge.hubspot.com/records/how-to-set-a-record-owner)ます。所有者をコンテンツのパーソナライズトークンに使用できます。新しいユーザーが追加されたとき、または既存の所有者が[Salesforce](https://knowledge.hubspot.com/salesforce/install-the-hubspot-salesforce-integration)から同期されたときに、所有者がHubSpotで自動的に作成および更新されます。 所有者APIエンドポイントは読み取り専用ですから、これらを使用して所有者識別情報(所有者IDなど)を取得できます。その後、この識別情報を使用し、連携またはプロパティー変更API呼び出しを介して、所有権をHubSpotのCRMレコードに割り当てることができます。 ## 所有者のリストを取得する アカウントの現在の所有者を取得するには、`GET`リクエストを`/crm/v3/owners`に送信します。レスポンスでは、各ユーザーの名前、Eメール、ID値、作成/更新日付、および該当する場合はチーム情報が返されます。返される次の2つのID値は、それぞれ異なる目的で使用されます。 * `id`:所有者のID。この値は、特定の所有者に関する情報を取得するとき、および所有者をレコードまたはアクティビティーに割り当てるときに使用されます。 * `userId`:ユーザーのID。この値を使用して[設定API](/docs/api-reference/settings-user-provisioning-v3/guide)でユーザーを指定できます。ただし所有権の割り当てにこれを使用するとエラーが発生します。 レスポンスは次のようになります。 ```json theme={null} ///Example response GET crm/v3/owners { "results": [ { "id": "41629779", "email": "email@hubspot.com", "type": "PERSON", "firstName": "HubSpot", "lastName": "Test Owner", "userId": 9586504, "userIdIncludingInactive": 9586504, "createdAt": "2019-12-25T13:01:35.228Z", "updatedAt": "2023-08-22T13:40:26.790Z", "archived": false, "teams": [ { "id": "368389", "name": "Sales Team", "primary": true } ] }, { "id": "60158084", "email": "email@gmail.com", "type": "PERSON", "firstName": "Test", "lastName": "Email", "userId": 9274996, "userIdIncludingInactive": 9274996, "createdAt": "2021-02-10T17:59:04.891Z", "updatedAt": "2023-02-09T17:41:52.767Z", "archived": false, "teams": [ { "id": "368389", "name": "Sales Team", "primary": true } ] }, { "id": "81538190", "email": "salesmanager@hubspot.com", "type": "PERSON", "firstName": "Sales", "lastName": "Manager Example", "userId": 3892666, "userIdIncludingInactive": 3892666, "createdAt": "2021-05-27T16:55:57.242Z", "updatedAt": "2022-08-02T18:34:35.039Z", "archived": false } ] } ``` アーカイブされた所有者のリストを取得して、非アクティブにされたユーザーを確認することもできます。それには、値を`true`に設定した`archived`パラメーターを追加します。アーカイブされたユーザーにも`id`値はありますが、`userId`値は`null`になります。この場合、ユーザーIDは`userIdIncludingInactive`フィールドに格納されます。 例: ```json theme={null} ///Example response GET crm/v3/owners/?archived=true { "results": [ { "id": "42103462", "email": "useremail@hubspot.com", "type": "PERSON", "firstName": "", "lastName": "", "userId": null, "userIdIncludingInactive": 9685555, "createdAt": "2020-01-09T20:28:50.080Z", "updatedAt": "2020-01-09T20:28:50.080Z", "archived": true } ] } ``` ## 個々の所有者に関する情報を取得する 特定の所有者の情報を取得するには、`GET`リクエストを`/crm/v3/owners/{ownerId}`に送信します。詳細を取得する対象の所有者を指定するには、`id`値を使用する必要があります。 > [!WARNING] > > \*\*注:\*\*レスポンスに含まれる`updatedAt`値は、Ownerオブジェクト自体の更新に基づいて変更されます。Userオブジェクトに変更が加えられても更新されません。例えば、ユーザーの権限を変更しても`updatedAt`値は更新されません。 # Create pipeline Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/create-pipeline specs/2026-09/crm-pipelines-v2026-09.json POST /crm/pipelines/2026-09/{objectType} HubSpotアカウントで、指定したオブジェクトタイプの新しいパイプラインを作成します。このエンドポイントには、パイプラインのラベル、表示順序、ステージなどの詳細を含むJSONリクエスト本文が必要です。操作が正常に行われると、新しく作成されたパイプラインの詳細が返されます。 > **Supported products** > **Required Scopes** # Delete pipeline Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/delete-pipeline specs/2026-09/crm-pipelines-v2026-09.json DELETE /crm/pipelines/2026-09/{objectType}/{pipelineId} オブジェクトタイプとパイプラインIDで識別される、HubSpotアカウント内の特定のパイプラインを削除します。この操作では、データの整合性を確保するために、削除前に参照と取引ステージの使用状況を任意で検証できます。 > **Supported products** > **Required Scopes** # Retrieve pipeline Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/get-pipeline specs/2026-09/crm-pipelines-v2026-09.json GET /crm/pipelines/2026-09/{objectType}/{pipelineId} HubSpotアカウント内の特定のパイプラインに関する詳細情報を取得します。このエンドポイントでは、指定されたpipelineIdとobjectTypeで識別されるパイプラインのプロパティーとステージにアクセスできます。パイプラインの現在の設定とステータスを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve pipelines Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/get-pipelines specs/2026-09/crm-pipelines-v2026-09.json GET /crm/pipelines/2026-09/{objectType} HubSpotアカウントで指定されたオブジェクトタイプのすべてのパイプラインを取得します。このエンドポイントでは、ページ操作なしでパイプライン情報にアクセスできるため、特定のオブジェクトタイプに関連付けられているパイプラインの完全なリストを取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve audit logs Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/get-pipelines-audit specs/2026-09/crm-pipelines-v2026-09.json GET /crm/pipelines/2026-09/{objectType}/{pipelineId}/audit HubSpotアカウント内の特定のパイプラインの監査ログを取得します。このエンドポイントは、指定されたパイプラインに加えられた変更に関する詳細情報を提供し、変更の追跡やパイプライン設定の履歴の把握に役立ちます。 > **Supported products** > **Required Scopes** # CRM API | パイプライン Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/guide > **[Run in Postman](https://app.getpostman.com/run-collection/2c67a53481327b3678ec)** > **スコープ要件** # パイプライン HubSpotのパイプラインは、取引ステージまたはチケットステータスが設定される場所です。営業部門では、パイプラインを活用して収益の予測や阻害要因の特定ができます。カスタマーサービス部門では、パイプラインを活用してチケットステータスの管理や課題の分析ができます。 パイプラインに含まれる各ステージは個別の内部IDで識別されます。つまり、ステージは1つのパイプラインにのみ含めることができます。各パイプラインには少なくとも1つのステージが含まれていて、各アカウントには少なくとも1つのパイプラインが存在している必要があります。 ### 既定のパイプライン 全てのアカウントには最初、`pipelineId`が「default」である既定のパイプラインが含まれています。1つのパイプラインしかないアカウントでは、全てのオブジェクトのパイプラインプロパティーも自動的に「default」に設定されます。複数のパイプラインがあるアカウント上で既定のパイプラインにないステージを設定する場合、対応するパイプラインのプロパティーも設定する必要があります。 ### 複数のパイプライン [複数の取引パイプライン](https://knowledge.hubspot.com/ja/object-settings/set-up-and-customize-pipelines)は、Sales Hub ProfessionalまたはEnterpriseのアカウントのみで作成可能です。 同様に、複数の[チケットパイプライン](https://knowledge.hubspot.com/ja/object-settings/set-up-and-customize-pipelines)を作成するには、Service Hub ProfessionalまたはEnterpriseの契約が必要です。 HubSpotの契約レベルの詳細は、[こちら](https://legal.hubspot.com/jp/hubspot-product-and-services-catalog)で確認してください。 \*\*使用例:\*\*取引機能の活用に際し、アカウント上に「新規顧客」用のパイプラインを1つ、「契約更新」用としてもう1つ用意する場合があります。チケットについては、メインのサポートキューと、エスカレーション用のもう1つのキューを用意することがあります。各キューは別個のチケットパイプラインになります。1つのパイプラインまたはもう1つのパイプラインを外部のCRMに同期するために、パイプラインのエンドポイントを利用できます。 # Update pipeline (Partial) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/partially-update-pipeline specs/2026-09/crm-pipelines-v2026-09.json PATCH /crm/pipelines/2026-09/{objectType}/{pipelineId} HubSpotアカウントの既存のパイプラインを更新します。このエンドポイントでは、ラベル、表示順序、アーカイブステータスなど、パイプラインの特定のプロパティーを変更できます。これを使用して、パイプラインデータを最新の状態に保ち、整理します。 > **Supported products** > **Required Scopes** # Delete Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/delete-pipeline-rules specs/2026-09/crm-pipeline-governance-v2026-09.json DELETE /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId} HubSpotアカウントで、指定されたオブジェクトタイプとパイプラインIDに関連付けられている特定のパイプラインルールセットを削除します。この操作は、パイプラインから古くなったルールや誤ったルールを削除するのに役立ちます。意図しない削除を避けるため、objectTypeIdとpipelineIdが正しく指定されていることを確認してください。 > **Supported products** > **Required Scopes** # Retrieve Approval Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/get-pipeline-approvals specs/2026-09/crm-pipeline-governance-v2026-09.json GET /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}/approvals/{objectId} パイプライン内の特定のオブジェクトの承認ステータスを取得します。このエンドポイントは、検証または承認ステップを必要とするワークフローにおいて重要な、オブジェクトの現在の承認状態を確認するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve rules Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/get-pipeline-permissions specs/2026-09/crm-pipeline-governance-v2026-09.json GET /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId} HubSpotアカウント内の特定のパイプラインに関連付けられているルールを取得します。このエンドポイントを使用すると、指定されたパイプラインのガバナンス検証ルールと承認ステージにアクセスできます。これは、パイプラインに適用される制約と承認プロセスを理解するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve permissions Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/get-pipeline-stage-permissions specs/2026-09/crm-pipeline-governance-v2026-09.json GET /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}/stage-edit-permissions HubSpotアカウント内の特定のパイプラインのステージ編集権限を取得します。このエンドポイントでは、オブジェクトタイプとパイプラインIDで識別される特定のパイプライン内のステージ編集に設定されている権限を表示できます。これは、アクセス権を管理し、承認されたユーザーのみがパイプラインステージを変更できるようにするのに役立ちます。 > **Supported products** > **Required Scopes** # Pipeline Rules API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/guide # Update rules (Partial) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/partially-update-pipeline-rules specs/2026-09/crm-pipeline-governance-v2026-09.json PATCH /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId} HubSpotの特定のオブジェクトタイプ内の特定のパイプラインのルールを更新します。この操作により、指定されたパイプラインのガバナンス検証ルールと承認ステージを変更できます。パイプラインに関連付けられたワークフロールールを維持または変更するのに役立ちます。 > **Supported products** > **Required Scopes** # Start Approval Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/start-pipeline-approval specs/2026-09/crm-pipeline-governance-v2026-09.json POST /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}/approvals/start 特定のオブジェクトタイプ内の特定のパイプラインの承認プロセスを開始します。このエンドポイントは、パイプラインステージに関連付けられた承認ワークフローを開始し、パイプラインで次のアクションに進む前に必要な承認が得られるようにするために役立ちます。 > **Supported products** > **Required Scopes** # Update rules (Replace) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/rules/update-pipeline-rules specs/2026-09/crm-pipeline-governance-v2026-09.json PUT /crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId} HubSpotアカウント内の特定のパイプラインのルールを更新します。このエンドポイントを使用すると、パイプラインに関連付けられているガバナンス検証ルールと承認ステージを変更できます。オブジェクトタイプとパイプラインのIDを指定する必要があります。 > **Supported products** > **Required Scopes** # Create Stage Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/stages/create-pipeline-stage specs/2026-09/crm-pipelines-v2026-09.json POST /crm/pipelines/2026-09/{objectType}/{pipelineId}/stages HubSpotで、指定されたオブジェクトタイプとパイプライン内に新しいステージを作成します。このエンドポイントは、パイプラインに新しいステージを追加し、プロセスにおけるオブジェクトの追跡と管理をより詳細に行うのに役立ちます。 > **Supported products** > **Required Scopes** # Delete stage Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/stages/delete-pipeline-stage specs/2026-09/crm-pipelines-v2026-09.json DELETE /crm/pipelines/2026-09/{objectType}/{pipelineId}/stages/{stageId} HubSpotアカウントのパイプラインから特定のステージを削除します。この操作は、不要になったステージを削除することで、パイプラインステージを管理および維持するのに役立ちます。削除する前に、そのステージへの参照が適切に処理されていることを確認してください。 > **Supported products** > **Required Scopes** # Retrieve stage Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/stages/get-pipeline-stage specs/2026-09/crm-pipelines-v2026-09.json GET /crm/pipelines/2026-09/{objectType}/{pipelineId}/stages/{stageId} HubSpotの特定のオブジェクトタイプについて、パイプライン内の特定のステージの詳細を取得します。このエンドポイントは、ステージのラベル、表示順序、メタデータなどの特定のステージに関する情報にアクセスするのに役立ち、パイプラインステージの管理や分析に使用できます。 > **Supported products** > **Required Scopes** # Retrieve stage audit Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/stages/get-pipelines-stage-audit specs/2026-09/crm-pipelines-v2026-09.json GET /crm/pipelines/2026-09/{objectType}/{pipelineId}/stages/{stageId}/audit HubSpotアカウントのパイプライン内の特定のステージの監査情報を取得します。このエンドポイントは、指定されたステージで実行されたアクションに関する詳細を提供し、変更の追跡や変更履歴の把握に役立ちます。 > **Supported products** > **Required Scopes** # Update stage Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/stages/update-pipeline-stage specs/2026-09/crm-pipelines-v2026-09.json PUT /crm/pipelines/2026-09/{objectType}/{pipelineId}/stages/{stageId} HubSpotで、特定のオブジェクトタイプのパイプライン内の特定のステージを更新します。このエンドポイントを使用すると、ラベル、表示順序、メタデータなど、ステージの詳細を変更できます。これにより、パイプラインステージを最新の状態に保ち、ビジネスプロセスに合わせることができます。 > **Supported products** > **Required Scopes** # Update pipeline (Replace) Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/pipelines/update-pipeline specs/2026-09/crm-pipelines-v2026-09.json PUT /crm/pipelines/2026-09/{objectType}/{pipelineId} パイプラインIDとオブジェクトタイプを指定して、HubSpotアカウントの既存のパイプラインを更新します。この操作により、ラベル、表示順序、ステージなどのパイプラインのプロパティーを変更できます。更新を正常に行うために、リクエスト本文に必要なフィールドが含まれていることを確認してください。 > **Supported products** > **Required Scopes** # Create a batch of properties Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/batch/create-properties specs/2026-09/crm-properties-v2026-09.json POST /crm/properties/2026-09/{objectType}/batch/create 個々のプロパティーを作成するときと同じルールを使用してプロパティーをバッチ作成します。 > **Supported products** > **Required Scopes** # Archive a batch of properties Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/batch/delete-properties specs/2026-09/crm-properties-v2026-09.json POST /crm/properties/2026-09/{objectType}/batch/archive 指定されたプロパティーのリストをアーカイブします。この方法では、プロパティーの初期状態(有効、アーカイブ済み、存在しない)に関係なく、成功時に204 No Contentレスポンスが返されます。 > **Supported products** > **Required Scopes** # Read a batch of properties Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/batch/get-properties specs/2026-09/crm-properties-v2026-09.json POST /crm/properties/2026-09/{objectType}/batch/read 指定されたプロパティーのリストを読み取ります。 > **Supported products** > **Required Scopes** # Create a property Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/create-property specs/2026-09/crm-properties-v2026-09.json POST /crm/properties/2026-09/{objectType} 指定されたオブジェクトタイプの新しいプロパティーのコピーを作成して返します。 > **Supported products** > **Required Scopes** # Archive a property Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/delete-property specs/2026-09/crm-properties-v2026-09.json DELETE /crm/properties/2026-09/{objectType}/{propertyName} {propertyName}で識別されるプロパティーをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read all properties Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/get-properties specs/2026-09/crm-properties-v2026-09.json GET /crm/properties/2026-09/{objectType} 指定されたオブジェクトタイプとHubSpotアカウントの既存のすべてのプロパティーを読み取ります。 > **Supported products** > **Required Scopes** # Read a property Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/get-property specs/2026-09/crm-properties-v2026-09.json GET /crm/properties/2026-09/{objectType}/{propertyName} {propertyName}で識別されるプロパティーを読み取ります。 > **Supported products** > **Required Scopes** # CRM API | プロパティー Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/guide > **[Run in Postman](https://app.getpostman.com/run-collection/33493e154afc38038092)** プロパティーは、CRMレコードに情報を格納するために使用します。HubSpotでは、CRMオブジェクトごとにデフォルトのプロパティーセットが用意されています。[HubSpot上で](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties)、またはプロパティーAPIを使用して、独自のカスタムプロパティーを作成および管理することもできます。 プロパティーを作成する際には、データの構築方法を考慮することが重要です。多くの場合、HubSpotの標準オブジェクト上にカスタムプロパティーを作成することで適切に対応できます。しかし場合によっては、独自のプロパティーを備えた[カスタムオブジェクト](/docs/api-reference/crm-custom-objects-v3/guide)を別途作成することが必要になります。 > **スコープ要件** ## デフォルトのプロパティー CRMオブジェクトは、1つの主要な`type`と一連の`properties`によって定義されます。タイプごとに標準のプロパティーセットがあり、名前と値のペアで表されます。 各オブジェクトのデフォルトのプロパティーは以下でご確認いただけます。 * [コンタクト](https://knowledge.hubspot.com/ja/properties/hubspots-default-contact-properties) * [会社](https://knowledge.hubspot.com/ja/properties/hubspot-crm-default-company-properties) * [取引](https://knowledge.hubspot.com/ja/properties/hubspots-default-deal-properties) * [チケット](https://knowledge.hubspot.com/ja/properties/hubspots-default-ticket-properties) * [アクティビティー](https://knowledge.hubspot.com/ja/properties/hubspots-default-activity-properties)(コール、Eメール、ミーティング、メモ、タスク) * [リード](https://knowledge.hubspot.com/ja/properties/hubspots-default-lead-properties)(**Sales Hub** **ProfessionalおよびEnterprise**) ## プロパティーグループ プロパティー[グループ](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties#create-and-edit-property-groups)は、関連する複数のプロパティーをグループ化するために使用します。グループ化されたプロパティーは各HubSpotレコード上に隣接して表示されます。カスタムオブジェクトのプロパティーを作成して連携を行う場合は、カスタムプロパティーのグループを活用することでデータの特定が容易になります。 ## プロパティーのtypeとfieldTypeの値 プロパティーを作成または更新するには、`type`と`fieldType`の両方の値が必要です。`type`の値により、プロパティーの型、つまり文字列、数値などのデータ型が決まります。`fieldType`プロパティーでは、HubSpotでのプロパティーの表示形式(プレーンテキスト、ドロップダウンメニュー、日付入力など)を指定します。 以下の表に、プロパティーの有効な`type`値とそれに対応する`fieldType`値を示します。 | `type` | 説明 | 有効な`fieldType`値 | | - | - | - | | `bool` | バイナリーオプション(`Yes`または`No`、`True`または`False`など)を格納するフィールド。 | `booleancheckbox`、`calculation_equation` | | `enumeration` | 一連のオプションを表す文字列。各オプションはセミコロンで区切ります。 | `booleancheckbox`、`checkbox`、`radio`、`select`、`calculation_equation` | | `date` | 特定の年月日を表す値。値はUTC時間で表す必要があります。値の形式として、[ISO 8601文字列またはミリ秒単位のエポック時間タイムスタンプ](#add-values-to-date-and-datetime-properties)(UTC深夜0時)が可能です。 | `date` | | `datetime` | 特定の年月日と時刻を表す値。値はUTC時間で表す必要があります。値の形式として、[ISO 8601文字列またはミリ秒単位のUNIXタイムスタンプ](#add-values-to-date-and-datetime-properties)が可能です。 | `date` | | `string` | プレーンテキスト文字列。文字数の上限は65,536文字です。 | `file`、`text`、`textarea`、`calculation_equation`、`html`、`phonenumber` | | `number` | 数字から成る、小数第1位までの数値。 | `number`、`calculation_equation` | | `object_coordinates` | 他のHubSpotオブジェクトを参照するために使用されるテキスト値。内部プロパティーのみに使用されます。このタイプのプロパティーは作成/編集不可であり、HubSpotには表示されません。 | `text` | | `json` | 書式設定されたJSONとして格納されるテキスト値。内部プロパティーにのみ使用されます。このタイプのプロパティーは作成/編集不可であり、HubSpotには表示されません。 | `text` | 有効な`fieldType`値について以下に説明します。 | fieldType | 説明 | | - | - | | `booleancheckbox` | ユーザーが「はい」または「いいえ」のいずれかを選択できる入力。フォーム内で使用する場合、1つのチェックボックスとして表示されます。詳しくは、[単一チェックボックスプロパティーに値を追加する方法](#add-values-to-checkbox-type-properties)をご確認ください。 | | `calculation_equation` | 他のプロパティー値や関連付けに基づいて値を計算できるカスタム式。詳しくは、[計算プロパティー](#create-calculation-properties)を定義する方法をご確認ください。 | | `checkbox` | プロパティー内で使用可能な選択肢の中からユーザーが複数選択できるチェックボックスのリスト。詳しくは、[複数チェックボックスプロパティーの更新時に値を書式設定する方法](#add-values-to-checkbox-type-properties)をご確認ください。 | | `date` | 日付値。日付入力として表示されます。 | | `file` | レコード上またはフォーム経由でのファイルアップロードを許可します。ファイルIDが格納されます。 | | `html` | サニタイズ(エスケープ)されたHTMLとしてレンダリングされる文字列。プロパティーに対するリッチ テキスト エディターの使用が可能になります。 | | `number` | 10進数または科学的表記で記述された、数字の文字列または数値。 | | `phonenumber` | 書式設定された電話番号として表示されるプレーンテキスト文字列。 | | `radio` | プロパティーで使用可能な選択肢の中からユーザーがいずれか1つを選択できる入力。フォーム内で使用する場合、一連のラジオボタンとして表示されます。 | | `select` | プロパティーで許容される選択肢の中からユーザーがいずれか1つを選択できるドロップダウンの入力。 | | `text` | プレーンテキスト文字列。単行テキスト入力として表示されます。 | | `textarea` | プレーンテキスト文字列。単行テキスト入力として表示されます。 | ## プロパティーを作成する プロパティーを作成するには、`POST`リクエストを`/crm/v3/properties/{objectType}`に送信します。リクエスト本文に以下の必須フィールドを含めます。 * `groupName`:当該プロパティーが属する[プロパティーグループ](https://knowledge.hubspot.com/ja/properties/organize-and-export-properties)。 * `name`:当該プロパティーの内部名(例:favorite\_food)。 * `label`:HubSpotに表示される当該プロパティーの名前(例:好きな食べ物)。 * `type`:プロパティーの[型](#property-type-and-fieldtype-values)。 * `fieldType`:プロパティーの[フィールドタイプ](#property-type-and-fieldtype-values)。 例えば、「好きな食べ物」という名前のコンタクトプロパティーを作成する場合、リクエストは以下のようになります。 **JSON** ```json theme={null} { "groupName": "contactinformation", "name": "favorite_food", "label": "Favorite Food", "type": "string", "fieldType": "text" } ``` ## 固有IDプロパティーを作成する HubSpotでレコードが作成されるときには固有ID(`hs_object_id`)が自動生成され、これを文字列として扱う必要があります。これらのIDはそのオブジェクトタイプ内でのみ一意です。したがって、コンタクトと会社のIDが同じになる場合があります。コンタクトと会社には、コンタクトのEメールアドレス(`email`)や会社のドメイン名(`domain`)など、他にも固有のIDがあります。 場合によっては、複数のレコードで同じ値を入力できないように、独自の固有IDプロパティーを作成することが推奨されます。固有IDプロパティーは、オブジェクト当たり10個まで作成できます。APIを介して一意の値を必要とするプロパティーを作成するには、次の操作を行います。 * `POST`リクエストを`/crm/v3/properties/{objectType}`に送信します。 * リクエスト本文で`hasUniqueValue`フィールドの値を`true`に設定します。 **JSON** ```json theme={null} { "groupName": "dealinformation", "name": "system_a_unique", "label": "Unique ID for System A", "hasUniqueValue": true, "type": "string", "fieldType": "text" } ``` 固有IDプロパティーを作成したら、API呼び出しに使用して特定のレコードを取得することができます。例えば、`system_a_unique`プロパティー値が`abc`である取引を取得するには、リクエストURLは`/crm/v3/objects/deals/abc?idProperty=system_a_unique`になります。 `hs_object_id`、`email`(コンタクト)や`domain`(会社)を使用する場合と同じように、この固有IDプロパティーの値を使用して特定のレコードを識別し、更新できます。 ## 計算プロパティーを作成する 計算プロパティーは、同じオブジェクトレコード内の他のプロパティーに基づいてプロパティー値を定義します。計算プロパティーを定義するには、最小値、最大値、件数、合計、平均などを求める演算を含めた式を使用します。プロパティーAPIを使用すると、HubSpotアカウント内で計算プロパティーを読み取ったり、フィールドタイプとして`calculation_equation`、データ型として`number`、`bool`、`string`、または`enumeration`を使用して計算プロパティーを作成したりできます。 プロパティーの計算式は、`calculationFormula`フィールドを使用して定義できます。 > [!WARNING] > > ### 注: > > APIを介して作成された計算プロパティーをHubSpot内で編集することはできません。これらのプロパティーは、プロパティーAPIを介してのみ編集できます。 ### 計算プロパティーの構文 `calculationFormula`を使用すると、算術演算子、比較演算子、論理演算子、条件文、およびその他の関数を使用して式を記述できます。 #### リテラル構文 * **文字列リテラル**: 定数列を表現するには、単一引用符(`'constant'`)または二重引用符(`"constant"`)のいずれかを使用できます。 * **数値リテラル**: 定数には任意の実数を指定でき、小数点表現を含めることもできます。`1005`と`1.5589`はどちらも有効な定数です。 * **ブール値リテラル**: ブール型定数には`true`または`false`を指定できます。 #### プロパティーの構文 * **文字列プロパティー変数**: 識別文字列を文字列プロパティーとして解釈させるには、それを`string`関数でラップする必要があります。例えば、`string(var1)`は文字列プロパティーvar1として解釈されます。 * **数値プロパティー変数**: 全ての識別子が数値プロパティー変数として解釈されます。例えば、`var1`は数値プロパティーvar1の値として解釈されます。 * **ブール型プロパティー変数**: 識別子をブール型プロパティーとして解釈させるには、それを`bool`関数でラップする必要があります。例えば、識別子`bool(var1)`はブール型プロパティーvar1の値として解釈されます。 > [!WARNING] > > ### 注: > > 使用される言語では、文字列を除く全てのタイプで大文字と小文字が区別されます。例えば`If A ThEn B`は`if a then b`とまったく同じですが、`'a'`と`'A'`は同じではありません。トークン化にスペース、タブ、改行が使用されますが、無視されます。 #### 演算子 演算子は、リテラル値とプロパティー値で使用できます。算術演算子の場合、乗算には接頭辞表記を使用し、演算の順序を指定するには括弧を使用します。 | 演算子 | 説明 | 例 | | - | - | - | | `+` | 数値または文字列を加算します。 | `property1 + 100` | | `-` | 数値を減算します。 | `property1 + 100 - property2` | | `*` | 数値を乗算します。 | `10property1` = `10 * property1` | | `/` | 数値を除算します。 | `property1 * (100 - property2/(50 - property3))` | | `<` | ある値が別の値より小さいことを確認します。数値プロパティーまたは定数で使用できます。 | `a < 100` | | `>` | ある値が別の値より大きいことを確認します。数値プロパティーまたは定数で使用できます。 | `a > 50` | | `<=` | ある値が別の値以下であることを確認します。数値プロパティーまたは定数で使用できます。 | `a <= b` | | `>=` | ある値が別の値以上であることを確認します。数値プロパティーまたは定数で使用できます。 | `b>= c` | | `=` | ある値が別の値と等しいことを確認します。数字と文字列の両方で使用できます。 | `(a + b - 100c * 150.652) = 150-230b` | | `equals` | ある値が別の値と等しいことを確認します。数字と文字列の両方で使用できます。 | `a + b - 100.2c * 150 equals 150 - 230` | | `!=` | ある値が別の値と等しくないことを確認します。数字と文字列の両方で使用できます。 | `string(property1) != 'test_string'` | | `or` | 2つの値のいずれかまたは両方がtrueであることを確認します。 | `a > b or b <= c` | | `and` | 両方の値がtrueであることを確認します。 | `bool(a) and bool(c)` | | `not` | いずれの値もtrueでないことを確認します。 | `not (bool(a) and bool(c))` | #### 関数 サポートされている関数は以下の通りです。 | 関数 | 説明 | 例 | | - | - | - | | `max` | 2個から100個までの入力値を取り、全ての入力値の中から最大値を返します。 | `max(a, b, c, 100)`、`max(a, b)` | | `min` | 2個から100個までの入力値を取り、全ての入力値の中から最小値を返します。 | `min(a, b, c, 100)`、`min(a, b)` | | `is_present` | 式を評価できるかどうかを評価します。 | `is_present(bool(a))`= true(プロパティーがブール型の場合)`is_present(bool(a))` = false(プロパティーが空か、ブール型でない場合) | | `contains` | 入力として2個の値を取り、最初の入力値に2番目の入力値が含まれている場合はtrueを返します。 | `contains('hello', 'ello')` = `true`、`contains('ello', 'hello')` = false | | `concatenate` | 文字列のリストを結合します。リストには、2個から100個までの入力を含めることができます。 | `concatenate('a', 'b', string(a), string(b))` | 以下の2つの解析関数も使用できます。 * `number_to_string`:入力された数値式を文字列に変換しようと試みます。 * `string_to_number`:入力された文字列式を数値に変換しようと試みます。 例えば、文字列と数値を加算することはできないため、`"Number of cars: " + num_cars`は有効なプロパティーではありませんが、`"Number of cars: " + number_to_string(num_cars)`は有効です。 #### 条件文 `if`、`elseif`、`endif`、`else`を使った条件文を使用して式を記述することもできます。 例えば、条件文は`if boolean_expression then statement [elseif expression then statement]* [else statement | endif]`のようになります。ここで、括弧で囲まれた`[a]`はオプションであることを表し、`a|b`は「a」または「b」が有効であることを表します。`*`は0以上であることを意味します。`endif`を使用すると、条件文を早期に終了して、次の`elseif`が属する`if`をパーサーが特定できるようにすることができます。 ### 式の例 独自の計算式を定義する際、以下の例を参考にしてください。 ```json theme={null} "calculationFormula": "closed - started" ``` 条件文を使用した高度な例を以下に示します。 ```json theme={null} "calculationFormula": "if is_present(hs_latest_sequence_enrolled_date) then if is_present(hs_sequences_actively_enrolled_count) an hs_sequences_actively_enrolled_count >= 1 then true else false else ''" ``` ## プロパティーを取得する オブジェクト内の個々のプロパティーまたは全てのプロパティーの情報を取得することができます。 * 個々のプロパティーを取得するには、`GET`リクエストを`crm/v3/properties/{object}/{propertyName}`に送信します。例えば、`favorite_food`プロパティーを取得する場合のリクエストURLは、`/crm/v3/properties/contacts/favorite_food`になります。 * オブジェクトの全てのプロパティーを取得するには、`GET`リクエストを`/crm/v3/properties/{objectType}`に送信します。 > [!WARNING] > > ### 注: > > 全てのプロパティーを取得するとき、デフォルトでは非センシティブプロパティーのみが返されます。センシティブデータのプロパティーを取得するには、値を`sensitive`に設定した`dataSensitivity`クエリーパラメーターを含めます。詳しくは、[APIを使用したセンシティブデータの管理](https://developers.hubspot.jp/docs/reference/api/crm/sensitive-data#manage-sensitive-data)(ベータ版、Enterprise\_\_のみ)についてご確認ください。 ## プロパティーの値を更新または消去する レコードのプロパティー値を更新するには、`PATCH`リクエストを`crm/v3/objects/{objectType}/{recordId}`に送信します。リクエスト本文で、以下のプロパティーとその値を配列に格納します。詳しくは、[オブジェクトAPI](/docs/guides/crm/understanding-the-crm)を介したレコードの更新についてご確認ください。 ### 日付および日時プロパティーに値を追加する レスポンスの時刻値はISO 8601形式で表記されますが、HubSpotのAPIでは日付と時刻の値について以下の2つの形式の両方を受け入れます。 * **ISO 8601形式の文字列**:データ型に応じて以下のいずれかの形式になります。 * 特定の日付を表す値の場合、「YYYY-MM-DD」という完全日付形式が使用されます(例:`2020-02-29`) * 特定の日時を表す値の場合、完全な日付形式に時、分、秒、および秒小数部分を追加した「YYYY-MM-DDThh:mm:ss.sTZD」という形式が使用されます:(例:`2020-02-29T03:30:17.000Z`)。時刻は常にUTCで表現されるため、値には必ずUTC指定子""「Z」が使用されます。 * **UNIX形式のタイムスタンプ(ミリ秒単位)**:UTC時間で表されるミリ秒単位のタイムスタンプ値。例えばタイムスタンプ値`1427997766000`は、「2015年4月2日の18:02:46 UTC」、つまり「2015年4月2日の午後2:02:46 EDT(米国東部夏時間)」を表します。 日付を格納するには2種類のプロパティー(`date`と`datetime`)が利用でき、これらも値の書式設定方法に影響します。 * `date`プロパティーは、時間ではなく日付を保存します。`date`プロパティーには、アカウントやユーザーのタイムゾーン設定に関係なく、設定されている日付が表示されます。`date`プロパティー値では、ISO 8601の完全な日付形式を使用することをお勧めします。UNIXタイムスタンプ形式を使用する場合は、エポックミリ秒タイムスタンプを使用する必要があります(つまり、対象となる日付のUTCの深夜の値に設定する必要があります)。例えば、2015年5月1日をそれぞれの形式で表すと以下のようになります。 * **IOS 8601**:2015-05-01 * **UNIXミリ秒タイムスタンプ**:1430438400000 * `datetime`プロパティーには、日付と時刻の両方が保存されます。両方のタイムスタンプ形式が受け入れられます。HubSpotの`datetime`プロパティーは、レコードを表示するユーザーのタイムゾーンに基づいて表示されるため、値はユーザーの現地タイムゾーンに変換されます。 ### チェックボックスタイプのプロパティーに値を追加する レコードのチェックボックスタイプのプロパティーの値を更新する場合は、以下の方法で値を書式設定します。 * **ブール型**チェックボックスプロパティー:HubSpotで「はい」と表示するか、チェックが入った状態にするには、値が`true`である必要があります。HubSpotで[いいえ]として表示するか、チェックが入っていない状態にするには、値が`false`である必要があります。 * **複数選択**チェックボックスプロパティー:複数チェックボックスプロパティーに値を追加するには、最初の値の前にセミコロンを追加し、値ごとにセミコロンで区切ります。値とセミコロンの間にはスペースを入れないでください。プロパティーに既に値がある場合、先頭のセミコロンによって値が上書きされるのではなく、値が付加されます。例えば、コンタクトの`hs_buying_role`プロパティーに既存の値として`DECISION_MAKER`が格納されているとします。既存の値を置き換えずに追加の値を付加する場合、リクエストは以下のようになります。 **JSON** ```json theme={null} { "properties": { "hs_buying_role": ";BUDGET_HOLDER;END_USER" } } ``` ### ユーザープロパティーでレコード所有者を割り当てる APIを介してCRMレコードにユーザーを割り当てるには、値としてユーザーの所有者`id`を指定する必要があります。所有者IDは、[プロパティー設定](https://knowledge.hubspot.com/ja/properties/create-and-edit-properties)または[所有者API](/docs/api-reference/crm-crm-owners-v3/guide)を介して確認できます。例えば、ユーザーをコンタクトの所有者として割り当てるには、`PATCH`リクエストの本文に`{ "properties":{ "hubspot_owner_id": "41629779"}}`を設定して`crm/v3/objects/contacts/{contactId}`に送信します。 ### プロパティー値を消去する APIを介してオブジェクトプロパティーの値を消去するには、プロパティー値を空の文字列に設定します。 例えば、コンタクトオブジェクトから`firstname`を消去するには、`PATCH`リクエストの本文に`{ "properties": { "firstname": ""}}`を指定して`/crm/v3/objects/contacts/{contactId}`に送信します。 # Create a property group Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/property-groups/create-property specs/2026-09/crm-properties-v2026-09.json POST /crm/properties/2026-09/{objectType}/groups 新しいプロパティーグループのコピーを作成して返します。 > **Supported products** > **Required Scopes** # Archive a property group Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/property-groups/delete-property specs/2026-09/crm-properties-v2026-09.json DELETE /crm/properties/2026-09/{objectType}/groups/{groupName} {groupName}で識別されるプロパティーグループをごみ箱に移動します。 > **Supported products** > **Required Scopes** # Read all property groups Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/property-groups/get-properties specs/2026-09/crm-properties-v2026-09.json GET /crm/properties/2026-09/{objectType}/groups 指定されたオブジェクトタイプとHubSpotアカウントの既存のすべてのプロパティーグループを読み取ります。 > **Supported products** > **Required Scopes** # Read a property group Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/property-groups/get-property specs/2026-09/crm-properties-v2026-09.json GET /crm/properties/2026-09/{objectType}/groups/{groupName} {groupName}で識別されるプロパティーグループを読み取ります。 > **Supported products** > **Required Scopes** # Update a property group Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/property-groups/update-property specs/2026-09/crm-properties-v2026-09.json PATCH /crm/properties/2026-09/{objectType}/groups/{groupName} {groupName}で識別されるプロパティーグループの部分的な更新を実行します。指定されたフィールドが上書きされます。 > **Supported products** > **Required Scopes** # Access and manage Sensitive Data Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/sensitive-data # Update a property Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/properties/update-property specs/2026-09/crm-properties-v2026-09.json PATCH /crm/properties/2026-09/{objectType}/{propertyName} { propertyName }によって識別されるプロパティーの一部更新を実行します。指定したフィールドは上書きされます。 > **Supported products** > **Required Scopes** # Read validation rules for a property Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/property-validations/get-property-validation specs/2026-09/crm-property-validations-v2026-09.json GET /crm/property-validations/2026-09/{objectTypeId}/{propertyName} {propertyName}で識別されるプロパティーの検証ルールを読み取ります。 > **Supported products** > **Required Scopes** # Read all property validation rules for an object Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/property-validations/get-property-validations specs/2026-09/crm-property-validations-v2026-09.json GET /crm/property-validations/2026-09/{objectTypeId} 特定のオブジェクトについて検証ルールを含めてすべてのプロパティーを読み取ります。 > **Supported products** > **Required Scopes** # Retrieve a validation rule for a specific property and rule type, providing details on how property values should be formatted. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/property-validations/get-property-validations-ruleType specs/2026-09/crm-property-validations-v2026-09.json GET /crm/property-validations/2026-09/{objectTypeId}/{propertyName}/rule-type/{ruleType} 名前とルールタイプで識別されるプロパティーの特定の検証ルールを取得します。 > **Supported products** > **Required Scopes** # Property Validations API Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/property-validations/guide # Update a validation rule for a specific property and rule type, allowing customization of property value constraints. Source: https://developers.hubspot.jp/docs/api-reference/latest/crm/property-validations/update-property-validation specs/2026-09/crm-property-validations-v2026-09.json PUT /crm/property-validations/2026-09/{objectTypeId}/{propertyName}/rule-type/{ruleType} 名前とルールタイプで識別されるプロパティーの特定の検証ルールを更新します。 > **Supported products** > **Required Scopes** # Create data source Source: https://developers.hubspot.jp/docs/api-reference/latest/data-studio/datasource-ingestion/create-datasource specs/2026-09/data-studio-datasource-ingestion-v2026-09.json POST /data-studio/data-source/2026-09 ファイル(csv、tsv、json、またはxlsx)と列スキーマをアップロードして、新しいデータソースを作成します。リクエストJSONパート(datasourceName、datasourceType: FILE、config.fileと列定義を含む)とファイルバイナリーパートが含まれるmultipart/form-dataを使用します。 > **Supported products** > **Required Scopes** # Delete data source Source: https://developers.hubspot.jp/docs/api-reference/latest/data-studio/datasource-ingestion/delete-datasource specs/2026-09/data-studio-datasource-ingestion-v2026-09.json DELETE /data-studio/data-source/2026-09/{datasourceId} HubSpotデータスタジオでデータソースを削除します。この操作は、IDで識別された特定のデータソースを削除するために使用されます。この操作は元に戻せないため、削除する前にデータソースが不要になったことを確認してください。 > **Supported products** > **Required Scopes** # Retrieve data source Source: https://developers.hubspot.jp/docs/api-reference/latest/data-studio/datasource-ingestion/get-datasource specs/2026-09/data-studio-datasource-ingestion-v2026-09.json GET /data-studio/data-source/2026-09/{datasourceId} HubSpot データスタジオの特定のデータソースに関する詳細情報を取得します。このエンドポイントにより、データソースの名前、タイプ、作成日、前回のデータ取り込みのステータスなどの詳細が提供されます。プログラムを使用してデータソースにアクセスして管理する必要がある開発者にとって便利です。 > **Supported products** > **Required Scopes** # Data source ingestion API Source: https://developers.hubspot.jp/docs/api-reference/latest/data-studio/datasource-ingestion/guide # Update data source Source: https://developers.hubspot.jp/docs/api-reference/latest/data-studio/datasource-ingestion/update-datasource specs/2026-09/data-studio-datasource-ingestion-v2026-09.json PUT /data-studio/data-source/2026-09/{datasourceId} HubSpotデータスタジオで既存のデータソースを更新します。このエンドポイントを使用すると、datasourceIdで識別された特定のデータソースの詳細を変更できます。リクエストには、データソースの更新に必要なフィールドが含まれるマルチパートフォームデータ本文を含める必要があります > **Supported products** > **Required Scopes** # Create an event definition Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/create-event-definition specs/2026-09/events-manage-event-definitions-v2026-09.json POST /events/2026-09/event-definitions HubSpotアカウントで新しい行動イベント定義を作成します。このエンドポイントを使用すると、新しい行動イベントの構造とプロパティーを定義でき、特定のユーザーアクションや行動の追跡に利用できます。リクエストボディには、必要なイベントの詳細とプロパティー定義を含める必要があります。 > **Supported products** > **Required Scopes** # Create an event property Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/create-event-property specs/2026-09/events-manage-event-definitions-v2026-09.json POST /events/2026-09/event-definitions/{eventName}/property HubSpotアカウントで、指定されたイベント定義の新しいプロパティを作成します。このエンドポイントを使用すると、特定のイベントに関連付けられたカスタムプロパティを定義でき、行動イベントのトラッキングと分析を強化できます。リクエストには、必要なプロパティの詳細を含むJSONボディを含める必要があります。 > **Supported products** > **Required Scopes** # Delete an event definition Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/delete-event-definition specs/2026-09/events-manage-event-definitions-v2026-09.json DELETE /events/2026-09/event-definitions/{eventName} イベントの一意の名前を使用して、HubSpotアカウントの特定のイベント定義を削除します。この操作は、不要になった古いイベント定義や誤ったイベント定義を削除するのに役立ちます。 > **Supported products** > **Required Scopes** # Delete an event property Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/delete-event-property specs/2026-09/events-manage-event-definitions-v2026-09.json DELETE /events/2026-09/event-definitions/{eventName}/property/{propertyName} HubSpotアカウントのイベント定義から特定のプロパティを削除します。この操作は、イベント定義から古くなったプロパティや誤ったプロパティを削除する必要がある場合に役立ちます。意図しない削除を避けるため、イベント名とプロパティ名が正確に指定されていることを確認してください。 > **Supported products** > **Required Scopes** # Get an event definition Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/get-event-definition specs/2026-09/events-manage-event-definitions-v2026-09.json GET /events/2026-09/event-definitions/{eventName} イベント名を指定して、HubSpotアカウント内の特定の行動イベント定義を取得します。このエンドポイントは、プロパティーや関連付けを含むイベントタイプの詳細情報を返します。 > **Supported products** > **Required Scopes** # Get all event definitions Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/get-event-definitions specs/2026-09/events-manage-event-definitions-v2026-09.json GET /events/2026-09/event-definitions HubSpotアカウントで利用可能なイベント定義のリストを取得します。このエンドポイントを使用すると、検索文字列やページ分割オプションなど、さまざまな条件に基づいてイベント定義を検索およびフィルターできます。これは、アカウント内で追跡されているさまざまなイベントタイプを管理および理解するのに役立ちます。 > **Supported products** > **Required Scopes** # カスタムイベントの定義 Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/guide カスタムイベントを使用すれば、サイト上でのイベントやアプリ内のイベントなど、ビジネスに固有のイベントを定義して追跡できます。情報をプロパティーに格納するようにイベントを構成し、そのイベントをHubSpotのツール全体で使用することができます。 [カスタムイベント](/docs/api-reference/events-send-event-completions-v3/guide)のデータをHubSpotに送信するには、まずイベントを定義する必要があります。カスタムCRMオブジェクトと同様に、最初にカスタムオブジェクトを定義してからでないと、そのオブジェクトに関する個々のレコードを作成できません。イベント定義には、イベントのメタデータ、CRMオブジェクトの関連付け、プロパティーなどの詳細が含まれます。 以下にて、イベントAPIを使用してイベント定義を作成し、管理する方法をご説明します。APIを使用せずにイベント定義を作成する方法については、[HubSpotのナレッジベース](https://knowledge.hubspot.com/ja/reports/create-custom-events)をご覧ください。 > **スコープ要件** ## イベント定義を作成する カスタムイベントスキーマを作成するには、`POST`リクエストを`events/v3/event-definitions`に送信します。リクエスト本文に、イベントスキーマの定義(イベントのラベル、名前、CRMオブジェクトの関連付け、カスタムプロパティーなど)を含めます。 以下のリクエスト本文は、イベント定義の基本的な例を示しています。 ```json theme={null} { "label": "My event label", "name": "unique_event_name", "description": "An event description that helps users understand what the event tracks.", "primaryObject": "COMPANY", "propertyDefinitions": [ { "name": "choice-property", "label": "Choice property", "type": "enumeration", "options": [ { "label": "Option 1", "value": "1" }, { "label": "Option 2", "value": "2" } ] }, { "name": "string-property", "label": "String property", "type": "string" } ], "includeDefaultProperties": true } ``` 指定したCRMオブジェクトタイプのレコードにイベントの完了を自動的にリンクさせるには、`POST`リクエストに`customMatchingId`を含めます。このフィールド内に、2つのフィールドを使用して`primaryObjectRule`オブジェクトを定義します。それは、`targetObjectPropertyName`として事前に設定しておいた一意のオブジェクトプロパティーと、イベント定義の`propertyDefinitions`で定義したプロパティーです。 例えば、以下のリクエスト本文では、CRMオブジェクトプロパティー名の`"unique_object_property"`とイベントプロパティー名の`"string_property"`に一致する`customMatchingId`を指定しています。 ```json theme={null} { "label": "My event label", "name": "unique_event_name", "description": "An event description that helps users understand what the event tracks.", "primaryObject": "COMPANY", "propertyDefinitions": [ { "name": "string-property", "label": "String property", "type": "string" } ], "customMatchingId": { "primaryObjectRule": { "targetObjectPropertyName": "unique_object_property", "eventPropertyName": "event_property" } } } ``` リクエスト本文で使用できる全てのパラメーターを、以下の表で詳しく説明します。 | パラメーター | タイプ | 説明 | | - | - | - | | `label` | 文字列 | HubSpotに表示する、人間が読んで理解できるイベントのラベル(最大100文字)。HubSpotのUIの特定の部分では、文字数の多いラベルが切り詰められる場合があります。 | | `name` | 文字列 | イベントの一意の内部名。APIを介してイベントを参照する際は、この内部名を使用します。値を指定しない場合、HubSpotではラベルに基づいて値が自動的に生成されます。
        • このプロパティーをイベント定義の作成後に変更することはできません。
        • このプロパティーに使用できるのは小文字の英字、数字、アンダースコア、ハイフンのみです(最大50文字)。
        • 最初の文字は英字でなければなりません。
        | | `description` | 文字列 | HubSpotに表示するイベントの説明。 | | `primaryObject` | 文字列 | イベントデータが関連付けられるCRMオブジェクトのタイプ。イベントの完了は、そのオブジェクトタイプのCRMレコードに表示されます。指定できる値は、`"CONTACT"`(デフォルト)、`"COMPANY"`、`"DEAL"`、`"TICKET"`、`""`です。イベント定義が作成された後にこのプロパティーを変更することはできません。 | | `propertyDefinitions` | 配列 | [HubSpotのデフォルトのイベントプロパティー](#hubspot-s-default-event-properties)に加え、この配列を含めることでカスタムイベントプロパティーを定義できます(最大50個)。各プロパティーオブジェクトには、次のフィールドを含めます。
        • `name`:APIを介してイベントデータを送信するときに使用するプロパティーの内部名。
        • `label`:プロパティーのアプリ内ラベル。
        • `type`:[プロパティーのタイプ](#event-properties)。デフォルト値は`string`です。
        • `options`:`enumeration`型プロパティーの場合、この配列で使用可能な値を定義します。各オプションの`label`と`value`の両方を含める必要があります。
        • `description`:プロパティーを説明するテキスト。
        | | `customMatchingId` | オブジェクト | ターゲットオブジェクトの`objectId`をイベント完了データに含める代わりに、このオプションフィールドでは、指定されたCRMオブジェクトタイプのレコードにイベント完了を自動的にリンクするルールを定義します。これは、イベントデータのプロパティーの値をターゲットオブジェクトの一意のプロパティー値と照合することによって行われます。このオブジェクトにはネストされた`primaryObjectRule`オブジェクトを含める必要があり、さらに2つのフィールドを含める必要があります。
        • `targetObjectPropertyName`:照合に使用するターゲットCRMオブジェクトの一意のプロパティーの名前を指定する文字列。
        • `eventPropertyName`:照合に使用するカスタムイベントデータ内のプロパティーの名前を指定する文字列。
        | | `includeDefaultProperties` | ブール値 | デフォルトの[イベントプロパティー](#hubspot-s-default-event-properties)のセットをイベントに含めるかどうかを指定する任意のフィールド。値を指定しない場合、このフィールドは自動的に`true`に設定されます。 | ## イベントプロパティー カスタムイベントプロパティーは、個々のカスタムイベント完了に関する情報を格納するために使用します。イベント完了を送信する際に適切であれば、カスタムイベントプロパティーを使用すべきですが、イベント完了を有効にするために、これらのプロパティーが必須となるわけではありません。HubSpotではイベント定義ごとに、32個のデフォルトのプロパティーを用意しています。デフォルトのプロパティーに加え、イベント定義ごとに最大50個のカスタムプロパティーを含めることができます。 プロパティーには、次のいずれかの型を指定できます。 * `bool`:ブール値を受け取るプロパティー。値は`true`または`false`として表す必要があります。 * `date`:特定の年月日を表す日付を受け取るプロパティー。値はUTC時間で表す必要があります。値の形式として、[ISO 8601文字列](/docs/api-reference/crm-properties-v3/guide#add-values-to-date-and-datetime-properties)またはミリ秒単位のエポック時間タイムスタンプ(UTC深夜0時)を使用できます。 * `datetime`:タイムスタンプを表すエポックミリ秒またはISO8601の値を受け取るプロパティー。 * `enumeration`:定義済みのオプションを使用するプロパティー。このタイプのプロパティーを作成する際は、使用可能な値を設定するために`options`配列を含めます。 * `number`:小数第1位までの数値を受け取るプロパティー。 * `string`:プレーンテキスト文字列を受け取るプロパティー。プロパティー名に`url`、`referrer`、または`link`という単語が含まれる場合、プロパティー値は最大1,024文字にすることができます。それ以外の場合、プロパティー値は最大256文字に制限されます。 以降のセクションで、HubSpotのデフォルトのイベントプロパティーと、[既存のイベントに新しいプロパティーを定義する](#define-new-properties)方法、[既存のカスタムイベントプロパティーを更新する](#update-existing-custom-properties)方法について説明します。 ### HubSpotのデフォルトのイベントプロパティー * `hs_asset_description` * `hs_asset_type` * `hs_browser` * `hs_campaign_id` * `hs_city` * `hs_country` * `hs_device_name` * `hs_device_type` * `hs_element_class` * `hs_element_id` * `hs_element_text` * `hs_language` * `hs_link_href` * `hs_operating_system` * `hs_operating_version` * `hs_page_content_type` * `hs_page_id` * `hs_page_title` * `hs_page_url` * `hs_parent_module_id` * `hs_referrer` * `hs_region` * `hs_screen_height` * `hs_screen_width` * `hs_touchpoint_source` * `hs_tracking_name` * `hs_user_agent` * `hs_utm_campaign` * `hs_utm_content` * `hs_utm_medium` * `hs_utm_source` * `hs_utm_term` ### 新しいプロパティーを定義する 既存のカスタムイベントの新しいプロパティーを定義するには、`POST`リクエストを`events/v3/event-definitions/{eventName}/property`に送信します。リクエスト本文に、プロパティーの定義を含めます。 ```json theme={null} { "name": "property-name", "label": "Property name", "type": "enumeration", "options": [ { "label": "label", "value": "value" } ] } ``` プロパティーに名前を付ける際は、次の点に留意してください。 * プロパティーを作成した後に、プロパティーの名前を変更することはできません。 * 名前に使用できるのは、小文字の英字、数字、アンダースコア、ハイフンのみです。 * プロパティー名の最初の文字は英字でなければなりません。 * プロパティーの名前とラベルは、それぞれ最大50文字に制限されています。 * プロパティー名が指定されていない場合、プロパティーのラベルを使用してプロパティー名が自動生成されます。 * HubSpotのUIの特定の部分では、文字数の多いラベルが切り詰められる場合があります。 ### 既存のカスタムプロパティーを更新する カスタムイベントの既存のプロパティーを更新するには、`PATCH`リクエストを`events/v3/event-definitions/{eventName}/property`に送信します。プロパティーで更新できるフィールドは、列挙プロパティーの`label`、`description`、`options`のみです。 > [!WARNING] > > ### 注: > > プロパティーの型を変更するには、`DELETE`エンドポイントを使用してプロパティーを削除してから、適切な型でプロパティーを再作成します。 ### プロパティーを削除する カスタムイベントの既存のプロパティーを削除するには、`DELETE`リクエストを`events/v3/event-definitions/{eventName}/property/{propertyName}`に送信します。 プロパティーが削除されると、そのプロパティーは以降のイベント完了で使用できなくなります。ただし、削除前のイベント完了では、削除されたプロパティーの値が維持されます。 ## イベントを更新する 既存のカスタムイベントスキーマを更新するには、`PATCH`リクエストを`events/v3/event-definitions/{eventName}`に送信します。 更新できるイベント定義フィールドは、`label`と`description`のみです。 ```json theme={null} { "label": "Event label", "description": "A description of the event" } ``` ## イベントを削除する カスタムイベントを削除するには、`DELETE`リクエストを`events/v3/event-definitions/{eventName}`に送信します。 カスタムイベントを削除すると、ワークフローやレポートなど、そのイベントを参照している他のHubSpotツールから削除されます。 > [!WARNING] > > ### イベントを削除する場合の注意事項 > > 1. そのイベント定義の全てのイベントが削除されて、復元できなくなります。 > 2. 以前に削除した`eventName`は使えません。イベントを削除するときは注意が必要です。 ## 既存のイベント定義を取得する 単一のイベント定義を取得するには、`GET`リクエストを`events/v3/event-definitions/{eventName}`に送信します。 特定の条件でイベント定義を検索するには、`GET`リクエストを`events/v3/event-definitions`に送信します。次のクエリーパラメーターを指定して、検索を絞り込むことができます。 * `searchString`:指定した文字列が`name`フィールドに含まれているイベントを検索します。あいまい検索ではなく、単純に「含まれているかどうか」で検索されます。 * `after`:ページ処理されたレスポンスに表示される、検索結果の次のページを表示するためのハッシュ化された文字列。 * `limit`:取得する結果の最大数。 * `includeProperties`:返される結果にイベントプロパティーを含めるかどうかを指定するブール値。 # Update an event definition Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/update-event-definition specs/2026-09/events-manage-event-definitions-v2026-09.json PATCH /events/2026-09/event-definitions/{eventName} HubSpotアカウントの特定の行動イベント定義を更新します。この操作により、イベントに関連付けられているプロパティーとテンプレートを変更できます。eventNameパスパラメーターは、更新するイベントを識別します。 > **Supported products** > **Required Scopes** # Update an event property Source: https://developers.hubspot.jp/docs/api-reference/latest/events/define-events/update-event-property specs/2026-09/events-manage-event-definitions-v2026-09.json PATCH /events/2026-09/event-definitions/{eventName}/property/{propertyName} HubSpotアカウントで、行動イベント定義の特定のプロパティーを更新します。この操作により、特定のイベントに関連付けられた、既存のプロパティーの詳細を変更できます。このエンドポイントを使用して、イベントプロパティーを最新情報で最新の状態に保ちます。 > **Supported products** > **Required Scopes** # イベントAPI | イベントアナリティクス Source: https://developers.hubspot.jp/docs/api-reference/latest/events/guide # イベントアナリティクス イベントアナリティクスAPIは、CRMレコード(タイプにかかわらず)に関連付けられているイベントの取得に使用します(Marketing Hub Enterprise、Sales Hub Enterprise、Service Hub Enterprise、またはCMS Hub Enterpriseのみ)。例として、ウェブサイトページの閲覧やEメールの開封などの標準イベント、さらには[カスタムイベント](/docs/api-reference/events-send-event-completions-v3/guide)があります。 例えばこのAPIは、コンタクトがコンテンツに行ったやり取りのタイムライン表示に活用できます。このタイムラインは、カスタム分析のデータセット作成や、外部アプリへのコンタクトタイムライン表示にも使用できます。 ## 個別のイベント完了を問い合わせる このAPIでは1回につき、1件のCRMレコードに関するイベントが返されます。レコードの選択には、`objectType`を指定し、`objectId`または`objectProperty`クエリーパラメーターのいずれかを含めます。 ### オブジェクトIDに基づく選択 IDを基準にしてレコードを指定するには、`objectId`クエリーパラメーターを含めます。例えば、IDが「2832」のコンタクトレコードを指定するには、次の`GET`リクエストを送信します。 `/events/v3/events/?objectType=contact&objectId=224834` ### オブジェクトプロパティーに基づく選択 コンタクトID以外の重複のないプロパティーに基づいてレコードを特定するには、`objectProperty`パラメーターを含めます。このプロパティーの参照は、プロパティー名と値を含む次の書式を使用します。 `objectProperty.{propname}={propvalue}` 例えば、Eメールアドレスに基づいてコンタクトを指定するには、次の`GET`リクエストを送信します。 `/events/v3/events/?objectType=contact&objectProperty.email=user12@dev.com` ## イベントタイプのクエリーとフィルタリング 特定のCRMオブジェクトに関連付けられているイベントについて問い合わせると、レスポンスにはカスタム行動イベントを含む全てのイベントタイプが含まれます。 特定のイベントタイプのイベント完了のみを返すには、`eventType`パラメーターを使用し、その後にイベント名を指定できます。利用可能なすべてのイベントタイプのリストを取得するには、`GET`リクエストを`/events/v3/events/event-types`に送信できます。応答では、アカウント内のすべてのイベントタイプが返されます。次に、これらのイベント名のいずれかをクエリーパラメーターとして使用し、`/events/v3/events`エンドポイントに`GET`リクエストを送信できます。 例として、以下のような場合が挙げられます。 `/events/v3/events/eventType={EVENT_NAME}&objectType=contact&objectId=224834` # Retrieve event types Source: https://developers.hubspot.jp/docs/api-reference/latest/events/retrieve-events/get-event-types specs/2026-09/events-events-v2026-09.json GET /events/event-occurrences/2026-09/event-types イベントタイプ名のリストを取得します。これらのイベントタイプを使用して目的のタイプのイベントの発生のAPIを照会できます。 注:get_typesメソッドはPython SDKバージョン12.0.0-beta.1以降でのみサポートされています。 > **Supported products** > **Required Scopes** # Retrieve event occurrences Source: https://developers.hubspot.jp/docs/api-reference/latest/events/retrieve-events/get-events specs/2026-09/events-events-v2026-09.json GET /events/event-occurrences/2026-09 2026年9月の指定された日付のイベント発生を取得します。このエンドポイントを使用すると、イベントタイプ、オブジェクトタイプ、発生日などのさまざまな条件に基づいてイベントを絞り込み、並べ替えることができます。ページ分割をサポートしており、必要に応じてイベントの特定のプロパティーを返すことができます。 > **Supported products** > **Required Scopes** # Send a batch of event occurrences Source: https://developers.hubspot.jp/docs/api-reference/latest/events/send-event-data/batch-send-occurrences specs/2026-09/events-send-event-completions-v2026-09.json POST /events/2026-09/send/batch 複数のイベントの発生を一度に送信します。 > **Supported products** > **Required Scopes** # カスタムイベント完了を送信する Source: https://developers.hubspot.jp/docs/api-reference/latest/events/send-event-data/guide > **サポートされる製品** > **スコープ要件** カスタムイベントは、イベントの詳細をイベントプロパティーに格納するアカウント定義のイベントです。イベントデータをHubSpotに送信するように[追跡コードをカスタマイズ](/docs/api-reference/legacy/tracking-code-v1/overview)できるだけでなく、このAPIを介してイベント完了データを送信することもできます。 APIを使用してカスタムイベントを作成し、カスタムイベントデータを送受信する方法について以下に説明します。 ## イベントの定義 イベント完了データをHubSpotに送信するには、まず、イベントのメタデータ、CRMオブジェクト、関連付け、プロパティーなど、イベント自体を定義する必要があります。イベントを定義するには、[カスタムイベント定義API](/docs/api-reference/events-manage-event-definitions-v3/guide)を使用するか、**Marketing Hub** Enterpriseをご利用の場合は[HubSpotでイベントを作成](https://knowledge.hubspot.com/ja/analytics-tools/create-codeless-custom-behavioral-events)することができます。イベントを作成するとHubSpotによって[デフォルトのイベントプロパティー](/docs/api-reference/events-manage-event-definitions-v3/guide#hubspot-s-default-event-properties)のセットが追加され、ユーザーはそこにイベントデータを格納できます。イベントの[追加プロパティーを作成](/docs/api-reference/events-manage-event-definitions-v3/guide#define-new-properties)することもできます。イベントのプロパティーは、いつでも作成または編集できます。 イベントを設定したら、APIを介して、または[HubSpotトラッキングコードをカスタマイズ](/docs/api-reference/legacy/tracking-code-v1/overview)して、イベントにデータを送信できます。 ## イベントデータを送信する イベントデータをHubSpotに送信するには、リクエスト本文にイベントデータを指定して、`POST`リクエストを`https://api.hubspot.com/events/v3/send`に送信します。イベントデータを送信する前に、後述の制限を確認してください。制限を超えるとエラーが発生します。 ```json theme={null} { "eventName": "pe1234567_login_event", "objectId": "608051", "occurredAt": "2024-06-28T12:09:31Z", "properties": { "hs_city": "Cambridge", "hs_country": "United States", "hs_page_id": "53005768010", "hs_page_content_type": "LANDING_PAGE", "hs_device_type": "PDA;Smartphone", "hs_touchpoint_source": "DIRECT_TRAFFIC" } } ``` | パラメーター | タイプ | 説明 | | - | - | - | | `eventName` | 文字列 | イベントの内部名。これを確認するには、[既存のイベント定義をクエリー](/docs/api-reference/events-manage-event-definitions-v3/guide#get-existing-event-definitions)するか、[HubSpotアプリ内で確認](https://knowledge.hubspot.com/ja/reports/create-custom-events#find-internal-name)します。 | | `objectId` | 必須文字列 | イベントが関連付けられるCRMレコードのID。コンタクトの場合は、`email`または`utk`フィールドを使用して、Eメールアドレスまたは[HubSpotユーザートークン](/docs/api-reference/legacy/tracking-code-v1/overview)でコンタクトを識別することもできます。イベントにカスタム一致IDが定義されていない限り、他の全てのオブジェクトタイプでは`objectId`が必要です。イベントに`customMatchingId`が定義されている場合、HubSpotは設定されたマッピングに基づいて`objectId`を自動的に設定またはオーバーライドします。詳しくは[カスタムイベント定義ガイド](/docs/api-reference/events-manage-event-definitions-v3/guide#create-an-event-definition)をご参照ください。 | | `occurredAt` | 文字列 | HubSpotではデフォルトで、イベント完了タイムスタンプをリクエストが送信された時間に設定します。イベントの完了時刻を指定するには、`POST`リクエスト本文の`occurredAt`フィールドにタイムスタンプを含めます([ISO 8601形式](https://ja.wikipedia.org/wiki/ISO_8601))。これは、現実のイベントの完了を正確に反映するために、イベントデータの日付をさかのぼって設定する場合に特に役立ちます。 | | `properties` | オブジェクト | データの送信先となるイベントプロパティー。これには、[HubSpotのデフォルトのイベントプロパティー](/docs/api-reference/events-manage-event-definitions-v3/guide#hubspot-s-default-event-properties)や、イベントに定義した任意の[カスタムプロパティー](/docs/api-reference/events-manage-event-definitions-v3/guide#define-new-properties)を含めることができます。デフォルトのイベントプロパティーのほとんどは文字列プロパティーですが、[イベント定義をクエリー](/docs/api-reference/events-manage-event-definitions-v3/guide#get-existing-event-definitions)するか、HubSpotのイベントにナビゲートすることで、全てのイベントプロパティーを確認できます。カスタム一致IDが[イベントに設定](/docs/api-reference/events-manage-event-definitions-v3/guide#create-an-event-definition)されている場合は、`objectId`を省略できます。HubSpotでは、設定されたマッピングに基づいてイベントの`objectId`を設定することにより、イベントとCRMオブジェクトのリンクを試みます。[イベントプロパティー](#event-properties)の詳細については後述します。 | > [!WARNING] > > ### 注: > > 次のいずれかの制限を超えると、リクエストは失敗します。 > > * プロパティーラベルと内部名は50文字に制限されています。 > * URLとリファラーのプロパティーは最大1,024文字まで、その他のプロパティーは最大256文字までです。 > * 各イベント完了には、最大で50個のプロパティーのデータを含めることができます。 > * プロパティーの内部名はアルファベットで始まる必要があり、使用できるのは小文字のa~z、数字の0~9、アンダースコアのみです。 > * 小文字にした後の内部名が同じプロパティーは重複していると見なされ、完了時にはどちらか一方のプロパティーのみが使用されます。HubSpotでは、辞書の順序の昇順で並べ替え、最初の50個のプロパティーのうち、最後に表示されたプロパティーを保持します。 > * アカウントごとの一意のイベント定義数の上限は500です。 > * 1か月あたりのイベント完了数の上限は3,000万です。 ## イベントデータを取得する [イベントデータを取得](/docs/api-reference/events-manage-event-definitions-v3/guide#get-%2Fevents%2Fv3%2Fevents%2F)するには、`GET`リクエストを`/events/v3/events`に送信します。 * 特定のイベントの全てのイベント完了を返すには、`eventType`パラメーターと内部イベント名(例:`pe123456_custom_event`)を含めます。[イベントアナリティクスAPI](/docs/api-reference/events-manage-event-definitions-v3/guide#get-%2Fevents%2Fv3%2Fevents%2Fevent-types)を使用して、全てのイベントタイプを取得できます。 * 特定のオブジェクトのイベント完了を返すには、`objectId`パラメーターまたは`objectProperty.`パラメーターと一緒に`objectType`パラメーターを含めます。`objectType`ではCRMオブジェクトのタイプ(`contact`など)を指定し、その他のパラメーターではオブジェクトの固有のID値(レコードIDまたは固有のIDプロパティー値)を指定します。コンタクトの場合は`email`を固有IDプロパティーとして使用できます。 例えば、特定のコンタクトによって完了した全てのイベントを取得する場合、リクエストURLは以下のようになります。 `/events/v3/events?objectType=contact&objectId=111111` また、コンタクトのEメールアドレスを使用することもできます。 `/events/v3/events?objectType=contacts&objectProperty.email=bilbo@shire.com` 特定のイベントプロパティー値を持つイベント完了で結果を絞り込むには、`property.`パラメーターを含めます。例えば、ホームページのページ訪問イベントを取得する場合、リクエストURLは以下のようになります。 `/events/v3/events?eventType=e_visited_page&property.hs_page_title=home` > [!NOTE] > > プロパティー値にスペースが含まれる場合は、スペースを`%20`または`+`に置き換えます。 > 例えば、`property.hs_page_title=home+page`のようにします。 使用可能なパラメーターの詳細については、[リファレンスドキュメント](/docs/api-reference/events-manage-event-definitions-v3/guide#get-%2Fevents%2Fv3%2Fevents%2F)をご参照ください。 ## イベントプロパティー イベント完了データはイベントプロパティーに格納されます([デフォルトのイベントプロパティー](/docs/api-reference/events-manage-event-definitions-v3/guide#hubspot-s-default-event-properties)または[カスタム定義プロパティー](/docs/api-reference/events-manage-event-definitions-v3/guide#define-new-properties)のいずれか)。イベントデータを送信するときは、更新するプロパティーのキーと値のペアを持つ`properties`オブジェクトと、保存するプロパティー値を含めます。 ```json theme={null} "properties": { "property1": "string", "property2": "string", "property3": "string" } ``` 送信する値は、イベントプロパティーのタイプによって異なります。デフォルトのイベントプロパティーのほとんどは、単行テキスト(文字列)です。ただし、イベントごとに任意のタイプのカスタムプロパティーを作成できます。プロパティー値の書式を設定するときは、以下の表を確認してください。 | プロパティータイプ | 説明 | | - | - | | `bool` | `true`または`false`のブール値。 | | `enumeration` | 一連のオプションを表す文字列。複数の値を送信する場合は、値をセミコロンで区切ります。このタイプは、HubSpotでのドロップダウン選択、ラジオ選択、および複数チェックボックスのプロパティーに対応しています。 | | `date` | 特定の年月日を表す値。値はUTC時間で表す必要があります。値の形式として、[ISO 8601文字列](/docs/api-reference/crm-properties-v3/guide#add-values-to-date-and-datetime-properties)またはミリ秒単位のエポック時間タイムスタンプ(UTC深夜0時)を使用できます。 | | `datetime` | 特定の年月日と時刻を表すタイムスタンプ。値はUTC時間で表す必要があります。値の形式として、[ISO 8601文字列またはミリ秒単位のUNIXタイムスタンプ](/docs/api-reference/crm-properties-v3/guide#add-values-to-date-and-datetime-properties)を使用できます。 | | `number` | 小数第1位までの数値。このタイプは、HubSpotでの数値および計算プロパティーに対応しています。 | | `string` | プレーンテキスト文字列。65,536文字までに制限されています。このタイプは、HubSpotでの単行および複数行のテキストプロパティーに対応しています。 | イベントの利用可能なプロパティーを表示するには、次の操作を行います。 * HubSpotアカウントで、[データ管理]>[カスタムイベント]に移動します。 * テーブル内でCTAの**名前**をクリックします。 * 上部にある[プロパティー]タブをクリックします。 * プロパティーテーブルで、プロパティーの名前の下に表示されているプロパティーのタイプを確認します。 ![カスタムイベントプロパティーのテーブル](https://www.hubspot.jp/hubfs/Knowledge_Base_2021/Developer/custom-event-properties-table.png) ## アトリビューションレポート [クリックされた要素](https://knowledge.hubspot.com/ja/analytics-tools/create-codeless-custom-behavioral-events)イベントや[訪問されたURL](https://knowledge.hubspot.com/ja/analytics-tools/create-codeless-custom-behavioral-events)イベントなどのJavaScriptイベントには、アトリビューションレポート用にアセットタイプとインタラクションデータが自動的に取り込まれます。手動でトラッキングされるイベントに同じデータを含めるには、イベントプロパティーを使用して、リクエスト本文に手動でデータを含める必要があります。詳しくは[カスタムイベントの分析](https://knowledge.hubspot.com/ja/analytics-tools/analyze-custom-behavioral-events)をご参照ください。 以下に、アセットタイプとインタラクションソースとして有効な値の説明とリクエストの例を記載します。 ### アセットタイプ 特定のアセットタイプをカスタム行動イベントのリクエストに結び付けるには、リクエスト本文に`hs_page_content_type`プロパティーを含めます。以下に例を示します。 ```json theme={null} { "eventName": "pe1234567_manually_tracked_event", "properties": { "hs_page_id": "53005768010", "hs_page_content_type": "LANDING_PAGE" }, "objectId": "6091051" } ``` > [!NOTE] > > `hs_asset_type`プロパティーを使用することもできます。`hs_page_content_type`と`hs_asset_type`の両方が1つのリクエストに含まれている場合、`hs_page_content_type`が`hs_asset_type`の値よりも優先されます。 ランディングページやブログ記事などのHubSpotの標準コンテンツタイプは、次の値で表すことができます。 | 値 | 説明 | | - | - | | `STANDARD_PAGE` | ウェブサイトページでのインタラクション。 | | `LANDING_PAGE` | ランディングページでのインタラクション。 | | `BLOG_POST` | ブログ記事でのインタラクション。 | | `KNOWLEDGE_ARTICLE` | ナレッジベース記事でのインタラクション。 | その他全てのタイプのアセットには、次の値を使用します。 | 値 | 説明 | | - | - | | `AD` | Facebook広告やGoogle 広告などの広告でのインタラクション。 | | `CALL` | コールでのインタラクション。 | | `CONTACT_IMPORT` | コンタクトインポートを介したインタラクション。 | | `CONVERSATION` | HubSpotコミュニケーションに関連するインタラクション。 | | `CUSTOM_BEHAVIORAL_EVENT_NAME` | カスタムイベントの内部名(例:`pe123456_manually_tracked_event`)。 | | `EMAIL` | Eメールでのインタラクション。 | | `EXTERNAL_PAGE` | 外部ページでのインタラクション。 | | `INTEGRATIONS` | 連携を介したインタラクション。 | | `MARKETING_EVENT` | [マーケティングイベント](/docs/api-reference/marketing-marketing-events-v3/guide)でのインタラクション。 | | `MEDIA_BRIDGE` | [メディアブリッジ](/docs/api-reference/cms-media-bridge-v1/guide)を介したインタラクション。 | | `MEETING` | ミーティングでのインタラクション。 | | `SALES_EMAIL` | 1対1のセールスEメールでのインタラクション。 | | `SEQUENCE` | シーケンスでのインタラクション。 | | `SOCIAL_POST` | ソーシャルメディア投稿でのインタラクション。 | | `OTHER` | 上記のいずれのカテゴリーにも該当しないアセットでのインタラクション。 | ### アセットタイトル カスタムイベントをアセットに結び付けるには、リクエストに`hs_page_title`または`hs_asset_title`プロパティーを追加し、アセットの名前を文字列の形式で指定します。以下に例を示します。 `hs_page_title:` ```json theme={null} { "eventName": "pe1234567_manually_tracked_event", "properties": { "hs_page_title": "Sweepstakes Sign Up", "hs_page_content_type": "LANDING_PAGE" }, "objectId": "6091051" } ``` ### インタラクションソース カスタム行動イベントを特定のソースに結び付けるには、リクエストに`hs_touchpoint_source`プロパティーを追加し、次のいずれかの値を設定します。 | 値 | 説明 | | - | - | | `CONVERSATION` | インタラクションソースがコミュニケーションであることを示します。 | | `DIRECT_TRAFFIC` | インタラクションソースが直接トラフィックであることを示します。 | | `EMAIL_MARKETING` | インタラクションソースがマーケティングEメールであることを示します。 | | `HUBSPOT_CRM` | インタラクションソースがHubSpotのCRMであることを示します。 | | `INTEGRATION` | インタラクションソースが連携であることを示します。 | | `MARKETING_EVENT` | インタラクションソースが[マーケティングイベント](/docs/api-reference/marketing-marketing-events-v3/guide)であることを示します。 | | `OFFLINE` | インタラクションソースがオフラインであることを示します。 | | `ORGANIC_SEARCH` | インタラクションソースがオーガニック検索であることを示します。 | | `OTHER_CAMPAIGNS` | インタラクションソースが未分類のキャンペーンからのものであることを示します。 | | `PAID_SEARCH` | インタラクションソースが有料検索広告であることを示します。 | | `PAID_SOCIAL` | インタラクションソースが有料ソーシャル広告であることを示します。 | | `REFERRALS` | インタラクションソースがリファーラルであることを示します。 | | `SALES` | インタラクションソースが営業であることを示します。 | | `SOCIAL_MEDIA` | インタラクションソースが(有料ソーシャル広告ではない)ソーシャルメディアであることを示します。 | # Send an event occurrence Source: https://developers.hubspot.jp/docs/api-reference/latest/events/send-event-data/send-event-occurrence specs/2026-09/events-send-event-completions-v2026-09.json POST /events/2026-09/send 1件のカスタムイベントの発生のデータを送信します。 > **Supported products** > **Required Scopes** # Check import status Source: https://developers.hubspot.jp/docs/api-reference/latest/files/files/get-file-status specs/2026-09/files-files-v2026-09.json GET /files/2026-09/files/import-from-url/async/tasks/{taskId}/status タスクIDを使用して、非同期ファイルインポートタスクのステータスを取得します。このエンドポイントは、タスクが保留中、処理中、キャンセル済み、完了のいずれであるかなど、タスクの現在の状態に関する情報を提供します。 > **Supported products** > **Required Scopes** # Import file from URL Source: https://developers.hubspot.jp/docs/api-reference/latest/files/files/import-from-url specs/2026-09/files-files-v2026-09.json POST /files/2026-09/files/import-from-url/async 指定されたURLからHubSpotファイルマネージャーにファイルを非同期でインポートします。このエンドポイントでは、アクセスレベル、重複検証戦略、既存ファイルを上書きするかどうかなど、さまざまなパラメーターを指定できます。この操作は非同期で処理され、インポートのステータスを確認するためのタスクロケーターが返されます。 > **Supported products** > **Required Scopes** # Search files Source: https://developers.hubspot.jp/docs/api-reference/latest/files/files/search-files specs/2026-09/files-files-v2026-09.json GET /files/2026-09/files/search HubSpotアカウント内のファイルを、さまざまなフィルターや条件を使用して検索します。このエンドポイントでは、作成日、サイズ、種類などのプロパティーに基づいて検索結果を絞り込むために、複数のクエリーパラメーターを指定できます。大量のデータを効率的に管理するためのページ分割と並べ替えをサポートしています。 > **Supported products** > **Required Scopes** # Check folder update status Source: https://developers.hubspot.jp/docs/api-reference/latest/files/folders/get-folder-update-status specs/2026-09/files-files-v2026-09.json GET /files/2026-09/folders/update/async/tasks/{taskId}/status > **Supported products** > **Required Scopes** # Search folders Source: https://developers.hubspot.jp/docs/api-reference/latest/files/folders/search-folders specs/2026-09/files-files-v2026-09.json GET /files/2026-09/folders/search HubSpotファイルマネージャーで、さまざまなクエリーパラメーターを使用してフォルダーを検索し、結果を絞り込みます。このエンドポイントを使用すると、作成日、更新日、フォルダー名、親フォルダーIDなどの特定の条件に基づいてフォルダーを取得できます。大量のデータを効率的に管理するために、ページ分割と並べ替えをサポートしています。 > **Supported products** > **Required Scopes** # Update folder properties by folder ID Source: https://developers.hubspot.jp/docs/api-reference/latest/files/folders/update-folder-folderId specs/2026-09/files-files-v2026-09.json PATCH /files/2026-09/folders/{folderId} ファイルマネージャーで特定のフォルダーの固有IDを指定して、その詳細を更新します。この操作により、フォルダー名や親フォルダーIDなどの属性を変更できます。 > **Supported products** > **Required Scopes** # CMS API | ファイルマネージャー Source: https://developers.hubspot.jp/docs/api-reference/latest/files/guide > **スコープ要件** HubSpot内でファイルを管理および保存するには、HubSpotのファイルツールを使用します。HubSpotでホスティングされているファイルは、HubSpotでも外部コンテンツでもアップロードして使用することが可能です。[エンゲージメントAPI](/docs/api-reference/overview)を使用して、ファイルをレコードに添付することもできます。 HubSpotのCMSを使用してウェブサイトが構築されている場合、ファイルAPIを使用してアセットをHubSpotにアップロードして保存できます。これらのファイルは、HubSpotのCMSを介して提供および共有することができます。 ファイルツールは[HubSpot内](https://knowledge.hubspot.com/ja/files/upload-files-to-use-in-your-hubspot-content)で、またはファイルAPI経由で利用できます。以下に、ファイルAPIの概要、およびファイルのアップロードと削除の方法について説明します。ファイルAPIエンドポイントの完全なリストについては、 [リファレンスドキュメント](/docs/api-reference/files-files-v3/guide)を確認してください。 ## ファイルをアップロードする ファイルをアップロードするには、以下のフィールドを指定したmultipart/form-data`POST`リクエストを`files/v3/files`に送信します。アップロード時に特定のフォルダーIDは必須ではありませんが、ファイルのアップロード先はルートディレクトリーではなくフォルダーにすることをお勧めします。アップロード時のフォルダーの必要性に関しては、今後変更される可能性がありますのでご留意ください。 | フィールド | 説明 | | - | - | | `file` | アップロードするファイル(必須)。 | | `options` | ファイルの公開設定とインデックス登録を制御するJSONオブジェクトで、次の2つのフィールドが含まれています。1つは必須の`access`で、もう1つはファイルが自動的に削除されるまでの期間を指定する`ttl`です。`ttl`フィールドを使用する場合の条件は、次の通りです。
        • 設定する必要がある最小期間は1日です。
        • 設定できる最大期間は1年です。
        • 設定した期間が経過すると、ファイルは完全に削除されます。削除された後、ファイルを回復または復元することはできません。
        | | `folderId` | ファイルのアップロード先とするフォルダーのID。リクエストには、このフィールドまたは`folderPath`のいずれかを指定する必要があります(両方を指定することはできません)。 | | `folderPath` | ファイルのアップロード先とするフォルダーのパス。リクエストには、このフィールド または`folderId`のいずれかを指定する必要があります(両方を指定することはできません)。 | | `fileName` | ファイルの名前。名前が指定されていない場合は、ファイルの内容に基づく名前が生成されます。 | | `charsetHunch` | アップロードするファイルのエンコーディングに使用されている文字セット。指定されていない場合、ファイルから取得されます。 | 例えば、次の条件を満たすファイルをHubSpotアカウントにアップロードする場合: * **ファイル名**:`cat.png` * **HubSpotファイルマネージャー内の移動先フォルダー**: `/library/cat_archive` * **HubSpotでのファイルのアクセシビリティー**: 非公開でアクセス可能 次のヘッダーとリクエスト本文が、リクエストに含まれている必要があります。 ```shell theme={null} curl --request POST \ --url 'https://api.hubapi.com/files/v3/files?=' \ --header 'Authorization: Bearer pat-na1-00000000-0000-0000-0000-000000000000' \ --header 'Content-type: multipart/form-data' \ --form file=@/Users/person/Downloads/cat.png \ --form 'options={"access": "PRIVATE"}' \ --form folderPath=/library/cat_archive ``` 生成されるレスポンスには、アップロードされたファイルの`id`と`parentFolderId`が含まれます。これを使用して、GETリクエスト経由でファイルを取得できます。 ```json theme={null} // 201 Response from successful file upload { "id": "122692044085", "createdAt": "2023-06-28T17:56:45.393Z", "updatedAt": "2023-06-28T17:56:45.393Z", "archived": false, "parentFolderId": "122692510820", "name": "cat", "path": "/library/cat_archive/cat.png", "size": 24574, "height": 219, "width": 225, "encoding": "png", "type": "IMG", "extension": "png", "defaultHostingUrl": "https://12345.fs1.hubspotusercontent-na1.net/hubfs/12345/library/cat_archive/cat.png", "url": "https://12345.fs1.hubspotusercontent-na1.net/hubfs/12345/library/cat_archive/cat.png", "isUsableInContent": true, "access": "PRIVATE" } ``` ## ファイルのアップロードステータスを確認する `files/v3/files/import-from-url/async`への`POST`リクエストを使用してファイルをURLからファイルマネージャーにインポートする際には、ファイルのアップロードステータスを確認することができます。 確認を行うには、`files/v3/files/import-from-url/async/tasks/{taskId}/status`へ`GET`リクエストを使用します。 このリクエストを送信すると、次のいずれかの返信が送られます。 * `PENDING`:ファイルはアップロード待ちのキューにあります。インポート処理はまだ開始されていません。 * `PROCESSING`:ファイルはアップロード中です。 * `CANCELED`:アップロードはキャンセルされ、ファイルはアップロードされません。ファイルをHubSpotアカウントにインポートするには、ファイルを再度アップロードする必要があります。 * `COMPLETE`:ファイルがファイルツールに正常にアップロードされました。アップロードされたファイルがファイルツールに表示されます。 ## ファイルの詳細を表示する ファイルツールにアップロードされたファイルの詳細を確認するには、`GET`リクエストを`files/v3/files/{fileId}`に送信します。これにより、名前、高さと幅、エンコード、URLなどの詳細情報と共にファイルが返されます。 ファイルの詳細の例として、以下の方法を参照してください。 ファイルが非公開に設定されている場合、返されるURLは404エラーになります。表示可能なファイルのURLを取得するには、`GET`リクエストを`/files/v3/files/{fileId}/signed-url`に送信します。このリクエストを送信するときに、高さと幅などの特定のプロパティーが返されるように`property`パラメーターを含めることができます。 ## ファイルを削除する ファイルを削除するには、`DELETE`リクエストを`files/v3/files/{fileId}`に送信します。これにより、ファイルは削除済みになり、ファイルの内容にアクセスできなくなります。 ファイルを完全に削除するには、`DELETE`リクエストを`files/v3/files/{fileId}/gdpr-delete`に送信します。これにより、ファイルの内容とメタデータが7日以内に完全に削除されます。 GDPR削除が行われていない場合、ファイルの内容は、誰もアクセスできない非公開の状態でHubSpotのサーバーに残ります。ファイルの内容を完全に削除するには、GDPR削除機能を使用します。 ## フォルダーを作成する フォルダーを作成するには、`POST`リクエストを`files/v3/folders`に送信します。このリクエストには、以下のフィールドを含めることができます。 | フィールド | 必須 | 説明 | | - | - | - | | `name` | はい | 作成するフォルダーの名前。 | | `parentFolderId` | いいえ | 既存のフォルダー内にフォルダーを作成するには、既存フォルダーのIDを指定したこのフィールドを含めます。`parentFolderId`と`parentFolderPath`同時に設定することはできません。 | | `parentFolderPath` | いいえ | 既存のフォルダー内にフォルダーを作成するには、既存フォルダーのパスを指定したこのフィールドを含めます。`parentFolderId`と`parentFolderPath`を同時に設定することはできません。 | ```json theme={null} //Example request body of POST request to /files/v3/folders { "name": "myNewFolder", "parentFolderId": 12345 } ``` ## V3における変更点 ファイルAPIの旧バージョンを使用している場合、v3には次の変更点があります。 * このAPI経由でアップロードした全てのファイルは、ファイルダッシュボードおよびファイル選択時に表示されるようになりました。非表示ファイルを作成することはできません。ただし、非公開ファイルとインデックス登録不可のファイルは引き続き作成できます。 * ファイルのリストでは、非表示のファイルや削除済みのファイルが返されなくなりました。ただし、適用できるフィルターの種類が大幅に増えました。非表示のファイルは引き続きIDを指定して取得できますが、その場合は新しいスコープ`files_ui_hidden.read.`が必要になります。 * 1回のリクエストで複数のファイルをアップロードすることはできなくなりました。 * 移動や名前変更などのフォルダー更新アクションは非同期になりました。リクエストごとに、フォルダーの編集ステータスの確認に使用できるトークンが返されます。 * ファイルを作成または置換するエンドポイントを使用するには、ファイルのアクセスレベルを指定することが必要になりました。アクセスレベルは以下の通りです。 * `PUBLIC_INDEXABLE`: ファイルが一般に公開され、URLを知っている全員がアクセスできます。このファイルは、検索エンジンによるインデックス登録が可能です。 * `PUBLIC_NOT_INDEXABLE`: ファイルが一般に公開され、URLを知っている全員がアクセスできます。ファイルの取得時には常に「X-Robots-Tag: noindex」ヘッダーが送信され、検索エンジンに対し、ファイルをインデックス登録しないよう通知されます。 * **`PRIVATE`**: ファイルは一般に公開されません。コンテンツを表示するには署名付きURLが必要です。検索エンジンはこのファイルのインデックス登録を行うことができません。 * ファイルを作成するエンドポイントでは、ファイルのアップロードオプションの一部として、重複検出レベルを指定できます。 * `ENTIRE_PORTAL`: アカウント内で重複するファイルを検索します。 * `EXACT_FOLDER`: 指定されたフォルダー内で重複するファイルを検索します。 * `NONE`: 重複の検証を実行しません。 * `REJECT`: 重複が見つかった場合はアップロードを拒否します。 * `RETURN_EXISTING`: 重複したファイルが見つかった場合は、新しいファイルをアップロードせずに、見つかった重複ファイルを返します。 * 重複検出は`duplicateValidationScope`を基に機能するため、重複の検索にも影響します。 * 重複が検出された場合の処理を指示する`duplicateValidationStrategy`も必要です。 # Clone a campaign Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/clone-campaign specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09/clone リクエスト本文のsourceCampaignGuidで識別されるキャンペーンを複製します。複製されたキャンペーンには、独自のGUIDと指定されたプロパティーが割り当てられます。アセットの複製は非同期で実行されます。進行状況を確認するには、clone-statusエンドポイントを使用してください。 > **Supported products** > **Required Scopes** # Create a campaign Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/create-campaign specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09 指定されたプロパティーを使用してキャンペーンを作成し、IDを含めてオブジェクトのコピーを受信します。「hs_goal」プロパティーは非推奨であり、指定しても無視されます。 > **Supported products** > **Required Scopes** # Delete a campaign Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/delete-campaign specs/2026-09/marketing-campaigns-public-api-v2026-09.json DELETE /marketing/campaigns/2026-09/{campaignGuid} システムから指定されたキャンペーンを削除します。この操作により、指定されたcampaignGuidで識別されるキャンペーンがHubSpotアカウントから削除されます。 > **Supported products** > **Required Scopes** # Retrieve a campaign Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/get-campaign specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/{campaignGuid} 内部IDで識別される特定のマーケティングキャンペーンの詳細を取得します。このエンドポイントを使用すると、キャンペーン情報と関連アセットにアクセスできます。これは、分析やレポート作成のためにキャンペーンデータを取得するのに役立ちます。「properties」クエリーパラメーターで返されるプロパティーが定義されていない場合、レスポンスには空のプロパティーマップが含まれます。 > **Supported products** > **Required Scopes** # Retrieve campaigns Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/get-campaigns specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09 HubSpotアカウントからマーケティングキャンペーンのページを取得します。このエンドポイントでは、キャンペーンの並べ替え、絞り込み、ページ分割ができ、マーケティング活動の管理と分析に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve clone status Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/get-clone-status specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/clone/{campaignGuid}/status 非同期キャンペーン複製操作のステータスを確認します。campaignGuidパスパラメーターは、複製エンドポイントによって返される新しいキャンペーンのGUIDである必要があります。 > **Supported products** > **Required Scopes** # Campaigns API Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/guide # Update a campaign Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/update-campaign specs/2026-09/marketing-campaigns-public-api-v2026-09.json PATCH /marketing/campaigns/2026-09/{campaignGuid} 指定されたIDで識別されるキャンペーンの部分的な更新を実行します。指定されたプロパティー値は上書きされます。読み取り専用および存在しないプロパティーは400エラーになります。プロパティー値は、空の文字列を渡すことでクリアできます。メモ:「hs_goal」プロパティーは非推奨であり、指定しても無視されます。 > **Supported products** > **Required Scopes** # Add asset Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/assets/add-asset specs/2026-09/marketing-campaigns-public-api-v2026-09.json PUT /marketing/campaigns/2026-09/{campaignGuid}/assets/{assetType}/{assetId} アセットを特定のキャンペーンに関連付けます。この操作により、指定されたタイプとIDのアセットが、固有のcampaignGuidで識別されるキャンペーンにリンクされます。HubSpot内でキャンペーンアセットを整理および管理するのに役立ちます。 アセットが作成されたばかりの場合、新しいアセットを追加しようとすると、レスポンスに400エラーが表示されることがあります。数分待ってから再試行することをお勧めします。 > **Supported products** > **Required Scopes** # Remove asset Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/assets/delete-asset specs/2026-09/marketing-campaigns-public-api-v2026-09.json DELETE /marketing/campaigns/2026-09/{campaignGuid}/assets/{assetType}/{assetId} アセットを特定のキャンペーンから関連付け解除します。この操作により、アセットとキャンペーン間のリンクが削除され、アセットがキャンペーンの背景情報から効果的に切り離されます。 > **Supported products** > **Required Scopes** # Retrieve asset types Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/assets/get-assets specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/asset-types サポートされているすべてのキャンペーンアセットタイプを一覧表示します。このエンドポイントを使用すると、キャンペーンで使用できるアセットタイプのリストを取得できます。これは、キャンペーンアセットを作成または管理する際に利用可能なオプションを理解するのに役立ちます。 > **Supported products** > **Required Scopes** # Batch create campaigns Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/batch/create-campaigns specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09/batch/create 指定されたプロパティーを持つマーケティングキャンペーンをバッチ作成します。このエンドポイントを使用すると、1つのリクエストで複数のキャンペーンを作成できます。「hs_goal」プロパティーは非推奨であり、リクエストに含まれていても無視されます。 > **Supported products** > **Required Scopes** # Batch archive campaigns Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/batch/delete-campaigns specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09/batch/archive IDを使用してキャンペーンをバッチ削除します。このエンドポイントを使用すると、複数のキャンペーンを一度に効率的に削除でき、キャンペーンデータ管理プロセスを効率化できます。特に、古くなったキャンペーンや不要なキャンペーンをまとめて整理するのに役立ちます。 > **Supported products** > **Required Scopes** # Batch retrieve campaigns Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/batch/get-campaigns specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09/batch/read 指定されたパラメーターを使用して、キャンペーンをバッチ取得します。このエンドポイントを使用すると、日付範囲でキャンペーンを絞り込み、レスポンスに含める特定のプロパティーを選択できます。複数のキャンペーンに関する詳細情報を一度に取得するのに役立ちます。 > **Supported products** > **Required Scopes** # Batch update campaigns Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/batch/update-campaigns specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09/batch/update 指定されたプロパティーでキャンペーンをバッチ更新します。このエンドポイントを使用すると、1つのリクエストで複数のキャンペーンを変更できます。注:「hs_goal」プロパティは非推奨であり、指定されても無視されます。 > **Supported products** > **Required Scopes** # Add budget item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/budget/create-budget-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09/{campaignGuid}/budget 指定されたキャンペーンに新しい予算項目を追加します。このエンドポイントを使用すると、キャンペーンに財務配分を関連付け、キャンペーン予算の追跡と管理を向上させることができます。 > **Supported products** > **Required Scopes** # Delete budget item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/budget/delete-budget-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json DELETE /marketing/campaigns/2026-09/{campaignGuid}/budget/{budgetId} キャンペーンから特定の予算項目をIDで削除します。この操作は、不要になった、または誤って追加された予算配分を削除するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve budget item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/budget/get-budget-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/{campaignGuid}/budget/{budgetId} キャンペーンに関連付けられた特定の予算項目を、固有の予算IDを使用して取得します。このエンドポイントは、キャンペーン内の特定の予算項目の詳細情報にアクセスし、予算配分の確認と分析を行うのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve budget details Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/budget/get-budget-totals specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/{campaignGuid}/budget/totals 特定のマーケティングキャンペーンについて、合計を含む詳細な予算と支出の情報を取得します。このエンドポイントは、キャンペーンの財務面に関する分析情報を提供し、ユーザーが予算配分と支出パターンを効果的に管理および分析するのに役立ちます。 > **Supported products** > **Required Scopes** # Update budget item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/budget/update-budget-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json PUT /marketing/campaigns/2026-09/{campaignGuid}/budget/{budgetId} マーケティングキャンペーン内の特定の予算項目をIDで更新します。このエンドポイントを使用すると、固有のcampaignGuidとbudgetIdで識別される、キャンペーンに関連付けられた予算項目の詳細を変更できます。これを使用して、キャンペーンの予算配分を調整したり、予算関連情報を更新したりできます。 > **Supported products** > **Required Scopes** # Retrieve contact IDs Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/reports/get-contact-ids specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/{campaignGuid}/reports/contacts/{contactType} 指定されたキャンペーンとコンタクトタイプに対応するコンタクトIDのリストを取得します。このエンドポイントを使用すると、特定のキャンペーンに関連付けられたコンタクト情報を、コンタクトタイプで絞り込んで取得できます。ページ分割と日付の絞り込みをサポートしており、大量のデータを効率的に管理できます。 > **Supported products** > **Required Scopes** # Retrieve metrics Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/reports/get-metrics specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/{campaignGuid}/reports/metrics 固有IDを使用して、特定のマーケティングキャンペーンの測定指標を取得します。このエンドポイントを使用すると、指定した日付範囲におけるキャンペーンのパフォーマンスに関する分析情報を収集できます。 > **Supported products** > **Required Scopes** # Retrieve revenue report Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/reports/get-revenue-report specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/{campaignGuid}/reports/revenue 特定のキャンペーンの収益アトリビューションレポートデータを取得します。このエンドポイントを使用すると、詳細な収益アトリビューション測定指標を取得でき、アトリビューションモデルと日付範囲で絞り込むことができます。このデータは、マーケティングキャンペーンの財務的影響を分析するのに役立ちます。 > **Supported products** > **Required Scopes** # Create spend item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/spend/create-spend-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json POST /marketing/campaigns/2026-09/{campaignGuid}/spend 指定したキャンペーンの新しいキャンペーン支出項目を作成します。このエンドポイントを使用すると、キャンペーンの支出に関する財務詳細を追加でき、マーケティング予算の効果的な追跡と管理に役立ちます。 > **Supported products** > **Required Scopes** # Delete spend item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/spend/delete-spend-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json DELETE /marketing/campaigns/2026-09/{campaignGuid}/spend/{spendId} IDを指定して特定のキャンペーン支出項目を削除します。この操作は、特定のマーケティングキャンペーンに関連する支出記録を管理および整理するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve spend Item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/spend/get-spend-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json GET /marketing/campaigns/2026-09/{campaignGuid}/spend/{spendId} 一意のspendIdを使用して、特定のキャンペーン費用項目を取得します。このエンドポイントを使用すると、キャンペーンに関連付けられた特定の費用項目の詳細情報にアクセスでき、キャンペーン費用の追跡と管理に役立ちます。 > **Supported products** > **Required Scopes** # Update spend item Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/campaigns/spend/update-spend-item specs/2026-09/marketing-campaigns-public-api-v2026-09.json PUT /marketing/campaigns/2026-09/{campaignGuid}/spend/{spendId} 特定のキャンペーン支出項目を、固有のspendIdで更新します。この操作により、キャンペーンに関連付けられた既存の支出項目の詳細(金額や説明など)を変更できます。 > **Supported products** > **Required Scopes** # Calls-to-action JavaScript API Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/ctas-sdk/guide # Global form events Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/forms/global-form-events # Create an email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/create-email specs/2026-09/marketing-marketing-emails-v2026-09.json POST /marketing/emails/2026-09 指定されたパラメーターを使用して、HubSpotアカウントで新しいマーケティングEメールを作成します。このエンドポイントでは、Eメールのコンテンツ、設定、その他の詳細を定義できます。作成が成功すると、新しく作成されたEメールリソースのURLが返されます。 > **Supported products** > **Required Scopes** # Create an A/B test variation Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/emails/create-ab-variation specs/2026-09/marketing-marketing-emails-v2026-09.json POST /marketing/emails/2026-09/ab-test/create-variation A/Bテスト用のマーケティングEメールのバリエーションを作成します。新しいバリエーションは下書きとして作成されます。すでに有効なバリエーションが存在する場合、新しいバリエーションは作成されません。 > **Supported products** > **Required Scopes** # Clone a marketing email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/emails/create-clone specs/2026-09/marketing-marketing-emails-v2026-09.json POST /marketing/emails/2026-09/clone これにより、固有ID以外はすべて元のEメールと同じプロパティーを持つ重複メールが作成されます。 > **Supported products** > **Required Scopes** # Delete a marketing email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/emails/delete-email specs/2026-09/marketing-marketing-emails-v2026-09.json DELETE /marketing/emails/2026-09/{emailId} IDを基準にマーケティングEメールを削除 > **Supported products** > **Required Scopes** # Get A/B test variation Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/emails/get-ab-variation specs/2026-09/marketing-marketing-emails-v2026-09.json GET /marketing/emails/2026-09/{emailId}/ab-test/get-variation このエンドポイントを使用すると、A/BマーケティングEメールのバリエーションを取得できます。EメールがバリエーションA(マスター)であればバリエーションB(バリエーション)を返し、バリエーションBであればバリエーションAを返します。 > **Supported products** > **Required Scopes** # Get the details of a specified marketing email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/emails/get-email specs/2026-09/marketing-marketing-emails-v2026-09.json GET /marketing/emails/2026-09/{emailId} マーケティングEメールの詳細を取得します。 > **Supported products** > **Required Scopes** # Get email draft Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/emails/get-email-draft specs/2026-09/marketing-marketing-emails-v2026-09.json GET /marketing/emails/2026-09/{emailId}/draft Eメールの下書きバージョンを返します(存在する場合)。下書きバージョンが存在しない場合は、公開済みのEメールが返されます。 > **Supported products** > **Required Scopes** # Update a marketing email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/emails/update-email specs/2026-09/marketing-marketing-emails-v2026-09.json PATCH /marketing/emails/2026-09/{emailId} マーケティングEメールのプロパティーを変更します。 > **Supported products** > **Required Scopes** # Retrieve emails Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/get-emails specs/2026-09/marketing-marketing-emails-v2026-09.json GET /marketing/emails/2026-09 HubSpotアカウントからマーケティングE メールのリストを取得します。このエンドポイントを使用すると、公開日、作成日、更新日など、さまざまな条件に基づいてE メールを絞り込めます。また、ページあたりの結果数を制御したり、追加の統計やプロパティーをレスポンスに含めたりすることもできます。 > **Supported products** > **Required Scopes** # Marketing API | Marketing Email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/guide # Get a revision of a marketing email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/revisions/get-revision specs/2026-09/marketing-marketing-emails-v2026-09.json GET /marketing/emails/2026-09/{emailId}/revisions/{revisionId} マーケティングEメールの特定のリビジョンを取得します。 > **Supported products** > **Required Scopes** # Reset draft Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/revisions/reset-draft specs/2026-09/marketing-marketing-emails-v2026-09.json POST /marketing/emails/2026-09/{emailId}/draft/reset 下書きを公開オブジェクトのコピーにリセットします。 > **Supported products** > **Required Scopes** # Restore to draft Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/revisions/reset-to-draft specs/2026-09/marketing-marketing-emails-v2026-09.json POST /marketing/emails/2026-09/{emailId}/revisions/{revisionId}/restore-to-draft マーケティングEメールの以前のリビジョンを下書き状態に戻します。そのオブジェクトの下書きが存在する場合は上書きされます。 > **Supported products** > **Required Scopes** # Restore from revision Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/revisions/restore-from-revision specs/2026-09/marketing-marketing-emails-v2026-09.json POST /marketing/emails/2026-09/{emailId}/revisions/{revisionId}/restore マーケティングEメールの以前のリビジョンを復元します。現在のリビジョンは古くなり、復元されたリビジョンには新しいバージョン番号が付与されます。 > **Supported products** > **Required Scopes** # Update draft Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/revisions/update-draft specs/2026-09/marketing-marketing-emails-v2026-09.json PATCH /marketing/emails/2026-09/{emailId}/draft マーケティングEメールの下書きバージョンを作成または更新します。下書きが存在しない場合は、現在の公開バージョンのEメールから下書きが作成され、リクエスト本文をその下書きに適用します。下書きバージョンはバッファにのみ存在し、Eメールは複製されません。 > **Supported products** > **Required Scopes** # Get statistics histogram Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/statistics/get-histogram specs/2026-09/marketing-marketing-emails-v2026-09.json GET /marketing/emails/2026-09/statistics/histogram 指定された期間で集計された統計を取得します。各間隔では、その間隔で送信されたEメールの統計が集計されます。 > **Supported products** > **Required Scopes** # Get aggregated statistics Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-emails/statistics/get-statistics specs/2026-09/marketing-marketing-emails-v2026-09.json GET /marketing/emails/2026-09/statistics/list このエンドポイントを使用して、指定した期間に送信されたEメールについて集計された統計を取得します。また、その期間に送信されたEメールのリストも返されます。 > **Supported products** > **Required Scopes** # Record attendance by contact ID and external event ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/attendance/set-attendance-contactId-externalId specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/attendance/{externalEventId}/{subscriberState}/create HubSpotコンタクトIDを使用して、複数のHubSpotコンタクトのマーケティングイベントへの参加を記録します。 追加機能: - コンタクトにタイムラインイベントを追加します。 使用できるプロパティ: 状態「参加」の場合: - joinedAt - leftAt > **Supported products** > **Required Scopes** # Record attendance by participant email and external event ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/attendance/set-attendance-email-externalId specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/attendance/{externalEventId}/{subscriberState}/email-create Eメールアドレスを使用してマーケティングイベントへの複数のHubSpotコンタクトの参加を記録します。 コンタクトが存在しない場合は、自動的に作成されます。contactPropertiesフィールドは、新しいコンタクトの作成専用であり、既存のコンタクトのプロパティーの更新は行いません。 追加機能: - コンタクトにタイムラインイベントを追加します。 使用できるプロパティ: 状態「参加」の場合: - joinedAt - leftAt > **Supported products** > **Required Scopes** # Delete events by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/batch/delete-events-externalId specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/events/delete externalAccountId、externalEventId、appIdに基づいて複数のマーケティングイベントを削除します。 削除されるのは、同じアプリで作成されたマーケティングイベントのみです。他のアプリからのイベントは、このエンドポイントによって削除できません。 > **Supported products** > **Required Scopes** # Delete events by HubSpot ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/batch/delete-marketing-events specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/batch/archive 複数のマーケティングイベントが存在する場合は、objectIdに基づいてポータルから複数のマーケティングイベントを削除します。 レスポンス: 204:指定されたすべてのマーケティングイベントが正常に削除された場合に返されます。 207:一部のobjectIdsが既存のマーケティングイベントに対応しなかった場合に返されます。 > **Supported products** > **Required Scopes** # Update events by HubSpot ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/batch/update-marketing-events specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/batch/update ポータル上に複数のマーケティングイベントが存在する場合、objectId別に更新します。 > **Supported products** > **Required Scopes** # Create or update events Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/batch/upsert-marketing-events specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/events/upsert 複数のマーケティングイベントを更新/挿入します。指定されたIDのマーケティングイベントがすでに存在する場合は、更新されます。存在しない場合は、新しいイベントが作成されます。 更新できるのは、同じアプリで最初に作成されたマーケティングイベントのみです。 > **Supported products** > **Required Scopes** # Create an event Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/create-event specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/events HubSpotにマーケティングイベントが新規作成されます > **Supported products** > **Required Scopes** # Delete event by HubSpot ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/delete-event specs/2026-09/marketing-marketing-events-v2026-09.json DELETE /marketing/marketing-events/2026-09/{objectId} 指定されたobjectIdを持つ既存のマーケティングイベントが存在する場合、それを削除します。 > **Supported products** > **Required Scopes** # Delete event by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/delete-event-externalId specs/2026-09/marketing-marketing-events-v2026-09.json DELETE /marketing/marketing-events/2026-09/events/{externalEventId} 指定されたexternalAccountId、externalEventIdを持つ既存のマーケティングイベントが存在する場合、それを削除します。 削除できるのは、同じアプリで作成されたマーケティングイベントのみです。 > **Supported products** > **Required Scopes** # Mark an event as canceled Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/event-status/set-event-canceled specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/events/{externalEventId}/cancel マーケティングイベントをキャンセル済みにします。 > **Supported products** > **Required Scopes** # Retrieve event by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/get-marketing-event specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/events/{externalEventId} 指定されたexternalAccountId、externalEventIdを持つマーケティングイベントが存在する場合、その詳細を返します。 リクエストを行ったのと同じアプリによって作成されたマーケティングイベントのみを取得できます。 > **Supported products** > **Required Scopes** # Retrieve event by HubSpot ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/get-marketing-event-objectId specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/{objectId} 指定されたobjectIdを持つマーケティングイベントが存在する場合、その詳細を返します。 > **Supported products** > **Required Scopes** # Retrieve all events Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/get-marketing-events specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09 指定されたAPIバージョンに対応するマーケティングイベントのリストを取得します。このエンドポイントは、大量のデータ内を移動するためのページ分割をサポートしています。これにより、マーケティングイベントの詳細にページ分割された形式でアクセスできます。 > **Supported products** > **Required Scopes** # マーケティングAPI | マーケティングイベント Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/guide > **[Run in Postman](https://app.getpostman.com/run-collection/26126890-66991673-f7f9-4430-8c49-ddd3b01141b9)** マーケティングイベントは、コンタクトおよび会社と同じCRMオブジェクトです。ウェビナーなどのマーケティングイベントを、イベントに登録・参加したコンタクトと共にトラッキングすることができます。この記事では、マーケティングイベントAPIを使用してマーケティングイベントをアプリと連携させる方法について詳しく説明します。 > **スコープ要件** ## この記事では、以下の内容について説明します。 * [スコープの要件](#scope-requirements) * [内部IDエンドポイントと外部IDエンドポイントの相違点](#differences-between-internal-id-and-external-id-endpoints) * [イベント管理エンドポイント](#create-and-update-events) * [イベント参加エンドポイント](#event-attendance-endpoints) * [参加者状態エンドポイント](#participant-state-endpoints) * [リストの関連付けエンドポイント](#list-association-endpoints) * [アプリ設定の構成](#configure-app-settings) * [ステップ1:アプリでAPIを作成する](#step-1-create-an-api-in-your-app) * [ステップ2:HubSpotにAPIへのURLパスを提供する](#step-2-provide-hubspot-with-the-url-path-to-your-api) ## スコープの要件 いずれかのマーケティング イベント エンドポイントにAPIリクエストを送信するには、次の[スコープ](/docs/apps/legacy-apps/authentication/working-with-oauth#scopes)が必要です。 * `crm.objects.marketing_events.read`:マーケティングイベントおよび参加データを取得する権限を付与します。 * `crm.objects.marketing_events.write`:マーケティングイベント情報を作成、削除、変更する権限を付与します。 アプリによって行われた呼び出しを認証する際は、[非公開アプリのアクセストークン](/docs/apps/legacy-apps/private-apps/overview)または[OAuth](/docs/api-reference/auth-oauth-v1/guide)のいずれかを使用できます。[認証方式](/docs/apps/legacy-apps/authentication/intro-to-auth)の詳細をご確認ください。利用可能なエンドポイントの完全なリストについては、[リファレンスドキュメント](/docs/api-reference/marketing-marketing-events-v3/guide)をご確認ください。 ## 内部IDエンドポイントと外部IDエンドポイントの相違点 以下に示す多くのエンドポイントでは、フェッチ(取得)または更新するイベントを識別する2つの異なる方法を提供しています。類似したエンドポイントの最終結果は同じである可能性がありますが、主に指定する関連IDが異なります。 * **外部IDを使用するエンドポイント**: `externalEventId`パラメーターと`externalAccountId`パラメーターを必要とするエンドポイントは、イベントを最初に作成した同じアプリでのみ機能します。例えば、アプリAとアプリBという2つの公開アプリを作成し、アプリAに関連付けられた認証とIDを使用してマーケティングイベントを作成した場合、アプリAのみがイベントの読み取り、更新、または新しい参加者の追加を行うことができます。\* \_\_ \_\_ \_\_ \*同じexternalEventIdとexternalAccountIdを使用して、アプリBで同じイベントにアクセスしようとすると、404エラーが返されます。\_ \_ * **objectIdを使用するエンドポイント**: `objectId`を必要とするエンドポイントを使用すると、イベントを最初に作成したアプリに関係なく、上記のセクションに記載されている関連スコープを持つ任意のアプリからイベントにアクセスできます。アプリAがマーケティングイベントを作成した場合、アプリBは引き続き`objectId`ベースのエンドポイントを介して参加者の読み取り、更新、または追加を行うことができます。\_ \_\_ \_ ## イベント管理エンドポイント 次のセクションでは、一般的なイベントプロパティーに関するコンテキストを提供し、さまざまなイベント管理エンドポイントを使用してイベントを作成、読み取り、更新、およびアーカイブする方法について詳しく説明します。 ### イベントプロパティー イベント管理エンドポイントの使用時に、フェッチおよび更新できるプロパティーを以下に示します。 | パラメーター | 型 | 説明 | | - | - | - | | `eventName` | 文字列 | イベントのタイトル。 | | `eventType` | 文字列 | イベントのタイプ(ウェビナー、展示会など)。 | | `eventOrganizer` | 文字列 | イベントを主催する個人または組織。 | | `eventDescription` | 文字列 | イベントの説明。 | | `eventUrl` | 文字列 | ユーザーが詳細を確認したり、イベントに登録したりできるURL。 | | `eventCancelled` | ブール値 | イベントがキャンセルされるかどうかを表す値。 | | `eventStartTime` | 文字列 | イベントの開始時刻を示すISO 8601形式のタイムスタンプ。 | | `eventEndTime` | 文字列 | イベントの終了時刻を示すISO 8601形式のタイムスタンプ。 | ### イベントを作成する マーケティングイベントを作成するには、`/marketing/v3/marketing-events/events`に`POST`リクエストを送信して、リクエストの本文に`eventName`、`externalEventId`、`externalAccountId`、`eventOrganizer`を指定します。必要に応じて、\[上記の表]\(#イベントプロパティー )に記載されている追加のプロパティーをリクエストに指定できます。 例えば、アプリの`externalAccountId`が`"12345"`で、アプリ内のイベントの`externalEventId`が`"67890"`の場合、次のようなリクエストで`"Winter webinar"`という名前の新しいイベントを作成できます。 ```json theme={null} { "externalAccountId": "12345", "externalEventId": "67890", "eventName": "Winter webinar", "eventOrganizer": "Snowman Fellowship", "eventCancelled": false, "eventUrl": "https://example.com/holiday-jam", "eventDescription": "Let's get together to plan for the holidays", "eventCompleted": false, "startDateTime": "2024-08-07T12:36:59.286Z", "endDateTime": "2024-08-07T12:36:59.286Z", "customProperties": [ { "name": "eventSeason", "value": "winter" } ] } ``` ### 外部IDを使用したイベントプロパティーを更新する `/marketing/v3/marketing-events/events/upsert`エンドポイントに`POST`リクエストを送信することで、マーケティングイベントを更新できます。任意の`customProperties`、イベントのその他の詳細(イベントの名前、開始時刻、説明など)を含めることができます。 リクエストで指定されたIDを持つマーケティングイベントが既に存在する場合、そのマーケティングイベントが更新されます。存在しない場合は、新しいイベントが作成されます。 例えば、次のリクエストは、「Virtual cooking class」という名前で、IDが`4`のイベントを作成します。 ```json theme={null} { "inputs": [ { "customProperties": [ { "name": "property1", "value": "1234" } ], "eventName": "Virtual cooking class", "startDateTime": "2023-11-30T17:46:20.461Z", "eventOrganizer": "Chef Joe", "eventDescription": "Join us for a virtual cooking class! Yum." "eventCancelled": false, "externalAccountId": "CookingCo", "externalEventId": "4" } ] } ``` ### objectIdを使用してイベントプロパティーを更新する イベントが作成されたら、`/marketing/v3/marketing-events/{objectId}`に`PATCH`リクエストを送信して、そのプロパティーを更新できます。 * 特定のマーケティングイベントの`objectId`を取得するには、[ナレッジベース記事](https://knowledge.hubspot.com/ja/integrations/use-marketing-events#view-and-analyze-marketing-events)の手順に従ってHubSpotアカウント上のイベントの詳細を表示し、レコードIDフィールドの下にあるIDを見つけます。\_ \_イベントが正常に作成されると、レスポンスで`objectId`も返されます。 * 次のセクションで説明する`/marketing/v3/marketing-events`エンドポイントに`GET`リクエストを送信することもできます。 * イベントの`externalEventId`が分かっている場合は、`/marketing/v3/marketing-events/{externalEventId}/identifiers`への`GET`リクエストを送信する際に、そのパスとして含めることができます。レスポンスには、全てのマーケティングイベントと各イベントに関連付けられたID(イベントの`objectId`、`appInfo`、`marketingEventName`、`externalAccountId`など)が含まれます。 ### イベントの詳細を取得する 全てのマーケティングイベントとそのプロパティーのリストを取得するには、`/marketing/v3/marketing-events`に`GET`リクエストを送信します。 HubSpot内のレコードで特定のマーケティングイベントの詳細を取得する必要がある場合は、`/marketing/v3/marketing-events/{objectId}`への`GET`リクエストでIDをobjectIdとして指定できます。\_ \_ ```json theme={null} { "eventName": "Test Marketing Event", "eventType": "test-type", "startDateTime": "2024-05-22T12:29:50.734Z", "endDateTime": "2024-05-25T12:29:50.734Z", "eventOrganizer": "testEventOrganizer", "eventDescription": "testDescription", "eventUrl": "testURL", "eventCancelled": true, "eventCompleted": false, "customProperties": [ { "name": "test_custom_prop", "value": "1" }, { "name": "test_prop", "value": "2" } ], "objectId": "58237132332", "externalEventId": null, "eventStatus": "CANCELLED", "appInfo": { "id": "111", "name": "Zoom" }, "registrants": 1, "attendees": 1, "cancellations": 2, "noShows": 0, "createdAt": "2024-08-07T12:58:40.635Z", "updatedAt": "2024-10-15T13:35:03.353Z" } ``` ### イベントを削除する マーケティングイベントを削除するには、イベントに関連付けられている`objectId`を使用して、`/marketing/v3/marketing-events/{objectId}`に`DELETE`リクエストを送信します。 リクエストが正常に完了すると、`204 No Content`レスポンスが返されます。 ### 複数のイベントを一括更新する 複数のマーケティングイベントを一括で更新するには、`/marketing-events/v3/marketing-events/batch/update`に`POST`リクエストを送信し、リクエスト本文のinputs配列内で各イベントについて更新するプロパティーを指定します。 例えば、オブジェクトIDが58237132332と54073507364を持つ2つのマーケティングイベントの複数のプロパティーを1つのリクエストで更新する場合、リクエストの本文は次のようになります。 ```json theme={null} { "inputs": [ { "objectId": "58237132332", "eventCancelled": true, "eventOrganizer": "testEventOrganizer", "eventUrl": "testURL", "eventDescription": "testDescription", "eventName": "Test Marketing Event Update", "eventType": "test-type" }, { "objectId": "54073507364", "eventCancelled": true, "eventOrganizer": "testEventOrganizer", "eventUrl": "testURL", "eventDescription": "testDescription", "eventName": "Test Marketing Event Update 2", "eventType": "test-type" } ] } ``` ## イベント参加エンドポイント イベント参加状態エンドポイントを使用すると、イベントに登録したか、出席したか、登録をキャンセルしたかなど、コンタクトの登録アクティビティーを記録できます。例えば、このエンドポイントを使用して、HubSpotのコンタクトがマーケティングイベントに登録したことを記録できます。 ### イベントのobjectIdを使用して参加状態を更新する マーケティングイベントの`objectId`を使用する場合は、参加状態を記録するコンタクトの コンタクトIDを使用するか、Eメールアドレスを使用できます。 * コンタクトのIDを使用するには、POSTリクエストを`/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/create`に送信し、リクエスト本文の`inputs`配列内の`vid`フィールドを使用してコンタクトのIDを指定します。例えば、次のリクエスト本文は、IDが`47733471576`のコンタクトの出席データを更新し、`joinedAt`と`leftAt`プロパティーを介して出席者がイベントに参加および退出した時間を指定する例を示しています。 ```json theme={null} { "inputs": [ { "vid": 47733471576, "properties": { "joinedAt": "2024-05-22T13:38:16.500Z", "leftAt": "2024-05-22T15:40:16.500Z" }, "interactionDateTime": 1716382579000 } ] } ``` * コンタクトのEメールを使用するには、POSTリクエストを`/marketing/v3/marketing-events/{objectId}/attendance/{subscribeState}/email-create`に送信し、リクエスト本文の`inputs`配列内の`email`フィールドを使用してコンタクトのEメールを指定します。 * 新しいコンタクトを作成する場合は、リクエスト本文の`inputs`配列に`contactProperties`フィールドを含めることにより、関連付ける任意のプロパティーを新規作成されたコンタクトに設定することができます。それ以外の場合、コンタクトが既に存在する場合は、リクエストで指定されている`contactProperties`は更新されません 。 * 例えば、次のリクエスト本文は、Eメールアドレスが`john@example.com`のコンタクトの参加データを更新し、`inputs`配列の`properties`オブジェクト内の`joinedAt`フィールドと`leftAt`フィールドを使用して、出席者がイベントに参加および退出した時間を指定する例を示しています。 ```json theme={null} { "inputs": [ { "contactProperties": { "additionalProp1": "string", "additionalProp2": "string" }, "properties": { "joinedAt": "2024-05-22T13:38:16.500Z", "leftAt": "2024-05-22T15:40:16.500Z" }, "email": "john@example.com", "interactionDateTime": 1716382579000 } ] } ``` 上記のエンドポイントの両方について、対応するパスパラメーターに次の値を指定します。 * `objectId`:HubSpotアカウントのマーケティングイベントのレコードID。\_ \_イベントのobjectIdの使用と外部IDの使用の詳細については、[前述のセクション](#内部idエンドポイントと外部idエンドポイントの相違点)をご確認ください。 * `subscriberState`:コンタクトの新しい参加ステータスと一致する以下の列挙値。 * `REGISTERED`:HubSpotコンタクトがイベントに登録したことを示します。 * `ATTENDED`:HubSpotコンタクトがイベントに出席したことを示します。コンタクトのステータスをATTENDEDに更新する場合は、リクエスト本文のパラメーターとして、ISO 8601インスタント形式で指定した`joinedAt`および`leftAt`タイムスタンプを含めることもできます。 * `CANCELLED`:以前イベントに登録したHubSpotコンタクトが登録をキャンセルしたことを示します。 ### イベントの外部IDを使用して参加情報を更新する > [!WARNING] > > ### 注: > > 以前に`/upsert`または`/email-upsert`エンドポイントを使用して出席者のステータスを更新していた場合は、代わりに以下に示す代替エンドポイントを使用できます。ただし、上記のイベント出席エンドポイントと比較すると、これらのエンドポイントを使用しても、次のサポートは提供されません。 > > * 新しいコンタクトがまだ存在しない場合、コンタクトを新規作成する > * コンタクトのレコードページでタイムラインイベントを表示する > * `joinedAt`または`leftAt`プロパティーを指定する > * リクエストが正常に完了した際に詳細なレスポンスを提供する アプリからの`externalEventId`を必要とするエンドポイントを使用する場合は、既存のコンタクトコンタクトIDまたはEメールアドレスのいずれかを使用できます。 * 既存のコンタクトのコンタクトIDを使用する場合: * 外部アプリケーションのイベントのIDを`externalEventId`として使用し、`/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/create`に`POST`リクエストを送信します。 * リクエスト本文で、次のフィールドを含む`inputs`オブジェクトを指定します。 * `interactionDateTime`:コンタクトがイベントに登録した日時。 * `vid`:既存のコンタクトのコンタクトID。 * イベント参加者の1人のEメールアドレスを使用する場合: * `POST`リクエストを`/marketing/v3/marketing-events/attendance/{externalEventId}/{subscriberState}/email-create`に送信します。 * リクエスト本文で、次のフィールドを含む`inputs`オブジェクトを指定します。 * `interactionDateTime`:コンタクトがイベントに登録した日時。 * `email`:inputs内のemailフィールドの値として指定する、参加者のEメールアドレス * 指定したEメールアドレスが既存のコンタクトのアドレスと一致しない場合は、新しいコンタクトが作成されます。 上記のエンドポイントの両方について、対応するパスパラメーターに次の値を指定します。 * `externalEventId`:[マーケティングイベント](https://knowledge.hubspot.com/ja/integrations/use-marketing-events#view-edit-and-analyze-marketing-events)のID。イベントのobjectIdの使用と外部IDの使用の詳細については、 [前述のセクション](#differences-between-internal-id-and-external-id-endpoints)をご覧ください。 * `subscriberState`:コンタクトの新しい参加ステータスと一致する以下の列挙値。 * `REGISTERED`:HubSpotコンタクトがイベントに登録したことを示します。 * `ATTENDED`:HubSpotコンタクトがイベントに出席したことを示します。コンタクトのステータスをATTENDEDに更新する場合は、リクエスト本文のパラメーターとして、ISO 8601インスタント形式で指定した`joinedAt`および`leftAt`タイムスタンプを含めることもできます。 * `CANCELLED`:以前イベントに登録したHubSpotコンタクトが登録をキャンセルしたことを示します。 > [!WARNING] > > ### 注: > > これらのAPIは、コンタクトのIDとイベントの`interactionDateTime`値が変更されていない限り、べき等性があります。これにより、重複したイベントがマーケティング イベント プロパティーにHubSpotによって作成されることなく、参加状態を複数回安全に設定できます。 ## 参加者状態エンドポイント 参加エンドポイントを使用して、マーケティングイベントのイベント参加者データを取得します。特定のイベントの集計指標などのデータや、特定のコンタクトまたはイベントの参加者データをクエリーできます。 以下で利用可能な参加エンドポイントを確認してください。各エンドポイントで使用できる全パラメーターの一覧は、[リファレンスドキュメント](/docs/api-reference/marketing-marketing-events-v3/guide)でご参照いただけます。 > [!WARNING] > > ### 注: > > ご使用のHubSpotアカウントの[マーケティングイベントページ](https://knowledge.hubspot.com/ja/integrations/use-marketing-events)に表示されるアクティビティー数は、参加カウンターAPIエンドポイントで取得できる、対応する集計指標と異なる場合があります。 > > 例えば、参加者がイベントに登録してからキャンセルした後で、同じイベントに再登録した場合、ご使用のアカウントのマーケティングイベントUIに表示される合計数には、これらのアクティビティー全てが含められます。以下の参加者状態エンドポイントを使用している場合、各測定指標の関連するカウンターには、参加者の現在の状態のみが含められます(例:`attended`、`registered`、`cancelled`、`noShows`)。 ### 特定のコンタクトの参加を読み取る 特定のコンタクトのイベント参加データを取得するには、コンタクトのIDまたはEメールアドレスを`contactIdentifier`パスパラメーターとして使用して、`GET`リクエストを`/marketing/v3/marketing-events/participations/contacts/{contactIdentifier}/breakdown`に送信します。 レスポンスの`properties`フィールドには、コンタクトのイベント参加の概要が含まれています。 ```json theme={null} { "results": [ { "associations": { "marketingEvent": { "externalAccountId": "4", "marketingEventId": "123", "externalEventId": "456", "name": "Virtual baking workshop" }, "contact": { "firstname": "Jane", "contactId": "156792341", "email": "jdoe@example.com", "lastname": "Doe" } }, "createdAt": "2024-05-21T18:35:04.838Z", "id": "string", "properties": { "occurredAt": "2024-05-22T10:35:04.838Z", "attendancePercentage": "string", "attendanceState": "REGISTERED", "attendanceDurationSeconds": 3600 } } ] } ``` ### 参加内訳データを読み取る 特定のイベントの参加データの内訳を取得するには、自分の`externalAccountId`とイベントの`externalEventId`を使用して、`GET`リクエストを`/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}/breakdown`に送信します。 ### 参加カウンターを読み取る イベントの参加集計の概要を取得するには、自分の`externalAccountId`とイベントの`externalEventId`を使用して、`GET`リクエストを`/marketing/v3/marketing-events/participations/{externalAccountId}/{externalEventId}`に送信します。 レスポンスには合計参加数が含まれます。 ```json theme={null} { "attended": 152, "registered": 200, "cancelled": 3, "noShows": 8 } ``` ### 参加内訳データを絞り込む 特定のコンタクトの内訳データまたはイベント参加データを取得するには、リクエストでcontactIdentifier、state、limit、またはafterフィールドをクエリーパラメーターとして使用して、返されるデータを絞り込めます。 | クエリーパラメーター | 型 | 説明 | | - | - | - | | `contactIdentifier` | 文字列 | 特定のコンタクトのEメールアドレスまたはID | | `state` | 列挙 | イベントの参加状態。使用可能な参加状態は、次の通りです。
        • `REGISTERED`:コンタクトがイベントに登録した。
        • `CANCELLED`:コンタクトの登録がキャンセルされた。
        • `ATTENDED`:コンタクトがイベントに参加した。
        • `NO_SHOW`:コンタクトが登録したが、イベントには参加しなかった。
        | | `limit` | 数値 | 返される結果数の上限を設定します。デフォルトでは、上限は10に設定されています。有効な範囲は1-100です。 | | `after` | 数値 | レスポンスの結果間のページングに使用されます。レスポンスデータの前のページに指定されたオフセットを調べて、次に返す結果のインデックスを決定します。 | ## リストの関連付けエンドポイント 下記のセクションで説明するエンドポイントを使用して、リストとマーケティングイベント間の関連付けを管理できます。 これらのエンドポイントの多くでは、パスパラメーターとして`listId`が必要です。詳細は、HubSpotアカウントのリストの詳細ページで確認できます。 * HubSpotアカウントで、[CRM]>[リスト]に移動します\*\*。 \*\*\*\* \*\* * リストの**名前**をクリックします。 * 右上の[詳細]をクリックします\*\*。 \*\* * 右側のパネルで[API連携のリストID]の下にリストIDが表示されます。\_ \_[リストIDをコピー]をクリックすると、IDをクリップボードにコピーできます\*\*。 \*\* ![リストの詳細パネルのリストの関連付け-api](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/list-details-panel-list-associations-api.png) リストをマーケティングイベントに関連付けると、HubSpotアカウントのマーケティングイベントの詳細ページに表示されます。 * HubSpotアカウントで、[CRM]>[コンタクト]に移動します\*\*。 \*\*\*\* \*\* * 左上の[コンタクト]をクリックし、ドロップダウンメニューから[マーケティングイベント]を選択します\*\*。 \*\*\*\* \*\* * マーケティングイベントの**名前**をクリックします。 * [パフォーマンス]タブで、[リスト]をクリックしてセクションを展開し、**[関連付け]タブから追加したリスト**をクリックします。\_ \_\*\* \*\* ![マーケティングイベントapiのリストの関連付けの確認](https://www.hubspot.jp/hubfs/Knowledge_Base_2023_2024/review-list-associations-for-marketing-events-api.png) ### マーケティングイベントIDを使用してリストの関連付けを作成する マーケティングイベントと既存のリストの間に新しい関連付けを作成するには、`PUT`リクエストを`/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}`に送信します。 リクエストが正常に完了すると、`204 No content`レスポンスが返されます。 ### 外部イベントIDとアカウントIDを使用してリストの関連付けを作成する 外部アカウントIDと外部イベントIDを使用して、マーケティングイベントと既存のリストの間に新しい関連付けを作成するには、`PUT`リクエストを`/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}`に送信します。 リクエストが正常に完了すると、`204 No content`レスポンスが返されます。 ### マーケティングイベントIDを使用してマーケティングイベントに関連付けられたリストを取得する マーケティングイベントに関連付けられている全てのリストを取得するには、`/marketing/v3/marketing-events/associations/{marketingEventId}/lists`に`GET`リクエストを送信します。 レスポンスは次のようになります。 ```json theme={null} { "total": 1, "results": [ { "listId": "string", "listVersion": 0, "createdAt": "2024-05-10T08:58:35.769Z", "updatedAt": "2024-05-10T08:58:35.769Z", "filtersUpdatedAt": "2024-05-10T08:58:35.769Z", "processingStatus": "string", "createdById": "string", "updatedById": "string", "processingType": "string", "objectTypeId": "string", "name": "string", "size": 0 } ] } ``` ### 外部イベントIDとアカウントIDを使用してイベントに関連付けられたリストを取得する また、外部アカウントIDと外部イベントIDを使用してマーケティングイベントに関連付けられたリストを取得し、`GET`リクエストを`/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists`に送信することもできます。 ### マーケティングイベントIDを使用してリストの関連付けを削除する マーケティングイベントIDを使用してマーケティングイベントのリスト関連付けを削除するには、`DELETE`リクエストを`/marketing/v3/marketing-events/associations/{marketingEventId}/lists/{listId}`に送信します。 リクエストが正常に完了すると、`204 No content`レスポンスが返されます。 ### 外部イベントIDとアカウントIDを使用してリストの関連付けを削除する 外部アカウントIDと外部イベントIDを使用してマーケティングイベントのリストの関連付けを削除するには、`DELETE`リクエストを`/marketing/v3/marketing-events/associations/{externalAccountId}/{externalEventId}/lists/{listId}`に送信します。 リクエストが正常に完了すると、`204 No content`レスポンスが返されます。 ## アプリ設定を構成する マーケティングイベントがHubSpotと適切に同期するためには、いくつかの設定が必要です。 HubSpotに参加状態の変更(登録やキャンセルなど)を送信すると、HubSpotはまず、指定されたイベントIDに対応するマーケティングイベントが存在するかどうかを確認します。存在しない場合、HubSpotはアプリに設定されたエンドポイントを呼び出してマーケティングイベントの詳細を取得し、HubSpotでイベントを作成してから、参加状態の変更を公開します。 これは利便性を目的に提供されている機能ですが、HubSpotでマーケティングイベントを作成するこの機能には依存せず、[リファレンスドキュメント](/docs/api-reference/marketing-marketing-events-v3/guide)に記載されているCRUDメソッドを使用して、マーケティングイベントを自分で作成することをお勧めします。 ### ステップ1:アプリでAPIを作成する マーケティングイベントをサポートするためにHubSpotでは、マーケティングイベントを使用する各アプリでAPIを定義し、特定のマーケティングイベントに関する情報を取得することを要件としています。 要件: * 許容値: * `externalAccountId`:外部アプリの顧客のaccountIdを指定するクエリーパラメーター。 * `appId`:イベントの詳細をリクエストしているHubSpotアプリケーションのIDを指定するクエリーパラメーター。これはアプリのIDになります。 * `externalEventId`:HubSpotが詳細な情報をリクエストしている外部アプリのイベントのIDを指定する、リクエストのURL内のパスパラメーター。 * 戻り値: * マーケティングイベントの詳細を提供するJSONオブジェクト。以下の表で詳しく説明しているフィールドを含みます。 \| フィールド名 | 必須 | 型 | フィールドの説明 | \| ------------------ | ----- | -------------------- | --------------------------------------------------------------------------------- | ---------------- | \| `eventName` | true | 文字列 | マーケティングイベントの名前。 | \| `eventOrganizer` | true | 文字列 | マーケティングイベントの主催者の名前。 | \| `eventType` | false | 文字列 | このイベントのタイプを説明します。`WEBINAR`、`CONFERENCE`、`WORKSHOP` | など。 | \| `startDateTime` | false | 文字列($date-time) | マーケティングイベントの開始日時。 | | `endDateTime` | false | 文字列($date-time) | マーケティングイベントの終了日時。 | \| `eventDescription` | false | 文字列 | マーケティングイベントの説明。 | \| `eventUrl` | false | 文字列 | 外部イベントアプリケーションでマーケティングイベントが存在するURL。 | \| `eventCancelled` | false | ブール値 | マーケティングイベントがキャンセルされたかどうかを示します。デフォルトでは`false` | に設定されます。 | HubSpotは`X-HubSpot-Signature-v3`ヘッダーも送信します。これは、リクエストがHubSpotから送信されたことを確認するために使用できます。署名の詳細とその検証方法については、[リクエスト署名](/docs/apps/legacy-apps/authentication/validating-requests)を参照してください。 ### ステップ2:HubSpotにAPIへのURLパスを提供する 特定のマーケティングイベントの詳細を提供するオブジェクトを返すAPIをアプリで作成したので、次は`/marketing/v3/marketing-events/{appId}/settings`に`POST`リクエストを送信して、HubSpotにAPIへのURLパスを提供する必要があります。これにより、HubSpotはアプリにリクエストを送信してマーケティングイベントの詳細を取得する方法を決定できます。 `POST`リクエストの本文で、`eventDetailsURL`フィールドを使用してURLを指定します。`eventDetailsURL`は次の2つの要件を満たす必要があります。 * `%s`文字列を含んでいること。HubSpotはこの文字列をパスパラメーターとして使用し、イベントのID(`externalEventId`)に代入します。 * `https://`プレフィックスとドメイン名(例:`my.event.app`)を含む、APIリソースへのフルパスであること。 例えば、`https://my.event.app/events/%s`の`eventDetailsURL`を設定し、IDが`1234-event-XYZ`のイベントの詳細を取得するリクエストを送信する必要がある場合、HubSpotアプリのIDが`app-101`で、アカウントのIDが`ABC-account-789`だとすると、HubSpotは次のURLに`GET`リクエストを送信します。 `https://my.event.app/events/1234-event-XYZ?appId=app-101&externalAccountId=ABC-account-789` # Get events by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/identifiers/get-marketing-events-externalId specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/{externalEventId}/identifiers このエンドポイントは、externalEventIdがリクエストで指定された値と一致するすべてのマーケティングイベントをポータルで検索します。 一致するマーケティングイベントごとに、objectIdと追加のイベント詳細が取得されます。 複数のマーケティングイベントが同じexternalEventIdを持つ可能性があるため、エンドポイントはすべての一致した結果を返します。 注:マーケティングイベントは、作成から数分後にexternalEventIdで検索可能になります。 > **Supported products** > **Required Scopes** # Search for events by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/identifiers/search-events specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/events/search externalEventIdがリクエストで指定された値と一致するマーケティングイベントを取得します。リクエストを行うアプリで作成されたイベントに限ります。 他のアプリで作成されたマーケティングイベントは、結果に含まれません。 > **Supported products** > **Required Scopes** # Associate a list by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/list-associations/associate-list-externalId specs/2026-09/marketing-marketing-events-v2026-09.json PUT /marketing/marketing-events/2026-09/associations/{externalAccountId}/{externalEventId}/lists/{listId} 外部アカウントID、外部イベントID、ILSリストIDにより、リストをマーケティングイベントに関連付けます > **Supported products** > **Required Scopes** # Get associated lists by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/list-associations/get-lists-externalId specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/associations/{externalAccountId}/{externalEventId}/lists 外部アカウントIDと外部イベントIDにより、マーケティングイベントに関連付けられているリストを取得します > **Supported products** > **Required Scopes** # Remove a list from an event by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/list-associations/remove-list-externalId specs/2026-09/marketing-marketing-events-v2026-09.json DELETE /marketing/marketing-events/2026-09/associations/{externalAccountId}/{externalEventId}/lists/{listId} 外部アカウントID、外部イベントID、ILSリストIDにより、マーケティングイベントからリストの関連付けを解除します > **Supported products** > **Required Scopes** # Retrieve participants by contact identifier Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/participant-state/get-participants-contactId specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/participations/contacts/{contactIdentifier}/breakdown コンタクトの参加を識別子 (Eメールまたは内部ID)で読み取ります。 > **Supported products** > **Required Scopes** # Retrieve participants by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/participant-state/get-participants-externalId specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/participations/{externalAccountId}/{externalEventId} マーケティングイベントの参加カウンターを、externalAccountIdとexternalEventIdのペアで読み取ります。 > **Supported products** > **Required Scopes** # Retrieve the application settings Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/settings/get-app-settings specs/2026-09/marketing-marketing-events-v2026-09.json GET /marketing/marketing-events/2026-09/{appId}/settings アプリケーションの現在の設定を取得します。 > **Supported products** # Update the application settings Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/settings/update-app-settings specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/{appId}/settings アプリケーションの現在の設定を作成または更新します。 > **Supported products** # Record a subscriber state by contact email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/subscriber-state-changes/set-subscriber-state specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/events/{externalEventId}/{subscriberState}/email-upsert コンタクトのEメールアドレスを使用して、複数のHubSpotコンタクトとマーケティングイベント間の登録読者状態を記録します。コンタクトがすでにHubSpotに存在している必要がある点に注意してください。コンタクトは作成されません。contactPropertiesフィールドは、新しいコンタクトを作成する場合にのみ使用されます。これらのプロパティーで既存のコンタクトは更新されません。 > **Supported products** > **Required Scopes** # Set subscriber state by contact ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/subscriber-state-changes/set-subscriber-state-contactId specs/2026-09/marketing-marketing-events-v2026-09.json POST /marketing/marketing-events/2026-09/events/{externalEventId}/{subscriberState}/upsert HubSpotコンタクトIDを使用して、複数のHubSpotコンタクトとマーケティングイベント間の登録読者状態を記録します。コンタクトがすでにHubSpotに存在している必要がある点に注意してください。コンタクトは作成されません。 > **Supported products** > **Required Scopes** # Update event by HubSpot ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/update-event specs/2026-09/marketing-marketing-events-v2026-09.json PATCH /marketing/marketing-events/2026-09/{objectId} objectIdで識別される既存のマーケティングイベントが存在する場合、その詳細を更新します。 > **Supported products** > **Required Scopes** # Partially update event by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/update-event-externalId specs/2026-09/marketing-marketing-events-v2026-09.json PATCH /marketing/marketing-events/2026-09/events/{externalEventId} externalAccountId(存在する場合はexternalEventId)で識別される既存のマーケティングイベントの詳細を更新します。 更新できるのは、同じアプリで作成されたマーケティングイベントのみです。 > **Supported products** > **Required Scopes** # Update event by external ID Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/marketing-events/update-marketing-event specs/2026-09/marketing-marketing-events-v2026-09.json PUT /marketing/marketing-events/2026-09/events/{externalEventId} 複数のマーケティングイベントが更新/挿入されます。指定されたIDの既存のマーケティングイベントが存在する場合は更新され、存在しない場合はイベントが新規作成されます。 > **Supported products** > **Required Scopes** # Send a transactional email Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/transactional-emails/create-transactional-email specs/2026-09/marketing-transactional-single-send-v2026-09.json POST /marketing/transactional/2026-09/single-email/send トランザクションEメールを非同期で送信します。Eメール送信ステータスAPIを使用してステータスを継続的に照会するのに使用できるstatusIdと一緒にEメール送信のステータスが返されます。 > **Supported products** > **Required Scopes** # トランザクションEメールAPIガイド Source: https://developers.hubspot.jp/docs/api-reference/latest/marketing/transactional-emails/guide [トランザクションEメール追加オプション](https://www.hubspot.com/products/marketing/transactional-email)を利用すると、注文確認、アカウント更新、サービス利用規約の変更や、その他の重要なビジネス取引についてのEメールを専用IPアドレスから送信できます。 トランザクションEメールは、主にコンテンツのプロモーションに使用される[マーケティングEメール](/docs/api-reference/marketing-campaigns-public-api-v3/guide)とは異なり、関係性に基づくコミュニケーションに使用されます。 > **スコープ要件** ## トランザクションEメールの送信方法 トランザクションEメールの実装には、以下の3つの方法があります。 * [アプリ内でトランザクションEメールを設定する](https://knowledge.hubspot.com/marketing-email/send-transactional-emails) * [SMTP API](#smtp-api) * [1回送信API](#single-send-api) | **方法** | **概要** | **使用例** | | - | - | - | | **アプリ内トランザクションEメール** | HubSpotのEメールエディターを使用してトランザクションEメールを作成します。スマートコンテンツ、パーソナライズ、テンプレートなど、HubSpotの標準Eメールと同様の機能を活用できます。[アプリ内でトランザクションEメールを設定する方法](https://knowledge.hubspot.com/marketing-email/send-transactional-emails)をご確認ください。 | 新しいポリシーページへのリンクを設定した、ポリシーの更新に関するEメールを顧客に送信できます。これはサービスの更新を知らせるEメールであって、マーケティングEメールではないので、配信関連リンク(CAN-SPAMリンクなど)を含める必要はありません。カスタムプロパティーや、外部システムからの情報を使用する必要もありません。 | | **SMTP API** | 貴社のサイトまたはアプリからトランザクションEメールを送信し、Eメールのパフォーマンス追跡やHubSpot内でのコンタクト情報の作成が行えます。コンタクト情報を作成するかどうかは、SMTPトークンを作成して設定します。詳細については[後述のSMTP APIセクション](#smtp-api)をご確認ください。 | 別のトランザクションEメールシステムからアカウント登録の確認メールを送信した上で、Eメールのパフォーマンスを追跡し、HubSpot内にコンタクトを作成できます。 | | **1回送信API** | アプリ内トランザクションEメールとSMTP APIの組み合わせです。HubSpotのEメールエディターを使用してトランザクションEメールを作成し、API経由でHubSpotに送信できるカスタム外部トークンをEメールに追加します。詳細については後述の[「1回送信API」セクション](#single-send-api)をご確認ください。 | HubSpotを使用して領収書Eメールを顧客に送信できます。購入が完了した時点でこのEメールがトリガーされ、別のシステムからカスタム値(購入品目、合計購入金額など)を渡します。さらに、このEメールのパフォーマンスをHubSpotで追跡します。 | > [!WARNING] > > **注**: トランザクションEメールのCCに指定されているコンタクトは追跡されず、そのコンタクトのレコードタイムラインにトランザクションEメールは表示されません。 ## SMTP API SMTP APIを使用して送信するトランザクションEメールは、特定の条件(eコマースウェブサイトでの購入の実行など)に基づいて自動的にトリガーされます。このAPIはあらゆる内部システムまたはサードパーティーシステムとの連携に利用可能で、Eメールのトリガーと、HubSpotの外部に保存されているデータ(配送情報、購入価格など)の取り込みに使用できます。Eメールの送信は貴社のシステムから行われますが、HubSpotトラッキングコードでラッピングされるため、[エンゲージメントの追跡と測定](https://knowledge.hubspot.com/marketing-email/analyze-your-marketing-email-campaign-performance)が可能です。 SMTP API経由でEメールを送信するには、SMTP APIトークンを使用してHubSpot SMTPサーバーのログイン資格情報を取得する必要があります。サーバーにログインすると、SMTP経由でEメールを送信できます。SMTP APIトークンをまだ作成していない場合は、最初に[新しいトークンを生成する](#create-a-new-smtp-api-token)必要があります。SMTP APIトークンを作成済みの場合は、[API経由でトークンを取得する方法](#get-existing-smtp-api-tokens)をご確認ください。トークンを取得したら、[HubSpotのSMTPサーバーにログインする方法](#log-in)をご確認ください。 Eメールの\_\_送信元アドレスとして使用するドメインは、[Eメール送信ドメイン](https://knowledge.hubspot.com/marketing-email/manage-email-authentication-in-hubspot)としてHubSpotに接続されている必要があります。SMTP API経由でトランザクションEメールを送信する場合に、貴社のHubSpotアカウントに代わって送信できる権限のないドメインを使用すると、エラーが発生します。 > [!WARNING] > > **注**: SMTP APIの全てのメソッドに、認証用の[OAuthトークン](/docs/apps/legacy-apps/authentication/oauth-quickstart-guide)が必要です。 SMTP APIトークンのパスワードを作成、取得、削除、およびリセットするための以下のメソッドはいずれも、APIではなく[HubSpotアカウント内](https://knowledge.hubspot.com/marketing-email/send-transactional-emails#send-a-transactional-email-using-the-smtp-api)でも実行することができます。 ### 新しいSMTP APIトークンを作成する 新しいSMTP APIトークンを作成するには、`POST`リクエストを`/marketing/v3/transactional/smtp-tokens/`に送信します。 リクエストの本文には、以下のプロパティーから成るJSON形式のオブジェクトが必要です。 * `createContact`:Eメールの受信者に対応するコンタクトを作成するかどうかを示します。 * `campaignName`:SMTP APIトークンに関連付けるキャンペーンの名前。 このリクエストに対するレスポンスには、以下の要素から成るSMTPトークンオブジェクトが含まれます。 * `id`:HubSpotのSMTPサーバーにログインするためのユーザー名。 * `createdBy`:トークン作成リクエストを送信したユーザーのEメールアドレス。 * `password`:HubSpotのSMTPサーバーにログインするためのパスワード。 * `emailCampaignId`:トークン作成リクエストで指定した、キャンペーンに割り当てる識別子。 * `createdAt`:トークンの作成時に生成されたタイムスタンプ。 * `createContact`:Eメールの受信者に対応するコンタクトを作成するかどうかを示します。 * `campaignName`:トークンに関連付けられたキャンペーンの名前。 トークンが作成されたら、`id`と`password`の値を使用して[HubSpotのSMTPサーバーにログイン](#log-in)できます。 トークンのパスワードは、作成時にのみ取得できます。パスワードを忘れた場合、または新しいパスワードを設定する場合は、[トークンのパスワードをリセットする](#manage-existing-tokens)必要があります。 ### トークンの無効化と有効期限 潜在的なセキュリティーインシデントから開発者を保護するために、HubSpotはGitHubリポジトリーで公開されているSMTP認証トークンをモニタリングし、無効化します。検出されたSMTPトークンは自動的に無効になり、Eメールとアプリ内通知で通知されます。その後は新しいトークンを生成し、連携を更新して、失効したトークンを置き換えることができます。詳細については[トークンの無効化を自動化する方法](/docs/apps/legacy-apps/authentication/oauth-quickstart-guide#refreshing-oauth-tokens)をご確認ください。 ![smtpトークン自動無効化バナー](https://www.hubspot.com/hubfs/Knowledge_Base_2023_2024/smtp-token-automatic-deactivation-banner.png) 公開APIで生成したSMTP APIトークンの有効期限は12か月です。有効期限を迎えると、自動的に削除されます。[HubSpotアカウント内](https://knowledge.hubspot.com/marketing-email/send-transactional-emails#send-a-transactional-email-using-the-smtp-api)で直接作成されたトークンは、自動的には失効しません。 ### SMTPトークンを取得する ここでは、API経由でトークンデータを取得する方法を説明します。 #### キャンペーンごとにSMTP APIトークンのリストを取得する キャンペーン名に基づいてトークンのリストを取得するか、キャンペーンIDに基づいて1つのトークンを取得するには、`GET`リクエストを`/marketing/v3/transactional/smtp-tokens`に送信します。 `campaignName`または`emailCampaignId`のパラメーターもリクエストに含める必要があります。リクエストの詳細については、[トランザクションEメールのエンドポイントのリファレンスドキュメント](/docs/api-reference/marketing-transactional-single-send-v3/guide)をご確認ください。 **レスポンスの詳細** このリクエストに対するレスポンスには、最上位フィールドとして`results`と`paging`が含まれます。 * `results`:以下の要素から成る`SmtpApiTokenView`のコレクション。 * `id`:HubSpotのSMTPサーバーにログインするためのユーザー名。 * `createdBy`:トークン作成リクエストを送信したユーザーのEメールアドレス。 * `emailCampaignId`:トークン作成リクエストで指定した、キャンペーンに割り当てる識別子。 * `createdAt`:トークンの作成時に生成されたタイムスタンプ。 * `createContact`:Eメールの受信者に対応するコンタクトを作成するかどうかを示します。 * `campaignName`:トークンに関連付けられたキャンペーンの名前。 * `paging`:さらに結果をリクエストするための`next.after`フィールドが含まれます。 #### 単一のSMTP APIトークンを照会する IDに基づいて単一のSMTP APIトークンを照会するには、`GET`リクエストを`/marketing/v3/transactional/smtp-tokens/{tokenId}`に送信します。 ##### レスポンスの詳細 このリクエストに対するレスポンスには、以下の要素から成る`SmtpApiTokenView`が含まれます。 * `id`:HubSpotのSMTPサーバーにログインするためのユーザー名。 * `createdBy`:トークン作成リクエストを送信したユーザーのEメールアドレス。 * `emailCampaignId`:トークン作成リクエストで指定した、キャンペーンに割り当てる識別子。 * `createdAt`:トークンの作成時に生成されたタイムスタンプ。 * `createContact`:Eメールの受信者に対応するコンタクトを作成するかどうかを示します。 * `campaignName`:トークンに関連付けられたキャンペーンの名前。 ### 既存のトークンを管理する トークンを作成した後、API経由でパスワードをリセットしたり、トークンを削除したりすることができます。 #### パスワードをリセットする トークンのパスワードをリセットするには、POSTリクエストを`/marketing/v3/transactional/smtp-tokens/{tokenId}/password-reset`に送信します。 このリクエストに対するレスポンスには、以下の要素から成る`SmtpApiTokenView`が含まれます。 * `id`:HubSpotのSMTPサーバーにログインするためのユーザー名。 * `createdBy`:トークン作成リクエストを送信したユーザーのEメールアドレス。 * `emailCampaignId`:トークン作成リクエストで指定した、キャンペーンに割り当てる識別子。 * `createdAt`:トークンの作成時に生成されたタイムスタンプ。 * `createContact`:Eメールの受信者に対応するコンタクトを作成するかどうかを示します。 * `campaignName`:トークンに関連付けられたキャンペーンの名前。 #### トークンを削除する 単一のSMTP APIトークンを削除するには、DELETEリクエストを`/marketing/v3/transactional/smtp-tokens/{tokenId}`に送信します。 このリクエストに対するレスポンスにコンテンツは含まれません。 ### HubSpotのSMTPサーバーにログインする ここでは、トークンで指定されたユーザー名(`id`)とパスワードを使用してHubSpotのSMTPサーバーにログインする方法を説明します。 * **SMTPホスト名** * EUを拠点にしていない場合は、ホスト名として`smtp.hubapi.com`を使用します。 * EUを拠点にしている場合は、ホスト名として`smtp-eu1.hubapi.com`を使用します。 * **SMTPポート** * STARTTLSの場合は、ポート25または587を使用できます。 * 直接TLSの場合は、ポート465を使用します。 * **SMTPユーザー名**: IDフィールドで指定します。 * **SMTPパスワード**: passwordフィールドで指定します。 ## 1回送信API 1回送信APIでは、JSON形式の`POST`リクエストを使用して、HubSpotのEメールツールで作成したテンプレートEメールを送信できます。このAPI経由で送信するEメールは、Eメールアドレスに基づいて自動的にコンタクトレコードに関連付けられます。Eメールアドレスが一致するコンタクトがない場合、そのEメールアドレスのコンタクトが新たに作成されます。Eメールを送信する際にコンタクトを作成しない場合は、[SMTP API](#SMTP-API)を使用してください。 ### Eメールテンプレートを作成して公開する まず、[HubSpot上でEメールを設定](https://knowledge.hubspot.com/marketing-email/send-transactional-emails)します。Eメールを作成したら、APIリクエストの本文で受信者の詳細(Eメールテンプレートに設定済みのコンタクトやカスタムプロパティーを含む)を設定できます。APIリクエストを行う前に、EメールのIDが必要です。 * Eメールを公開せずに下書きのままにしている場合、EメールエディターでURLからEメールIDを取得できます。URLの最後のスラッシュ文字(`/`)の前にある最後の数値がEメールIDです(例:`https://app.hubspot.com/email/{PORTAL_ID}/edit/{EMAIL_ID}/settings`)。 ![1回送信APIで送信する下書き中EメールのEメールID](https://www.hubspot.com/hubfs/Knowledge_Base_2023/email-id-for-drafted-single-send-api-email.png) * Eメールを公開している場合は、Eメールの詳細ページからEメールIDをコピーできます。 ![Screen Shot 2020-04-15 at 1.00.37 PM](https://cdn2.hubspot.net/hubfs/53/Screen%20Shot%202020-04-15%20at%201.00.37%20PM.png) > [!WARNING] > > **注**: HubSpotは、このAPIを介して送信されたHTML/JSONを保存しません。受信者のコンタクトのタイムラインからEメールテンプレートを確認できますが、Eメールの内容を記録したい場合は、EメールにBCCを追加することをお勧めします。 ### 1回送信APIを使用してEメールを送信する 1回送信APIを使ってEメールを送信するには、`POST`リクエストを`/marketing/v3/transactional/single-email/send`に送信します。 このリクエストに対するレスポンスには、以下のフィールドが含まれます。 * `requestedAt`:送信がリクエストされた時刻のタイムスタンプ。 * `statusId`:[送信のステータスを照会する](#query-the-status-of-an-email-send)際に使用できる識別子。 * `status`:送信リクエストのステータス。`PENDING`、`PROCESSING`、`CANCELED``COMPLETE`があります。 ### リクエストのプロパティー リクエストの本文には、以下のプロパティーから成るJSON形式のオブジェクトが必要です。 * `emailId` * `message` * `contactProperties` * `customProperties` #### emailId `emailId`フィールドには、トランザクションEメールのコンテンツIDを指定します。このIDは、HubSpotのEメールツールで確認できます。 #### message Messageフィールドは、明示的に変更する項目から成るJSONオブジェクトです。少なくとも`to`フィールドを含める必要があります。 Messageオブジェクトに含まれるフィールドは以下の通りです。 * `to`:Eメールの受信者。 * `from`:Eメールの「From」ヘッダー。送信者名は、`"from":"Sender Name "`の形式で定義できます。 * `sendId`:送信のID。同じ`sendId`が割り当てられたEメールがアカウント内で2通以上送信されることはありません。このフィールドは、Eメールの重複送信を防止する目的で追加することができます。 * `replyTo`:Eメールの「Reply-To」ヘッダーの値のJSONリスト。 * `cc`:CCとして送信するEメールアドレスのJSONリスト。 * `bcc`:BCCとして送信するEメールアドレスのJSONリスト。 #### contactProperties `contactProperties`フィールドは、コンタクトのプロパティー値のJSONマップです。コンタクトの各プロパティー値には、`name`と`value`が含まれます。各プロパティーはコンタクトレコード上に設定され、テンプレートで以下の項目の下に表示されます。 ![トランザクションEメールのテンプレート内の名前トークン](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/name-token-in-template-for-transactional-email.png) これらのプロパティーは、Eメールの送信時にコンタクトのプロパティーを設定する場合に使用します。例えば、領収書メールの送信時に`last_paid_date`プロパティーを設定すると、前回の支払いに関する情報を提供できます。 ```json theme={null} { "emailId": 4126643121, "message": { "to": "jdoe@hubspot.com" "sendId": "6" }, "contactProperties": { "last_paid_date": "2022-03-01", "firstname": "jane" } } ``` #### customProperties `customProperties`フィールドは、キーと値のプロパティーのJSONマップです。一般的に、これらのプロパティーはEメールを受信するコンタクトではなく、Eメール自体に関連しています。これらのプロパティーは、[ウェブページ形式のEメール](https://knowledge.hubspot.com/marketing-email/create-a-web-version-of-your-marketing-email)にも、コンタクトのタイムライン上のEメールのビューにも表示されません。また、HubSpot上にも保存されず、送信Eメールにのみ含められます。 `customProperties`フィールドの各キーは、`custom`変数に含まれるフィールドの[HubL式](/docs/cms/reference/hubl/overview)を使用して、テンプレート内で参照できます(例:`{{ custom.NAME_OF_PROPERTY }}`)。 例えば、Eメールテンプレートが`purchaseUrl`と`productName`の2つのプロパティーを参照している場合、以下のリクエスト本文によって、これらのプロパティーに関連付ける値を指定できます。 ```json theme={null} { "emailId": 4126643121, "message": { "to": "jdoe@hubspot.com" "sendId": "6" }, "customProperties": { "purchaseUrl": "https://example.com/link-to-product", "productName": "vanilla" } } ``` これにより、Eメールテンプレートでこれらのプロパティーを参照できるようになります。 ```html theme={null}

        Congrats on purchasing some of the best ice cream around.

        {{custom.productName}} ``` [プログラマブルEメールコンテンツ](/docs/cms/start-building/features/data-driven-content/hubdb/video)で`customProperties`フィールドを使用する場合、このフィールドの値としてサポートされるのは配列のみです。Eメールテンプレートでは[HubL式](/docs/cms/reference/hubl/overview)を使用して、`customProperties`フィールドで定義されたアイテムを参照できます([forループ](/docs/cms/reference/hubl/loops)を使用してリスト内の各アイテムをレンダリングするなど)。例えば、リクエスト本文に含めた`customProperties`が以下のJSONスニペットのように構成されているとします。 ```json theme={null} { "emailId": 4126643122, "message": { "to": "jdoe@hubspot.com" "sendId": "7" }, "customProperties": { "exampleArray": [ {"firstKey": "someValue", "secondKey": "anotherValue"}, {"firstKey": "value1", "secondKey": "value2" } ] } } ``` この場合、以下のHubLコードを使用して`exampleArray`の各項目の値を参照できます。 ```html theme={null}

        Thanks for your recent purchase! Here are the details of the items you'll be receiving:

          {% for item in custom.exampleArray %}
        • First key: {{ item.firstKey }}, Second key: {{item.secondKey}}
        • {% endfor %}
        ``` 送信されたトランザクションEメールでは、関連付けられたプログラマブルEメールテンプレートの内容が以下のようにレンダリングされます。 ![customProperties配列を含むトランザクションEメールのサンプル](https://www.hubspot.com/hubfs/Knowledge_Base_2021/Developer/example-transactional-email-with-customProperties-array.png) ### Eメール送信のステータスを照会する Eメール送信のステータスを調べるには、`GET`リクエストを`https://api.hubapi.com/marketing/v3/email/send-statuses/{statusId}`に送信します。 このリクエストに対するレスポンスには、以下のフィールドが含まれます。 * `sendResult`:Eメールの送信ステータスを表す列挙フィールド。使用される値については[後述](#sendresult)します。 * `requestedAt`:送信がリクエストされた時刻のタイムスタンプ。 * `startedAt`:送信の処理が開始された時刻のタイムスタンプ。 * `completedAt`:送信が完了した時刻のタイムスタンプ。 * `statusId`:送信のステータスを照会する際に使用できる識別子。 * `status`:送信リクエストのステータス。`PENDING`、`PROCESSING`、`CANCELED``COMPLETE`があります。 * `eventId`:Eメールが送信された場合、送信イベントのIDと送信時に生成されたタイムスタンプ。 #### sendResult `sendResult`はEメールの送信試行の結果を反映する列挙フィールドです。使用される値は以下の通りです。 * `SENT`:Eメールが正常に送信されました。 * `QUEUED`:Eメールがキューに追加され、キューによる送信処理を待機中です。 * `PORTAL_SUSPENDED`:[利用規定](https://legal.hubspot.com/acceptable-use)の違反により、このHubSpot利用企業のEメールは停止されています。 * `INVALID_TO_ADDRESS`:受信者のアドレスが無効です。このエラーは、役割ベースの先頭文字(`abuse`、`no-reply`、`noreply`、`root`、`spam`、`security`、`undisclosed-recipients`、`unsubscribe`、`inoc`、`postmaster`、`privacy`)のいずれかがメールアドレスに含まれるメールを送信しようとした場合にも発生します。 * `BLOCKED_DOMAIN`:現時点ではドメインがHubSpotからのEメールを受信できません。 * `PREVIOUSLY_BOUNCED`:以前この受信者へのEメールにバウンスが発生したため、送信ロジックに基づき送信が行われませんでした。 * `PREVIOUS_SPAM`:この受信者は以前に同様のEメールをスパムに分類しました。 * `INVALID_FROM_ADDRESS`:送信者アドレスが無効です。 * `MISSING_CONTENT`:`emailId`が無効か、`emailId`が1回送信用として設定されていないEメールと一致します。 * `MISSING_TEMPLATE_PROPERTIES`:リクエストとして送信した`customProperties`に含まれていないプロパティーが、テンプレートに設定されています。 # Retrieve conversation recap data Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/notetaker/get-conversation-recap specs/2026-09/crm-notetaker-conversation-recap-v2026-09.json GET /notetaker/2026-09/conversation/recap/{objectTypeId}/{objectId} 指定されたオブジェクトタイプとオブジェクトIDに基づいて、コミュニケーションの概要を取得します。このエンドポイントは、概要、アクション項目、質問内容、コール統計、参加者、レコーディングURLなど、コミュニケーションに関連するさまざまな分析情報を提供します。 > **Supported products** > **Required Scopes** # Notetaker conversations recap API Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/notetaker/guide # Create a new calendar event for a meeting Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/scheduler/calendar/create-calendar-event specs/2026-09/scheduler-meetings-v2026-09.json POST /scheduler/2026-09/meetings/calendar HubSpotアカウントで新しいカレンダーミーティングイベントを作成します。このエンドポイントを使用すると、ミーティングのタイトル、開始時刻と終了時刻、関連付けられたユーザーなどの詳細を指定できます。ミーティングの主催者を識別するには、organizerUserIdが必要です。 > **Supported products** > **Required Scopes** # Meetings scheduler API Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/scheduler/guide # Book Meeting Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/scheduler/meetings/create-meeting specs/2026-09/scheduler-meetings-v2026-09.json POST /scheduler/2026-09/meetings/meeting-links/book 指定されたミーティングリンクを使用してミーティングを予約します。このエンドポイントを使用すると、所要時間、Eメールアドレス、開始時刻などの必要な詳細を指定してミーティングを作成できます。HubSpot APIを通じてプログラムでミーティングをスケジュールする場合に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve availability Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/scheduler/meetings/get-availability specs/2026-09/scheduler-meetings-v2026-09.json GET /scheduler/2026-09/meetings/meeting-links/book/availability-page/{slug} HubSpotアカウントのミーティングリンクを使用してミーティングを予約します。このエンドポイントでは、ミーティングの所要時間、開始時刻、参加者情報などの詳細を指定できます。事前定義されたミーティングリンクを通じて外部の参加者とのミーティングをスケジュールする場合に役立ちます。 > **Supported products** > **Required Scopes** # Retrieve meeting links Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/scheduler/meetings/get-meeting-links specs/2026-09/scheduler-meetings-v2026-09.json GET /scheduler/2026-09/meetings/meeting-links HubSpotアカウントで利用可能なミーティングリンクのリストを取得します。このエンドポイントでは、ミーティング名、主催者のユーザーID、ミーティングタイプなど、さまざまな条件で結果を絞り込むことができます。大量の結果を移動できるよう、ページ分割をサポートしています。 > **Supported products** > **Required Scopes** # Retrieve booking info Source: https://developers.hubspot.jp/docs/api-reference/latest/meetings/scheduler/meetings/get-meeting-slug specs/2026-09/scheduler-meetings-v2026-09.json GET /scheduler/2026-09/meetings/meeting-links/book/{slug} スラッグを使用して、特定のミーティングリンクの詳細な予約情報を取得します。このエンドポイントは、ミーティングリンクに関連付けられた空き状況や設定に関する分析情報を提供します。予約に関する背景情報を把握し、正しいタイムゾーンが適用されていることを確認するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve payment accounts status Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-accounts/get-payment-account specs/2026-09/commerce-paymentsaccounts-v2026-09.json GET /commerce/payment-accounts/2026-09/status HubSpotアカウントの支払い口座のステータスを取得します。このエンドポイントは、アカウントの決済および入金能力、登録状態、最終決済日時、および要件を満たしている決済代行事業者タイプに関する情報を提供します。これを使用して、支払い口座の運用ステータスを監視および管理します。 > **Supported products** > **Required Scopes** # Payments accounts API Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-accounts/guide # Create a payment link Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-links/create-payment-link specs/2026-09/commerce-payment-links-v2026-09.json POST /commerce/payment-links/2026-09/payment-links HubSpotアカウントで新しい支払いリンクを作成します。このエンドポイントを使用すると、支払い方法、通貨、追加のフォームフィールドなど、支払いリンクのさまざまな属性を指定できます。支払いリンクは1回限りの使用に設定でき、配送先住所と請求先住所を収集することもできます。この操作には有効なJSONリクエスト本文が必要です。値が指定されていない場合は、いくつかのデフォルトが適用されます。 > **Supported products** > **Required Scopes** # Delete a payment link Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-links/delete-payment-link specs/2026-09/commerce-payment-links-v2026-09.json DELETE /commerce/payment-links/2026-09/payment-links/{paymentLinkId} HubSpotアカウント内の特定の支払いリンクを削除します。この操作は元に戻すことができず、指定されたIDで識別される支払いリンクが削除されます。このエンドポイントを使用して、不要になった支払いリンクを管理および整理します。 > **Supported products** > **Required Scopes** # Retrieve a payment link Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-links/get-payment-link specs/2026-09/commerce-payment-links-v2026-09.json GET /commerce/payment-links/2026-09/payment-links/{paymentLinkId} 固有IDを使用して、特定の支払いリンクの詳細を取得します。このエンドポイントを使用すると、支払いリンクのステータスや設定などの情報にアクセスできます。HubSpotアカウントで支払いリンクの現在の設定やステータスを確認するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve payment links Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-links/get-payment-links specs/2026-09/commerce-payment-links-v2026-09.json GET /commerce/payment-links/2026-09/payment-links HubSpotアカウントから支払いリンクのリストを取得します。このエンドポイントでは、作成日時や更新日時などのさまざまな条件に基づいて支払いリンクを絞り込みおよび並べ替えることができます。ページ分割をサポートしており、指定した場合はアーカイブされた支払いリンクを含めることもできます。 > **Supported products** > **Required Scopes** # Payment links API Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-links/guide # Update a payment link Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/payment-links/update-payment-link specs/2026-09/commerce-payment-links-v2026-09.json PATCH /commerce/payment-links/2026-09/payment-links/{paymentLinkId} IDで支払いリンクを更新します。 > **Supported products** > **Required Scopes** # Activate a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/activate-price-book specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/activate HubSpotアカウントで特定の価格表を有効化します。この操作により、価格表のステータスが「有効」に変更され、取引やその他の操作で使用できるようになります。有効化する前に、価格表IDが正しいことを確認してください。 > **Supported products** > **Required Scopes** # Create a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/create-price-book specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books HubSpotアカウントで新しい価格表を作成します。このエンドポイントでは、価格表のカスタムプロパティー、名前、およびサポートされている通貨を定義できます。リクエストが正常に完了すると、新しく作成されたリソースのURLが返されます。 > **Supported products** > **Required Scopes** # Deactivate a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/deactivate-price-book specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/deactivate HubSpotアカウントで特定の価格表を無効化します。この操作により、価格表のステータスが「無効」に変更され、取引で使用できなくなります。価格表を削除せずに一時的または永続的に無効にする必要がある場合は、このエンドポイントを使用してください。 > **Supported products** > **Required Scopes** # Delete a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/delete-price-book specs/2026-09/commerce-price-books-v2026-09.json DELETE /commerce/price-books/2026-09/price-books/{priceBookId} 固有IDを使用して、HubSpotアカウントから特定の価格表を削除します。この操作により、価格表とその関連データは完全に削除され、今後使用できなくなります。 > **Supported products** > **Required Scopes** # Retrieve a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/get-price-book specs/2026-09/commerce-price-books-v2026-09.json GET /commerce/price-books/2026-09/price-books/{priceBookId} HubSpotアカウントで、固有IDを使用して特定の価格表を取得します。このエンドポイントを使用すると、価格表のステータスやサポートされている通貨など、詳細情報にアクセスできます。これは、コマースシステム内で価格戦略を管理および確認するのに役立ちます。 > **Supported products** > **Required Scopes** # Retrieve price books Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/get-price-books specs/2026-09/commerce-price-books-v2026-09.json GET /commerce/price-books/2026-09/price-books HubSpotアカウントで利用可能な価格表のリストを取得します。このエンドポイントはページ分割をサポートしており、指定された場合はアーカイブ済みの価格表も返します。さまざまな製品やサービスの価格情報にアクセスして管理するのに役立ちます。 > **Supported products** > **Required Scopes** # Price books API Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/guide # Add a product to a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/add-product-to-price-book specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/items HubSpotアカウントの指定された価格表に新しい項目を追加します。このエンドポイントでは、必要な製品詳細を提供することで、製品を価格表に関連付けることができます。価格表の内容を効率的に管理および更新するのに役立ちます。 > **Supported products** > **Required Scopes** # Archive price book items Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/batch/batch-archive-price-book-items specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/archive 指定された価格表内の複数の項目を単一のバッチ操作でアーカイブします。このエンドポイントは、同時にアーカイブする必要がある大量の価格表項目を管理するのに役立ち、プロセスを効率化し、個別のリクエスト数を削減します。 > **Supported products** > **Required Scopes** # Add products to a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/batch/batch-create-price-book-items specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/create 指定された価格表に複数の項目を単一のバッチ操作で作成します。このエンドポイントは、多数の項目を価格表に効率的に追加し、個別のリクエストを複数回行う必要を減らすのに役立ちます。この操作は、各項目作成の成功または失敗を示すバッチレスポンスを返します。 > **Supported products** > **Required Scopes** # Delete a price book item Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/delete-price-book-item specs/2026-09/commerce-price-books-v2026-09.json DELETE /commerce/price-books/2026-09/price-books/{priceBookId}/items/{priceBookItemId} HubSpotアカウントの価格表から特定の項目を削除します。この操作は元に戻すことができず、指定されたpriceBookIdの価格表から、指定されたpriceBookItemIdで識別される項目が完全に削除されます。 > **Supported products** > **Required Scopes** # Retrieve a price book item Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/get-price-book-item specs/2026-09/commerce-price-books-v2026-09.json GET /commerce/price-books/2026-09/price-books/{priceBookId}/items/{priceBookItemId} 固有IDを使用して、価格表から特定の項目を取得します。このエンドポイントを使用すると、指定された価格表内の、特定の項目に関する詳細情報(プロパティーや、該当する場合はアーカイブステータスなど)にアクセスできます。 > **Supported products** > **Required Scopes** # Retrieve price book items Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/get-price-book-items specs/2026-09/commerce-price-books-v2026-09.json GET /commerce/price-books/2026-09/price-books/{priceBookId}/items HubSpotアカウントの特定の価格表に関連付けられている項目リストを取得します。このエンドポイントを使用すると、項目をページ分割して、レスポンスに含めるプロパティを指定できます。これは、特定の価格表にリンクされている商品の詳細を管理および表示するのに役立ちます。 > **Supported products** > **Required Scopes** # Update a price book item Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/update-price-book-item specs/2026-09/commerce-price-books-v2026-09.json PATCH /commerce/price-books/2026-09/price-books/{priceBookId}/items/{priceBookItemId} HubSpotアカウントの価格表内の特定の項目を更新します。この操作により、指定した項目の価格、請求頻度、カスタムプロパティーなどの詳細を変更できます。項目が固有のpriceBookIdとpriceBookItemIdによって正しく識別されていることを確認してください。 > **Supported products** > **Required Scopes** # Update a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/update-price-book specs/2026-09/commerce-price-books-v2026-09.json PATCH /commerce/price-books/2026-09/price-books/{priceBookId} HubSpotアカウントの既存の価格表を更新します。この操作では、価格表の名前、説明、対応通貨、カスタムプロパティーなどの詳細を変更できます。価格表の情報を最新の状態に保つのに役立ちます。 > **Supported products** > **Required Scopes** # Validate a price book Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/validate-price-book specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/validate HubSpotアカウントで特定の価格表を検証します。このエンドポイントは、指定されたpriceBookIdで識別される価格表の整合性と正確性を確認します。この機能を使用して、さらなる操作に進む前に、価格表が必要なすべての条件を満たしていることを確認してください。 > **Supported products** > **Required Scopes** # Update price book items Source: https://developers.hubspot.jp/docs/api-reference/latest/revenue/price-books/items/batch/batch-update-price-book-items specs/2026-09/commerce-price-books-v2026-09.json POST /commerce/price-books/2026-09/price-books/{priceBookId}/items/batch/update 指定された価格表内の複数の項目を単一のバッチ操作で更新します。このエンドポイントを使用すると、価格表項目を効率的に更新できるため、価格表内の大量のデータを管理するのに役立ちます。この操作は、各項目の更新の成功または失敗を示すバッチレスポンスを返します。 > **Supported products** > **Required Scopes** # Webhooks journal and management APIs (2026-09) Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/guide # Get the earliest journal entry Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/aggregate/get-journal-earliest specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal/2026-09/earliest 指定されたポータルのWebhookジャーナルから最も古いエントリーを取得します。このエンドポイントは、ジャーナルに最初に記録されたWebhookイベントにアクセスするのに便利で、監査やデバッグの目的で役立ちます。 > **Supported products** # Get journal status Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/aggregate/get-journal-status specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal/2026-09/status/{statusId} 固有のステータスIDを使用して、特定のWebhookジャーナルエントリーのステータスを取得します。このエンドポイントは、保留中、処理中、完了、失敗、期限切れなど、ステータスに関する詳細情報を提供します。Webhookジャーナルエントリーの状態を監視および管理するのに役立ちます。 > **Supported products** # Read journal entries in batch Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/aggregate/get-read specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json POST /webhooks-journal/journal/2026-09/batch/read 指定された日付(2026年3月)のWebhookジャーナルに対してバッチ読み取り処理を実行します。このエンドポイントを使用すると、1つのリクエストでWebhookジャーナルから複数のエントリーを取得でき、大量のデータを効率的に処理するのに役立ちます。リクエスト本文が必要な形式で提供されていることを確認してください。 > **Supported products** # Webhook journal APIs Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/guide # Get the earliest local journal entries in batch Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/local/batch/get-webhook specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal-local/2026-09/batch/earliest/{count} Webhookジャーナルエントリーの最も古いバッチを取得します。このエンドポイントは、Webhookジャーナルで利用可能な最も古いデータにアクセスするのに役立ち、ユーザーは過去のWebhookイベントを処理または分析できます。取得するエントリーの数は、「count」パスパラメーターで指定されます。 > **Supported products** # Get the latest local journal entries in batch Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/local/batch/get-webhook-count specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal-local/2026-09/batch/latest/{count} 最新のWebhookジャーナルエントリーをバッチ取得します。このエンドポイントを使用すると、取得するエントリーの数を指定して、HubSpotアカウントで処理された最新のWebhookイベントにアクセスできます。 > **Supported products** # Read local journal entries in batch Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/local/batch/get-webhooks specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json POST /webhooks-journal/journal-local/2026-09/batch/read Webhookジャーナルでバッチ読み取り処理を実行します。このエンドポイントを使用すると、必要な入力データを提供することで、Webhookジャーナルエントリーをバッチ取得できます。これは、単一のリクエストで複数のレコードを処理し、データ取得タスクを効率化するのに役立ちます。 > **Supported products** # Get the earliest local journal entry Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/local/get-journal-local-earliest specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal-local/2026-09/earliest 指定されたポータルの最も古いWebhookジャーナルエントリーを取得します。このエンドポイントは、Webhookジャーナルで利用可能な最も古いレコードにアクセスするために使用でき、監査や履歴分析に役立つ場合があります。 > **Supported products** # Get the latest local journal entry Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/local/get-journal-local-latest specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal-local/2026-09/latest 指定されたポータルのWebhookジャーナルから最新のエントリーを取得します。このエンドポイントは、ログに記録された最新のWebhookイベントにアクセスし、Webhookアクティビティーのリアルタイム監視やデバッグに役立ちます。 > **Supported products** # Get the next local journal entry Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/local/get-journal-local-next specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal-local/2026-09/offset/{offset}/next 指定されたオフセットから開始して、次のWebhookジャーナルエントリーのセットを取得します。このエンドポイントは、大量のWebhookデータをページ分割し、前回のリクエストが中断したところから続行する場合に役立ちます。 > **Supported products** # Get local journal status Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/journal-entries/local/get-journal-local-status specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/journal-local/2026-09/status/{statusId} 固有のステータスIDを使用して、特定のWebhookジャーナルエントリーのステータスを取得します。このエンドポイントは、Webhookジャーナルエントリーの進行状況や結果を監視する場合に便利であり、エントリーが保留中、進行中、完了、失敗、期限切れのいずれであるかを確認できます。 > **Supported products** # Create CRM object snapshots Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/snapshots/create-webhook specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json POST /webhooks-journal/snapshots/2026-09/crm HubSpotでCRMオブジェクトのスナップショットをバッチ作成します。このエンドポイントは、後で参照または分析するために、指定されたCRMオブジェクトの現在の状態を取得するために使用されます。スナップショットを作成するCRMオブジェクトの詳細を含むJSONペイロードが必要です。この処理は、日次および10秒ごとのレート制限の対象外です。 > **Supported products** # Webhook CRM snapshots API Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/snapshots/guide # Create a subscription filter Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/create-filters specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json POST /webhooks-journal/subscriptions/2026-09/filters HubSpotアカウントで、特定のWebhook配信登録の新しいフィルターを作成します。このエンドポイントを使用すると、Webhookをトリガーする条件を定義できます。フィルターはIDで識別される配信登録に関連付けられており、リクエストにはフィルターの詳細を含める必要があります。 > **Supported products** # Create or update a subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/create-subscription specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json POST /webhooks-journal/subscriptions/2026-09 指定されたポータルで新しいWebhookジャーナル配信登録を作成します。このエンドポイントでは、配信登録が監視するアクションとオブジェクトタイプを定義できます。配信登録の詳細を含むリクエストボディが必要です。 > **Supported products** # Delete a subscription filter Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/delete-filter specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json DELETE /webhooks-journal/subscriptions/2026-09/filters/{filterId} Webhookジャーナル配信登録から特定のフィルターを削除します。この操作は、不要になったフィルターを管理およびクリーンアップするのに役立ちます。一度削除されたフィルターは復元できません。 > **Supported products** # Delete a subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/delete-subscription specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json DELETE /webhooks-journal/subscriptions/2026-09/{subscriptionId} 固有IDを使用して、特定のWebhookジャーナル配信登録を削除します。この操作は、HubSpotアカウントで不要になった配信登録を管理およびクリーンアップする場合に便利です。 > **Supported products** # Delete all subscriptions for an account Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/delete-subscriptions-by-portal specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json DELETE /webhooks-journal/subscriptions/2026-09/portals/{portalId} 特定のポータルのWebhookジャーナル配信登録を削除します。この操作により、指定されたportalIdに関連付けられた配信登録が削除され、このポータルに対してそれ以上Webhookイベントが送信されなくなります。このエンドポイントを使用して、不要になった配信登録を管理およびクリーンアップします。 > **Supported products** # Get a subscription filter Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/get-filter specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/subscriptions/2026-09/filters/{filterId} Webhookジャーナル配信登録に関連付けられた特定のフィルターを取得します。このエンドポイントを使用すると、filterIdで識別されるフィルターの詳細にアクセスできます。これは、Webhookイベントに適用される条件を管理および理解するのに役立ちます。 > **Supported products** # Get filters for a subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/get-filters-by-subscription specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/subscriptions/2026-09/filters/subscription/{subscriptionId} 特定のWebhook配信登録に関連付けられているフィルターを取得します。このエンドポイントでは、配信登録に適用されているフィルターを表示でき、Webhookイベントに設定されている条件を管理および理解するのに役立ちます。 > **Supported products** # Get all subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/get-subscriptions specs/2026-09/webhooks-journal-webhooks-journal-v2026-09.json GET /webhooks-journal/subscriptions/2026-09 Webhookジャーナル配信登録のリストを取得します。このエンドポイントでは、ページ分割なしで配信登録の詳細にアクセスできるため、現在のすべての配信登録を1回のリクエストで確認できます。アプリのWebhook配信登録を管理および確認するのに役立ちます。 > **Supported products** # Webhooks journal management APIs (2026.03) Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/guide # Update event subscriptions in batch Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks-journal/subscriptions/update-webhooks specs/2026-09/webhooks-webhooks-v2026-09.json POST /app-webhooks/2026-09/{appId}/subscriptions/batch/update 指定されたアプリのイベント配信登録をバッチ作成します。 > **Supported products** # Webhooks API guide Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/guide # Batch create event subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/batch/create-webhooks specs/2026-09/webhooks-webhooks-v2026-09.json POST /app-webhooks/2026-09/{appId}/subscriptions/batch/update 指定されたアプリのイベント配信登録をバッチ作成します。 > **Supported products** > **Required Scopes** # Create an event subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/create-webhook-appId specs/2026-09/webhooks-webhooks-v2026-09.json POST /app-webhooks/2026-09/{appId}/subscriptions 指定されたアプリの新しいイベント配信登録を作成します。 > **Supported products** > **Required Scopes** # Delete webhook settings Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/delete-webhook-appId specs/2026-09/webhooks-webhooks-v2026-09.json DELETE /app-webhooks/2026-09/{appId}/settings 指定されたアプリのWebhook設定を削除します。イベント配信登録は削除されませんが、別のWebhookが作成されるまで一時停止されます。 > **Supported products** > **Required Scopes** # Read an event subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/get-webhook-subscriptionId specs/2026-09/webhooks-webhooks-v2026-09.json GET /app-webhooks/2026-09/{appId}/subscriptions/{subscriptionId} IDを基準に特定のイベント配信登録を取得します。 > **Supported products** > **Required Scopes** # Read webhook settings Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/get-webhooks-appId specs/2026-09/webhooks-webhooks-v2026-09.json GET /app-webhooks/2026-09/{appId}/settings 指定されたアプリのWebhook設定(WebhookのターゲットURL、抑制設定、作成/更新日など)を取得します。 > **Supported products** > **Required Scopes** # Read event subscriptions Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/get-webhooks-subscriptions specs/2026-09/webhooks-webhooks-v2026-09.json GET /app-webhooks/2026-09/{appId}/subscriptions 指定されたアプリのイベント配信登録を取得します。 > **Supported products** > **Required Scopes** # Update webhook settings Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/update-webhook specs/2026-09/webhooks-webhooks-v2026-09.json PUT /app-webhooks/2026-09/{appId}/settings 指定されたアプリのWebhook設定を更新します。 > **Supported products** > **Required Scopes** # Update an event subscription Source: https://developers.hubspot.jp/docs/api-reference/latest/webhooks/subscriptions/update-webhook-subscriptionId specs/2026-09/webhooks-webhooks-v2026-09.json PATCH /app-webhooks/2026-09/{appId}/subscriptions/{subscriptionId} IDを基準に既存のイベント配信登録を更新します。 > **Supported products** > **Required Scopes** # 設定プロファイルを使用してビルド Source: https://developers.hubspot.jp/docs/developer-tooling/local-development/build-with-config-profiles # 設定可能なテストアカウントを使用してHubSpotアプリをテスト Source: https://developers.hubspot.jp/docs/developer-tooling/local-development/configurable-test-accounts HubSpotのサブスクリプションをシミュレートするテストアカウントを設定して、包括的なアプリテストを実施できます。 HubSpotアプリを開発する際に、実環境に近い完全に独立した環境でテストできることで、アプリの品質向上と、予期せぬ動作の最小化に役立ちます。設定可能なテストアカウントを使用して、HubSpotのさまざまなサブスクリプションとエディションの組み合わせをシミュレートできるため、変更を本番環境にロールアウトする前に、より包括的にアプリをテストできます。 設定可能なテストアカウントは、HubSpot上、またはCLIから作成および管理できます。また、設定可能なテストアカウントをゼロから作成したり、設定ファイルをアップロードして完全に自動化されたCI/CD(継続的インテグレーション/継続的デプロイメント)ワークフローを有効にしたりすることもできます。 ## 前提条件 設定可能なテストアカウントを作成するには、プラットフォームバージョン`2025.2`以降でプロジェクトを開発し、CLIバージョン`7.6.0`以降を使用することが必要です。 * 新しいプロジェクトを作成するか、既存のプロジェクトを移行するには、[開発者プラットフォームの概要](/docs/apps/developer-platform/build-apps/overview)にアクセスして開始します。 * HubSpot CLIの最新バージョンをインストールするには、ターミナルで次のコマンドを実行します。 ```shell theme={null} npm install -g @hubspot/cli@latest ``` ## CLIを使用してテストアカウントを作成 CLIを使用して、テストアカウントをゼロから作成するか、または既存の設定ファイルから作成して設定できます。 * **ゼロから作成**: CLIを使用してテストアカウントの設定オプションを順を追って確認します。 * **設定ファイルから作成**: 事前に作成したテストアカウント設定ファイルを使用してアカウントを作成します。これは、一貫性のある[自動テストアカウント作成フロー](#automated-deployment-with-github-actions)を定義できるため、自動テストワークフローで特に有用です。 ### ゼロから作成 **1. test-accountコマンドを実行** * ターミナルで、以下のコマンドを実行します。 ```shell theme={null} hs test-account create ``` * 矢印キーを使用して[Create test account from scratch]を選択します。 > [!NOTE] > > ローカル開発を開始する際に、`hs project dev`コマンドを使用して、このテストアカウント作成フローにアクセスすることもできます。`hs project dev`の実行後に、`Test on a developer test account`を選択し、新しいアカウントをゼロから作成することができます。 **2. アカウントの詳細を設定** 引き続きターミナルのプロンプトに従ってテストアカウントの詳細を設定します。 * テストアカウントの**名前**を入力します。 * テストアカウントの**説明**を入力します。 * アカウントに割り当てる**サブスクリプション**を選択します。Hubごとに、エディションを1つまで選択できます。 設定が完了すると、HubSpotによってテストアカウントが作成され、CLIによってアカウントIDが確認されます。その後、[HubSpotでテストアカウントにアクセス](#access-and-manage-test-accounts-in-hubspot)し、ローカル開発用の[CLIで認証を行う](/docs/developer-tooling/local-development/hubspot-cli/reference#authenticate-an-account)ことができます。 ### 設定ファイルから作成 **1. 設定ファイルを生成** * 設定ファイルを生成するには、ターミナルで次のコマンドを実行します。 ```shell theme={null} hs test-account create-config ``` * ターミナルのプロンプトに従って、アカウントの詳細を設定します。 * テストアカウントの**名前**を入力します。 * テストアカウントの**説明**を入力します。 * アカウントに割り当てる**サブスクリプション**を選択します。Hubごとに、エディションを1つまで選択できます。 * 設定ファイルの**ローカルパス**を入力します。後でアカウントを作成するときにこのパスを指定することになります。 これにより、HubSpotによって指定されたパスに、上記で指定した全ての詳細を含むJSON設定ファイルが作成されます。以下に例を示します。 ```json theme={null} { "accountName": "AllHubsProfessional", "description": "Professional test account", "marketingLevel": "PROFESSIONAL", "opsLevel": "PROFESSIONAL", "serviceLevel": "PROFESSIONAL", "salesLevel": "PROFESSIONAL", "contentLevel": "PROFESSIONAL" } ``` ファイルが生成されたら、CLI経由でそのファイルをHubSpotに渡すことで、新しいテストアカウントを作成できます。 **2. 新しいテストアカウントを作成** * ターミナルで、次のコマンドを実行します。 ```shell theme={null} hs test-account create ``` * [Create test account from config file]を選択します。 * 設定ファイルの**ローカルパス**を入力します。 その後、HubSpotが設定ファイルを使用してテストアカウントを作成し、CLIによってアカウントIDが確認されます。その後、[HubSpotでテストアカウントにアクセス](#access-and-manage-test-accounts-in-HubSpot)し、ローカル開発用の[CLIで認証を行う](/docs/developer-tooling/local-development/hubspot-cli/reference#authenticate-an-account)ことができます。 > [!NOTE] > > 柔軟性を向上するために、`--config-path`フラグを直接使用できます。 > > `hs test-account create --config-path ./test-portal-config.json` > > この方法により、リポジトリに複数の設定を保持できます。例えば、Starterポータル用に1つの設定を含め、Enterprise用に別の設定を含めることができます。複数の設定を保持することで、開発プロセスやQAプロセスの一環として、オンデマンドでテストアカウントを作成できます。 ## HubSpotでテストアカウントを作成 CLIを使用してテストアカウントを作成する方法に加え、HubSpotのUIを使用してテストアカウントを作成することもできます。 **1. HubSpotでの操作** * ナビゲーションバーの[開発]に進みます。 * 左側のサイドバーメニューで[テスト]>[テストアカウント]の順に進みます。 **2. 新しいテストアカウントを作成** * [開発者テストアカウント]ページで[開発者テストアカウントを作成]をクリックします。 * ダイアログボックスに**アカウント名**を入力します。 * デフォルトでは、全てのHubでEnterpriseレベルの機能のトライアルがアカウントに設定されます。Hubとエディションをカスタマイズするには[テストアカウントをカスタマイズ]チェックボックスをオンにします。次に、**ラジオボタン**を使用して、アカウントに含めるHubのエディションを選択します。 * [作成]をクリックします。 ![テストアカウントのサブスクリプションのカスタマイズオプションを示すスクリーンショット](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer/developer-test-accounts-subscription-options.png) ## HubSpotでのテストアカウントへのアクセスと管理 HubSpotでテストアカウントにアクセスするには、次の手順に従います。 * ナビゲーションバーの[開発]に進みます。 * 左側のサイドバーメニューで[テスト]>[テストアカウント]の順に進みます。 [開発者テストアカウント]ページで、現在有効なテストアカウントを表示し、必要に応じて次の操作を行います。 * 新しいタブでアカウントを開くには、テストアカウントの**名前**をクリックします。 * テストアカウントのトライアルを更新するには、[アクション]をクリックし、[トライアルの期限を延長]を選択します。 * テストアカウントを削除するには、[アクション]をクリックし、[削除]を選択します。ダイアログボックスで、テストアカウント名を入力し、[削除]をクリックして削除を確定します。 テストアカウントに割り当てられているサブスクリプションが不明な場合は、そのアカウントの[アカウントと請求]ページに移動して、以下で確認できます。 * [開発者テストアカウント]ページで、テストアカウントの**名前**をクリックします。 * 新しいタブで、右上の**アカウント名**をクリックし、[アカウントと請求]を選択します。 ![右上のアカウント名メニューにある「アカウントと請求」メニュー項目が示されているスクリーンショット](https://www.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer/account-and-billing-menu-item-select.png) * [概要]タブで、アカウントで利用できるトライアルのリストを確認します。いずれかのトライアルを更新する必要がある場合は、[上に示した](#access-and-manage-test-accounts-in-hubspot)[開発者テストアカウント]ページに戻ります。 ## テストアカウントにデータをインポート `hs test-account import-data`コマンドを使用すると、ローカル環境からCRMデータをテストアカウントにインポートできます。このコマンドを実行すると、[CRMインポートAPI](/docs/api-reference/crm-imports-v3/guide)を介して、1つ以上のCSVファイルからアカウントにデータが送信されます。このコマンドはCRMインポートAPIを使用しているため、APIに直接`POST`リクエストを行う場合と同じオプションを利用できます。 以下では、[importコマンドを実行する](#running-the-import-command)前にローカルのインポートファイルを構成する方法について説明します。 ### インポートファイルを構成 CRMデータをテストアカウントにインポートするには、次の2種類のファイルが必要です。 * インポートするCRMオブジェクトデータを含む1つ以上のCSVファイル。各ファイルには、作成または更新するCRMレコードごとの行と、入力するCRMプロパティーの列が含まれます。インポートファイルにカスタムプロパティーを含める場合は、インポート前にアカウントでカスタムプロパティーを作成しておく必要があります。ファイルのインポートの詳細については、以下のリソースをご覧ください。 * [インポートファイルの設定](https://knowledge.hubspot.com/import-and-export/set-up-your-import-file) * [インポートファイルのサンプル](https://knowledge.hubspot.com/import-and-export/sample-import-files) * ファイル形式や列見出しなど、各ファイルの詳細をHubSpotに提供するJSON設定ファイル。このファイルは、CRMインポートAPIへの`POST`リクエストにおけるリクエストボディと同じ形式です。利用可能な全フィールドの詳細については、[CRMインポートAPIガイド](/docs/api-reference/crm-imports-v3/guide#start-an-import)をご確認ください。 CSVファイルとJSON設定ファイルは、同じディレクトリーに格納する必要があります。このディレクトリーから、後でインポートコマンドを実行します。 一例として、以下に2つのCSVファイルのサンプルを示します。1つはコンタクトデータ、もう1つは会社データを含むファイル、そして対応するJSON設定ファイルです。このインポートでは、Eメールアドレスとドメインの値をそれぞれ使用して、新しいコンタクトレコードと会社レコードを作成するように設定されています。このインポートでは、これらのレコードを関連付けるように設定されていませんが、[関連付けフィールド](/docs/api-reference/crm-imports-v3/guide#map-file-columns-to-hubspot-properties)を介して関連付けることができます。 * [コンタクトのCSVの例](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer/contact-data.csv) ![インポート用コンタクトデータのCSVファイルの例を示すスクリーンショット](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer/example-contact-import-file.png) * [会社のCSVの例](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer/company-data.csv) ![インポート用会社データのCSVファイルの例を示すスクリーンショット](https://developers.hubspot.com/hubfs/Knowledge_Base_2023-24-25/developer/example-company-import-file.png) ```json expandable theme={null} { "name": "Test account data import (contact and company)", "importOperations": { "0-1": "CREATE", "0-2": "CREATE" }, "files": [ { "fileName": "contact-data.csv", "fileFormat": "CSV", "fileImportPage": { "hasHeader": true, "columnMappings": [ { "columnObjectTypeId": "0-1", "columnName": "First Name", "propertyName": "firstname" }, { "columnObjectTypeId": "0-1", "columnName": "Last Name", "propertyName": "lastname" }, { "columnObjectTypeId": "0-1", "columnName": "Email", "propertyName": "email", "columnType": "HUBSPOT_ALTERNATE_ID" }, { "columnObjectTypeId": "0-1", "columnName": "Mobile phone number", "propertyName": "mobilephone" } ] } }, { "fileName": "company-data.csv", "fileFormat": "CSV", "fileImportPage": { "hasHeader": true, "columnMappings": [ { "columnObjectTypeId": "0-2", "columnName": "Name", "propertyName": "name" }, { "columnObjectTypeId": "0-2", "columnName": "Company domain name", "propertyName": "domain", "columnType": "HUBSPOT_ALTERNATE_ID" }, { "columnObjectTypeId": "0-2", "columnName": "Phone number", "propertyName": "phone" }, { "columnObjectTypeId": "0-2", "columnName": "City", "propertyName": "city" } ] } } ] } ``` > [!NOTE] > > 単一ファイルおよび複数ファイルのインポートにおけるJSONインポートリクエストの形式例については、[CRMインポートAPIガイド](/docs/api-reference/crm-imports-v3/guide#import-one-file-with-one-object)をご確認ください。 ### インポートコマンドを実行 ファイルを設定した後、CLIを使用してインポートできます。 * ターミナルで、インポート用のJSONファイルとCSVファイルが含まれているディレクトリーに進みます。 * `hs test-account import-data`コマンドを実行します。 * ターミナルのプロンプトに従ってインポートを設定します。 * `--account`:インポート先の開発者テストアカウントを選択します。 * `--file-path`:JSONファイルの名前を指定します。 * ターミナルには、インポートされるCSVファイルが表示されます。[Enter]を押してインポートを確定します。 インポートの処理が開始され、ターミナルにHubSpotのインポートダッシュボードへのリンクが表示されます。そこでステータスを監視し、潜在的な[インポートエラー](https://knowledge.hubspot.com/import-and-export/troubleshoot-import-errors)を確認できます。 ## GitHubアクションを使用した自動デプロイ アプリをプログラムでテストするために、[GitHubアクションを設定](/docs/developer-tooling/third-party-tools/set-up-github-actions)して、テストアカウントの作成と、そこへのアプリのデプロイを自動化することが可能です。 > [!WARNING] > > GitHubアクションを使用するには、HubSpotアプリが認証にOAuthを使用し、公開GitHubリポジトリーでホスティングされている必要があります。OAuthアプリをまだお持ちでない場合は、[アプリ作成ガイド](/docs/apps/developer-platform/build-apps/create-an-app)をご確認ください。 詳細については、[HubSpotのGitHubアクションのサンプル](https://github.com/HubSpot/hubspot-project-actions/tree/main/project-upload)をご確認ください。 # HubSpot CLIをインストール Source: https://developers.hubspot.jp/docs/developer-tooling/local-development/hubspot-cli/install-the-cli # プロジェクトCLIリファレンス(ベータ版) Source: https://developers.hubspot.jp/docs/developer-tooling/local-development/hubspot-cli/project-commands # HubSpot CLIコマンド(v7) Source: https://developers.hubspot.jp/docs/developer-tooling/local-development/hubspot-cli/reference # HubSpotのVisual Studio Code拡張機能をインストール Source: https://developers.hubspot.jp/docs/developer-tooling/local-development/vs-code-extension # はじめに:概要 Source: https://developers.hubspot.jp/docs/developer-tooling/overview HubSpotで開発を始める方法について学びましょう。 初めてHubSpotの開発者になった人も、スキルを伸ばそうとしている開発者も、このセクションのガイドを参考にして使い始めることができます。ここでは、利用可能なさまざまな開発ルートについて、また目標の達成に必要な具体的なツールやアカウントについて説明します。 ## 統合プラットフォームの利点 まず、HubSpotが開発者にとって強力なプラットフォームであると言える理由を見ていきましょう。 全てのHubSpotアカウントの基盤は[CRM](/docs/guides/crm/understanding-the-crm) (顧客関係管理)プラットフォーム、つまりさまざまなビジネス関係とプロセスから成るデータベースです。HubSpotには、外部の開発者やパートナーがCRMと連携するためのさまざまなルートが備わっているので、HubSpotエンドユーザー向けにより多くの価値を生み出すことができます。次に例を示します。 * HubSpotのAPIとの連携機能/拡張機能を作成して、HubSpotと外部プラットフォームの間でデータを同期します。 * HubSpot CMS(コンテンツ管理システム)を使用してカスタムウェブサイトを作成します。コンテンツ管理ツールのスイート全体に加えて、CMSは完全にCRMと連携します。これにより、キャンペーンの開始、リード(見込み客)の獲得、顧客との継続的なコミュニケーションを管理しやすくなります。 * UI拡張機能を使用してCRMをカスタマイズする。開発者はReactを使用して、HubSpotとシームレスに連携する柔軟なカスタムカードを作成できます。 次のセクションでは、HubSpot開発者が利用できるツールの概要について説明します。その後、ルートを選んでHubSpot開発者ジャーニーを進んで行くことができます。 ## 1.作成に役立つツールをインストールする HubSpot開発者向けに幅広いツールが用意されています。開発者の具体的な目標に応じて、必要なツールの組み合わせが異なります。 * \*\*HubSpot CLI:\*\*多くの開発タスクでは、ローカル開発用のHubSpot CLIをインストールすることが効果的な出発点となります。UI拡張機能とCMSアセットを作成するときにはCLIを使用し、シークレット、HubDBテーブル、およびカスタム オブジェクト データをアカウントから作成/管理するときにもCLIを使用できます。[Node.jsが](https://nodejs.org/en/)インストールされている必要があります(必須バージョンは18以上、推奨されるバージョンはLTSです)。CLIをグローバルにインストールするには、次のコマンドを実行します。 ```shell theme={null} npm i -g @hubspot/cli ``` * **Visual Studioコード:**[Visual Studio Code](https://code.visualstudio.com/)をインストールすると、[HubSpot Visual Studio Code拡張機能](https://developers.hubspot.com/docs)を利用して開発ワークフローを一元化できます。 * **クライアントライブラリー**: HubSpotには、[Node](https://github.com/HubSpot/hubspot-api-nodejs)、[PHP](https://github.com/HubSpot/hubspot-api-php)、[Ruby](https://github.com/HubSpot/hubspot-api-ruby)、および[Python](https://github.com/HubSpot/hubspot-api-python)用のクライアントライブラリーが備わっています。 * **Postman:**[Postman](https://www.postman.com/)を使用して、[HubSpotのPostmanコレクション](https://www.postman.com/hubspot)にアクセスします。HubSpotのAPIドキュメント全体にわたり、コレクションを使って呼び出しを実行するためのボタンがあります。 ![run-in-postman-current-docs-site](https://www.hubspot.com/hubfs/run-in-postman-current-docs-site.png) [HubSpotの開発者ツール](/docs/developer-tooling/overview)について詳細をご覧ください。 ## 2. 何を作成するかを決める HubSpotで開発するためのルートは画一的ではありません。幅広いニーズに対応できる柔軟なプラットフォームです。 以下に挙げる4つの広範なカテゴリーのいずれかで、大部分のニーズが満たされるでしょう。現時点で最も該当するものを1つ選んでください。簡単な紹介と、すぐに開始できるステップが説明されます。また、ジョブに最適なツールについて理解し、[特定の種類のHubSpotアカウント](/docs/getting-started/account-types)が必要かどうか確認することもできます。 * [APIを使用して連携を作成する](https://developers.hubspot.com#use-apis-and-build-integrations) * [マーケットプレイス向けのアプリを作成する](https://developers.hubspot.com#build-for-the-app-marketplace) * [HubSpot UIをカスタマイズする](https://developers.hubspot.com#customize-the-hubspot-ui) * [カスタムウェブサイトを作成する](https://developers.hubspot.com#build-custom-websites) ## 3. 仲間に加わりましょう 既にHubSpotで作成を行っている仲間とつながりましょう。質問をしたり、知識を共有したり、コミュニティーを作ったりして、やがて友達ができるかもしれません。 * [開発者Slack](https://developers.hubspot.com/community) * [開発者フォーラム](https://community.hubspot.com/t5/HubSpot-Developers/ct-p/developers) * [開発者アドボカシーGitHub](https://github.com/hubspotdev) ## 4. 自分に合った方法で学習を続けます 始める準備が整ったら、より深く掘り下げるのに役立つ多くのリソースが用意されています。ご希望の学習スタイルに応じて、詳細なガイド、詳しい参考資料、または[HubSpotアカデミーコース](https://academy.hubspot.com/courses)にアクセスできます。 # HubSpotプラットフォームでの大きな変更 Source: https://developers.hubspot.jp/docs/developer-tooling/platform/breaking-change-definition # API使用のガイドラインと上限 Source: https://developers.hubspot.jp/docs/developer-tooling/platform/usage-guidelines # 開発者プラットフォームのバージョン管理 Source: https://developers.hubspot.jp/docs/developer-tooling/platform/versioning # Node Source: https://developers.hubspot.jp/docs/developer-tooling/sdks/node # Php Source: https://developers.hubspot.jp/docs/developer-tooling/sdks/php # Python Source: https://developers.hubspot.jp/docs/developer-tooling/sdks/python # Ruby Source: https://developers.hubspot.jp/docs/developer-tooling/sdks/ruby # GitHubアクションを設定(ベータ版) Source: https://developers.hubspot.jp/docs/developer-tooling/third-party-tools/set-up-github-actions