> ## 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.

# CRM API | CRMカード

export const postmanIcon = <svg xmlns="http://www.w3.org/2000/svg" width={25} height={25} preserveAspectRatio="xMidYMid" viewBox="0 0 256 256">
    <path fill="#FF6C37" d="M254.953 144.253c8.959-70.131-40.569-134.248-110.572-143.206C74.378-7.912 10.005 41.616 1.047 111.619c-8.959 70.003 40.569 134.248 110.572 143.334 70.131 8.959 134.248-40.569 143.334-110.7Z" />
    <path fill="#FFF" d="m174.2 82.184-54.007 54.007-15.229-15.23c53.11-53.11 58.358-48.503 69.236-38.777Z" />
    <path fill="#FF6C37" d="M120.193 137.47c-.384 0-.64-.128-.895-.384l-15.358-15.229a1.237 1.237 0 0 1 0-1.792c54.007-54.006 59.638-48.887 71.028-38.649.255.256.383.512.383.896s-.128.64-.383.896l-54.007 53.878c-.128.256-.512.384-.768.384Zm-13.437-16.509 13.437 13.438 52.087-52.087c-9.47-8.446-15.87-11.006-65.524 38.65Z" />
    <path fill="#FFF" d="m135.679 151.676-14.718-14.718 54.007-54.006c14.46 14.59-7.167 38.265-39.29 68.724Z" />
    <path fill="#FF6C37" d="M135.679 152.956c-.384 0-.64-.128-.896-.384l-14.718-14.718c-.256-.256-.256-.512-.256-.896s.128-.64.384-.895L174.2 82.056a1.237 1.237 0 0 1 1.791 0 15.58 15.58 0 0 1 4.991 11.902c-.256 14.206-16.38 32.25-44.28 58.614-.383.256-.767.384-1.023.384Zm-12.926-15.998c8.19 8.319 11.646 11.646 12.926 12.926 21.5-20.476 42.36-41.464 42.488-55.926.128-3.327-1.152-6.655-3.327-9.214l-52.087 52.214Z" />
    <path fill="#FFF" d="m105.22 121.345 10.878 10.878c.256.256.256.512 0 .768-.128.128-.128.128-.256.128l-22.524 4.863c-1.152.128-2.175-.64-2.431-1.791-.128-.64.128-1.28.512-1.664l13.053-13.054c.256-.256.64-.384.768-.128Z" />
    <path fill="#FF6C37" d="M92.934 139.262c-1.92 0-3.327-1.536-3.327-3.455 0-.896.384-1.792 1.024-2.432l13.053-13.054c.768-.64 1.792-.64 2.56 0l10.878 10.878c.768.64.768 1.792 0 2.56-.256.256-.512.384-.896.512l-22.524 4.863c-.256 0-.512.128-.768.128Zm11.902-16.51-12.542 12.543c-.256.256-.383.64-.128 1.024.128.383.512.511.896.383l21.116-4.607-9.342-9.342Z" />
    <path fill="#FFF" d="M202.739 52.238c-8.191-7.935-21.373-7.679-29.307.64-7.935 8.318-7.679 21.372.64 29.306A20.678 20.678 0 0 0 199.155 85l-14.59-14.59 18.174-18.172Z" />
    <path fill="#FF6C37" d="M188.405 89.223c-12.158 0-22.012-9.854-22.012-22.012 0-12.158 9.854-22.012 22.012-22.012 5.631 0 11.134 2.176 15.23 6.143.255.256.383.512.383.896s-.128.64-.384.895L186.357 70.41l13.566 13.566c.512.512.512 1.28 0 1.792l-.256.256c-3.327 2.047-7.295 3.199-11.262 3.199Zm0-41.337c-10.75 0-19.452 8.703-19.324 19.453 0 10.75 8.702 19.452 19.452 19.324 2.944 0 5.887-.64 8.575-2.047l-13.438-13.31c-.256-.256-.384-.512-.384-.896s.128-.64.384-.895l17.149-17.15c-3.456-2.943-7.807-4.479-12.414-4.479Z" />
    <path fill="#FFF" d="m203.122 52.622-.255-.256-18.301 18.044 14.461 14.462c1.408-.896 2.816-1.92 3.967-3.072a20.51 20.51 0 0 0 .128-29.178Z" />
    <path fill="#FF6C37" d="M199.155 86.28c-.384 0-.64-.128-.896-.384l-14.589-14.59c-.256-.256-.384-.512-.384-.896s.128-.64.384-.895l18.173-18.173a1.237 1.237 0 0 1 1.791 0l.384.256c8.575 8.574 8.575 22.396.128 31.098-1.28 1.28-2.687 2.432-4.223 3.328-.384.128-.64.256-.768.256Zm-12.798-15.87 12.926 12.926c1.024-.64 2.048-1.536 2.816-2.304 7.294-7.294 7.678-19.196.64-26.875L186.357 70.41Z" />
    <path fill="#FFF" d="M176.375 84.488a7.879 7.879 0 0 0-11.134 0l-48.247 48.247 8.063 8.063 51.062-44.792c3.328-2.816 3.584-7.807.768-11.134-.256-.128-.384-.256-.512-.384Z" />
    <path fill="#FF6C37" d="M124.929 142.077c-.384 0-.64-.128-.896-.383l-8.063-8.063a1.237 1.237 0 0 1 0-1.792l48.247-48.247a9.115 9.115 0 0 1 12.926 0 9.115 9.115 0 0 1 0 12.926l-.384.384-51.063 44.792c-.128.255-.384.383-.767.383Zm-6.143-9.342 6.27 6.271 50.167-44.024c2.816-2.304 3.072-6.527.768-9.342-2.303-2.816-6.526-3.072-9.342-.768-.128.128-.256.256-.512.384l-47.351 47.48Z" />
    <path fill="#FFF" d="M80.009 187.637c-.512.256-.768.768-.64 1.28l2.175 9.214c.512 1.28-.256 2.816-1.663 3.2-1.024.384-2.176 0-2.816-.768l-14.077-13.95 45.943-45.943 15.87.256 10.75 10.75c-2.56 2.175-18.045 17.149-55.542 35.961Z" />
    <path fill="#FF6C37" d="M78.985 202.61c-1.024 0-2.048-.383-2.688-1.151l-13.95-13.95c-.255-.256-.383-.512-.383-.896 0-.383.128-.64.384-.895l45.944-45.944c.256-.256.64-.384.895-.384l15.87.256c.383 0 .64.128.895.384l10.75 10.75c.256.256.384.64.384 1.024s-.128.64-.512.896l-.895.767c-13.566 11.902-31.995 23.804-54.902 35.194l2.175 9.086c.384 1.664-.384 3.456-1.92 4.352-.767.384-1.407.512-2.047.512Zm-14.078-15.997 13.182 13.054c.384.64 1.152.896 1.792.512.64-.384.896-1.152.512-1.792l-2.176-9.214c-.256-1.152.256-2.176 1.28-2.688 22.652-11.39 40.952-23.163 54.39-34.81l-9.47-9.47-14.718-.256-44.792 44.664Z" />
    <path fill="#FFF" d="m52.11 197.62 11.006-11.007 16.38 16.381-26.107-1.791c-1.151-.128-1.92-1.152-1.791-2.304 0-.512.128-1.024.512-1.28Z" />
    <path fill="#FF6C37" d="m79.497 204.146-26.236-1.791c-1.92-.128-3.199-1.792-3.071-3.712.128-.768.384-1.535 1.024-2.047L62.22 185.59a1.237 1.237 0 0 1 1.792 0l16.38 16.38c.385.385.512.897.257 1.408-.256.512-.64.768-1.152.768Zm-16.381-15.74-10.11 10.11c-.384.255-.384.895 0 1.151.127.128.255.256.511.256l22.652 1.536-13.053-13.054ZM104.452 146.557c-.768 0-1.28-.64-1.28-1.28 0-.384.128-.64.384-.896l12.414-12.414a1.237 1.237 0 0 1 1.792 0l8.062 8.063c.384.384.512.768.384 1.28-.128.384-.512.767-1.023.895l-20.477 4.352h-.256Zm12.414-11.902-8.446 8.446 13.821-2.943-5.375-5.503Z" />
    <path fill="#FFF" d="m124.8 140.926-14.077 3.071c-1.024.256-2.048-.384-2.303-1.408-.128-.64 0-1.28.511-1.791l7.807-7.807 8.063 7.935Z" />
    <path fill="#FF6C37" d="M110.467 145.277a3.168 3.168 0 0 1-3.2-3.2c0-.895.385-1.663.897-2.303l7.806-7.807a1.237 1.237 0 0 1 1.792 0l8.062 8.063c.384.384.512.768.384 1.28-.128.384-.512.767-1.023.895l-14.078 3.072h-.64Zm6.399-10.622-6.91 6.91c-.257.257-.257.512-.129.768s.384.384.768.384l11.774-2.56-5.503-5.502ZM203.25 64.907c-.256-.767-1.151-1.151-1.92-.895-.767.255-1.151 1.151-.895 1.92 0 .127.128.255.128.383.768 1.536.512 3.455-.512 4.863-.512.64-.384 1.536.128 2.048.64.512 1.536.384 2.048-.256 1.92-2.432 2.303-5.503 1.023-8.063Z" />
  </svg>;

<Card title="Run in Postman" href="https://app.getpostman.com/run-collection/26126890-b4ebfe97-5852-4a5d-a9be-d171474df3b1" icon={postmanIcon} horizontal={true} />

<RelatedApiLink />

[公開アプリ](/apps/legacy-apps/public-apps/overview)内でカスタムCRMカードを作成し、HubSpotのコンタクト、会社、取引、チケットのレコードに他のシステムからの情報を表示できます。各アプリには、最大25枚のCRMカードを含めることができます。

<Info>
  2025年6月16日以降、この記事に記載されている従来のCRMカードの機能はサポートされなくなり、2026年10月31日に正式に廃止されます。この変更の詳細については[HubSpot開発者変更ログ](https://community.hubspot.com/t5/Developer-Announcements/Deprecating-Support-for-Classic-Legacy-CRM-Cards/m-p/1153039#M1048)をご確認ください。

  従来のCRMカードは、[プロジェクトでUI拡張機能として作成](https://developers.hubspot.jp/docs/guides/crm/ui-extensions/create)できるアプリカードとは異なります。新しいアプリカードでは、最新のReactベースのツールセットが使用され、柔軟性、カスタマイズ性、インタラクティブ性が向上しています。現在ご自身のアプリに旧型CRMカードが含まれている場合は、[プロジェクトフレームワークに移行](/apps/developer-platform/build-apps/overview)して新しいアプリカードを使用する方法をご確認ください。
</Info>

**使用例**: アプリマーケットプレイスに掲載する、バグ追跡ソフトウェア用の連携を構築しているとします。サポート担当者がユーザーに対応する際に参照できるよう、コンタクトレコードに追跡対象のバグが表示されるようにしたいと考えています。アプリにカスタムカードを定義すると、この情報をHubSpotコンタクトレコード上に表示できます。

<Frame>
  <img src="https://cdn2.hubspot.net/hubfs/53/CRM_Card_1.png" alt="CRM_カード_1" />
</Frame>

カードはアプリの機能設定の一部として定義できます。アプリをインストールしたユーザーがターゲットのCRMレコードを表示すると、HubSpotはアプリにリクエストを送信して関連するデータを取得し、レコードページ上のカードにそのデータを表示します。アプリには、この情報に基づいてユーザーが実行できるカスタムアクションを指定することもできます。例えば、HubSpot内でアプリ独自のUIを表示するためのモーダルを開くアクションをアプリに組み込むことができます。

<Frame>
  <img src="https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/crm-card-diagram.png" alt="crmカード-データフローチャート" />
</Frame>

## スコープの要件

カスタムCRMカードを作成するアプリは、カードを表示するCRMレコードの変更に必要なOAuthスコープをリクエストする必要があります。例えば、CRMカードをコンタクトレコードに表示するには、アプリに`crm.objects.contacts.read`スコープと`crm.objects.contacts.write`スコープが設定されている必要があります。後でアプリからCRMオブジェクトのスコープを削除する必要が生じたら、まず、それらのオブジェクトタイプを対象とした既存のカードを全て削除する必要があります。

[スコープの詳細](/apps/legacy-apps/authentication/working-with-oauth)およびアプリの認証URLの設定については、OAuthのドキュメントをご参照ください。

## CRMカードを作成する

アプリのCRMカードは、APIを介して作成することも、開発者アカウントでのアプリの編集によって作成することもできます。APIを介してカードを設定する方法について詳しくは、[リファレンスドキュメント](/api-reference/crm-public-app-crm-cards-v3/guide)をご確認ください。

HubSpotのUIを使用してCRMカードを作成するには、次の手順に従います。

* HubSpot開発者アカウントで、メインナビゲーションにある［アプリ］に移動します\*\*。 \*\*
* カードを追加する対象の**アプリ**を選択します。
* 左のサイドバーメニューで［CRMカード］を選択します\*\*。 \*\*
* 右上の［CRMカードを作成］をクリックします\*\*。 \*\*

<Frame>
  <img src="https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card.png" alt="非公開-アプリ-作成-CRM-カード" />
</Frame>

以降のセクションで、各タブでの設定オプションについて詳しく説明します。

<Info>
  開発者プロジェクトを使用して構築されたUI拡張機能では、外部コンテンツをフレーム内に表示するなど、より柔軟な方法でデータを表示してユーザーとやり取りできます。連携で非公開アプリを使用することが可能な場合は、[UI拡張機能のクイックスタートガイド](/apps/developer-platform/build-apps/overview)でUI拡張機能の導入方法をご確認ください。また、[HubSpotのサンプルプロジェクトを参照](https://developers.hubspot.jp/docs/guides/crm/ui-extensions/sample-extensions/overview)して、UI拡張機能で実現可能なことの例をご確認いただくこともできます。
</Info>

## データリクエスト

HubSpotユーザーが、CRMカードが設定されているCRMレコードを表示すると、HubSpotが連携にデータ取得リクエストを送信します。HubSpotが指定されたターゲットURLに送信するこのリクエストには、一連の既定のクエリーパラメーターの他に、カードの設定として指定されたプロパティーデータを含むパラメーターが追加されます。

<Frame>
  <img src="https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card-data-request-tab.png" alt="非公開-アプリ-作成-CRM-カード-データ-リクエスト-タブ" />
</Frame>

* ［データ取得］フィールドに、データの取得元となる**URL**を入力します。\_ \_APIでは、このURLが`targetUrl`フィールドに追加されます。
* ［ターゲット レコード タイプ］セクションで、**スイッチ**をクリックしてオンに切り替え、カードを表示するCRMレコードを選択します。\_ \_次に、［HubSpotから送信されたプロパティー］ドロップダウンメニューを使用して、リクエストURLにクエリーパラメーターとして含める**HubSpotプロパティー**を選択します\*\*。 \*\*APIでは、各レコードタイプとそれに対応するプロパティーが`objectTypes`配列内のオブジェクトとして追加されます。

```json theme={null}
{
  "title": "New CRM Card",
  "fetch": {
    "targetUrl": "https://www.example.com/demo-fetch",
    "objectTypes": [
      {
        "name": "contacts",
        "propertiesToSend": [
          "firstname",
          "email",
          "lastname"
        ]
      }
    ]
  }
...
}
```

### リクエストの例

上記のように設定すると、HubSpotは次のように`GET`リクエストを送信します。

```shell theme={null}
https://www.example.com/demo-fetch?userId=12345&userEmail=loggedinuser@hubspot.com&associatedObjectId=53701&associatedObjectType=CONTACT&portalId=987654&firstname=Tim&email=timrobinson@itysl.com&lastname=Robinson
```

| パラメーター                 | 型     | 説明                                                                                          |
| ---------------------- | ----- | ------------------------------------------------------------------------------------------- |
| `userId`               | デフォルト | CRMレコードを読み込んだHubSpotユーザーのID。                                                                |
| `userEmail`            | デフォルト | CRMレコードを読み込んだユーザーのEメールアドレス。                                                                 |
| `associatedObjectId`   | デフォルト | 読み込まれたCRMレコードのID。                                                                           |
| `associatedObjectType` | デフォルト | 読み込まれたCRMレコードのタイプ（コンタクト、会社、取引など）。                                                           |
| `portalId`             | デフォルト | CRMレコードが読み込まれたHubSpotアカウントのID。                                                              |
| `firstname`            | カスタム  | ［HubSpotから送信されたプロパティー］ドロップダウンメニュー（アプリ内）および`propertiesToSend`配列（API）で指定された、コンタクトの名。\_ \_     |
| `email`                | カスタム  | ［HubSpotから送信されたプロパティー］ドロップメニュー（アプリ内）および`propertiesToSend`配列（API）で指定された、コンタクトのEメールアドレス。\_ \_ |
| `lastname`             | カスタム  | ［HubSpotから送信されたプロパティー］ドロップダウンメニュー（アプリ内）および`propertiesToSend`配列（API）で指定された、コンタクトの姓。\_ \_     |

<Warning>
  ### 注：

  接続は3秒以内に確立される必要があり、5秒が経過するとリクエストはタイムアウトします。
</Warning>

### レスポンスの例

以下に、インテグレーターが上記のリクエストに対して返すレスポンスの例を示します。

```json theme={null}
{
  "results": [
    {
      "objectId": 245,
      "title": "API-22: APIs working too fast",
      "link": "http://example.com/1",
      "created": "2016-09-15",
      "priority": "HIGH",
      "project": "API",
      "description": "Customer reported that the APIs are just running too fast. This is causing a problem in that they're so happy.",
      "reporter_type": "Account Manager",
      "status": "In Progress",
      "ticket_type": "Bug",
      "updated": "2016-09-28",
      "actions": [
        {
          "type": "IFRAME",
          "width": 890,
          "height": 748,
          "uri": "https://example.com/edit-iframe-contents",
          "label": "Edit",
          "associatedObjectProperties": []
        },
        {
          "type": "IFRAME",
          "width": 890,
          "height": 748,
          "uri": "https://example.com/reassign-iframe-contents",
          "label": "Reassign",
          "associatedObjectProperties": []
        },
        {
          "type": "ACTION_HOOK",
          "httpMethod": "PUT",
          "associatedObjectProperties": [],
          "uri": "https://example.com/tickets/245/resolve",
          "label": "Resolve"
        },
        {
          "type": "CONFIRMATION_ACTION_HOOK",
          "confirmationMessage": "Are you sure you want to delete this ticket?",
          "confirmButtonText": "Yes",
          "cancelButtonText": "No",
          "httpMethod": "DELETE",
          "associatedObjectProperties": ["protected_account"],
          "uri": "https://example.com/tickets/245",
          "label": "Delete"
        }
      ]
    },
    {
      "objectId": 988,
      "title": "API-54: Question about bulk APIs",
      "link": "http://example.com/2",
      "created": "2016-08-04",
      "priority": "HIGH",
      "project": "API",
      "reported_by": "ksmith@hubspot.com",
      "description": "Customer is not able to find documentation about our bulk Contacts APIs.",
      "reporter_type": "Support Rep",
      "status": "Resolved",
      "ticket_type": "Bug",
      "updated": "2016-09-23",
      "properties": [
        {
          "label": "Resolved by",
          "dataType": "EMAIL",
          "value": "ijones@hubspot.com"
        },
        {
          "label": "Resolution type",
          "dataType": "STRING",
          "value": "Referred to documentation"
        },
        {
          "label": "Resolution impact",
          "dataType": "CURRENCY",
          "value": "94.34",
          "currencyCode": "GBP"
        }
      ],
      "actions": [
        {
          "type": "IFRAME",
          "width": 890,
          "height": 748,
          "uri": "https://example.com/edit-iframe-contents",
          "label": "Edit"
        },
        {
          "type": "CONFIRMATION_ACTION_HOOK",
          "confirmationMessage": "Are you sure you want to delete this ticket?",
          "confirmButtonText": "Yes",
          "cancelButtonText": "No",
          "httpMethod": "DELETE",
          "associatedObjectProperties": ["protected_account"],
          "uri": "https://example.com/tickets/245",
          "label": "Delete"
        }
      ]
    }
  ],
  "settingsAction": {
    "type": "IFRAME",
    "width": 890,
    "height": 748,
    "uri": "https://example.com/settings-iframe-contents",
    "label": "Settings"
  },
  "primaryAction": {
    "type": "IFRAME",
    "width": 890,
    "height": 748,
    "uri": "https://example.com/create-iframe-contents",
    "label": "Create Ticket"
  }
}
```

| プロパティー             | タイプ    | 説明                                                                                                                   |
| ------------------ | ------ | -------------------------------------------------------------------------------------------------------------------- |
| `results`          | 配列     | 最大5つの有効な[カードプロパティー](#card-properties)から成る配列。特定のCRMオブジェクトにこれよりも多くのプロパティーが含まれる場合は、アプリからリンクを設定できます。                     |
| `objectId`         | 数値     | このオブジェクトの固有ID。                                                                                                       |
| `title`            | 文字列    | このオブジェクトのタイトル。                                                                                                       |
| `link`             | 文字列    | ユーザーがオブジェクトに関する詳細を取得するために使用できるURL。このプロパティーは任意指定ですが、リンクを持つオブジェクトがない場合は、`null`を指定してください。                               |
| `created`          | 文字列    | オブジェクトの作成日を示す、カードの設定で定義された[カスタムプロパティー](#card-properties)。                                                            |
| `priority`         | 文字列    | 外部チケットの優先度レベルを示す、カードの設定で定義された[カスタムプロパティー](#card-properties)。                                                         |
| `actions`          | 配列     | ユーザーが実行できる[アクション](#action-types)のリスト。                                                                                |
| `properties`       | プロパティー | カード設定で定義されていないカスタムプロパティーのリスト。このリストを使用して、特定のオブジェクトに固有のプロパティーを表示することができます。これらのプロパティーは、カード設定で定義されたプロパティーの後に指定した順に示されます。 |
| `settingsAction`   | オブジェクト | ユーザーがアプリの設定を更新できるようになるiframeアクション。                                                                                   |
| `primaryAction`    | オブジェクト | レコードタイプのプライマリーアクション（通常は作成アクション）。                                                                                     |
| `secondaryActions` | 配列     | カードに表示される他のアクションのリスト。                                                                                                |

### リクエスト署名

リクエストが実際にHubSpotから送信されていることを確認するために、リクエストには次のリクエストヘッダーが組み込まれます。このヘッダーには、アプリケーションのアプリシークレットのハッシュとリクエストの詳細が設定されます。

`X-HubSpot-Signature: <some base64 string>`

この署名を検証するには、次の手順に従います。

1. `<app secret>` + `<HTTP method>` + `<URL>` + `<request body> (if present)`の形式で連結した文字列を作成します。
2. 連結した文字列のSHA-256ハッシュを生成します。
3. ハッシュ値を署名と比較します。一致する場合、リクエストは検証に合格したことになります。一致しない場合は、転送中のリクエストの改ざん、またはエンドポイントに対するリクエストのなりすましが発生した恐れがあります。

HubSpotからのリクエストを検証する方法は、[こちら](/apps/legacy-apps/authentication/validating-requests)でご確認いただけます。

## カードプロパティー

［カードプロパティー］タブで、HubSpotのCRMカード上に表示させるカスタムプロパティーを定義します。\_ \_定義が完了すると、連携によってこれらのプロパティーがレスポンスに組み込まれ、値が取り込まれます。

* ［プロパティーを追加］をクリックし、カードに表示する新しいプロパティーを追加します\*\*。 \*\*データ取得呼び出しに対して返すペイロードには、これら全てのプロパティーに値が設定されている必要があります。
* 右側のパネルで、プロパティーの一意の名前、表示ラベル、データタイプを設定します。データタイプとして［通貨］、［日付］、［日時］、［Eメール］、［リンク］、［数値］、［ステータス］、［文字列］のいずれかを選択できます。**\_\_\_\_** **\_\_\_\_**[拡張プロパティータイプの使用](/apps/legacy-apps/extensions/overview)について詳細をご確認ください。
* ［追加］をクリックしてプロパティーを保存します\*\*。 \*\*

<Frame>
  <img src="https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card-card-properties-tab.png" alt="非公開-アプリ-作成-CRM-カード-カード-プロパティー-タブ" />
</Frame>

HubSpotがデータリクエストを送信すると、連携からのレスポンスでは、`results`に含まれる各オブジェクトの他の値に加えてこれらのプロパティーの値も取り込まれます。このタブで設定されたプロパティーの他に、連携によって独自のカスタムプロパティーが追加される場合もあり、これらのプロパティーをカードの設定で定義する必要はありません。

例えば、以下のレスポンスに含まれる`created`および`priority`は、どちらも［カードプロパティー］タブで定義されたものですが、`properties`配列では独自のプロパティー定義と値が送信されます。\_ \_これらのオブジェクト固有のプロパティーは、オブジェクトごとに定義する必要があります。

```json theme={null}
{
  "objectId": 988,
  "title": "API-54: Question about bulk APIs",
  "link": "http://example.com/2",
  "created": "2016-08-04",
  "priority": "HIGH",
  "properties": [
    {
      "label": "Resolved by",
      "dataType": "EMAIL",
      "value": "ijones@hubspot.com"
    },
    {
      "label": "Resolution type",
      "dataType": "STRING",
      "value": "Referred to documentation"
    },
    {
      "label": "Resolution impact",
      "dataType": "CURRENCY",
      "value": "94.34",
      "currencyCode": "GBP"
    }
  ],
  "actions": [
   ...
  ]
}
```

カスタムプロパティーを送信する際には、各プロパティーの`dataType`フィールドを`CURRENCY`、`DATE`、`DATETIME`、`EMAIL`、`LINK``NUMERIC`、`STATUS``STRING`のいずれかに設定できます。プロパティーのタイプによっては、連携で追加のフィールドが必要になる場合があります。以降のセクションで、プロパティーの各タイプについて詳しく説明します。

### 通貨プロパティー

`CURRENCY`プロパティーには`currencyCode`を含める必要があり、このコードは有効な[ISO 4217](https://ja.wikipedia.org/wiki/ISO_4217)でなければなりません。これにより、ユーザーには正しい通貨記号と数字の書式が表示されます。

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "Resolution impact",
          "dataType": "CURRENCY",
          "value": "94.34",
          "currencyCode": "GBP"
        }
      ]
    }
  ]
}
```

### 日付プロパティー

`DATE`プロパティーは`yyyy-mm-dd`の形式でなければなりません。これらのプロパティーは、ユーザーのロケールに適した形式で表示されます。タイムスタンプを含める必要がある場合は、代わりに`DATETIME`プロパティーを使用します。

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "Date",
          "dataType": "DATE",
          "value": "2023-10-13"
        }
      ]
    }
  ]
}
```

### 日時プロパティー

`DATETIME`プロパティーは特定の時間を示します。エポック以降のミリ秒数で指定する必要があります。これらのプロパティーは、ユーザーのロケールに適した形式で表示されます。

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "Timestamp",
          "dataType": "DATETIME",
          "value": "1697233678777"
        }
      ]
    }
  ]
}
```

### Eメールプロパティー

`EMAIL`プロパティーは、Eメールアドレスを含む値に使用されます。これらのプロパティーはmailtoリンクとして表示されます。

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "Email address",
          "dataType": "EMAIL",
          "value": "hobbes.baron@gmail.com"
        }
      ]
    }
  ]
}
```

### リンクプロパティー

`LINK`プロパティーはハイパーリンクを表示し、新しいウィンドウで開きます。`linkLabel`を指定しない場合は、URL自体が表示されます。

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "Link property",
          "dataType": "LINK",
          "value": "https://www.hubspot.com",
          "linkLabel": "Test link"
        }
      ]
    }
  ]
}
```

### 数値プロパティー

`NUMERIC`プロパティーは数値を表示します。

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "Number",
          "dataType": "NUMERIC",
          "value": "123.45"
        }
      ]
    }
  ]
}
```

### ステータスプロパティー

`STATUS`プロパティーは色付きのインジケーターとして表示されます。ステータスプロパティーを定義するには、考えられるステータスを記述する`optionType`を連携で指定する必要があります。ステータスは以下の通りです：

* `DEFAULT`：灰色
* `SUCCESS`：緑色
* `WARNING`：黄色
* `DANGER`：赤色
* `INFO`：青色

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "Status",
          "dataType": "STATUS",
          "value": "Errors occurring",
          "optionType": "DANGER"
        }
      ]
    }
  ]
}
```

### 文字列プロパティー

`STRING`プロパティーはテキストを表示します。

```json theme={null}
{
  "results": [
    {
      "properties": [
        {
          "label": "First name",
          "dataType": "STRING",
          "value": "Tim Robinson"
        }
      ]
    }
  ]
}
```

## カスタムアクション

［カスタムアクション］タブでは、ユーザーがアクションボタンをクリックしたときにリクエストするベースURLを定義できます。\_ \_CRMカードには、さまざまなアクションに対応する複数のアクションURLを含めることができます。

<Frame>
  <img src="https://www.hubspot.jp/hubfs/Knowledge_Base_2023/private-app-create-crm-card-custom-actions-tab.png" alt="非公開-アプリ-作成-CRM-カード-カスタム-アクションー-タブ" />
</Frame>

アクションフックおよび確認フックリクエストには、リクエストを検証するための`X-HubSpot-Signature`ヘッダーが含まれます。Iframeアクションリクエストには、リクエスト署名は含まれません。詳細については、[リクエスト署名](#request-signatures)をご確認ください。

アクションの`uri`フィールドでアクションURLにアクセスします。[データ取得リクエスト](#data-request)と同様に、アクションフックには一連のデフォルトのクエリーパラメーターが組み込まれます。アクションに`associatedObjectProperties`フィールドを含めると、他のクエリーパラメーターを含めることができます。

レスポンスは、アクションのタイプによって異なります。以下で、アクションのタイプについて詳しく説明します。

### アクションタイプ

#### Iframeアクション

`IFRAME`アクションは、指定されたURLを指すiframeを含むモーダルを開きます。CRM UIからiframeが開かれるとき、リクエスト署名は送信されません。その理由は、元のデータ取得リクエストでiframe URLが返され、追加のプロキシーリクエストが不要であるためです。

```json theme={null}
{
  "type": "IFRAME",
  "width": 890,
  "height": 748,
  "uri": "https://example.com/iframe-contents",
  "label": "Edit",
  "associatedObjectProperties": ["some_crm_property"]
}
```

ユーザーがiframe内のアクションを完了したら、モーダルを閉じて、ユーザーを元のCRMレコードにリダイレクトする必要があります。モーダルを閉じるには、連携で`window.postMessage`を使用して、ユーザーの操作が完了したことをCRMに通知します。次のメッセージを使用できます。

* `{"action": "DONE"}`：ユーザーが正常にアクションを完了しました。
* `{"action": "CANCEL"}`：ユーザーがアクションをキャンセルしました。

```json theme={null}
window.parent.postMessage(JSON.stringify({"action": "DONE"}), "*");
```

#### アクションフックのアクション

`ACTION_HOOK`アクションは、サーバーサイドのリクエストをインテグレーターに送信します。このアクションでユーザーに表示されるUIは、成功メッセージまたはエラーメッセージのみです。このタイプのアクションは、さらなるユーザー入力を必要としない単純な操作に役立ちます。検証用に、リクエストに`X-HubSpot-Signature`ヘッダーが含まれます。[リクエスト署名](#request-signatures)の詳細については、こちらをご覧ください。

```json theme={null}
{
  "type": "ACTION_HOOK",
  "httpMethod": "POST",
  "uri": "https://example.com/action-hook",
  "label": "Example action",
  "associatedObjectProperties": ["some_crm_property"]
}
```

`httpMethod`を`GET`、`POST`、`PUT`、`DELETE`、または`PATCH`に設定することができます。`GET`または`DELETE`を使用する場合、`associatedObjectProperties`値がリクエストURLの末尾にクエリーパラメーターとして追加されます。それ以外の場合、プロパティーはリクエスト本文で送信されます。

```json theme={null}
window.parent.postMessage(JSON.stringify({"action": "DONE"}), "*");
```

#### 確認アクション

`CONFIRMATION_ACTION_HOOK`アクションは、`ACTION_HOOK`アクションと同じように動作しますが、サーバーサイドのリクエストを実行する前にユーザーに確認ダイアログを表示するという点が異なります。検証用に、リクエストに`X-HubSpot-Signature`ヘッダーが含まれます。[リクエスト署名](#request-signatures)の詳細については、こちらをご覧ください。

```json theme={null}
{
  "type": "CONFIRMATION_ACTION_HOOK",
  "httpMethod": "POST",
  "uri": "https://example.com/action-hook",
  "label": "Example action",
  "associatedObjectProperties": ["some_crm_property"],
  "confirmationMessage": "Are you sure you want to run example action?",
  "confirmButtonText": "Yes",
  "cancelButtonText": "No"
}
```

`httpMethod`を`GET`、`POST`、`PUT`、`DELETE`、または`PATCH`に設定することができます。`GET`または`DELETE`を使用する場合、`associatedObjectProperties`値がリクエストURLの末尾にクエリーパラメーターとして追加されます。それ以外の場合、プロパティーはリクエスト本文で送信されます。

## CRMカードを削除する

作成後は、アプリの設定からCRMカードを削除できます。

* HubSpot開発者アカウントで、メインナビゲーションにある［アプリ］に移動します\*\*。 \*\*
* カードを削除するアプリの**名前**をクリックします。
* 左のサイドバーメニューで［CRMカード］を選択します\*\*。 \*\*
* カードにカーソルを合わせ［削除］をクリックします\*\*。 \*\*

<Frame>
  <img src="https://www.hubspot.jp/hubfs/Knowledge_Base_2023-24-25/public-app-delete-crm-card.png" alt="アプリ設定で旧型CRMカードを削除" />
</Frame>

* ダイアログボックスで［このカードを削除］をクリックして削除を確定します\*\*。 \*\*
