> ## Documentation Index
> Fetch the complete documentation index at: https://hc.saas-manager.biz.nuro.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# Hubstaff

> Hubstaffとの連携方法です。

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 linkify = value => {
    if (!value) return null;
    const parts = [];
    let rest = String(value);
    let key = 0;
    for (; ; ) {
      const mid = rest.indexOf("](");
      if (mid < 0) break;
      const open = rest.lastIndexOf("[", mid);
      const close = rest.indexOf(")", mid);
      if (close < 0) break;
      if (open < 0) {
        parts.push(rest.slice(0, mid + 2));
        rest = rest.slice(mid + 2);
        continue;
      }
      if (open > 0) parts.push(rest.slice(0, open));
      parts.push(<a key={key++} href={rest.slice(mid + 2, close)} target="_blank" rel="noopener noreferrer">
          {rest.slice(open + 1, mid)}
        </a>);
      rest = rest.slice(close + 1);
    }
    if (rest) parts.push(rest);
    return parts;
  };
  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(linkify(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>;
};

## 連携仕様

<IntegrationCapabilities modes="API Key" plan="Free以上" lifecycle="provisioning, delete" fetch="User, Mail, Role, Status" />

## 事前準備

### ワークスペースキー（Organization ID）の取得方法

[Hubstaff](https://app.hubstaff.com)に管理者のアカウントでログインし、ブラウザのアドレスバーのURLを確認します。`https://app.hubstaff.com/dashboard/`の後ろにある数字がOrganization ID（組織ID）です。

<img src="https://mintcdn.com/admina-sbn/kJzldmhScMO1LJk0/images/integrations/hubstaff/hubstaff-organization-id-url.png?fit=max&auto=format&n=kJzldmhScMO1LJk0&q=85&s=68d156f222cda6e72fb246566eb26589" alt="HubstaffのURLでdashboardの後ろにOrganization IDが表示されている状態" width="652" height="68" data-path="images/integrations/hubstaff/hubstaff-organization-id-url.png" />

### アクセスキー（APIアクセストークン）の取得方法

1. Hubstaffの左メニューの**Settings**（設定）から**All settings**（すべての設定）を選択します。

   <img src="https://mintcdn.com/admina-sbn/kJzldmhScMO1LJk0/images/integrations/hubstaff/hubstaff-all-settings.png?fit=max&auto=format&n=kJzldmhScMO1LJk0&q=85&s=187a0978f0580b52613f335349314ceb" alt="Hubstaffの左メニューでSettingsのAll settingsが表示されている状態" width="476" height="468" data-path="images/integrations/hubstaff/hubstaff-all-settings.png" />

2. **Organization**（組織）の**Security & log in**（セキュリティとログイン）を選択します。

   <img src="https://mintcdn.com/admina-sbn/kJzldmhScMO1LJk0/images/integrations/hubstaff/hubstaff-security-login.png?fit=max&auto=format&n=kJzldmhScMO1LJk0&q=85&s=531aa648661f92f2fc04ca5dd68aeb24" alt="HubstaffのSettings画面でOrganizationのSecurity & log inが表示されている状態" width="808" height="802" data-path="images/integrations/hubstaff/hubstaff-security-login.png" />

3. **API access tokens**（APIアクセストークン）を選択し、**Create token**（トークンを作成）をクリックします。

   <img src="https://mintcdn.com/admina-sbn/kJzldmhScMO1LJk0/images/integrations/hubstaff/hubstaff-api-access-tokens.png?fit=max&auto=format&n=kJzldmhScMO1LJk0&q=85&s=1a8baa14df6622c1c31b5537a703673e" alt="HubstaffのSecurity & log in画面でAPI access tokensとCreate tokenボタンが表示されている状態" width="1920" height="480" data-path="images/integrations/hubstaff/hubstaff-api-access-tokens.png" />

4. **Create access token**（アクセストークンの作成）画面の**NAME**（名前）に、任意の名前を入力します。**ASSIGNED MEMBER**（割り当てるメンバー）には管理者のメンバーを選択します。トークンは、ここで選んだメンバーの権限で動作します。**EXPIRATION**（有効期限）は**Never (no expiry)**（無期限）を選択し、**Create token**をクリックします。

   <img src="https://mintcdn.com/admina-sbn/kJzldmhScMO1LJk0/images/integrations/hubstaff/hubstaff-create-access-token.png?fit=max&auto=format&n=kJzldmhScMO1LJk0&q=85&s=5d2b2d32ac42898a286109a7cffc16b8" alt="HubstaffのCreate access token画面でトークンの内容を設定する状態" width="874" height="860" data-path="images/integrations/hubstaff/hubstaff-create-access-token.png" />

5. 生成されたトークンをコピーして保存します。

## インテグレーションのセットアップ

1. インテグレーション画面にて**Hubstaff**を検索します。

2. 前の手順で取得したOrganization IDを**ワークスペースキー**に、APIアクセストークンを**アクセスキー**に入力し、**連携する**をクリックします。

   <img src="https://mintcdn.com/admina-sbn/kJzldmhScMO1LJk0/images/integrations/hubstaff/admina-hubstaff-setup.png?fit=max&auto=format&n=kJzldmhScMO1LJk0&q=85&s=7e4ead05aca259da03545763505985e0" alt="Hubstaff連携画面でワークスペースキーとアクセスキーを入力する状態" width="666" height="746" data-path="images/integrations/hubstaff/admina-hubstaff-setup.png" />

3. Hubstaffとの連携が成功すると、アカウント一覧に登録済みのユーザー情報が表示されます。正常に完了しない場合は、まず [SaaS連携エラーの対処法](/it-management/saas-management/93nahw45is-trouble) に記載のステップをお試しください。それでも解決しない場合は、[ご提供いただきたい情報](/it-management/saas-management/93nahw45is-trouble#info-to-provide) をご確認のうえ、[サポート窓口](/contact-support)までお問い合わせください。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.