> ## Documentation Index
> Fetch the complete documentation index at: https://support.i.moneyforward.com/llms.txt
> Use this file to discover all available pages before exploring further.

# JumpCloud

> How to integrate with JumpCloud. This explains the full process, from getting your API key through to completing the integration.

export const IntegrationCapabilities = ({lang = "ja", modes = "", plan = "", lifecycle = "", automation = "", fetch = "", capabilities = "", memo = ""}) => {
  const TEXT = ({
    ja: {
      rows: {
        mode: "連携モード",
        plan: "連携確認プラン",
        lifecycle: "アカウントライフサイクル",
        automation: "自動化",
        fetch: "取得データ",
        capabilities: "対応機能",
        memo: "備考"
      },
      empty: "-",
      more: "各項目の意味は[連携可能SaaS・機能対応一覧](/integrations/supported-saas)をご覧ください。",
      mode: {
        "API Key": "APIキー"
      },
      lifecycle: {
        provisioning: "アカウント作成",
        deactivate: "アカウント無効化",
        delete: "アカウント削除"
      },
      automation: {
        provisioning: "アカウント作成",
        deactivate: "アカウント無効化",
        delete: "アカウント削除"
      },
      fetch: {
        User: "ユーザー名",
        Mail: "メールアドレス",
        Role: "ロール",
        Status: "ステータス",
        "2FA": "二要素認証",
        LastActivity: "最終利用日",
        Licenses: "ライセンス"
      },
      capabilities: {
        "employee-master": "従業員マスター連携",
        "identity-provider": "IDプロバイダー連携",
        "cost-aggregation": "コスト管理",
        "file-aggregation": "ファイル管理",
        "file-permissions": "ファイル権限管理",
        "device-aggregation": "MDM連携"
      }
    },
    en: {
      rows: {
        mode: "Integration mode",
        plan: "Verified plan",
        lifecycle: "Account lifecycle",
        automation: "Automation",
        fetch: "Fetched data",
        capabilities: "Capabilities",
        memo: "Notes"
      },
      empty: "-",
      more: "See [Supported SaaS and Capabilities](/en/integrations/supported-saas) for what each item means.",
      mode: {},
      lifecycle: {
        provisioning: "Account creation",
        deactivate: "Account deactivation",
        delete: "Account deletion"
      },
      automation: {
        provisioning: "Account creation",
        deactivate: "Account deactivation",
        delete: "Account deletion"
      },
      fetch: {
        LastActivity: "Last Activity"
      },
      capabilities: {
        "employee-master": "HR master",
        "identity-provider": "Identity provider",
        "cost-aggregation": "Cost management",
        "file-aggregation": "File management",
        "file-permissions": "File permissions",
        "device-aggregation": "MDM integration"
      }
    }
  })[lang === "en" ? "en" : "ja"];
  const BADGE_COLORS = {
    "ID/Password": "yellow",
    "API Key": "cyan",
    OAuth: "red",
    App: "purple",
    User: "blue",
    Mail: "cyan",
    Role: "orange",
    Status: "teal",
    "2FA": "pink",
    LastActivity: "green",
    Licenses: "purple",
    provisioning: "green",
    delete: "red",
    deactivate: "yellow",
    "employee-master": "blue",
    "identity-provider": "teal",
    "cost-aggregation": "yellow",
    "file-aggregation": "cyan",
    "file-permissions": "orange",
    "device-aggregation": "purple"
  };
  const list = value => String(value || "").split(",").map(item => item.trim()).filter(Boolean);
  const badges = (source, labels) => {
    const values = list(source);
    if (values.length === 0) {
      return <span className="integration-capabilities-empty">{TEXT.empty}</span>;
    }
    return values.map(value => <span key={value} className={"integration-catalog-badge integration-catalog-badge--" + (BADGE_COLORS[value] || "gray")}>
        {labels?.[value] ?? value}
      </span>);
  };
  const text = value => value || <span className="integration-capabilities-empty">{TEXT.empty}</span>;
  const ROWS = [["mode", badges(modes, TEXT.mode)], ["plan", text(plan)], ["lifecycle", badges(lifecycle, TEXT.lifecycle)], ["automation", badges(automation, TEXT.automation)], ["fetch", badges(fetch, TEXT.fetch)], ["capabilities", badges(capabilities, TEXT.capabilities)], ["memo", text(memo)]];
  return <div className="integration-capabilities">
      <dl className="integration-capabilities-list">
        {ROWS.map(([key, value]) => <div className="integration-capabilities-row" key={key}>
            <dt>{TEXT.rows[key]}</dt>
            <dd>{value}</dd>
          </div>)}
      </dl>
    </div>;
};

## Integration Specifications

<IntegrationCapabilities lang="en" modes="API Key" lifecycle="provisioning, deactivate, delete" fetch="User, Mail, Status" capabilities="device-aggregation" memo="Retrieving device serial numbers requires System Insights to be enabled in JumpCloud." />

## Prerequisites

### Getting your API key

1. Click **Settings** in the left navigation menu.

   <img src="https://mintcdn.com/moneyforwardi/Wf4fikCIrw9yQeyf/images/integrations/jumpcloud/nav-settings.png?fit=max&auto=format&n=Wf4fikCIrw9yQeyf&q=85&s=23e44e35318ce9a25773dccaeecb60f7" alt="JumpCloud's left navigation menu with Settings selected" width="492" height="878" data-path="images/integrations/jumpcloud/nav-settings.png" />

2. On the **Settings** screen, select the **Administrators** tab.

   <img src="https://mintcdn.com/moneyforwardi/Wf4fikCIrw9yQeyf/images/integrations/jumpcloud/settings-administrators-tab.png?fit=max&auto=format&n=Wf4fikCIrw9yQeyf&q=85&s=9599164e412e5754f20a3f307b7541ca" alt="Settings screen with the Administrators tab selected" width="1700" height="234" data-path="images/integrations/jumpcloud/settings-administrators-tab.png" />

3. Click an administrator's name in the list. A side panel opens for editing that administrator.

4. Under **Permissions**, check **Enable API access**, then click **Save**.

   <img src="https://mintcdn.com/moneyforwardi/Wf4fikCIrw9yQeyf/images/integrations/jumpcloud/edit-administrator-api-access.png?fit=max&auto=format&n=Wf4fikCIrw9yQeyf&q=85&s=a77cb3c6da1b54d9a3eb4264916a00ae" alt="Edit Administrator panel with Enable API access checked" width="788" height="1440" data-path="images/integrations/jumpcloud/edit-administrator-api-access.png" />

5. At the bottom left of the screen, click your name, then select **My API Key** from the menu that appears.

   <img src="https://mintcdn.com/moneyforwardi/Wf4fikCIrw9yQeyf/images/integrations/jumpcloud/my-api-key-menu.png?fit=max&auto=format&n=Wf4fikCIrw9yQeyf&q=85&s=b5a94e104fbf6762158412966dbd4f82" alt="Menu at the bottom left of the screen with My API Key selected" width="590" height="192" data-path="images/integrations/jumpcloud/my-api-key-menu.png" />

6. Click **Generate New API Key**, then copy and save the **API key** shown.

## Setting up the integration

1. On the integration screen, search for **JumpCloud**.

2. Enter the **API key** from the previous step and the **workspace key** shown in your JumpCloud admin console. Specify the **region** that matches your JumpCloud organization (US, EU, or IN), then click **Connect**.

   <img src="https://mintcdn.com/moneyforwardi/Wf4fikCIrw9yQeyf/images/integrations/jumpcloud/integrate-workspace.png?fit=max&auto=format&n=Wf4fikCIrw9yQeyf&q=85&s=5d139c4e56d7fa78696302cd17e61b5a" alt="Integration setup screen" width="666" height="878" data-path="images/integrations/jumpcloud/integrate-workspace.png" />

3. Once the integration with JumpCloud succeeds, registered user information appears in the account list. If it doesn't complete successfully, first try the steps in [Troubleshooting failed SaaS integrations](/en/it-management/saas-management/93nahw45is-trouble). If that doesn't resolve it, check [Information to provide](/en/it-management/saas-management/93nahw45is-trouble#info-to-provide) and contact [support](/en/contact-support).

## MDM Integration

If you are using the device management feature, you can synchronize devices with JumpCloud. For details, see [4-0. Sync MDM-Compatible SaaS with Your Device Ledger](/en/it-management/device/k1u975zc6h-mdm).

<Info>
  Serial number, model name, and manufacturer can only be retrieved from devices with JumpCloud's "System Insights" feature enabled. On devices without it enabled, the serial number is not set, so the device is registered as new instead of being merged with an existing one, and the model name is registered as "Unknown".

  Also, JumpCloud is not currently included in the list of services covered by the Managed field. The value is retrieved, but it is not reflected in the Managed field on the Devices screen.

  The user associated with a device (Email) is not retrieved, so devices are not automatically linked to employees.
</Info>

### Synchronized Fields

| This-Service Field   | Sync Pattern           | JumpCloud (Device / System)                                                    | Notes                                                                                                                                                               |
| -------------------- | ---------------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Asset number         | (2) This-service-based | `jumpcloud_<Hostname>`                                                         | Assigned only when newly registered. If duplicated, a suffix such as `_1` is added.                                                                                 |
| Model name           | (2) This-service-based | System Insights > System Info > Hardware Model (hardware\_model)               | Set as a required field when newly registered. Cannot be retrieved from devices without System Insights enabled, and is set to "Unknown".                           |
| Serial number (IMEI) | (1) MDM-based          | System Insights > System Info > Hardware Serial (hardware\_serial)             | Merge key. Cannot be retrieved from devices without System Insights enabled, so such devices are registered as new instead of being merged with an existing device. |
| Type                 | (2) This-service-based | Determined from Devices > OS (os / osFamily)                                   | Linux-based devices are set to Server; macOS / Windows to Laptop PC; others to Other. Desktop PCs cannot be distinguished.                                          |
| Status               | (2) This-service-based | —                                                                              | Always set to "In Stock" when newly registered.                                                                                                                     |
| Manufacturer         | (1) MDM-based          | System Insights > System Info > Hardware Vendor (hardware\_vendor)             | Cannot be retrieved from devices without System Insights enabled.                                                                                                   |
| OS                   | (1) MDM-based          | Devices > OS (os)                                                              | Example: "Mac OS X", "Windows", "Ubuntu"                                                                                                                            |
| Version              | (1) MDM-based          | Devices > OS Version (version)                                                 |                                                                                                                                                                     |
| Hostname             | (1) MDM-based          | Devices > Hostname (hostname)                                                  |                                                                                                                                                                     |
| Last used (MDM)      | (1) MDM-based          | The date portion of Devices > Last Contact (lastContact)                       | Created automatically when MDM integration starts.                                                                                                                  |
| MDM link             | (1) MDM-based          | —                                                                              | Because the JumpCloud client does not set a device URL, the "Open in MDM" link is empty.                                                                            |
| Managed              | (3) MDM field          | Devices > Agent connection status (active: true = Managed / false = Unmanaged) | JumpCloud is not currently included in the list of services covered by the Managed field, so the value is retrieved but not reflected on the Devices screen.        |
