Automation Package: Tự động thông báo khi có khách hàng liên hệ qua Form

Automation Package: Tự động thông báo khi có khách hàng liên hệ qua Form

Automation Package: Tự động thông báo khi có khách hàng liên hệ qua Form
Định dạng: .Zip
Dung lượng: 3 KB
Lượt tải: 100+ lượt

Giá 39.000đ

Workflow này hoạt động như thế nào?

Workflow n8n này sẽ giúp bạn không bỏ lỡ bất kỳ liên hệ nào từ khách hàng. Mỗi khi có người submit Google Form, hệ thống tự động đọc dữ liệu từ Google Sheets, gửi email thông báo HTML đến admin và tin nhắn Telegram đồng thời, sau đó ghi nhận trạng thái "Đã thông báo" vào sheet để đảm bảo không gửi trùng lặp ở các lần chạy tiếp theo.

Đối tượng: Phù hợp cho các website, fanpage, hoặc doanh nghiệp nhỏ cần tiếp nhận liên hệ khách hàng một cách tự động mà không cần lập trình.

Hoạt động: Khi khách hàng gửi liên hệ qua Google Form, dữ liệu vào Google Sheet  và hệ thống tự động gửi thông báo đến Gmail/Telegram ngay sau đó.

Tổng quan kiến trúc

Workflow: Gửi thông báo có khách hàng liên hệ qua Form

Cơ chế hoạt động

  1. Mỗi phút workflow chạy một lần, đọc các dòng trong sheet có cột Trạng thái đang trống (= chưa xử lý)
  2. Chuẩn hóa dữ liệu qua 2 node Set nối tiếp (tránh lỗi tham chiếu biến trong cùng node)
  3. Gửi thông báo song song đến Gmail Telegram
  4. Hễ một trong hai gửi xong là cập nhật ngay cột Trạng thái thành Đã thông báo
    Lần chạy tiếp theo sẽ bỏ qua những dòng đã có trạng thái → không gửi lặp

Hướng dẫn thiết lập ban đầu trước khi triển khai

Yêu cầu chuẩn bị

Trước khi bắt đầu, hãy chuẩn bị sẵn:

  • Tài khoản n8n (self-hosted hoặc cloud)
  • Google Form đã tạo và có Google Sheet liên kết nhận responses
  • Cột Trạng thái đã có trong Google Sheet (thêm thủ công nếu chưa có)
  • Credential Google Sheets OAuth2 đã kết nối trong n8n
  • Credential Gmail OAuth2 đã kết nối trong n8n
  • Credential Telegram Bot API đã kết nối trong n8n

Chuẩn bị Google Sheet

Google Form khi nhận response sẽ tự tạo sheet với các cột tương ứng với từng câu hỏi. Bạn cần thêm thủ công một cột tên Trạng thái vào sheet đó.

  1. Mở Google Sheet liên kết với form
  2. Click vào dòng 1 của cột trống cuối cùng (hoặc insert thêm cột mới)
  3. Đặt tên header là: Trạng thái
  4. Để trống toàn bộ các dòng dữ liệu bên dưới — đây là điều kiện để workflow nhận ra "chưa xử lý"

Cột Trạng thái không cần có trong Google Form, chỉ cần có trong Sheet là đủ.

Kết nối Credential

Bước này có thể bỏ qua nếu đã kết nối sẵn sàng hết rồi:

Hướng dẫn triển khai cấu hình Workflow

1. Import workflow

  1. Tải file JSON workflow trong bài này về máy
  2. Trong n8n, vào Workflows → click nút → chọn Import from file
  3. Chọn file JSON → workflow được tạo ở trạng thái Inactive

2. Cấu hình node Get row(s) in sheet

Mở node Get row(s) in sheet và kiểm tra / chỉnh các thông số:

Trường Cần chỉnh
Credential Chọn Google Sheets credential đã kết nối
Document Chọn lại đúng Google Sheet thu thập từ Form liên hệ của bạn
Sheet Chọn đúng sheet chứa form responses
Filter → Column Chọn cột Trạng thái, Value để trống

3. Cấu hình node Map Raw Fields

Node này chuẩn hóa dữ liệu và giữ lại row_number để dùng cho bước Update sau. Mở node và kiểm tra tên cột khớp với header thực tế trong Google Sheet của bạn.

Mapping mặc định:

Field trong workflow Tên cột mặc định trong Sheet
row_number (n8n tự sinh, không cần chỉnh)
ho_ten Họ và tên
email_khach Email
so_dien_thoai Số điện thoại
noi_dung Nội dung liên hệ
timestamp Timestamp

Cách kiểm tra tên cột: Mở Google Sheet → xem hàng đầu tiên (header row) → đối chiếu với bảng trên.

Nếu tên cột khác, sửa expression tương ứng trong node. Ví dụ nếu form dùng Tên của bạn thay vì Họ và tên:

# Thêm tên thực tế vào đầu expression
$json['Tên của bạn'] ?? $json['Họ và tên'] ?? '(không có)'

4. Kiểm tra node Build Messages

Node này nhận output từ node Map Raw Fields bên trên và dùng các field $json.ho_ten, $json.email_khach... để build nội dung thông báo. Không cần chỉnh gì thêm trừ khi muốn tuỳ chỉnh template mail.

Node có bật Include Other Fields = true để giữ lại toàn bộ field từ node trước (kể cả row_number) cho các node phía sau dùng tiếp.

Nếu muốn chỉnh nội dung thông báo, sửa tại đây:

  • email_body_html — nội dung email dạng HTML gửi cho admin
  • telegram_text — tin nhắn Markdown gửi lên Telegram

5. Cấu hình node Send Gmail

Mở node Send Gmail và điền:

Trường Giá trị
Credential Chọn Gmail OAuth2 đã kết nối
To Sửa thành Email nhận thông báo (vd: quantrimang@congty.com)
Các trường khác Không cần sửa

Tiêu đề và nội dung HTML đã được tạo sẵn. Tính năng Reply-To tự động trỏ về email của khách, giúp admin reply thẳng trong email thông báo là trả lời được cho khách luôn.

6. Cấu hình node Send Telegram

Mở node Send Telegram và điền:

Trường Giá trị
Credential Chọn Telegram API đã kết nối
Chat ID ID của group/channel nhận thông báo

Cách lấy Chat ID group nhanh:

  • Thêm bot @userinfobot vào group → nó trả về Chat ID ngay (dạng -100xxxxxxxxxx)
  • Hoặc forward tin nhắn từ channel vào @userinfobot để lấy ID channel

7. Cấu hình node Cập nhật Trạng thái → Đã thông báo

Mở node Cập nhật Trạng thái → Đã thông bá" và kiểm tra:

Trường Cần chỉnh
Credential Chọn Google Sheets credential (giống node Get row(s))
Document Chọn lại đúng Google Sheet (giống node Get row(s))
Sheet Chọn đúng sheet (giống node Get row(s))
Column to match on Chọn row_number
row_number (using to match) Nhập {{ $('Map Raw Fields').item.json.row_number }}
Trạng thái Nhập giá trị Đã thông báo

Node này dùng row_number - một n8n tự sinh khi đọc Google Sheets - để xác định chính xác dòng nào cần update. Không cần cột ID riêng trong sheet.

8. Test toàn bộ workflow

  • Submit thử Google Form hoặc thêm thủ công một dòng vào Sheet (để trống cột Trạng thái)
  • Trong n8n, mở workflow → click Execute workflow
  • Quan sát từng node theo thứ tự:
Node Kết quả mong đợi
Get row(s) in sheet Trả về dòng vừa thêm, có field row_number trong output
Map Raw Fields Hiển thị đúng họ tên, email, SĐT, row_number
Send Gmail Status Success -> kiểm tra hộp thư nhận được email
Send Telegram Status Success -> kiểm tra Telegram nhận được tin
Cập nhật Trạng thái Status Success
  • Mở Google Sheet kiểm tra dòng vừa test → cột Trạng thái phải hiện Đã thông báo
  • Chạy lại Execute workflow lần nữa → lần này node Get row(s) phải trả về 0 item (vì dòng đó đã có trạng thái)

9. Kích hoạt workflow

Sau khi test thành công:

  • Click nút toggle góc trên bên phải: Inactive Active
  • Workflow tự chạy mỗi 1 phút một lần

Muốn đổi tần suất? Mở node "Poll mỗi 5 phút" → chỉnh field Interval. Tuy nhiên tôi khuyến nghị để 5 phút cho môi trường production để tránh gọi Google Sheets API quá nhiều.

Nội dung thông báo mẫu

Gmail nhận được:
📬 Có liên hệ mới từ Google Form
⏰ Thời gian 24/06/2026 09:15:30
👤 Họ tên Nguyễn Văn A
📧 Email khach@email.com
📞 SĐT 0901234567
💬 Nội dung ...
Telegram nhận được

📬 *Liên hệ mới từ Google Form*

⏰ *Thời gian:* 24/06/2026 09:15:30
👤 *Họ tên:* Nguyễn Văn A
📧 *Email:* khach@email.com
📞 *SĐT:* 0901234567
💬 *Nội dung:* ...

Các lỗi thường gặp

Lỗi Get row(s) không trả về data

  • Nguyên nhân: Cột Trạng thái chưa có trong sheet
  • Cách xử lý: Thêm cột Trạng thái vào hàng header của sheet

Lỗi Get row(s) trả về 0 item dù form có submission mới

  • Nguyên nhân: Cột Trạng thái đang có giá trị (kể cả dấu cách)
  • Cách xử lý: Xóa trắng hoàn toàn các ô trong cột Trạng thái của dòng mới

Lỗi cột Trạng thái không được cập nhật

  • Nguyên nhân: row_number bị mất do node Set không map
  • Cách xử lý: Kiểm tra node Map Form Fields có assignment row_number không

Lỗi Gmail lỗi 401/403

  • Nguyên nhân: Credential hết hạn
  • Cách xử lý: Reconnect Gmail credential trong n8n Settings

Lỗi Telegram không nhận được tin

  • Nguyên nhân: Chat ID sai hoặc bot chưa join group
  • Cách xử lý: Dùng @userinfobot để lấy lại Chat ID; kiểm tra bot đã được add vào group

Lỗi gửi lặp dù đã có Đã thông báo

  • Nguyên nhân: Lỗi chính tả tên cột filter
  • Cách xử lý: Đảm bảo tên cột filter trong Get row(s) là Trạng thái (đúng dấu, đúng chính tả)

Các lỗi phát sinh khác: Bạn hãy gửi ảnh cho ChatGPT và hỏi cách xử lý trên từng lỗi cụ thể nhé!

Automation Package: Tự động thông báo khi có khách hàng liên hệ qua Form
Định dạng: .Zip Dung lượng: 3 KB Lượt tải: 100+ lượt
39.000đ
31 👨 132
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
❖ Workflow mẫu