Hướng dẫn tạo workflow n8n chăm sóc khách hàng từ email marketing
Trong kỷ nguyên số, email marketing không chỉ là công cụ gửi thông điệp mà còn là chìa khóa để chăm sóc khách hàng hiệu quả. Với n8n, bạn có thể xây dựng các workflow tự động để theo dõi, bắt sự kiện, hành vi của khách hàng từ email ngay lập tức, từ đó nâng cao trải nghiệm và giữ chân khách hàng. Bài viết này sẽ hướng dẫn chi tiết cách tạo workflow n8n nhận thông báo chăm sóc khách hàng từ email marketing.

1. Mục tiêu của workflow
- Tự động bắt sự kiện (hành động mở, nhấp) từ hệ thống email marketing của một chiến dịch cụ thể.- Phân loại khách hàng theo lượt mở email và lượt nhấp trong email để dễ chăm sóc và phân tích hành vi.
- Gửi thông báo cho bộ phận chăm sóc ngay khi khách hàng có hành động click vào liên kết trong email, không cần đợi đến cuối chiến dịch hay cuối tháng thống kê.
2. Chuẩn bị trước khi bắt đầu:
- Tài khoản Google miễn phí để tạo Google Sheets để nhận và cập nhật dữ liệu chăm sóc khách hàng.
- Tài khoản Telegram với nhóm nhận thông báo đã tạo sẵn.
- Tài khoản n8n Cloud hoặc tự host (Hướng dẫn cài đặt n8n tự động bằng n8nPanel của iNET).
- API kết nối n8n vào Google Sheets (Hướng dẫn kết nối n8n với Google Sheets).
- Tạo bot Telegram (Hướng dẫn tạo bot trên Telegram).
- Hệ thống email marketing hỗ trợ webhook (hoặc API) để gửi sự kiện mở/click email.
3. Hướng dẫn chi tiết: Triển khai workflow trên n8n
Tổng quan workflow: chia ra 2 nhánh với 2 phần chính:
+ Lượt click – Bắt sự kiện click - khách hàng nhấp vào liên kết, lưu các URL.
+ Lượt mở – Bắt sự kiện mở lần đầu, cập nhật khách hàng mới, đếm lượt mở và lưu vào sheets.
Bước 1: Tạo file sheets để nhận thông tin và dữ liệu khách hàng từ workflow n8n
- Bao gồm các cột cần có để nhận thông tin: Họ tên, Email, Campaign, IP1, Lượt Mở, Lượt nhấp, IP Khác, URL1, URL2, URL3.
- Các cột khác: Thông báo, Kết quả, Note có thể thay đổi, chỉnh sửa để phù hợp với cách chăm sóc khách hàng của mình.
*Lưu ý: Viết đúng tên cột, không có khoảng cách trắng. Nếu sửa chữ viết hoa, viết thường hoặc thay đổi tên cột, bạn cần kiểm tra và chỉnh sửa các node trong workflow.

Bước 2: Tạo workflow mới
- Đăng nhập vào n8n ( n8n.cloud hoặc tự self-host).
- Nhấn Create Workflow để tạo workflow mới.

Bước 3: Thiết lập node Webhook nhận sự kiện từ email marketing
- Chọn HTTP POST làm phương thức nhận dữ liệu.
- Copy URL webhook n8n và cấu hình trên hệ thống email marketing để gửi sự kiện mở/click về đây.
- Kiểm tra webhook bằng cách gửi thử sự kiện và xem log nhận được.
>>>Xem thêm chi tiết cách thực hiện: TẠI ĐÂY

Bước 4: Phân loại sự kiện mở/click email
- Kéo node IF vào workflow, kết nối từ node Webhook.
- Thiết lập điều kiện để phân biệt sự kiện mở email và click link (ví dụ: nếu trong phần body có chứa url sẽ true, thông tin chuyển sang nhánh lượt click. Nếu không có url, sẽ chuyển qua bên nhánh false lượt mở).
- Từ đó, tạo hai nhánh xử lý từ node IF: 1 nhánh cho lượt mở và 1 nhánh cho lượt click.

Bước 5: Xử lý 2 nhánh lượt click và lượt mở
- Đối với nhánh workflow lượt mở email:

Với node đầu tiên, node Edit Fields (Set_TT), lấy các thông tin từ node IF trước đó bao gồm campaign, name, email và ip với cấu hình String. Bạn có thể thêm hoặc bớt các trường thông tin này theo nhu cầu riêng.

Đến node Google Sheets (Data_Sheets) để đọc các dữ liệu có trong sheets.

Function node tiếp theo (Check_Sheet_Empty) để xác định dữ liệu nhập vào lần đầu tiên hay đã có dữ liệu nào khác chưa. Ở đây chỉ cần 1 item, chứa field hasData.
Dùng !isEmpty để chuyển:
- Nếu sheet trống (isEmpty = true) → Output: hasData = false
- Nếu sheet có dữ liệu (isEmpty = false) → Output: hasData = true

Tiếp đến node IF (If_Empty), dùng để nhận kết quả từ node Function (Check_Sheet_Empty) và phân nhánh để chuyển thông tin:

- Nếu sheets trống chưa có dữ liệu ( Output: hasData = false) => chuyển sang nhánh true.
- Nếu sheets đã có dữ liệu (Output: hasData = true) => chuyển sang nhánh false.

*Nhánh phụ lượt mở 1 (IF_Empty: true): Cập nhật dữ liệu khách hàng đầu tiên vào sheets.
- Tại Node Google Sheets (Thêm Mới KH Mở Mail1), cấu hình node với credential sheets đã kết nối, Resource: Sheet Within Document, Operation: Append Row, Document: chọn file sheets của bạn, Sheets: chọn trang trong file sheets đó.
- Lấy các thông tin bạn mong muốn vào các cột (ví dụ như họ tên, email, campaign, IP1, Lượt mở 1).

*Nhánh phụ lượt mở 2 (IF_Empty: false): Kiểm tra khách hàng đã từng mở mail chưa và cập nhật thêm vào sheets (vì mức độ quan tâm email của khách hàng mở email 1 lần và nhiều lần khác nhau, bạn có thể nhờ vào đặc điểm này để phân tích thêm tệp khách hàng của mình).
- Từ điều kiện false ở trên tại node IF_Emty:
Tạo node Function (Code5): Để kiểm tra khách hàng đã mở mail lần nào chưa.

Tiếp theo, đến node IF2 để nhận thông tin kết quả từ node Function trước (Code5) để phân nhánh.

- Nếu khách hàng mở mail lần đầu tiên => false, quay trở lại nhánh phụ lượt mở 1 (IF_Empty: true) với node Sheets thêm mới khách hàng mở mail1.
- Nếu khách hàng đã mở trước đó => true, thêm node Function (Code6) để thiết lập thêm số lần mở mail +1 cho email khách hàng đó, và cập nhật thêm vào sheets (node Google Sheets (Cập Nhật 1)).
Function Node(Code6): Node này lấy JSON đầu vào từ node Code5 và SET_TT, so sánh ipCurrent với ipopen để tính xem có IP mới không và cập nhật số lần IP khác (IpKhac), đồng thời tăng chỉ số lượt mở (LuotMo) lên 1 dựa trên giá trị lm hiện tại. Cuối cùng nó trả về một object chứa rowIndex, LuotMo, IpKhac, ip1 (IP để sử dụng tiếp) cùng các trường email, name, campaign cho các node sau.
Google Sheets Update Node: Dùng giá trị rowIndex (match trên cột row_number) để tìm đúng dòng trong sheet của bảng. Sau đó, cập nhật cột Lượt Mở với {{$json.LuotMo}} và IP Khác với {{$json.IPKhac}} từ output của Function node. Các trường khác (nếu cần) cũng có thể được map tương tự để ghi đè hoặc thêm mới.
Khi cập nhật thêm số lần mở của một email, bạn có thể biết khách hàng nào mở email nhiều lần, để từ đó chăm sóc khách hàng tốt hơn.
-Đối với nhánh workflow lượt click trong email:
Đầu tiên với node Edit Fields (Set_Click), lấy các thông tin từ node IF trước đó bao gồm url, ip, campaign và email với cấu hình String. Bạn có thể thêm hoặc bớt các trường thông tin này theo nhu cầu riêng.
Sau đó, chuyển các thông tin bạn cần lấy đến node Google sheets để đọc các thông tin dữ liệu hiện có trong sheets. Yêu cầu bạn cần thiết lập credential, Resource: Sheet Within Document, Operation: Get Row, chọn đúng sheets và trang trong sheets để đọc dữ liệu.
Tiếp đến, node Function (Code_Url_Click) quét dữ liệu email khách hàng trước đó đã mở có trong sheets để cập nhật thêm. Theo cơ chế, mỗi lần khách hàng nhấp sẽ +1 lượt nhấp, và nếu nhấp vào link khác nhau sẽ cập nhật lần lượt vào url1, url2, url3 trong sheets.
*Lưu ý: Nếu không có dữ liệu khách hàng đã mở trước đó trong sheets, sẽ thông báo lỗi không tìm thấy email và bị dừng nhánh click tại node này.
Sau khi đã xác định vị trí hàng trong sheets của khách hàng đó, node Google Sheets tiếp đến sẽ lấy các thông tin dữ liệu của node Function (Code_Url_Click) trước đó để cập nhật thêm vào sheets.
Tiếp theo, cấu hình node IF với Lượt nhấp =1, có nghĩa là phân loại khách hàng nhấp lần đầu tiên sẽ đúng (true) để gửi thông báo, các lần nhấp tiếp theo (2,3,4..) sẽ không gửi thông báo về.
Node cuối của nhánh click, thiết lập node telegram để nhận thông báo. Bạn có thể tạo bot telegram và add vào nhóm chat để lấy Chat ID. Đoạn text bạn có thể cấu hình theo ý bao gồm các thông tin dữ liệu khách hàng cần thiết để gửi thông báo về.
Như vậy là xong, bạn có thể lưu lại và test thử trước khi active chính thức để chạy tự động thông báo dữ liệu. Bạn hoàn toàn có thể tùy chỉnh, thêm node và nâng cấp workflow để phù hợp theo nhu cầu chăm sóc khách hàng.
>>>Link tải workflow: TẠI ĐÂY
>>>Xem thêm hướng dẫn Import/Export dữ liệu: TẠI ĐÂY
Chúc bạn áp dụng thành công và tối ưu hóa quy trình chăm sóc khách hàng hiệu quả hơn!