Cài n8n, kết nối Gmail, dùng AI Text Classifier gắn nhãn email đến và báo qua Telegram. Có file workflow tải về, bảng giá, chi phí AI ước tính và lưu ý bảo mật.

Cần chuẩn bị
  • Tài khoản Gmail
  • n8n Cloud, hoặc máy cài Docker để tự host n8n
  • API key của một nhà cung cấp AI (Gemini, Claude hoặc OpenAI)
  • Telegram (không bắt buộc, để nhận báo email gấp)
Chạy trên: windows · macos · linux

Sáng ra mở hộp thư: 60 email chưa đọc. Ba cái khách hàng hỏi gấp nằm lẫn giữa bản tin khuyến mãi và thông báo tự động.

60 email chưa đọc, lẫn lộn

  • AI-Gap: 3 email, có báo Telegram
  • AI-CongViec: 12 email
  • AI-QuangCao: 40 email
  • AI-Khac: 5 email

n8n là gì? Dùng Cloud hay tự host?

Kết luận trước: n8n là công cụ tự động hoá kéo thả, nối các ứng dụng thành workflow (chuỗi bước chạy tự động). Mới bắt đầu thì dùng Cloud cho nhanh; muốn miễn phí và giữ dữ liệu trên máy mình thì tự host bản Community Edition.

Mỗi ô trong workflow gọi là một node. Node đầu tiên là trigger (điều kiện khởi động), ví dụ “có email mới”. Các node sau xử lý tiếp: hỏi AI, gắn nhãn, gửi tin nhắn.

Các gói n8n theo trang giá của hãng (giá trả theo năm, kiểm ngày 18/10/2026)
GóiGiáLượt chạy/thángGhi chú
Community Edition (tự host) Miễn phí-Tự cài trên máy hoặc server, tự lo bảo mật và cập nhật
Starter (Cloud) €20/tháng2.5005 lượt chạy đồng thời
Pro (Cloud) €50/tháng10.000Tối đa 50 lượt chạy đồng thời
Business €667/tháng40.000Chỉ tự host
Enterprise Liên hệTuỳ chỉnh-

Trang giá cũng ghi bản dùng thử Cloud có 1.000 lượt chạy và không cần thẻ tín dụng. Trang không ghi giá trả theo tháng, cũng không có giá USD.

Lượt chạy (execution) là một lần workflow chạy từ đầu đến cuối. Với workflow trong bài, mỗi lần Gmail Trigger tìm thấy email mới sẽ tạo một lượt chạy; một lượt có thể chứa nhiều email.

Chuẩn bị trước khi dựng

Kết luận trước: cần 4 thứ: n8n đang chạy, 4 nhãn trong Gmail, API key của AI, và một bot Telegram nếu muốn nhận báo.

Cài n8n

Cách 1, n8n Cloud: đăng ký ở n8n.io, dùng ngay trên trình duyệt.

Cách 2, tự host: cần Docker (kèm Docker Compose v2). Tài liệu n8n có lệnh cài một dòng cho macOS và Linux:

$ curl -fsSL https://get.n8n.io | sh

Lệnh tạo thư mục n8n chứa compose.yml, .env và dữ liệu dùng SQLite. Xong thì mở http://localhost:5678. Lần đầu khởi động có thể mất vài phút.

Trên Windows: lệnh này không chạy trong Command Prompt hay PowerShell. Bạn mở WSL (Windows Subsystem for Linux), bật tích hợp WSL2 trong Docker Desktop, rồi chạy cùng lệnh trong WSL. Tài liệu ghi Git Bash chưa được kiểm chứng cho cách này.

Tắt và bật lại n8n:

$ docker compose -f ./n8n/compose.yml down
$ docker compose -f ./n8n/compose.yml up -d

Đừng thêm -v vào lệnh down nếu không muốn mất dữ liệu: cờ này xoá vĩnh viễn workflow và credential.

Tạo 4 nhãn trong Gmail

Trên Gmail bản máy tính, bấm dấu + cạnh mục Nhãn ở cột trái rồi đặt tên. Bài dùng 4 nhãn không dấu để bộ lọc tìm kiếm dễ khớp:

Lấy API key AI và bot Telegram

7 bước dựng workflow

Kết luận trước: workflow chỉ gồm 4 loại node. Dựng tay mất vài phút, hoặc tải file JSON ở cuối bài để nhập thẳng.

Sơ đồ workflow n8n: Gmail Trigger chuyển email sang Text Classifier có Chat Model, chia ra 4 nhánh gắn nhãn AI-Gap, AI-CongViec, AI-QuangCao, AI-Khac; nhánh AI-Gap báo thêm qua Telegram

Gmail Trigger: nghe email mới

Thêm node Gmail Trigger, sự kiện Message Received. Ở Poll Times chọn mỗi 10 phút (5–15 phút là hợp lý). Giữ Simplify bật. Trong Filters: Read Status chọn Unread emails only, ô Search điền in:inbox -label:AI-Gap -label:AI-CongViec -label:AI-QuangCao -label:AI-Khac để bỏ qua email đã gắn nhãn.

↳ Max Emails per Poll mặc định 10, tối đa 50 email mỗi lần hỏi.

Text Classifier: để AI chọn nhóm

Thêm node Text Classifier. Ô Input Prompt chỉ đưa tiêu đề, người gửi và đoạn trích ngắn (snippet) của email: Tiêu đề: {{ $json.Subject }} · Người gửi: {{ $json.From }} · Đoạn đầu: {{ $json.snippet }}, mỗi ý một dòng. Tạo 3 Categories: Gap, CongViec, QuangCao, mỗi nhóm có mô tả rõ (xem prompt bên dưới). Trong Options, đặt When No Clear Match thành Output on Extra, ‘Other’ Branch để có nhánh thứ tư.

Gắn Chat Model vào Text Classifier

Text Classifier cần một mô hình AI. Bấm dấu + ở chân node, chọn ví dụ Google Gemini Chat Model, tạo credential bằng API key, chọn model trong danh sách. Có thể đổi sang Anthropic hoặc OpenAI sau.

Gắn nhãn Gmail cho từng nhánh

Mỗi nhánh nối vào một node Gmail: Resource là Message, Operation là Add Label, Message ID điền {{ $json.id }}, Label Names or IDs chọn nhãn tương ứng. Làm 4 lần cho 4 nhánh.

Báo Telegram khi email gấp

Sau node gắn nhãn AI-Gap, thêm node Telegram gửi tin nhắn tới Chat ID của bạn. Nội dung lấy tiêu đề và người gửi từ Gmail Trigger, ví dụ {{ $('Gmail Trigger').item.json.Subject }}.

Thử với 5 email mẫu rồi mới bật

Gửi cho chính mình 5 email: 2 gấp, 1 công việc, 1 quảng cáo, 1 lạc đề. Bấm chạy thử workflow, mở từng node xem email đi nhánh nào. Sai nhóm thì sửa mô tả category, không cần sửa gì khác. Đúng rồi mới bật workflow chạy thật.

↳ Tự gửi email từ một tài khoản khác cho chắc, không dùng email thật của khách.

Xuất JSON để sao lưu

Workflow chạy ổn thì tải về dạng file JSON từ menu của workflow. Lưu cùng chỗ với tài liệu nội bộ. File xuất ra không chứa key hay mật khẩu, nhưng có thể còn tên credential và ID nhãn của bạn; mở ra xem trước khi gửi cho người khác.

Canvas n8n của workflow tải về: Gmail Trigger nối Text Classifier dùng Google Gemini Chat Model, rẽ 4 nhánh gắn nhãn Gmail, nhánh Gấp báo thêm qua Telegram

Canvas thật của file n8n-phan-loai-email.json trong bài, hiển thị bằng trình xem workflow chính thức của n8n (Bỏ Túi AI chụp ngày 18/10/2026). Tam giác đỏ nghĩa là node chưa gắn credential: bạn gắn Gmail, Gemini, Telegram của mình ở bước tiếp theo. File này cũng đã được nhập thử bằng lệnh n8n import:workflow trên n8n 2.43.7 và nhập thành công.

Mô tả category là phần quyết định độ chính xác. Đây là bộ mô tả dùng trong file tải về, bạn sửa theo công việc của mình:

categories-text-classifier.txt
Gap: Email cần xử lý trong ngày: khách hàng hoặc sếp yêu cầu gấp, có hạn chót hôm nay hoặc ngày mai, sự cố, khiếu nại. CongViec: Email công việc bình thường từ đồng nghiệp, khách hàng, đối tác: trao đổi, báo cáo, lịch họp, không gấp. QuangCao: Bản tin, khuyến mãi, quảng cáo, thông báo tự động từ dịch vụ, mạng xã hội. Thêm cho riêng bạn: email từ tên miền công ty luôn là CongViec; email có chữ từ khoá gấp của bạn là Gap.

Kết nối Gmail an toàn

Kết luận trước: trên n8n Cloud chỉ cần bấm Sign in with Google. Tự host thì phải tạo OAuth trong Google Cloud Console, mất khoảng 6 bước.

n8n khuyên dùng OAuth2 cho Gmail. OAuth2 là cách đăng nhập cấp quyền qua trang của Google, n8n không cần biết mật khẩu Gmail của bạn.

Trên n8n Cloud: mở credential Gmail, bấm Sign in with Google, chọn tài khoản. Không cần vào Google Cloud Console.

Tự host: bản tự host không có OAuth do n8n quản lý, bạn tạo OAuth của riêng mình:

Tạo project

Vào Google Cloud Console, tạo project mới và chọn project đó ở thanh trên cùng.

Bật Gmail API

Vào APIs & Services > Library, tìm và bật Gmail API. Quên bước này thì Gmail Trigger báo lỗi 401.

Cấu hình OAuth consent screen

Vào APIs & Services > OAuth consent screen, bấm Get started. Điền tên app, email hỗ trợ. Ở Audience chọn External (Gmail cá nhân) hoặc Internal (Google Workspace của công ty).

Thêm Test users

Với External, vào trang Audience, thêm đúng tài khoản Gmail bạn sẽ đăng nhập vào mục Test users.

Tạo OAuth client ID

Vào APIs & Services > Credentials > Create credentials > OAuth client ID. Chọn Web application. Chép OAuth Redirect URL từ ô credential trong n8n, dán vào Authorized redirect URIs. Chạy ở máy mình thì dạng http://localhost:5678/rest/oauth2-credential/callback.

Dán Client ID, Client Secret vào n8n

Chép Client ID và Client Secret từ Google vào credential trong n8n, bấm Sign in with Google, lưu lại.

Ảnh từng bước tạo credential Google có trong hướng dẫn OAuth2 của n8n.

Vì sao sau 7 ngày lại phải đăng nhập lại? Tài liệu n8n ghi rõ: app ở trạng thái Testing với kiểu người dùng External thì quyền và token hết hạn sau 7 ngày. Cách xử lý là vào credential trong n8n và kết nối lại. Dùng Google Workspace thì chọn Internal để tránh chuyện này.

Dùng Outlook thay Gmail

Kết luận trước: làm được, nhưng Outlook dùng thư mục thay cho nhãn, nên bước cuối khác một chút.

Đổi AI: Gemini, Claude hay OpenAI và chi phí

Kết luận trước: phân loại email là việc nhẹ, model rẻ nhất của mỗi hãng là đủ. Với giả định bên dưới, 1.000 email tốn khoảng dưới 0,5 USD tiền AI.

Muốn đổi AI, chỉ cần thay node Chat Model gắn dưới Text Classifier: Google Gemini Chat Model, Anthropic Chat Model hoặc OpenAI Chat Model. Các node khác giữ nguyên.

Bảng dưới là ước tính bằng phép nhân, chưa phải số đo thật. Giả định mỗi email tốn khoảng 600 token đầu vào (hướng dẫn phân loại, danh sách nhóm, tiêu đề, đoạn trích) và 50 token đầu ra. Token là đơn vị AI dùng để đếm chữ và tính tiền.

Chi phí AI ước tính cho 1.000 email (giá API trả phí, kiểm ngày 18/10/2026)
ModelGiá vào / ra mỗi 1 triệu tokenƯớc tính 1.000 email
Gemini 2.5 Flash-Lite $0,10 / $0,40khoảng $0,08
Claude Haiku 5.5 (prompt dưới 100.000 token) $0,10 / $0,50khoảng $0,09
Gemini 3.1 Flash-Lite $0,25 / $1,50khoảng $0,23
Gemini 3 Flash Preview $0,50 / $3,00khoảng $0,45
OpenAI --

Gemini API có gói miễn phí, nhưng trang giá của Google ghi nội dung gửi qua gói miễn phí được dùng để cải thiện sản phẩm; gói trả phí thì không. Email công việc nên dùng gói trả phí.

Ngoài tiền AI còn tiền n8n: Cloud tính theo lượt chạy của gói, tự host thì tốn điện và máy.

Bảo mật: AI chỉ nên đọc phần cần đọc

Kết luận trước: chỉ gửi cho AI tiêu đề, người gửi và đoạn trích ngắn. Không gửi file đính kèm, không mở n8n ra Internet khi chưa hiểu cách bảo vệ.

Ảnh minh hoạ: chỉ vài dòng đầu của lá thư đi qua khe vàng vào quả cầu AI, tập hồ sơ đính kèm bị khoá lại trên bàn, bộ định tuyến có khiên bảo vệ phía sau

Lỗi thường gặp

Kết luận trước: phần lớn lỗi nằm ở bước kết nối Google, không phải ở AI.

Tải workflow

Kết luận trước: nhập file JSON là có đủ node và dây nối, bạn chỉ cần chọn credential, chọn nhãn và điền Chat ID.

Workflow n8n: phân loại email Gmail bằng AI, gắn 4 nhãn, báo Telegram n8n-phan-loai-email.json · 6 KB

Không chứa key hay credential. Sau khi nhập: chọn credential Gmail, Gemini, Telegram; chọn nhãn ở 4 node Gắn nhãn; điền Chat ID; thử với vài email rồi mới bật.

Tải về

Cách nhập: tạo workflow mới trong n8n, dùng mục Import from File trong menu của workflow (hoặc mở file, copy toàn bộ rồi dán vào canvas). Ghi chú màu vàng trên canvas liệt kê lại các việc cần làm.

0/5
túi còn trống
n8n có miễn phí không?

Bản Community Edition tự host là miễn phí, bạn tự cài bằng Docker và tự lo vận hành. n8n Cloud có bản dùng thử 1.000 lượt chạy không cần thẻ, sau đó gói Starter €20/tháng và Pro €50/tháng khi trả theo năm. Tiền gọi AI tính riêng theo nhà cung cấp model.

Nên dùng n8n Cloud hay tự host?

Mới làm quen thì dùng Cloud: kết nối Gmail chỉ cần bấm Sign in with Google. Tự host hợp khi bạn muốn miễn phí, muốn dữ liệu ở máy mình và chịu được việc tạo OAuth trong Google Cloud Console.

AI có đọc hết email của tôi không?

Chỉ những gì bạn đưa vào ô Input Prompt. Workflow trong bài gửi tiêu đề, người gửi và đoạn trích ngắn, không gửi toàn bộ thư hay file đính kèm. Muốn chặn hẳn một số người gửi, thêm điều kiện -from: vào ô Search của Gmail Trigger.

Vì sao token Google hết hạn sau 7 ngày?

Khi app OAuth của bạn ở trạng thái Testing với kiểu người dùng External, Google cho quyền và token hết hạn sau 7 ngày. Vào credential trong n8n để kết nối lại; dùng Google Workspace thì chọn Internal.

Dùng Outlook thay Gmail được không?

Được. Dùng Microsoft Outlook Trigger thay Gmail Trigger, và node Microsoft Outlook với thao tác Move để chuyển email vào thư mục thay cho gắn nhãn. Text Classifier giữ nguyên.

Mỗi lần chạy tốn bao nhiêu tiền?

Có hai khoản: lượt chạy n8n (Cloud tính theo gói, tự host không tính) và tiền AI theo token. Với model rẻ như Gemini 2.5 Flash-Lite hay Claude Haiku 5.5, ước tính khoảng 0,1 USD cho 1.000 email, nhưng bạn nên đo lại trên email thật.

Đọc tiếp: Quy trình làm video Shorts bằng AI · AI Agent là gì · Token là gì · Series Tự động hoá

Nguồn & ghi chú