最終更新日: 2025年10月8日
以下でアプリカードの作成に関する参照情報を紹介します。
プロジェクトの構成
プロジェクトのコンテキストでは、アプリカードのコンポーネントは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:ヘルプデスク内のチケットサイドバーにカードが表示されます。これには、ヘルプデスク ホーム ページのチケット プレビュー パネルとヘルプデスクの右サイドバーの両方が含まれます。この場所にカードを追加するには、ヘルプデスク設定を構成してカードを含める必要があります。
この場所に拡張機能を作成するときには、アプリのJSON設定ファイルの
scopes配列にticketsが含まれており、カードのJSON設定ファイルのobjectTypesフィールドにticketsが含まれていることを確認する必要もあります。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-extensions
- react
- typescript
package.jsonファイルを使用してプロジェクトコンポーネントの依存関係をインストールするには、プロジェクトディレクトリーでhs project install-depsコマンドを実行できます。




