> ## Documentation Index
> Fetch the complete documentation index at: https://developers.hubspot.jp/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# アプリオブジェクトのリファレンス（ベータ版）

> アプリやアプリオブジェクトなどの設定オプションを含む、アプリオブジェクトの作成に関する参照情報。

<style>
  {`
    .github-link a div,
    .github-link a div p {
      display: inline;
      margin: 0;
      padding: 0;
    }
    .github-link {
      background-color: rgb(255, 255, 255);
      border-radius: 24px;
      box-shadow: rgba(0, 0, 0, 0.25) 0px 2px 4px 0px;
      padding: 5px;
      max-width: 247px;
      display: flex;
      align-items: center;
      margin-bottom: 20px;
    }
    .github-icon {
        display: inline;
        width: 24px;
        margin-right: 8px;
        flex-shrink: 0;
    }
    .table-key, .table-key div, .table-key p {
      margin: 0;
      font-size: 14px;
    }
    `}
</style>

<Info>
  この機能を使用するには、HubSpotからの承認が必要です。アプリオブジェクトへのアクセスの申請に関心がある場合、または機能について詳しく知りたい場合は、[こちらのフォーム](/apps/developer-platform/add-features/app-objects/overview)をお送りください。
</Info>

以下で、アプリオブジェクトを使用した開発者プラットフォームのアプリ機能のリファレンス情報（設定ファイルの定義、スコープの詳細など）を紹介します。

## プロジェクトの構成

* 全てのプロジェクトコンポーネントは、`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
└──
```

<Card title="GitHubでサンプルを表示" href="https://github.com/robrown-hubspot/hubspot-project-components-ua-app-objects-beta/tree/main/projects/app-object-getting-started-template" icon="github" horizontal />

## アプリオブジェクト

アプリオブジェクトを作成するには、プロジェクトに、設定ファイルを格納した`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
          }
        ]
      }
    ]
  }
}
```

<Card title="GitHubでサンプルを表示" href="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" icon="github" horizontal />

<p className="table-key">
  <span style={{ color: 'red' }}>\*</span>でマークされたフィールドは必須です。
</p>

| フィールド                                                                     | 型      | 説明                                                                                                                                                                                                                                                                                          |
| ------------------------------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `uid`<span style={{color:"red"}}>\*</span>                                | 文字列    | アプリオブジェクトの固有ID。プロジェクト全体で重複しないラベルにする必要があります。                                                                                                                                                                                                                                                 |
| `type`<span style={{color:"red"}}>\*</span>                               | 文字列    | コンポーネントのタイプ。親フォルダーの名前（`app-object`）に一致している必要があります。                                                                                                                                                                                                                                          |
| `name`<span style={{color:"red"}}>\*</span>                               | 文字列    | アプリオブジェクトの名前。承認済みアプリの確認で受け取った承認済みの名前を使用します。大文字のスネークケース（`MY_OBJECT_NAME`）にする必要があります。                                                                                                                                                                                                         |
| `appPrefix`                                                               | 文字列    | HubSpotのUIで、オブジェクトの単数形または複数形の名前の前に付ける文字列。これにより、他のオブジェクトと区別しやすくなります。この例では、`appPrefix`が`Vroom`、`singularForm`が`Car`であるため、UIに「Vroom Car」と表示されます。                                                                                                                                               |
| `description`<span style={{color:"red"}}>\*</span>                        | 文字列    | HubSpotに表示されるオブジェクトの説明。                                                                                                                                                                                                                                                                     |
| `singularForm`<span style={{color:"red"}}>\*</span>                       | 文字列    | オブジェクト名の単数形。                                                                                                                                                                                                                                                                                |
| `pluralForm`<span style={{color:"red"}}>\*</span>                         | 文字列    | オブジェクト名の複数形。                                                                                                                                                                                                                                                                                |
| `properties`<span style={{color:"red"}}>\*</span>                         | 配列     | オブジェクトに対して定義されているCRMプロパティーのリスト。プロパティーは、[プロパティーAPI](/api-reference/crm-properties-v3/guide)と同じフィールドを使用して定義します。作成されるプロパティーには、作成時に`a<appId>_`が自動的に付加されます（例：`a12345_make`）。設定ファイルにプレフィックスを含めないでください。                                                                                            |
| `primaryDisplayLabelPropertyName`<span style={{color:"red"}}>\*</span>    | 文字列    | [プライマリー表示プロパティー](https://knowledge.hubspot.com/object-settings/create-custom-objects#:~:text=object%27s%20singular%20name.-,Primary%20display%20property,-%3A%20the%20property%20used)として使用するプロパティーの名前。この値は、`properties`リストで指定される名前に一致している必要があります（つまり、生成された`a<appId>_`プレフィックスを含めることはできません）。 |
| `secondaryDisplayLabelPropertyNames`<span style={{color:"red"}}>\*</span> | 配列     | [セカンダリー表示プロパティー](https://knowledge.hubspot.com/object-settings/create-custom-objects#:~:text=Secondary%20properties%3A)として使用するプロパティーのリスト。この値は、`properties`リストで指定される名前に一致している必要があります（つまり、生成された`a<appId>_`プレフィックスを含めることはできません）。                                                               |
| `settings`<span style={{color:"red"}}>\*</span>                           | オブジェクト | オブジェクト設定を含むオブジェクト。                                                                                                                                                                                                                                                                          |
| `hasRecordPage`<span style={{color:"red"}}>\*</span>                      | ブール値   | このアプリオブジェクトのインスタンスのレコードページが存在するかどうか。`false`に設定すると、インデックスページは引き続き存在しますが、個々のレコードページへのリンクは含まれなくなります。                                                                                                                                                                                           |
| `allowsUserCreatedRecords`<span style={{color:"red"}}>\*</span>           | ブール値   | エンドユーザーがオブジェクトを使用してレコードを作成できるかどうか。`false`に設定すると、ユーザーがHubSpotでレコードを作成できなくなります                                                                                                                                                                                                                |
| `hasEngagements`<span style={{color:"red"}}>\*</span>                     | ブール値   | アプリ オブジェクト レコードでアクティビティー/エンゲージメントをサポートするかどうか。`false`に設定すると、アプリ オブジェクト レコード ページには、アクティビティーのタブやアクティビティー関連のタイムラインフィルターなどのエンゲージメント機能が一切含まれなくなります。                                                                                                                                               |

<Info>
  アプリオブジェクトの完全修飾名（FQN）は`a<appId>_<objectName>`です。例：`appId`が`16858319`でアプリオブジェクト名が`CARS`の場合、FQNは`a16858319_CARS`になります。FQNは、アプリオブジェクトのスコープ値を設定する際に使用します。
</Info>

## アプリスキーマ

アプリオブジェクトを作成するには、`app-hsmeta.json`設定ファイルを`app`ディレクトリーに含めます。

```shell theme={null}
...
├──src
│   ├── app/
│   │   └── app-hsmeta.json/
└──
```

`app-hsmeta.json`で使用できる設定オプションを以下に示します。

<Accordion title="変更の要約">
  アプリカード設定ファイルの次の変更点に注意してください。

  * 最上位フィールド`uid`、`type`、`config`が追加されました。
  * `extensions`フィールドが削除されました。
  * `distribution`フィールドが追加されました。
</Accordion>

```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"
    }
  }
}
```

<Card title="GitHubでサンプルを表示" href="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" icon="github" horizontal />

### アプリスキーマ \*-hsmeta.jsonのフィールド

<p className="table-key">
  <span style={{ color: 'red' }}>\*</span>でマークされたフィールドは必須です。
</p>

| フィールド                                               | 型      | 説明                                                                                                                                                                                                                       |
| --------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `uid`<span style={{color:"red"}}>\*</span>          | 文字列    | アプリの内部固有ID。プロジェクト全体で重複しないラベルにする必要があります。最大64文字の任意の文字列を指定できます。大文字または小文字を使用できます。数字、アンダースコア（`_`）、ダッシュ（`-`）、ピリオド（`.`）を含めることができます。                                                                                             |
| `type`<span style={{color:"red"}}>\*</span>         | 文字列    | コンポーネントのタイプ。親フォルダーの名前（`app`）に一致している必要があります。                                                                                                                                                                              |
| `description`<span style={{color:"red"}}>\*</span>  | 文字列    | インストールを実行するユーザーに対するアプリの動作の説明。最大8192文字の任意の文字列を指定できます。                                                                                                                                                                     |
| `name`<span style={{color:"red"}}>\*</span>         | 文字列    | HubSpotに表示されるアプリの名前。最大200文字までの任意の文字列を指定できます。先頭や末尾を空白文字にすることはできません。                                                                                                                                                       |
| `distribution`<span style={{color:"red"}}>\*</span> | 文字列    | アプリの配布方法。アプリをアプリマーケットプレイスに掲載できるようにするには、`marketplace`に設定する必要があります。                                                                                                                                                        |
| `auth`<span style={{color:"red"}}>\*</span>         | オブジェクト | アプリの認証方法の詳細を含むオブジェクト。詳細については、[認証フィールドの表](#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`                                      | 文字列    | ユーザーがサポートを受けるために連絡できる電話番号。プラス記号（`+`）で始まる必要があります。                                                                                                                                                                         |

### 認証フィールド

<p className="table-key">
  <span style={{ color: 'red' }}>\*</span>でマークされたフィールドは必須です。
</p>

| フィールド                                                 | 型   | 説明                                                                                                                                                                 |
| ----------------------------------------------------- | --- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `type`<span style={{color:"red"}}>\*</span>           | 文字列 | 認証のタイプ。アプリでOAuth認証を使用するには、`oauth`に設定する必要があります。                                                                                                                     |
| `redirectUrls`<span style={{color:"red"}}>\*</span>   | 配列  | OAuthプロセスで再ルーティング先として許可されるURLのリスト。各アプリには少なくとも1つの認証リダイレクトURLが必要であり、このURLではHTTPSを使用する必要があります。唯一の例外として、テスト目的の場合は`http://localhost`を使用できます。                            |
| `requiredScopes`<span style={{color:"red"}}>\*</span> | 配列  | アプリの必須スコープのリスト。各アプリには少なくとも1つのスコープが含まれる必要があります。アプリを正常にインストールするには、インストールを行うユーザーがこれらのスコープを付与する必要があります。[スコープの詳細については、以下の説明をご確認ください](#scopes)。                          |
| `optionalScopes`                                      | 配列  | アプリの任意のスコープのリスト。アプリをインストールするアカウントまたはユーザーに適切な権限がない場合は、インストール時にこれらのスコープを認証から除外できます。その場合、作成されるリフレッシュトークンやアクセストークンにはスコープが含まれません。[スコープの詳細については、以下の説明をご確認ください](#scopes)。 |
| `conditionallyRequiredScopes`                         | 配列  | インストールURLの`scope`クエリーパラメーターに含まれている場合にのみ必須であるスコープのリスト。[スコープの詳細については、以下の説明をご確認ください](#scopes)。                                                                        |

### スコープ

アプリ設定ファイルの`auth`フィールドでは、必須スコープ、条件次第で必須となるスコープ、任意のスコープという[3種類のスコープ](/apps/legacy-apps/public-apps/overview#scope-types)を指定できます。ベータのこの段階では、アプリ オブジェクト スコープを`conditionallyRequiredScopes`として含める<u>だけ</u>にしてください。これにより、インストールURLにアプリオブジェクトのスコープを含めることで、新機能の対象を特定の顧客のみに限定できます。

アプリ オブジェクト スコープでは次の形式が使用されます。

`crm.app.schemas.<appObjectFullyQualifiedName>.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": []
    },

```

使用可能な全てのスコープのリストについては、[スコープリファレンス](/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のフィールド

<p className="table-key">
  <span style={{ color: 'red' }}>\*</span>でマークされたフィールドは必須です。
</p>

| フィールド                                                | 型      | 説明                                                                                                                                                                       |
| ---------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `uid`<span style={{color:"red"}}>\*</span>           | 文字列    | Webhookコンポーネントの内部固有ID。                                                                                                                                                   |
| `type`<span style={{color:"red"}}>\*</span>          | 文字列    | コンポーネントのタイプ。この場合は`webhooks`にする必要があります。                                                                                                                                   |
| `settings`<span style={{color:"red"}}>\*</span>      | オブジェクト | 2つのフィールドを指定するオブジェクト。一方の`targetUrl`フィールドで、HubSpotがイベントペイロードを配信するために呼び出す、一般公開されたURLを指定します。もう一方の`maxConcurrentRequests`フィールドでは、HubSpotが所定の時間枠内に送信するHTTPリクエスト数の上限しきい値を指定します。 |
| `subscriptions`<span style={{color:"red"}}>\*</span> | オブジェクト | アプリで配信登録する配信カテゴリーを指定するオブジェクト。                                                                                                                                            |
| `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)でご確認ください。

<Accordion title="変更の要約">
  アプリカード設定ファイルの次の変更点に注意してください。

  * 最上位フィールド`uid`、`type`、`config`が追加されました。
  * `module`フィールドの名前が`entrypoint`に変更されました。
  * `title`フィールドの名前が`name`に変更されました。
  * `objectTypes`フィールドが簡素化され、文字列の配列を受け入れるようになりました。
</Accordion>

```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レコードにカードを追加する](/apps/developer-platform/add-features/ui-extensibility/app-cards/create-an-app-card#view-the-card-in-hubspot)方法をご確認ください。

<Card title="GitHubでサンプルを表示" href="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" icon="github" horizontal />

### アプリカード \*-hsmeta.jsonのフィールド

<p className="table-key">
  <span style={{ color: 'red' }}>\*</span>でマークされたフィールドは必須です。
</p>

| フィールド                                              | 型                                                              | 説明                                                                                                                                               |
| -------------------------------------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `uid`<span style={{color:"red"}}>\*</span>         | 文字列                                                            | カードの固有ID。任意の文字列を指定できますが、カードを識別できる意味のある文字列である必要があります。HubSpotではこのIDでカードが識別されるため、CRMレコードの位置などの履歴データやステートフルデータを削除することなく、カードのタイトルを変更できます。             |
| `type`                                             | 文字列                                                            | コンポーネントのタイプ。この場合は`card`にする必要があります。                                                                                                               |
| `config`                                           | オブジェクト                                                         | 設定の詳細を含むオブジェクト。                                                                                                                                  |
| `name`<span style={{color:"red"}}>\*</span>        | 文字列                                                            | HubSpotのUIに表示されるカードのタイトル。                                                                                                                        |
| `description`                                      | 文字列                                                            | カードの説明。                                                                                                                                          |
| `previewImage`                                     | オブジェクト                                                         | `file`フィールドと`altText`フィールドを含むオブジェクト。`file`フィールドは、プレビュー画像の相対パスです。有効なファイル拡張子はpng、jpeg、jpg、gifです。最大ファイルサイズは5.0MBです。`altText`フィールドは、画像の簡単な説明です。      |
| `entrypoint`<span style={{color:"red"}}>\*</span>  | 文字列                                                            | カードのフロントエンドReactコードのファイルパス。                                                                                                                      |
| `location`<span style={{color:"red"}}>\*</span>    | `crm.record.tab` \| `crm.record.sidebar` \| `helpdesk.sidebar` | HubSpotのUIでカードが表示される場所。詳細については、[拡張機能の場所](/apps/developer-platform/add-features/ui-extensibility/app-cards/reference#extension-location)をご確認ください。 |
| `objectTypes`<span style={{color:"red"}}>\*</span> | 配列                                                             | このカードが表示される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のフィールド

<p className="table-key">
  <span style={{ color: 'red' }}>\*</span>でマークされたフィールドは必須です。
</p>

| フィールド                                                   | 型      | 説明                                                                                                                                                                                     |
| ------------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `uid`<span style={{color:"red"}}>\*</span>              | 文字列    | アプリの内部固有ID。プロジェクト全体で重複しないラベルにする必要があります。                                                                                                                                                |
| `type`<span style={{color:"red"}}>\*</span>             | 文字列    | コンポーネントのタイプ。親フォルダーの名前（`app-object-association`）に一致している必要があります。                                                                                                                         |
| `config`<span style={{color:"red"}}>\*</span>           | オブジェクト | オブジェクト関連付けの設定を含むオブジェクト。                                                                                                                                                                |
| `firstObjectType`<span style={{color:"red"}}>\*</span>  | 文字列    | 関連付けの最初のオブジェクト。アプリオブジェクトまたはHubSpotのCRMオブジェクトのいずれかを指定できます。アプリオブジェクトは、ソースファイルに指定された`uid`によって参照されます。標準オブジェクトは、その`fullyQualifiedName`によって参照されます。結果として得られる関連付けは双方向になるため、これらのフィールド値の順序は任意です。 |
| `secondObjectType`<span style={{color:"red"}}>\*</span> | 文字列    | 関連付けの2番目のオブジェクト。詳細については、`firstObjectType`を参照してください。                                                                                                                                    |
