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

# Sage HR

> How to integrate with Sage HR. This explains the full process, from getting an API key and workspace 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" fetch="User, Mail, Status" />

## Prerequisites

### Getting an API key and workspace key

1. After logging in to Sage HR, click the **account menu** at the top right, then select **Settings**. For details, see [Sage HR API (external site)](https://support.sage.hr/en/articles/3246469-sage-hr-api).

   <img src="https://mintcdn.com/moneyforwardi/6mYNkjvGlBrOfSMR/images/integrations/sage-hr/login-menu-settings.png?fit=max&auto=format&n=6mYNkjvGlBrOfSMR&q=85&s=d43fc0a83b25e346f2d0e557a555d7aa" alt="Sage HR account menu with Settings selected" width="1486" height="874" data-path="images/integrations/sage-hr/login-menu-settings.png" />

2. In the settings screen, expand **Integrations** in the left menu, then select **API**.

   <Frame>
     <img src="https://mintcdn.com/moneyforwardi/6mYNkjvGlBrOfSMR/images/integrations/sage-hr/sidebar-integrations-api.png?fit=max&auto=format&n=6mYNkjvGlBrOfSMR&q=85&s=1a43913d0e7d0507b17da514821c803d" alt="API selected under Integrations in the settings left menu" style={{ maxWidth: "min(100%, 800px)", height: "auto" }} width="788" height="394" data-path="images/integrations/sage-hr/sidebar-integrations-api.png" />
   </Frame>

3. Click **Enable API access**.

   <img src="https://mintcdn.com/moneyforwardi/6mYNkjvGlBrOfSMR/images/integrations/sage-hr/api-enable.png?fit=max&auto=format&n=6mYNkjvGlBrOfSMR&q=85&s=099d461843af066999607fecfab97b91" alt="Enable API access button shown while the API is disabled" width="1284" height="582" data-path="images/integrations/sage-hr/api-enable.png" />

4. Once the API is enabled, **Your API key** is issued. Copy and save the value shown.

   <img src="https://mintcdn.com/moneyforwardi/6mYNkjvGlBrOfSMR/images/integrations/sage-hr/api-key.png?fit=max&auto=format&n=6mYNkjvGlBrOfSMR&q=85&s=b9ea055575cc5c2cb537aab2dcaab099" alt="API key issued and shown in the input field" width="1600" height="484" data-path="images/integrations/sage-hr/api-key.png" />

5. In the URL shown in your browser's address bar, the part before `.sage.hr` is your workspace key. Note it down as well.

   <img src="https://mintcdn.com/moneyforwardi/6mYNkjvGlBrOfSMR/images/integrations/sage-hr/workspace-key-url.png?fit=max&auto=format&n=6mYNkjvGlBrOfSMR&q=85&s=3e74f8849c46c9d3d0d8c5d94a825c9b" alt="Part of the browser address bar URL showing the workspace key" width="406" height="112" data-path="images/integrations/sage-hr/workspace-key-url.png" />

## Setting up the integration

1. On the integration screen, search for **Sage HR**.

2. Enter the following, then click **Integrate**:

   * **Workspace Name** (optional): any name you like
   * **Workspace key**: the workspace key from step 5
   * **API Key**: the API key from step 4

   <img src="https://mintcdn.com/moneyforwardi/4Yx6u2v5eg0eRzm2/images/integrations/sage-hr/admina-connect-en.png?fit=max&auto=format&n=4Yx6u2v5eg0eRzm2&q=85&s=9a93ea502c25a7d3b95319b363127bd9" alt="Sage HR integration setup screen with workspace key and API key fields" width="1006" height="1292" data-path="images/integrations/sage-hr/admina-connect-en.png" />

3. Once the integration with Sage HR 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).
