Tổng quan
Zalo là kênh tiếp cận khách hàng cực kỳ hiệu quả tại Việt Nam với tỷ lệ mở tin nhắn (Open Rate) lên đến 80-90%. Tuy nhiên, việc gửi tin nhắn thủ công tốn rất nhiều thời gian và dễ sai sót.
Trong bài viết này, chúng ta sẽ xây dựng một hệ thống Marketing Automation hoàn chỉnh sử dụng n8n và n8n-nodes-zalo-nnt.
Mục tiêu
- 🎯 Gửi tin nhắn hàng loạt (Broadcast) cho danh sách khách hàng
- 👤 Cá nhân hóa nội dung (Tên, Công ty, Sản phẩm quan tâm)
- ⏰ Lập lịch gửi tự động
- 📊 Theo dõi trạng thái gửi
Workflow Architecture
Hệ thống sẽ bao gồm các bước sau:
- Input: Lấy danh sách khách hàng từ Google Sheets / Airtable / CRM.
- Process:
- Lọc khách hàng mục tiêu
- Tạo nội dung cá nhân hóa
- Chia nhỏ danh sách (Batching) để tránh spam
- Action: Gửi tin nhắn qua ZaloSendMessage node.
- Output: Cập nhật trạng thái gửi về database.
Bước 1: Chuẩn bị Dữ liệu
Giả sử chúng ta có một file Google Sheets Khach_Hang_Zalo với các cột:
ZaloID: ID người dùng (lấy từ ZaloUser node hoặc data có sẵn)HoTen: Tên khách hàngSanPham: Sản phẩm họ quan tâmTrangThai: "Chờ gửi", "Đã gửi", "Lỗi"
Bước 2: Xây dựng Workflow
1. Trigger & Get Data
Sử dụng node Google Sheets để lấy danh sách khách hàng cần gửi.
- Resource: Sheet
- Operation: Read
- Filter:
TrangThai= "Chờ gửi"
2. Batching (Quan trọng)
Để tránh bị Zalo chặn vì spam, chúng ta cần gửi từ từ. Sử dụng node Split In Batches.
- Batch Size: 1 (Gửi từng người một) hoặc 5 (Gửi nhóm nhỏ)
3. Generate Message
Sử dụng node Function hoặc Set để tạo nội dung tin nhắn dynamic.
// Example Code trong Function Node
const name = $json.HoTen;
const product = $json.SanPham;
return {
message: `Chào ${name}! 👋\n\nDiginno đang có ưu đãi đặc biệt cho dòng sản phẩm **${product}** mà bạn quan tâm.\n\n👉 Xem ngay tại: https://diginno.net/promo`,
userId: $json.ZaloID
};
4. Send Message
Sử dụng node ZaloSendMessage:
- Credential: Chọn account của bạn
- To:
{{$json.userId}} - Message:
{{$json.message}} - Message Type: Text (hoặc Image nếu muốn gửi banner)
5. Delay
Thêm node Wait sau mỗi lần gửi.
- Amount: 2-5 seconds (An toàn)
- Randomize: Có thể random từ 2-10s để giống người thật hơn.
6. Update Status
Sau khi gửi thành công, update lại Google Sheets.
- Operation: Update
- Key: Row ID (hoặc ZaloID)
- Column to send:
TrangThai= "Đã gửi"
Full Workflow JSON
Đây là logic cơ bản của workflow:
[Start] -> [Google Sheets (Read)] -> [Split In Batches] -> [Wait (2s)] -> [ZaloSendMessage] -> [Google Sheets (Update)] -> [Loop back to Batch]
Advanced Techniques
1. A/B Testing
Bạn có thể tạo 2 mẫu tin nhắn khác nhau và gửi ngẫu nhiên để test hiệu quả.
const template = Math.random() > 0.5 ? "A" : "B";
let message = "";
if (template === "A") {
message = "Mẫu ngắn gọn: Giảm 20% hôm nay!";
} else {
message = "Mẫu chi tiết: Chào bạn, nhân dịp sinh nhật...";
}
2. Multi-Account Sending
Nếu bạn có danh sách lớn (>1000 người), hãy sử dụng nhiều tài khoản Zalo để gửi song song (Load Balancing).
- Tạo credential:
Acc1,Acc2,Acc3 - Trong workflow, xoay vòng (Round Robin) credential cho mỗi batch.
3. Error Handling
Luôn xử lý lỗi nếu gửi thất bại (ví dụ: người dùng chặn tin nhắn).
- Kết nối đầu Error của ZaloSendMessage node.
- Update Google Sheets:
TrangThai= "Lỗi - Người dùng chặn" - Không làm gián đoạn quy trình gửi cho người tiếp theo.
Lưu ý về Chính sách Zalo
Cảnh báo Spam
Zalo có cơ chế chống spam rất chặt chẽ. Để tránh bị khóa tài khoản:
- Không gửi quá nhanh: Luôn dùng Wait node.
- Nội dung đa dạng: Sử dụng Spintax hoặc cá nhân hóa cao để nội dung không bị trùng lặp 100%.
- Tương tác 2 chiều: Khuyến khích khách hàng trả lời để tăng trust score.
- Kết bạn trước: Tỷ lệ gửi thành công cho bạn bè cao hơn nhiều so với người lạ.
Kết luận
Với workflow này, bạn có thể tự động hóa hoàn toàn quy trình chăm sóc khách hàng và marketing qua Zalo mà không tốn phí dịch vụ hàng tháng. Hệ thống chạy ổn định, minh bạch và dữ liệu hoàn toàn nằm trong tay bạn.
Bài tiếp theo, chúng ta sẽ xây dựng Customer Support Bot thông minh có khả năng tự trả lời câu hỏi thường gặp.
Bài viết hữu ích?
Chia sẻ để nhiều người biết đến!
>_ LLM-Friendly Copy
Copy as Markdown to use with ChatGPT, Claude, or other AI tools



