Hướng dẫn sử dụng trình xử lý gửi mail đến từng người dùng
Back to ezymarketingTrình xử lý gửi mail đến từng người dùng được dùng trong Marketing Workflow để gửi một email riêng cho từng participant thuộc loại người dùng. Mỗi participant sẽ được xử lý độc lập: hệ thống lấy thông tin user, xác định email nhận, render mail template theo parameters của workflow run, rồi gửi mail.
Handler name cần chọn trong Workflow Step là:
send_email_to_one_user
Khi nào nên dùng
Dùng trình xử lý này khi cần gửi cùng một mẫu email cho nhiều người dùng trong một campaign hoặc participant segment, ví dụ:
- gửi email thông báo mở bán,
- gửi email chăm sóc khách hàng,
- gửi email nhắc lịch,
- gửi email theo danh sách user được lọc bằng participant segment.
Điều kiện cần có
Workflow chỉ chạy đúng khi thỏa các điều kiện sau:
- Workflow Step có
handlerNamelàsend_email_to_one_user. - Participant Segment có
participantTypelà user. - Fetch participants script trả về danh sách participant hợp lệ.
- Workflow Run có
parameterschứamailTemplateName. - Mail template tương ứng đã tồn tại trong hệ thống mail template.
- User có email, hoặc participant trả về email ở cột phù hợp.
Cấu hình Workflow Step
Trong màn hình thêm hoặc sửa Workflow Step:
-
Handler Name: chọnGửi email đến một người dùng, tương ứng với giá trị kỹ thuậtsend_email_to_one_user. -
Status: nên đểACTIVATED. -
Step Order: dùng để xác định thứ tự chạy nếu workflow có nhiều step. -
Handler Script: không cần nhập nếu đã chọn handler name.
Gắn parameters vào Workflow Run
Khi tạo hoặc sửa Workflow Run, nhập JSON vào ô
Parameters.Ví dụ tối thiểu:
{
"mailTemplateName": "chua-nguyen-bac-phat-mo-ban"
}
Trong đó:
-
mailTemplateNamelà bắt buộc. - Giá trị của
mailTemplateNamephải trùng với tên mail template trong hệ thống. - Toàn bộ object JSON này sẽ được truyền vào mail template dưới dạng parameters.
Nếu thiếu
mailTemplateName, handler sẽ trả về kết quả:
mailTemplateName is empty
Parameters truyền vào mail template
Khi gửi mail, hệ thống sẽ truyền các parameters từ Workflow Run vào mail template. Ngoài các field bạn tự khai báo trong JSON, handler còn tự động thêm:
user
user là thông tin người dùng được lấy từ user id của participant.Ví dụ Workflow Run parameters:
{
"mailTemplateName": "chua-nguyen-bac-phat-mo-ban",
"campaignName": "Chùa Nguyễn Bắc Phật mở bán",
"landingPageUrl": "https://example.com/mo-ban"
}
Mail template có thể dùng các biến như:
user campaignName landingPageUrl
Dữ liệu participant cần trả về
Participant Segment nên trả về mỗi participant theo cấu trúc khuyến nghị:
[pageTokenOrLastId, userId, email]
Ví dụ ý nghĩa:
[1001, 25, "user@example.com"]
Handler sẽ hiểu:
- nếu participant có từ 3 phần tử trở lên:
userIdnằm ở phần tử thứ 2,emailnằm ở phần tử thứ 3; - nếu participant có 2 phần tử: phần tử thứ nhất là
userId, phần tử thứ hai làemail.
Khuyến nghị dùng dạng 3 phần tử vì executor cũng dùng phần tử đầu tiên làm page token để chạy phân trang qua participant segment.
Luồng xử lý
flowchart TD
A[Workflow Run đến thời điểm chạy] --> B[Executor lấy campaign participant segment]
B --> C[Executor chạy fetch participants script]
C --> D[Parse parameters từ Workflow Run]
D --> E[Lấy Workflow Step đang ACTIVATED]
E --> F[Gọi handler send_email_to_one_user cho từng participant]
F --> G[Kiểm tra participant type là user]
G --> H[Lấy user và email]
H --> I[Lấy mailTemplateName từ parameters]
I --> J[Gửi templated mail]
Kết quả xử lý
Handler trả về chuỗi kết quả để executor ghi log.
Một số kết quả thường gặp:
send mail successfully mailTemplateName is empty participantType is empty participant is invalid participants is invalid user id: <id> is invalid user email is empty
Ví dụ cấu hình hoàn chỉnh
Workflow Step:
handlerName = send_email_to_one_user status = ACTIVATED
Workflow Run parameters:
{
"mailTemplateName": "chua-nguyen-bac-phat-mo-ban"
}
Participant Segment:
participantType = user
Participant trả về:
[lastId, userId, email]
Khi workflow run được executor xử lý, mỗi user trong participant segment sẽ nhận một email được render từ template
chua-nguyen-bac-phat-mo-ban.