Copyright© Mat Bao Company. All Reserved.
Sử dụng nội dung ở trang này và dịch vụ tại Mắt Bão có nghĩa là bạn đồng ý với Thỏa thuận sử dụng và Chính sách bảo mật của chúng tôi.
Công ty cổ phần Mắt Bão - Giấy phép kinh doanh số: 0302712571 cấp ngày 04/09/2002 bởi Sở Kế Hoạch và Đầu Tư Tp. Hồ Chí Minh.
Giấy phép cung cấp dịch vụ Viễn thông số 247/GP-CVT cấp ngày 08 tháng 05 năm 2018.
Bài viết hướng dẫn cách bật quyền truy cập API Microsoft 365 (thông qua Microsoft Graph) và kết nối vào n8n được khởi tạo từ VibeHost. Sau khi hoàn tất, bạn có thể xây dựng workflow tự động với Outlook (Mail, Calendar, Contacts), OneDrive, Excel, Teams, SharePoint, Planner và To Do.
1. Điều kiện cần chuẩn bị
- Tài khoản Microsoft 365 doanh nghiệp có vai trò Global Administrator hoặc Cloud Application Administrator / Application Administrator để đăng ký ứng dụng và cấp quyền (admin consent) cho toàn tổ chức.
- Tài khoản người dùng sẽ kết nối với n8n phải được gán giấy phép (license) có các dịch vụ cần dùng: Exchange Online (Outlook), OneDrive, SharePoint, Teams, Planner…
- n8n đã triển khai trên VibeHost, truy cập được qua tên miền có HTTPS, ví dụ
https://ten-mien-n8n-cua-ban. - Đường dẫn callback OAuth của n8n có dạng:
https://ten-mien-n8n-cua-ban/rest/oauth2-credential/callback. Bạn có thể sao chép chính xác đường dẫn này trong màn hình tạo credential của n8n (mục OAuth Redirect URL).
2. Các quyền Microsoft Graph cần bật theo dịch vụ
Tất cả quyền dưới đây là loại Delegated permissions (n8n thao tác thay mặt người dùng đã đăng nhập):
| Dịch vụ | Quyền (Delegated) |
|---|---|
| Bắt buộc cho mọi kết nối | openid, offline_access, User.Read |
| Outlook – Mail | Mail.ReadWrite, Mail.ReadWrite.Shared, Mail.Send, Mail.Send.Shared, Mail.ReadBasic.Shared, MailboxSettings.Read |
| Outlook – Calendar, Contacts | Calendars.Read, Calendars.Read.Shared, Calendars.ReadWrite, Contacts.Read, Contacts.ReadWrite |
| OneDrive + Excel | Files.ReadWrite.All |
| Teams | User.Read.All, Group.Read.All, Group.ReadWrite.All, Team.ReadBasic.All, Channel.ReadBasic.All, ChannelMessage.Read.All, ChannelMessage.ReadWrite, ChannelMessage.Send, Chat.ReadWrite, OnlineMeetings.ReadWrite |
| SharePoint | Sites.ReadWrite.All |
| Planner, To Do | Tasks.ReadWrite (Planner dùng thêm Group.Read.All / Group.ReadWrite.All) |
Lưu ý: chỉ nên bật những quyền mà workflow thật sự sử dụng. Các quyền có cột Admin consent required = Yes bắt buộc phải được quản trị viên cấp quyền.
3. Đăng ký ứng dụng trên Microsoft Entra ID
Bước 1: Mở App registrations
Truy cập Microsoft Entra admin center bằng tài khoản quản trị, vào Entra ID → App registrations, chọn New registration.

Bước 2: Khai báo thông tin ứng dụng
- Name: đặt tên dễ nhận biết, ví dụ
n8n-integration. - Supported account types: chọn Any Entra ID Tenant + Personal Microsoft accounts (hoặc Multiple Entra ID tenants). n8n mặc định dùng endpoint
/commoncủa Microsoft nên cần chọn loại đa tổ chức. - Redirect URI: chọn nền tảng Web và dán đường dẫn
https://ten-mien-n8n-cua-ban/rest/oauth2-credential/callback. - Bấm Register.

Nếu chọn Single tenant only, bạn phải sửa Authorization URL và Access Token URL trong credential n8n, thay common bằng Directory (tenant) ID; nếu không sẽ gặp lỗi AADSTS50194.
Bước 3: Lấy Application (client) ID
Tại trang Overview của ứng dụng, sao chép giá trị Application (client) ID để dán vào n8n ở bước 7.

Bước 4: Tạo Client Secret
Chọn Certificates & secrets → Client secrets → New client secret.

Nhập mô tả (ví dụ n8n-vibehost), chọn thời hạn rồi bấm Add.

Ngay sau khi tạo, sao chép giá trị ở cột Value. Giá trị này chỉ hiển thị một lần; nếu rời trang bạn phải tạo secret mới. Lưu ý không dùng nhầm cột Secret ID.

Hãy ghi lại ngày hết hạn của secret. Khi secret hết hạn, các workflow sẽ ngừng kết nối và bạn cần tạo secret mới rồi cập nhật lại credential trong n8n.
Bước 5: Thêm quyền Microsoft Graph
Chọn API permissions → Add a permission.

Chọn Microsoft Graph.

Chọn Delegated permissions, gõ tên từng quyền ở ô tìm kiếm (theo bảng ở mục 2), tích chọn rồi bấm Add permissions. Bạn có thể tìm và tích nhiều quyền liên tiếp trước khi bấm Add permissions.

Bước 6: Cấp quyền cho toàn tổ chức (Grant admin consent)
Quay lại danh sách quyền, bấm Grant admin consent for <tên tổ chức> và xác nhận Yes.

Khi thành công, cột Status của tất cả quyền chuyển sang dấu tích xanh Granted for ….

Quan trọng: Ứng dụng đa tổ chức chưa xác minh nhà phát hành (verified publisher) thì người dùng thường không tự cấp quyền được. Vì vậy bước Grant admin consent là bắt buộc, nếu không khi kết nối từ n8n sẽ gặp màn hình Need admin approval. Mỗi lần thêm quyền mới, bạn cần bấm Grant admin consent lại.
4. Tạo credential Microsoft trong n8n
Bước 7: Khai báo credential
Đăng nhập n8n, vào Overview → Credentials → Create credential.

Gõ tên dịch vụ và chọn loại credential phù hợp, ví dụ Microsoft Outlook OAuth2 API, rồi bấm Continue.

Kiểm tra OAuth Redirect URL trùng với Redirect URI đã khai báo ở bước 2. Dán Application (client) ID vào ô Client ID.

Giữ Authentication = Client Secret, dán giá trị Value đã sao chép ở bước 4 vào ô Client Secret, giữ Microsoft Graph API Base URL = Global rồi bấm Save.

Bước 8: Kết nối tài khoản
- Sau khi lưu, bấm Connect my account (hoặc Sign in with Microsoft).
- Cửa sổ đăng nhập Microsoft hiện ra: đăng nhập bằng tài khoản Microsoft 365 cần kết nối.
- Xem danh sách quyền và bấm Accept.
- n8n hiển thị Account connected là thành công.
5. Sử dụng cho các dịch vụ Microsoft 365 khác
Dùng chung Client ID và Client Secret của ứng dụng ở trên, tạo thêm credential cho từng node:
| Node n8n | Loại credential | Ghi chú |
|---|---|---|
| Microsoft Outlook, Outlook Trigger | Microsoft Outlook OAuth2 API | Bật Use Shared Mailbox nếu cần thao tác hộp thư dùng chung. |
| Microsoft Excel 365 | Microsoft Excel OAuth2 API | Làm việc với file Excel trên OneDrive. |
| Microsoft OneDrive | Microsoft Drive OAuth2 API | |
| Microsoft Teams, Teams Trigger | Microsoft Teams OAuth2 API | n8n bản mới có thể yêu cầu thêm quyền (ví dụ TeamworkTag.Read, TeamsActivity.Send). Nếu kết nối báo thiếu quyền, hãy thêm quyền đó vào app và Grant admin consent lại, hoặc bật Custom Scopes để chỉ yêu cầu các quyền đã cấp. |
| Microsoft SharePoint (v2), Excel (SharePoint) | Microsoft OAuth2 API | Scope: openid offline_access Sites.ReadWrite.All |
| Microsoft To Do | Microsoft To Do OAuth2 API | |
| Planner (qua node HTTP Request) | Microsoft OAuth2 API | Scope: openid offline_access Tasks.ReadWrite Group.Read.All; gọi API https://graph.microsoft.com/v1.0/planner/... |
6. Ví dụ workflow mẫu
Ghi nhận email đơn hàng vào Excel và báo lên Teams:
- Microsoft Outlook Trigger: kích hoạt khi có email mới trong thư mục “Đơn hàng”.
- Microsoft Excel 365: thêm một dòng (Append) gồm người gửi, tiêu đề, thời gian vào bảng theo dõi trên OneDrive.
- Microsoft Teams: gửi tin nhắn vào kênh của bộ phận kinh doanh để thông báo đơn hàng mới.
7. Lỗi thường gặp và cách xử lý
| Lỗi | Nguyên nhân | Cách xử lý |
|---|---|---|
| AADSTS50011 – redirect URI không khớp | Redirect URI trên Entra khác với OAuth Redirect URL của n8n | Sao chép lại đường dẫn trong n8n, dán vào Authentication → Web → Redirect URIs. |
| Need admin approval / AADSTS65001 | Quyền chưa được cấp cho tổ chức | Quản trị viên bấm Grant admin consent (bước 6). |
| AADSTS7000215 – invalid client secret | Dán nhầm Secret ID hoặc secret đã hết hạn | Tạo secret mới, dán đúng giá trị cột Value. |
| AADSTS50194 | App chọn Single tenant nhưng n8n dùng endpoint /common | Đổi loại tài khoản sang đa tổ chức, hoặc thay common bằng Tenant ID trong n8n. |
| Lỗi 403 khi chạy node | Thiếu quyền cho thao tác đó | Thêm quyền tương ứng, Grant admin consent, rồi Reconnect credential. |
8. Lưu ý bảo mật
- Không chia sẻ Client Secret, Tenant ID, Client ID trong ảnh chụp hoặc tài liệu công khai.
- Chỉ cấp những quyền cần thiết cho workflow.
- Theo dõi ngày hết hạn của Client Secret và gia hạn trước khi hết hạn.
- Khi không còn sử dụng, xóa secret hoặc vô hiệu hóa ứng dụng trong App registrations.















