Workflow gửi email tự động với Data Table và Gmail trên n8n

Data table là một chức năng lưu trữ dữ liệu dạng bảng có sẵn ngay bên trong n8n, cho phép một workflow tự động ghi lại thông tin - ví dụ nội dung tin nhắn khách hỏi - mà không cần cài thêm bất kỳ phần mềm cơ sở dữ liệu nào khác.

Nếu bạn từng mệt mỏi vì phải copy-paste hàng trăm email khách hàng mỗi ngày để gửi mã giảm giá hoặc các nội dung tương tự, thì Tự động hóa (Automation) chính là vị cứu tinh của bạn. Hãy tưởng tượng automation giống như một người trợ lý ảo mẫn cán, làm việc 24/7 không biết mệt mỏi, giúp bạn thực hiện các công việc lặp đi lặp lại một cách chính xác tuyệt đối.

Và n8n chính là "bộ não" để bạn huấn luyện người trợ lý ảo đó. n8n là một nền tảng giúp bạn kết nối các ứng dụng khác nhau (như Chat, Google Sheets, Gmail) lại thành một quy trình (gọi là Workflow). Bạn không cần phải biết lập trình, chỉ cần kéo – thả các "khối" (gọi là Node) vào màn hình và nối chúng lại với nhau là xong.

Hướng dẫn Workflow tự động gửi email với Data Table trên n8n với Gmail

Những thứ cần chuẩn bị:

  • Tài khoản n8n: Phiên bản Cloud hoặc Self-hosted đang hoạt động.
  • Tài khoản Gmail: Đã kết nối Credential (OAuth2) thành công trong n8n.
  • n8n Data Table: Tạo sẵn một bảng dữ liệu đặt tên là Quantrimang gồm 4 cột chuỗi ( String ): Email, Title, Code, Reward.

Xem thêm các hướng dẫn về n8n ở dưới đây nhé:

Đầu tiên, tạo bảng với Data Table

Xem thêm hướng dẫn: Hướng dẫn chi tiết cách tạo Data Table trên n8n: Tối ưu hóa hệ thống dữ liệu tự động nếu bạn chưa biết cách tạo bảng Data Table.

workflow data table n8n

Đây là bảng được tạo trong Workflow, bạn có thể thay đổi tên cột phù hợp với nội dung của bạn. Nên tạo tên cột không dấu và viết liền để dễ thiết lập, ví dụ "NoiDung".

id Email Title Code Reward createdAt updatedAt
1 quantrimang25@gmail.com Email gửi khách hàng dịp khuyến mãi Mã khuyến mãi - 0123456ABC Null 2026-07-21T23:48:14.718-04:00
2026-07-21T23:50:12.000-04:00
2 quantrimang45@gmail.com Email nhắc nhớ Mã nhắc nhớ - 123456BBM Null 2026-07-21T23:48:38.055-04:00
2026-07-21T23:50:26.000-04:00
3 quantrimang35@gmail.com Email gửi code khuyến mãi Mã khuyến mãi - COD09876 Null 2026-07-21T23:50:55.084-04:00
2026-07-21T23:52:53.000-04:00

Khi tạo bảng này trong n8n, bạn cần hiểu rõ vai trò và kiểu dữ liệu của từng cột, quantrimang.com xin giải thích qua một chút để các bạn hiểu hơn ở dưới đây.

Tên cột Kiểu dữ liệu (Type) Cách khởi tạo
Mục đích sử dụng
id Number Tự động
Mã định danh duy nhất cho mỗi dòng (Primary Key).
Email String (Text T) Thủ công
Lưu địa chỉ email của khách hàng nhận mã.
Title String (Text T) Thủ công
Lưu tiêu đề thư sẽ gửi cho khách hàng.
Code String (Text T) Thủ công
Lưu mã ưu đãi/khuyến mãi sinh ra cho khách.
Reward String (Text T) Thủ công
Lưu nội dung quà tặng (ví dụ: Giảm 10%).
createdAt Date & Time Tự động
Thời gian dòng dữ liệu được tạo ra.
updatedAt Date & Time Tự động
Thời gian dòng dữ liệu được chỉnh sửa lần cuối.

Giải phẫu quy trình: Tự động gửi mã khuyến mãi qua Email

Tải file Workflow trong bài về và Import vào Canvas n8n của bạn. Hệ thống mà chúng ta đang tìm hiểu có tên là "Workflow Chat gửi email từ Data Table với Gmail". Mục tiêu của luồng công việc này là tự động hóa toàn bộ trải nghiệm của khách hàng từ lúc họ gõ email vào khung chat cho đến khi họ nhận được mã ưu đãi trong hòm thư.

workflow data table n8n

Workflow này gồm 5 bước nối tiếp nhau. Bạn tiến hành thêm và cấu hình từng Node theo thứ tự bên dưới:

[When chat message received (Chat)] ➔ [Chuẩn bị dữ liệu (Edit Fields - Set)] ➔ [Insert row1 (Data Table)] ➔ [Chat - Send Message] ➔ [Gmail - Send a message]

Bước 1: Tiếp nhận thông tin (When chat message received)

Cách thiết lập:

  1. Thêm node When chat message received ( @n8n/n8n-nodes-langchain.chatTrigger ).
  2. Tại mục Response Mode , chọn Using Response Nodes .
  3. Node này có nhiệm vụ lắng nghe câu chat từ người dùng và trả về giá trị chatInput (địa chỉ email do khách hàng nhập).

workflow data table n8n

Chức năng: Đây là trạm gác đầu tiên của hệ thống, sử dụng node có tên là "When chat message received".

Cách hoạt động: Node này được thiết lập ở chế độ chờ (chatTrigger). Khi một khách hàng truy cập vào khung chat của bạn và nhập địa chỉ email của họ (ví dụ: quantrimang35@gmail.com), hệ thống sẽ ngay lập tức "bắt" lấy thông tin này để bắt đầu quy trình làm việc.

Bước 2: Chuẩn bị dữ liệu (Chuẩn bị dữ liệu)

Kết nối đầu ra của Bước 1 vào node Edit Fields và đổi tên node thành Chuẩn bị dữ liệu hoặc bất kỳ tên gì mà bạn muốn.

Cấu hình 4 trường thông tin ( Fields to Set ) như sau:

  • Email (String): Chọn chế độ Expression ( fx ) và nhập: "{{ $json.chatInput }}"
  • Title (String): Chọn chế độ Fixed và nhập: "Email gửi khách hàng dịp khuyến mãi"
  • Code (String): Chọn chế độ Expression ( fx ) để sinh mã ngẫu nhiên dạng MKXXXXXX : "{{ 'MK' + Math.floor(100000 + Math.random() * 900000) }}"
  • Reward (String): Chọn chế độ Fixed và nhập: "Giảm giá 10% cho đơn hàng tiếp theo"

Đây là fix cứng nếu bạn chỉ có một phần thưởng, còn nếu bốc thăm ngẫu nhiên nhiều phần thưởng thì hãy chỉnh sửa theo nội dung ở dưới đây.

Mở node Chuẩn bị dữ liệu, tại dòng Reward, bấm chọn chế độ fx (Expression).

Dán đoạn mã này vào:

{{ ['Giảm 10% đơn tiếp theo', 'Voucher Freeship 0Đ', 'Giảm 20k cho đơn từ 100k', 'Tặng 1 móc khóa VIP'][Math.floor(Math.random() * 4)] }}

workflow data table n8n

Chức năng: Sau khi có email, hệ thống cần tạo ra các phần quà tương ứng. Node "Chuẩn bị dữ liệu" (sử dụng công cụ Set của n8n) sẽ đảm nhận việc này.

Bước 3: Ghi chép vào sổ sách (Insert row1)

workflow data table n8n

Chức năng: Để quản lý xem ai đã nhận mã, node "Insert row1" sẽ làm nhiệm vụ lưu trữ thông tin.

Cách hoạt động: Node này đóng vai trò như một bảng tính (Data Table), toàn bộ dữ liệu vừa tạo ở Bước 2 bao gồm Email, Title, Code và Reward sẽ được tự động ghi thành một dòng mới vào bảng dữ liệu có tên là "Quantrimang" do mình đặt tên từ lúc tạo Data Table.

Cách thiết lập:

  1. Thêm node Data Table (Operation: Insert ), đặt tên là Insert row1 .
  2. Tại mục Data table , chọn bảng Quantrimang đã tạo từ trước.

Áp dụng ánh xạ dữ liệu (Mapping) từ node Chuẩn bị dữ liệu sang các cột tương ứng trong Data Table:

  • Email $\rightarrow$ ={{ $json.Email }}
  • Title $\rightarrow$ ={{ $json.Title }}
  • Code $\rightarrow$ ={{ $json.Code }}
  • Reward $\rightarrow$ ={{ $json.Reward }}

Bước 4: Phản hồi (Chat)

Chức năng: Không để khách hàng phải chờ đợi trong vô vọng, node "Chat" sẽ giao tiếp ngược lại với người dùng.

Cách hoạt động: Ngay sau khi dữ liệu được lưu thành công, hệ thống gửi một tin nhắn phản hồi ngắn gọn vào khung chat với nội dung "Đã gửi mã ". Việc này giúp khách hàng an tâm kiểm tra hòm thư của mình.

workflow data table n8n

  1. Thêm node Chat ( @n8n/n8n-nodes-langchain.chat ).
  2. Tại mục Message , nhập câu thông báo trả về cho người dùng: "Đã gửi mã"

(Việc này giúp khách hàng biết hệ thống đã xử lý xong yêu cầu mà không phải chờ đợi) .

Bước 5: Bắt đầu gửi email (Send a message)

Xem hướng dẫn thiết lập Gmail trong n8n nếu bạn chưa biết cách để gửi thư từ Gmail nhé: Hướng dẫn kết nối Gmail với n8n qua Google Cloud Console

Chức năng: Đây là điểm đến cuối cùng của quy trình, sử dụng node "Send a message" được kết nối trực tiếp với tài khoản Gmail.

  • Cách hoạt động: Hệ thống Gmail sẽ tự động soạn một bức thư với:
  • Người nhận (To): Là email khách hàng đã cung cấp ở Bước 1.
  • Tiêu đề (Subject): Dùng tiêu đề đã chuẩn bị ở Bước 2.
  • Nội dung thư: Tự động lấy tên mã giảm giá và nội dung phần thưởng (Giảm 10%) để gửi kèm lời cảm ơn đến khách hàng.

workflow data table n8n

Thêm node Gmail (Operation: Send ), đặt tên là Send a message .

Chọn Credential Gmail account của bạn.

Thiết lập thông số chi tiết bằng chế độ Expression ( fx ):

  • To (Người nhận): "{{ $('Insert row1').item.json.Email }}"
  • Subject (Tiêu đề): "{{ $('Insert row1').item.json.Title }}"

Message (Nội dung thư):

Chào bạn,<br><br>
Cảm ơn bạn đã nhắn tin cho chúng tôi. Dưới đây là thông tin ưu đãi của bạn:<br>
- Mã khuyến mãi: {{ $('Insert row1').item.json.Code }}<br>
- Nội dung ưu đãi: {{ $('Insert row1').item.json.Reward }}<br><br>
Trân trọng!

Trên đây là thư mẫu, bạn có thể tự tạo tùy vào nội dung trong Data Table bạn ghi là gì cho phù hợp nhất.

Kiểm tra thành quả (Testing)

  1. Nhấn nút Save để lưu lại workflow.
  2. Mở cửa sổ Chat ở góc dưới màn hình n8n.
  3. Nhập một địa chỉ email hợp lệ (ví dụ: yourname@gmail.com ), nó có thể là bất kỳ email nào, không cần phải là email trong bảng đã tạo sẵn, miễn là phải đúng định dạng.
  4. Nếu muốn gửi cho nhiều email, bạn chỉ cần điền dấu phẩy giữa các email rồi chọn gửi là được, ví dụ: (quantrimang45@gmail.com, quantrimang35@gmail.com, quantrimang25@gmail.com)

 data table n8n

Kết quả đạt chuẩn:

  • Cửa sổ Chat lập tức phản hồi: "Đã gửi mã ".
  • Bảng Data Table lưu lại 1 hàng mới gồm Email và Mã code vừa tạo.
  • Hòm thư Gmail nhận được email chứa đúng Mã khuyến mãi và Ưu đãi giảm 10%.

data table n8n

Cách tắt dòng chữ "This email was sent automatically with n8n" ở cuối email:

  1. Double-click mở node Send a message (Gmail).
  2. Cuộn xuống phần Options ở phía dưới cùng:
  3. Bấm nút + Add Option.
  4. Tìm và chuyển công tắc của mục này Append n8n Attribution sang OFF (hoặc chọn False).

data table n8n

Các lỗi thường gặp & Cách xử lý nhanh

Lỗi 1: Invalid email address tại node Gmail

  • Nguyên nhân: Người dùng gõ thừa chữ (ví dụ: "gửi email đến abc@gmail.com" ) hoặc do bạn vô tình gõ dư dấu = ở đầu trường To (thành =abc@gmail.com ).
  • Khắc phục: Khi test hãy gõ duy nhất địa chỉ Email. Trong ô To của Gmail Node, xóa bỏ dấu = thừa ở đầu.

Lỗi 2: Workflow bị kẹt "Loading data" liên tục

  • Nguyên nhân: Node Gmail đang chọn nhầm Operation là Send and Wait for Response .
  • Khắc phục: Chuyển Operation về dạng Send thông thường.

Kết luận:

Việc xây dựng một Workflow trong n8n không hề đáng sợ hay mang đậm tính "lập trình code" như nhiều người vẫn nghĩ. 

Thông qua quy trình gồm 5 bước logic: Nhận tin nhắn -> Xử lý dữ liệu -> Lưu trữ -> Phản hồi -> Gửi email, bạn đã có thể tiết kiệm hàng chục giờ đồng hồ mỗi tuần. Tuy phần hướng dẫn có phần hơi dài, tuy nhiên với những ai đã làm quen với n8n thì sẽ rất nhanh để thiết lập được Workflow.

Bằng cách thiết lập chuẩn xác từng Node một, tự động hóa sẽ giúp doanh nghiệp của bạn vận hành trơn tru và chuyên nghiệp hơn bao giờ hết.

Thứ Sáu, 14/08/2026 17:19
51 👨 8
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
❖ n8n