最終更新日: 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
コマンドを実行できます。