> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Tích hợp Microsoft Teams

> Chạy vận hành cloud từ Microsoft Teams bằng cách tương tác với các agent CloudThinker, nhận cảnh báo Adaptive Card và phối hợp incident.

Biến workspace Microsoft Teams của bạn thành trung tâm chỉ huy vận hành cloud. Tương tác với các agent CloudThinker, nhận cảnh báo và chạy các tác vụ mà không cần rời khỏi Teams.

***

## Điều kiện tiên quyết

<Warning>
  Quá trình thiết lập ban đầu **phải được thực hiện bởi người dùng có một trong các vai trò Azure AD sau**:

  * **Global Administrator** — quyền truy cập quản trị đầy đủ trên tất cả dịch vụ Microsoft 365
  * **Teams Administrator** — quyền truy cập quản trị giới hạn trong Microsoft Teams

  Người dùng Microsoft 365 thông thường **không thể** hoàn tất thiết lập. Nếu bạn không có một trong các vai trò này, hãy yêu cầu nhóm IT của bạn thực hiện kết nối ban đầu (Bước 1–3 bên dưới). Sau khi bot được xuất bản, bất kỳ người dùng nào cũng có thể tương tác với nó trong các kênh Teams.
</Warning>

### Quyền Azure AD cần thiết

Trong luồng OAuth, CloudThinker yêu cầu các quyền Microsoft Graph API sau:

| Quyền                                             | Loại                | Mục đích                                       |
| ------------------------------------------------- | ------------------- | ---------------------------------------------- |
| `User.Read`                                       | Đồng ý người dùng   | Đọc hồ sơ của người dùng đã đăng nhập          |
| `Channel.ReadBasic.All`                           | Đồng ý người dùng   | Liệt kê các kênh trong nhóm                    |
| `Team.ReadBasic.All`                              | Đồng ý người dùng   | Liệt kê các nhóm mà người dùng thuộc về        |
| `TeamsAppInstallation.ReadWriteForTeam`           | **Đồng ý quản trị** | Cài đặt bot vào nhóm                           |
| `TeamsAppInstallation.ReadWriteAndConsentForTeam` | **Đồng ý quản trị** | Cài đặt bot và cấp đồng ý tài nguyên cụ thể    |
| `TeamsAppInstallation.ReadWriteSelfForTeam`       | **Đồng ý quản trị** | Quản lý cài đặt của chính bot                  |
| `AppCatalog.ReadWrite.All`                        | **Đồng ý quản trị** | Xuất bản bot lên danh mục ứng dụng của tổ chức |
| `Organization.Read.All`                           | **Đồng ý quản trị** | Đọc thông tin tổ chức                          |

Các quyền được đánh dấu **Đồng ý quản trị** chỉ có thể được cấp bởi Global Administrator hoặc Teams Administrator. Trong luồng OAuth, quản trị viên sẽ thấy hộp kiểm **"Consent on behalf of your organization"**:

* **Đã chọn** — quyền được cấp trên toàn tenant cho tất cả người dùng trong Azure AD tenant. Các quản trị viên khác kết nối sau này sẽ không cần cấp lại đồng ý.
* **Không chọn** — quyền chỉ được cấp cho tài khoản của quản trị viên. Điều này đủ để hoàn tất thiết lập vì quản trị viên có vai trò cần thiết để xuất bản bot.

### Ai nên thực hiện thiết lập?

| Vai trò của bạn                   | Phải làm gì                                                                                                                                                |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Global Admin hoặc Teams Admin** | Bạn có thể tự hoàn tất thiết lập đầy đủ — tiến hành đến Bước 1 bên dưới                                                                                    |
| **Người dùng thông thường**       | Yêu cầu Global Admin hoặc Teams Admin của bạn hoàn tất Bước 1–3. Sau khi bot được xuất bản, bạn có thể sử dụng nó trong bất kỳ kênh nào mà nó được cài đặt |

***

## Thiết lập

<Steps>
  <Step title="Điều hướng đến Integrations">
    Đi đến [**Admin Settings → Integrations**](https://app.cloudthinker.io/admin-settings/integrations) và tìm **Microsoft Teams**
  </Step>

  <Step title="Kết nối với Teams">
    Nhấp **Connect with Teams** và xác thực qua Microsoft OAuth.

    <Warning>
      Bạn **phải** đăng nhập bằng tài khoản **Global Administrator** hoặc **Teams Administrator**. Nếu bạn là người dùng thông thường, bước này sẽ:

      * Chặn bạn tại màn hình đồng ý của Microsoft, hoặc
      * Có vẻ thành công nhưng thất bại âm thầm khi xuất bản bot lên danh mục ứng dụng của tổ chức

      Nếu bạn không phải là quản trị viên, hãy chia sẻ trang này với nhóm IT và yêu cầu họ thực hiện bước này.
    </Warning>
  </Step>

  <Step title="Cài đặt bot">
    Chọn Teams nào để thêm bot CloudThinker vào và xác nhận cài đặt. Bot được xuất bản lên danh mục ứng dụng Teams của tổ chức — đây là thao tác một lần.
  </Step>

  <Step title="Ánh xạ Teams với workspace">
    Ánh xạ Microsoft Teams của bạn với các workspace CloudThinker để agent biết tài khoản cloud nào cần vận hành
  </Step>

  <Step title="Cấu hình thông báo">
    Tùy chọn chọn kênh cho từng loại thông báo (cảnh báo chi phí, phát hiện bảo mật, cập nhật incident)
  </Step>

  <Step title="Kiểm tra">
    Thử `@CloudThinker alex show AWS costs` trong một kênh để xác minh kết nối
  </Step>
</Steps>

***

## Cú pháp

Trong Teams, thêm tiền tố `@CloudThinker` vào tất cả lệnh:

```text theme={null}
@CloudThinker alex analyze EC2 spending trends
@CloudThinker oliver audit security groups for public access
@CloudThinker tony check database performance
@CloudThinker kai review EKS cluster health
```

Tất cả cú pháp [CloudThinker Language](/vi/guide/language) đều hoạt động trong Teams — chỉ cần thêm tiền tố `@CloudThinker`.

***

## Ví dụ

### Truy vấn nhanh

```text theme={null}
@CloudThinker alex what's our AWS spending this week?
@CloudThinker oliver any critical security findings?
@CloudThinker tony why are queries slow on production?
@CloudThinker kai check pod status in payment namespace
```

### Với công cụ

```text theme={null}
@CloudThinker alex #dashboard cost trends by service
@CloudThinker oliver #report weekly security summary
@CloudThinker tony #recommend index optimizations
@CloudThinker kai #alert on pod OOMKilled events
```

### Đa agent

```text theme={null}
@CloudThinker anna coordinate investigation of latency spike
@CloudThinker alex and tony analyze database infrastructure costs
```

***

## Cảnh báo

Cấu hình agent để gửi cảnh báo đến các kênh Teams:

```text theme={null}
@CloudThinker alex #alert daily spend exceeds $5,000 → #cloud-ops
@CloudThinker oliver #alert security group changes → #security
@CloudThinker kai #alert pod failures in production → #k8s-alerts
```

***

## Thông báo Code Review

Khi AI Code Review hoàn thành, CloudThinker gửi thông báo Adaptive Card đến kênh Teams đã cấu hình của bạn. Thẻ bao gồm:

* **Bảng mức độ nghiêm trọng** — bảng có cấu trúc hiển thị số lượng theo cấp độ nghiêm trọng (🔴 Critical, 🟠 High, 🟡 Medium, 🟢 Low)
* **Chi tiết phát hiện** — tối đa 5 phát hiện chưa giải quyết với tiêu đề, nhãn mức độ nghiêm trọng, đường dẫn file và số dòng
* **Số lượng đã giải quyết** — số phát hiện đã được xác định trước đó đã được giải quyết
* **Nút View Code Review** — liên kết trực tiếp đến dashboard review
* **Thông qua sạch** — khi không tìm thấy vấn đề, một tin nhắn đơn giản "No issues found"

<Info>
  Cấu hình kênh Teams nào nhận thông báo Code Review và đặt ngưỡng mức độ nghiêm trọng trong **Settings > Notifications > Code Review / Pipeline Monitoring**. Xem [Notifications Center](/vi/guide/notifications) để biết chi tiết.
</Info>

***

## Mẫu kênh

| Kênh            | Trường hợp sử dụng                         |
| --------------- | ------------------------------------------ |
| `#cloud-ops`    | Vận hành hạ tầng chung và cảnh báo chi phí |
| `#security`     | Phát hiện bảo mật và cập nhật tuân thủ     |
| `#incidents`    | Điều tra và phối hợp incident đang diễn ra |
| `#code-reviews` | Phát hiện Code Review và giám sát pipeline |
| `#reports`      | Báo cáo định kỳ và tóm tắt                 |

***

## Xử lý sự cố

<Accordion title="Agent không phản hồi">
  * Kiểm tra xem bot CloudThinker có được cài đặt trong nhóm không
  * Xác minh bạn đang sử dụng cú pháp `@CloudThinker agent` (không chỉ `agent`)
  * Xác nhận các agent được cấu hình trong console CloudThinker
  * Kiểm tra trạng thái đồng ý quản trị Azure AD
</Accordion>

<Accordion title="Thiếu cảnh báo">
  * Kiểm tra cấu hình cảnh báo trong CloudThinker Settings
  * Xác minh cài đặt thông báo kênh Teams
  * Đảm bảo bot có quyền đăng trong kênh đích
</Accordion>

<Accordion title="Lỗi quyền">
  * **"Missing required permissions"** — Người dùng đã kết nối không có vai trò Global Administrator hoặc Teams Administrator. Yêu cầu nhóm IT của bạn thực hiện kết nối ban đầu thay thế.
  * **"Consent on behalf of your organization"** — Trong OAuth, quản trị viên có thể chọn hộp kiểm này để cấp quyền trên toàn tenant. Điều này là tùy chọn — nếu người dùng kết nối đã là quản trị viên, đồng ý cá nhân của họ là đủ.
  * **Kết nối có vẻ thành công nhưng bot không hoạt động** — Điều này có thể xảy ra nếu người dùng không phải quản trị viên hoàn tất luồng OAuth. Xác thực cá nhân của người dùng thành công, nhưng việc xuất bản bot lên danh mục ứng dụng thất bại âm thầm. Yêu cầu Global Administrator hoặc Teams Administrator kết nối lại.
  * Đối với bất kỳ lỗi quyền nào khác, kiểm tra quyền quản trị workspace trong CloudThinker, hoặc thử xóa và thêm lại bot vào nhóm.
</Accordion>

<Accordion title="Tôi không phải quản trị viên — làm thế nào để thiết lập?">
  Bạn cần **Global Administrator** hoặc **Teams Administrator** từ tổ chức của bạn để hoàn tất kết nối ban đầu. Đây là những gì cần chia sẻ với họ:

  1. Đăng nhập vào CloudThinker (họ cần tài khoản CloudThinker với quyền quản trị tổ chức)
  2. Đi đến [**Admin Settings → Integrations → Microsoft Teams**](https://app.cloudthinker.io/admin-settings/integrations)
  3. Nhấp **Connect with Teams** và hoàn tất luồng Microsoft OAuth
  4. Bot sẽ được xuất bản lên danh mục ứng dụng Teams của tổ chức

  Đây là **thiết lập một lần**. Sau khi quản trị viên hoàn tất, bất kỳ người dùng nào trong workspace Teams cũng có thể tương tác với bot bằng cách đề cập `@CloudThinker` trong các kênh mà bot được cài đặt.
</Accordion>

***

## Quyền

### Quyền Azure AD

Kết nối ban đầu yêu cầu **Global Administrator** hoặc **Teams Administrator** trong Azure AD. Điều này là vì CloudThinker cần xuất bản một bot lên danh mục ứng dụng Teams của tổ chức, đây là hành động cấp quản trị. Thiết lập này là thao tác một lần — sau khi bot được xuất bản, không cần thêm hành động quản trị nào.

Trong OAuth, quản trị viên có thể tùy chọn chọn **"Consent on behalf of your organization"** để cấp quyền trên toàn tenant. Nếu không chọn, quyền chỉ được cấp cho tài khoản của quản trị viên, điều này vẫn đủ để hoàn tất thiết lập. Xem bảng [Quyền Azure AD cần thiết](#quyền-azure-ad-cần-thiết) ở trên để có danh sách đầy đủ các phạm vi được yêu cầu.

### Quyền CloudThinker

Trong Teams, người dùng chỉ có thể truy cập các agent và kết nối cloud mà tài khoản CloudThinker của họ cho phép. Các vai trò workspace CloudThinker áp dụng theo cùng cách như trong console web.

***

## Liên quan

<CardGroup cols={2}>
  <Card title="CloudThinker Language" icon="code" href="/vi/guide/language">
    Tài liệu tham khảo cú pháp đầy đủ cho tất cả lệnh
  </Card>

  <Card title="Tích hợp Slack" icon="slack" href="/vi/guide/slack-integration">
    Thiết lập CloudThinker trong Slack
  </Card>
</CardGroup>
