最終更新日: 2025年11月18日
以下でアプリカードの作成に関する参照情報を紹介します。
プロジェクトの構成
プロジェクトのコンテキストでは、アプリカードのコンポーネントはapp/内のcardsディレクトリーで定義されています。cardsディレクトリーには以下が含まれている必要があります。
- 各カードタイプのJSONスキーマ定義ファイル(
*-hsmeta.json)。 - カードのフロントエンドをレンダリングするReactファイル。
.jsxファイルまたは.tsxファイルを使用できます。 - 必要なすべての依存関係を処理するための
package.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 | crm.preview |helpdesk.sidebar | HubSpotのUIでカードが表示される場所。場所(location)の値は1つしか指定できませんが、locationとobjectTypesの組み合わせによっては、複数の場所がサポートされることもあります。詳細については、後述の__サポートされる場所セクションをご確認ください。 |
objectTypes* | 配列 | このカードが表示されるCRMレコードのタイプ。詳細については、後述のサポートされるオブジェクト__セクションをご確認ください。 |
サポートされるオブジェクト
カードの*-hsmeta.json設定ファイルのobjectTypes配列により、カードが表示されるCRMレコードのタイプが指定されます。現在サポートされているCRMオブジェクトとそのobjectType値、およびアプリに追加する最小スコープを以下に示します。
HubSpotの標準オブジェクトの場合、
objectTypeの値では大文字と小文字が区別されず、単数形と複数形の両方がサポートされています。例えば、"CONTACT"と"contacts"はどちらも有効です。| CRMオブジェクト | objectTypeの値 | 関連スコープ |
|---|---|---|
| コンタクト | CONTACT | crm.objects.contacts.read |
| 会社 | COMPANY | crm.objects.companies.read |
| 取引 | DEALS | crm.objects.deals.read |
| チケット | TICKETS | tickets |
| カスタムオブジェクト | p_objectName(大文字小文字の区別あり) | crm.objects.custom.read |
| アプリオブジェクト | app_object_uid | アプリオブジェクトのスコープを参照 |
| CRMオブジェクト | objectTypeの値 | 関連スコープ |
|---|---|---|
| アポイントメント | APPOINTMENTS | crm.objects.appointments.read |
| コース | COURSES | crm.objects.courses.read |
| 掲載情報 | LISTINGS | crm.objects.listings.read |
| サービス | SERVICES | crm.objects.services.read |
サポートされる場所
カードの*-hsmeta.json設定ファイルのlocationフィールドに、HubSpotでカードが表示される場所を指定します。現在サポートされている場所を以下に示します。
crm.record.tab:HubSpotの既定のタブの1つ、またはカスタムタブのいずれかで、CRMレコードページの中央列に拡張機能が表示されます。objectTypeがCOMPANIESに設定されている場合、カードは営業ワークスペースのターゲットアカウントのプレビューパネルにも表示されます。
crm.record.sidebar:CRMレコードページの右サイドバーに拡張機能が表示されます。サイドバーに表示される拡張機能はCRMデータコンポーネントを使用できません。objectTypeがDEALSに設定されている場合、カードは営業ワークスペースの取引のサイドバーにも表示されます。
crm.preview:CRMでアクセスできるプレビューパネルにアプリカードが表示されます。この場所を使用する場合、JSON設定ファイルで指定されているobjectTypesをプレビューするときに拡張機能が利用可能になります。これには、CRMレコードページ、インデックスページ、ボードビュー、リストツール内でのレコードのプレビューが含まれます。プレビューのカスタマイズの詳細をご確認ください。
helpdesk.sidebar:ヘルプデスク内のチケットサイドバーにカードが表示されます。これには、ヘルプデスク ホーム ページのチケット プレビュー パネルとヘルプデスクの右サイドバーの両方が含まれます。この場所にカードを追加するには、ヘルプデスク設定を構成してカードを含める必要があります。
Reactフロントエンドの作成
アプリカードのUIは、Reactコンポーネントファイル(.jsxまたは.tsx)により作成されます。このファイルは、カードのJSON設定ファイル(*-hsmeta.json)と共にcards/ディレクトリーに含まれています。カード設定ファイルのentrypointフィールドに、Reactファイルのパスを指定します。
シンプルなアプリカードの例を以下に示します。この例には、カードのコンテンツを表示するUIコンポーネントであるTextおよびButtonと、レイアウトを管理するためのFlexコンポーネントが含まれています。
依存関係の管理
cards/ディレクトリー内にあるpackage.jsonファイルにアプリカードの依存関係を指定できます。hs project addコマンドでアプリカードを追加すると、既定では次の依存関係を持つpackage.jsonファイルが作成されます。
@hubspot/ui-extensionsreacttypescript
package.jsonファイルを使用してプロジェクトコンポーネントの依存関係をインストールするには、プロジェクトディレクトリーでhs project install-depsコマンドを実行できます。




