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

# Microsoft Teams 連携

> AI Helpdesk と Microsoft Teams を接続し、Teams からボットに問い合わせを送信する手順を説明します。標準ボットとカスタムボットの 2 つの接続方式に対応します。

AI Helpdesk の Microsoft Teams 連携を設定すると、Teams チャットから AI ボットに問い合わせを送信できるようになります。

## サポートする接続方式

Microsoft Teams 連携では、以下の 2 つの接続方式に対応しています。

| 方式          | 説明                                                  | こんな場合に                                                |
| ----------- | --------------------------------------------------- | ----------------------------------------------------- |
| **標準ボット**   | 管理者同意（OAuth）でインストールする方式                             | 最短で導入したい / Azure でアプリ登録を管理したくない                       |
| **カスタムボット** | Azure AD でアプリを登録し、App ID・App Password などを入力して接続する方式 | アプリの権限・ブランディングを自社で管理したい / 社内ポリシーで公開アプリのインストールが制限されている |

<Note>
  どちらの方式でも、ボットの会話体験（グループチャット自動作成、DM 対応）は同じです。
</Note>

## 前提条件

<Info>
  * AI Helpdesk の **管理者（Admin）** ロールが必要です
  * **標準ボット** の場合: Microsoft Azure AD テナントの管理者権限が必要です（管理者同意の付与）
  * **カスタムボット** の場合: Azure Active Directory でボットアプリの登録・権限付与の権限が必要です
</Info>

## 標準ボットで接続する

管理者同意（Admin Consent）により Admina の公式 Teams アプリをインストールする方式です。Azure でアプリ登録を自社管理する必要がありません。

<Steps>
  <Step title="連携設定を開く">
    左のナビゲーションから **設定** を選択し、**連携** タブを開きます。
    **メッセージング** セクションで **接続を追加** ボタンをクリックし、**Microsoft Teams — 標準ボット** を選択します。
  </Step>

  <Step title="管理者同意を付与する">
    Microsoft の管理者同意ページにリダイレクトされます。
    Azure AD 管理者アカウントでログインし、Admina AI Helpdesk アプリへの権限付与を承認します。
  </Step>

  <Step title="オブザーバーユーザーを選択する">
    グループチャットセッションを成立させるために、オブザーバーユーザーを 1 名以上選択します。
    一覧から適切なユーザーを選択し、**接続** をクリックします。

    <Note>
      オブザーバーユーザーは、グループチャットの技術的要件です。通常は問い合わせ内容を閲覧しない専用アカウントの利用を推奨します。
    </Note>
  </Step>

  <Step title="接続完了を確認する">
    認証が成功すると、**メッセージング** セクションに Microsoft Teams（標準ボット）のカードが表示されます。
  </Step>
</Steps>

## カスタムボットで接続する

Azure AD でボットアプリを登録し、App ID・App Password などを AI Helpdesk に入力して接続する方式です。

### 接続に必要な情報

| 項目                         | 取得元                                                 |
| -------------------------- | --------------------------------------------------- |
| **アプリ ID（App ID）**         | Azure AD のアプリ登録の **Application (client) ID**        |
| **アプリパスワード（App Password）** | アプリ登録の **Certificates & secrets** で発行したクライアントシークレット |
| **テナント ID（Tenant ID）**     | アプリ登録の **Directory (tenant) ID**                    |
| **Teams アプリ ID**           | Teams 管理センターにアップロードしたアプリのカタログ ID                    |

### Azure 側のセットアップ

#### Bot Service を作成する

1. [Azure Portal](https://portal.azure.com/) で **Bot Service** に移動し、**+ Create** > **Azure Bot** を選択

2. Bot handle 名やテナント設定などを入力して送信

3. **Microsoft App ID** は新規作成または既存利用から選択

4. Bot の **Configuration** で **Messaging endpoint** を以下に設定します

   ```text theme={null}
   https://assist.i.moneyforward.com/chat/teams
   ```

5. Bot の **Channels** で **Microsoft Teams** チャネルを有効化します

#### アプリ登録に必要な API 権限

アプリ登録の **API Permissions** に以下の権限を追加し、**管理者の同意** を付与してください。

| 権限                                          | 種別          | 用途                 |
| ------------------------------------------- | ----------- | ------------------ |
| `AppCatalog.Read.All`                       | Application | アプリカタログの参照         |
| `Channel.ReadBasic.All`                     | Application | チャネル情報の参照          |
| `ChannelMessage.Read.All`                   | Application | チャネルメッセージの読み取り     |
| `Chat.Create`                               | Application | グループチャットの作成        |
| `Chat.ReadWrite.All`                        | Application | チャット情報の読み書き        |
| `ChatMessage.Read.All`                      | Application | チャットメッセージの読み取り     |
| `Team.ReadBasic.All`                        | Application | Team 一覧の参照         |
| `TeamsAppInstallation.ReadWriteForChat.All` | Application | チャットへの Teams アプリ管理 |
| `TeamsAppInstallation.ReadWriteForUser.All` | Application | ユーザーへの Teams アプリ管理 |
| `User.Read`                                 | Delegated   | サインインとプロフィール参照     |
| `User.Read.All`                             | Application | 全ユーザーのプロフィール参照     |

#### クライアントシークレットの発行

アプリ登録の **Certificates & secrets** で新しいシークレットを発行し、表示された **値** を控えます（後で参照できなくなります）。この値が **アプリパスワード** になります。

#### Teams アプリのアップロードとカタログ ID の取得

[Microsoft Teams 管理センター](https://admin.teams.microsoft.com/) の **Teams アプリ > アプリの管理** からアプリパッケージ（zip）をアップロードしてください。アップロード後、アプリ詳細画面の URL に表示されるカタログ ID をコピーします。

### 接続手順

<Steps>
  <Step title="連携設定を開く">
    左のナビゲーションから **設定** を選択し、**連携** タブを開きます。
    **メッセージング** セクションで **接続を追加** ボタンをクリックし、**Microsoft Teams — カスタムボット** を選択します。
  </Step>

  <Step title="認証情報を入力する">
    **アプリ ID**・**アプリパスワード**・**テナント ID**・**Teams アプリ ID** を入力し、**次へ** をクリックします。
    入力内容を検証するため、Azure AD への確認が行われます。
  </Step>

  <Step title="オブザーバーユーザーを選択する">
    グループチャットセッションを成立させるために、オブザーバーユーザーを 1 名以上選択します。
    一覧から適切なユーザーを選択し、**接続** をクリックします。

    <Note>
      オブザーバーユーザーは、グループチャットの技術的要件です。通常は問い合わせ内容を閲覧しない専用アカウントの利用を推奨します。
    </Note>
  </Step>

  <Step title="接続完了を確認する">
    接続が成功すると、**メッセージング** セクションに Microsoft Teams のカードが表示されます。
  </Step>
</Steps>

## ボットを利用する

接続完了後、Teams ユーザーはボットとのダイレクトチャットで問い合わせができます。ユーザーがボットにメッセージを送信すると、グループチャットが自動的に作成されセッションが開始されます。

<Tip>
  ユーザーへの DM 通知（エスカレーション通知など）を有効にするには、Azure AD 側で `TeamsAppInstallation.ReadWriteForUser.All` 権限が必要です（カスタムボットの場合）。
</Tip>

## 接続を解除する

**設定 > 連携** タブの **メッセージング** セクションで、切断するカードのゴミ箱アイコンをクリックしてください。

<Warning>
  接続を解除すると、その Teams テナントからの問い合わせは受け付けられなくなります。
</Warning>

## トラブルシューティング

**管理者同意が拒否された（標準ボット）**

Azure AD 管理者に確認し、Admina AI Helpdesk アプリへの管理者同意を承認してもらってください。
承認が難しい場合は **カスタムボット** での接続を検討してください。

**「認証情報が無効です」と表示される（カスタムボット）**

* アプリ ID・パスワード・テナント ID が正しいか確認してください
* クライアントシークレットの有効期限が切れていないか確認してください

**ボットが反応しない**

* Teams 管理センターでアプリが承認・配布されているか確認してください
* ボットサービスのエンドポイント URL が正しく設定されているか確認してください

## 関連ページ

* [連携（Slack）](/ai-helpdesk/integrations/slack)
* [連携（LINE WORKS）](/ai-helpdesk/integrations/line-works)
* [連携（Google Chat）](/ai-helpdesk/integrations/google-chat)
