最終更新日: 2025年9月11日
この機能を使用するには、HubSpotからの承認が必要です。アプリオブジェクトへのアクセスの申請に関心がある場合、または機能について詳しく知りたい場合は、こちらのフォームをお送りください。
プロジェクトの構成
- 全てのプロジェクトコンポーネントは、
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
)。
GitHubでサンプルを表示
アプリオブジェクト
アプリオブジェクトを作成するには、プロジェクトに、設定ファイルを格納したapp-objects
コンポーネントディレクトリーを含めます。
*-object-hsmeta.json
で使用できる設定オプションを以下に示します。
GitHubでサンプルを表示
*でマークされたフィールドは必須です。
フィールド | 型 | 説明 |
---|---|---|
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と同じフィールドを使用して定義します。作成されるプロパティーには、作成時にa<appId>_ が自動的に付加されます(例:a12345_make )。設定ファイルにプレフィックスを含めないでください。 |
primaryDisplayLabelPropertyName * | 文字列 | プライマリー表示プロパティーとして使用するプロパティーの名前。この値は、properties リストで指定される名前に一致している必要があります(つまり、生成されたa<appId>_ プレフィックスを含めることはできません)。 |
secondaryDisplayLabelPropertyNames * | 配列 | セカンダリー表示プロパティーとして使用するプロパティーのリスト。この値は、properties リストで指定される名前に一致している必要があります(つまり、生成されたa<appId>_ プレフィックスを含めることはできません)。 |
settings * | オブジェクト | オブジェクト設定を含むオブジェクト。 |
hasRecordPage * | ブール値 | このアプリオブジェクトのインスタンスのレコードページが存在するかどうか。false に設定すると、インデックスページは引き続き存在しますが、個々のレコードページへのリンクは含まれなくなります。 |
allowsUserCreatedRecords * | ブール値 | エンドユーザーがオブジェクトを使用してレコードを作成できるかどうか。false に設定すると、ユーザーがHubSpotでレコードを作成できなくなります |
hasEngagements * | ブール値 | アプリ オブジェクト レコードでアクティビティー/エンゲージメントをサポートするかどうか。false に設定すると、アプリ オブジェクト レコード ページには、アクティビティーのタブやアクティビティー関連のタイムラインフィルターなどのエンゲージメント機能が一切含まれなくなります。 |
アプリオブジェクトの完全修飾名(FQN)は
a<appId>_<objectName>
です。例:appId
が16858319
でアプリオブジェクト名がCARS
の場合、FQNはa16858319_CARS
になります。FQNは、アプリオブジェクトのスコープ値を設定する際に使用します。アプリスキーマ
アプリオブジェクトを作成するには、app-hsmeta.json
設定ファイルをapp
ディレクトリーに含めます。
app-hsmeta.json
で使用できる設定オプションを以下に示します。
変更の要約
変更の要約
アプリカード設定ファイルの次の変更点に注意してください。
- 最上位フィールド
uid
、type
、config
が追加されました。 extensions
フィールドが削除されました。distribution
フィールドが追加されました。
GitHubでサンプルを表示
アプリスキーマ *-hsmeta.jsonのフィールド
*でマークされたフィールドは必須です。
フィールド | 型 | 説明 |
---|---|---|
uid * | 文字列 | アプリの内部固有ID。プロジェクト全体で重複しないラベルにする必要があります。最大64文字の任意の文字列を指定できます。大文字または小文字を使用できます。数字、アンダースコア(_ )、ダッシュ(- )、ピリオド(. )を含めることができます。 |
type * | 文字列 | コンポーネントのタイプ。親フォルダーの名前(app )に一致している必要があります。 |
description * | 文字列 | インストールを実行するユーザーに対するアプリの動作の説明。最大8192文字の任意の文字列を指定できます。 |
name * | 文字列 | HubSpotに表示されるアプリの名前。最大200文字までの任意の文字列を指定できます。先頭や末尾を空白文字にすることはできません。 |
distribution * | 文字列 | アプリの配布方法。アプリをアプリマーケットプレイスに掲載できるようにするには、marketplace に設定する必要があります。 |
auth * | オブジェクト | アプリの認証方法の詳細を含むオブジェクト。詳細については、認証フィールドの表をご確認ください。 |
permittedUrls | オブジェクト | アプリが呼び出すことができるURLを含む配列。URLではHTTPSスキームを使用する必要があります。また、URLにはオーソリティー、とその後に(必要に応じて)オプションのパスプレフィックスを含める必要があります。 |
supportEmail | 文字列 | ユーザーがサポートを受けるために連絡できる有効なEメールアドレス。 |
documentationUrl | 文字列 | ユーザーがサポートドキュメントを参照するためにアクセスできる外部URL。HTTPSを使用する必要があります。 |
supportUrl | 文字列 | ユーザーが追加のサポートを受けるためにアクセスできる外部URL。HTTPSを使用する必要があります。 |
supportPhone | 文字列 | ユーザーがサポートを受けるために連絡できる電話番号。プラス記号(+ )で始まる必要があります。 |
認証フィールド
*でマークされたフィールドは必須です。
フィールド | 型 | 説明 |
---|---|---|
type * | 文字列 | 認証のタイプ。アプリでOAuth認証を使用するには、oauth に設定する必要があります。 |
redirectUrls * | 配列 | OAuthプロセスで再ルーティング先として許可されるURLのリスト。各アプリには少なくとも1つの認証リダイレクトURLが必要であり、このURLではHTTPSを使用する必要があります。唯一の例外として、テスト目的の場合はhttp://localhost を使用できます。 |
requiredScopes * | 配列 | アプリの必須スコープのリスト。各アプリには少なくとも1つのスコープが含まれる必要があります。アプリを正常にインストールするには、インストールを行うユーザーがこれらのスコープを付与する必要があります。スコープの詳細については、以下の説明をご確認ください。 |
optionalScopes | 配列 | アプリの任意のスコープのリスト。アプリをインストールするアカウントまたはユーザーに適切な権限がない場合は、インストール時にこれらのスコープを認証から除外できます。その場合、作成されるリフレッシュトークンやアクセストークンにはスコープが含まれません。スコープの詳細については、以下の説明をご確認ください。 |
conditionallyRequiredScopes | 配列 | インストールURLのscope クエリーパラメーターに含まれている場合にのみ必須であるスコープのリスト。スコープの詳細については、以下の説明をご確認ください。 |
スコープ
アプリ設定ファイルのauth
フィールドでは、必須スコープ、条件次第で必須となるスコープ、任意のスコープという3種類のスコープを指定できます。ベータのこの段階では、アプリ オブジェクト スコープをconditionallyRequiredScopes
として含めるだけにしてください。これにより、インストールURLにアプリオブジェクトのスコープを含めることで、新機能の対象を特定の顧客のみに限定できます。
アプリ オブジェクト スコープでは次の形式が使用されます。
crm.app.schemas.<appObjectFullyQualifiedName>.read
例えばFQNがa16858319_cars
のアプリオブジェクトの場合、read
スコープは次のようになります:
crm.app.schemas.a16858319_cars.read
。
顧客がオブジェクトにアクセスできるようにするには、少なくともアプリに上記のread
スコープを含める必要があります。次のように、アプリに全てのアプリ オブジェクト スコープを含めることをお勧めします。
Webhookコンポーネントの定義
アプリの一連のWebhook配信登録を定義するには、プロジェクトに、*-hsmeta.json
設定ファイルを格納したwebhooks
ディレクトリーを含めます。
*-hsmeta.json
ファイルで使用できる設定オプションを以下に示します。
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
コンポーネントディレクトリーを含めます。
- アプリ オブジェクト コンポーネントと関連設定ファイルを作成した後に
hs project upload
を実行していることを確認してください。 my-app-card-hsmeta.json
ファイルのobjectTypes
配列にアプリオブジェクトUID(この例では"app_object_uid"
)を追加します。.json
ファイルで使用できる各フィールドの詳細については、以下の表でご確認ください。
変更の要約
変更の要約
アプリカード設定ファイルの次の変更点に注意してください。
- 最上位フィールド
uid
、type
、config
が追加されました。 module
フィールドの名前がentrypoint
に変更されました。title
フィールドの名前がname
に変更されました。objectTypes
フィールドが簡素化され、文字列の配列を受け入れるようになりました。
example-card-hsmeta.json
ファイルの変更内容を保存したら、hs project upload
を実行します。
GitHubでサンプルを表示
アプリカード *-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でカードが表示される場所。詳細については、拡張機能の場所をご確認ください。 |
objectTypes * | 配列 | このカードが表示されるCRMレコードのタイプ。 |
アプリオブジェクトの関連付け
アプリオブジェクトと他のCRMオブジェクトの間の関連付けを有効にするには、プロジェクトに、設定ファイルを格納したapp-object-associations
コンポーネントディレクトリーを含めます。
*-association-hsmeta.json
)。
関連付け *-association-hsmeta.jsonのフィールド
*でマークされたフィールドは必須です。
フィールド | 型 | 説明 |
---|---|---|
uid * | 文字列 | アプリの内部固有ID。プロジェクト全体で重複しないラベルにする必要があります。 |
type * | 文字列 | コンポーネントのタイプ。親フォルダーの名前(app-object-association )に一致している必要があります。 |
config * | オブジェクト | オブジェクト関連付けの設定を含むオブジェクト。 |
firstObjectType * | 文字列 | 関連付けの最初のオブジェクト。アプリオブジェクトまたはHubSpotのCRMオブジェクトのいずれかを指定できます。アプリオブジェクトは、ソースファイルに指定されたuid によって参照されます。標準オブジェクトは、そのfullyQualifiedName によって参照されます。結果として得られる関連付けは双方向になるため、これらのフィールド値の順序は任意です。 |
secondObjectType * | 文字列 | 関連付けの2番目のオブジェクト。詳細については、firstObjectType を参照してください。 |