Các hành động khác
1. Trì hoãn
Là chiến dịch sẽ rơi vào trạng thái chờ cho tới khi thoả thời gian được cài đặt thì sẽ tiếp tục chạy các hành động sau đó, tuỳ theo kịch bản và mục đích sử dụng mà admin sẽ xem xét thời gian trì hoãn cho phù hợp.
Để thực hiện trì hoãn chiến dịch, admin tiến hành:
Chọn hành động sau đó chọn Khác
Chọn Trì hoãn
Nhập thời gian cần trì hoãn theo các đơn vị: Giây, phút, giờ, ngày, tháng, năm
Thao tác Lưu để lưu lại hành động trong chiến dịch.
2. Đếm
Là hệ thống thực hiện đếm theo cấu hình và điều kiện của hành đống đếm được admin cài đặt, khi đếm đủ sẽ tiếp tục thực hiện bước tiếp theo trong kịch bản chiến dịch
Để thực hiện hành động đếm trong chiến dịch, admin tiến hành:
Chọn hành động sau đó chọn Khác
Chọn Đếm
Cài đặt thời gian đếm
Không bao giờ reset: Hành động đếm dữ liệu đi qua liên tục cho đến khi kết thúc chiến dịch
Reset dữ liệu đã đếm: Dữ liệu đã đếm sẽ được đặt lại theo lịch trình được thiết lập và sẽ tiếp tục đếm lại sau khi thực hiện đưa số lượng đếm về 0. Có các hình thức reset:
Mỗi a ngày - Lúc b giờ
Mỗi a tuần - Vào thứ b (có thể chọn nhiều) - Lúc c giờ
Mỗi a tháng - Vào ngày b (có thể chọn nhiều) - Lúc c giờ
Mỗi a năm - Vào ngày b (có thể chọn nhiều) - Vào tháng c (có thể chọn nhiều) - Lúc d giờ
✍️ Lưu ý: a/ b/ c/ d là các số chỉ thời gian mà admin thực hiện chọn hoặc nhập vào khi thực hiện cấu hình hành động đếm
Thao tác Lưu để lưu lại hành động trong chiến dịch.
3. Tạm dừng chiến dịch
Hành động này sẽ là hành động cuồi, chiến dịch sẽ được tự động tạm dừng cho tới thời gian được cấu hình thì sẽ tiếp tục chạy lại.
Để thực hiện hành động tạm dừng chiến dịch, admin tiến hành:
Chọn hành động sau đó chọn Khác
Chọn tạm dừng chiến dịch
Chọn thời gian dừng chiến dịch cho tới khi:
Nhập thời gian
Ngày hôm sau và thời gian: Chiến dịch sẽ tự động kích hoạt vào ngày hôm sau (mỗi ngày sau khi bắt đầu đều gửi)
Nhập ngày và thời gian cụ thể: chiến dịch sẽ tự động kích hoạt lại vào thời gian đã cấu hình (1 lần duy nhất)
Không cài đặt ngày bắt đầu lại: Chiến dịch sẽ không tự động kích hoạt lại cho tới khi admin thực hiện kích hoạt thủ công để chạy lại chiến dịch.
Thao tác Lưu để lưu lại hành động trong chiến dịch.
4. Kết thúc chiến dịch
Khái niệm:
Hành động "Kết thúc chiến dịch" đánh dấu bước cuối cùng trong quy trình tự động, giúp dừng toàn bộ chiến dịch ngay khi đạt mục tiêu đã định. Hành động này được thiết lập để tự động kết thúc chiến dịch, ngăn chặn các hành động tiếp diễn
Trường hợp sử dụng:
Ngắt các chiến dịch khi đã đạt các điều kiện mong muốn về chiến dịch. Ví dụ, trong một chương trình khuyến mãi giới hạn cho 100 đơn hàng đầu tiên của tháng, khách hàng sẽ được tặng gấp đôi điểm thưởng cho mỗi đơn hàng. Khi đã đạt đủ 100 đơn hàng đầu tiên, hành động "Kết thúc chiến dịch" sẽ tự động ngắt quy trình, đảm bảo chương trình khuyến mãi chỉ áp dụng trong phạm vi quy định.
5. HTTP
Khái niệm:
Thực hiện HTTP Request để kết nối API hoặc các hành động khác theo nhu cầu.
Các trường hợp sử dụng:
Xác thực người dùng: Kết nối đến hệ thống xác thực bên ngoài để lấy Access Token.
Lấy dữ liệu từ hệ thống khác: Kết nối đến các API bên ngoài để truy xuất thông tin như sản phẩm, khách hàng hoặc các dữ liệu cần thiết khác từ hệ thống khác vào hệ thống của bạn.
Đẩy dữ liệu lên các hệ thống khác: Gửi các dữ liệu lên các hệ thống bên ngoài để đồng bộ hóa hoặc thực hiện các tác vụ cần thiết.
Các bước thiết lập HTTP:
Bước 1: Chọn phương thức.
Lựa chọn phương thức HTTP (ví dụ: GET, POST, PUT, DELETE).
Bước 2: Nhập thông số đầu vào
URL: Nhập URL mà bạn muốn gửi yêu cầu HTTP đến.
Header: Thêm các tiêu đề (headers) tùy chỉnh cho yêu cầu, chẳng hạn như
Authorization,Content-Type.Body: Định nghĩa nội dung (payload) cho yêu cầu, áp dụng cho các phương thức có thể gửi dữ liệu như POST hoặc PUT. Gồm các lựa chọn:
None: Không có nội dung.
form-data: Định dạng dữ liệu biểu mẫu, thích hợp cho việc gửi dữ liệu nhiều phần như tệp tin.
JSON: Định dạng JSON, sử dụng để gửi dữ liệu có cấu trúc (key-value).
x-www-form-urlencoded: Dữ liệu được mã hóa theo kiểu URL, phổ biến trong các yêu cầu HTTP truyền thống.
Bước 3: Chọn dữ liệu đầu ra
Body: Xem hoặc xử lý dữ liệu trả về từ phản hồi của yêu cầu. Gồm các lựa chọn:
None: Không có định dạng cụ thể.
Text: Nội dung trả về dưới dạng văn bản.
JSON Schema: Dữ liệu phản hồi được trả về theo cấu trúc JSON, hỗ trợ xác định cấu trúc rõ ràng của phản hồi.
Bước 4: Hành động
Sau khi hoàn tất thiết lập, nhấn Lưu để lưu cấu hình yêu cầu HTTP.
6. Mapping dữ liệu
Khái niệm:
Mapping dữ liệu là quá trình cấu hình để ánh xạ dữ liệu từ hệ thống của bạn với các định dạng dữ liệu được yêu cầu bởi API hoặc các hệ thống bên ngoài. Điều này giúp đảm bảo dữ liệu được chuyển đổi và truyền tải chính xác giữa các hệ thống, sẵn sàng sử dụng cho các mục đích đồng bộ với đối tác.
Các trường hợp sử dụng:
Đồng bộ dữ liệu với hệ thống đối tác: Mapping dữ liệu giúp đảm bảo các trường dữ liệu trong hệ thống của bạn khớp với yêu cầu định dạng từ hệ thống của đối tác
Các bước thiết lập Mapping dữ liệu
Bước 1: Chọn nguồn dữ liệu nhận hành động
Lựa chọn nguồn dữ liệu để áp dụng hành động mapping.
Chọn các bước cụ thể chứa dữ liệu cần nhận hành động
Bước 2: Cài đặt kiểu dữ liệu kết quả Mapping
Chọn kiểu dữ liệu cho kết quả mapping,chọn kiểu dữ liệu Mapping:
String
Long
Double
Boolean
Bước 3: Cấu hình giá trị Mapping
Định nghĩa giá trị mapping bằng cách nhập các giá trị chuyển đổi.
Bước 4: Lưu cấu hình
Sau khi hoàn tất thiết lập, nhấn Lưu để lưu lại cấu hình mapping dữ liệu.
7. Mã hóa dữ liệu
Khái niệm
Mã hóa dữ liệu là quá trình chuyển đổi thông tin sang một dạng bảo mật để bảo vệ dữ liệu khỏi việc truy cập trái phép. Mã hóa giúp đảm bảo an toàn cho các dữ liệu nhạy cảm khi truyền tải qua mạng hoặc lưu trữ trong hệ thống.
Các trường hợp sử dụng:
Bảo vệ dữ liệu khách hàng: Mã hóa thông tin nhạy cảm của khách hàng (như số điện thoại, email..) trước khi lưu trữ hoặc truyền tải đến hệ thống khác.
Các bước thực hiện mã hóa dữ liệu
Bước 1: Chọn kiểu mã hóa
Lựa chọn kiểu mã hóa, ví dụ:
Hashđể mã hóa dữ liệu theo các thuật toán băm (hash).
Bước 2: Chọn thuật toán mã hóa
Lựa chọn thuật toán mã hóa phù hợp, ví dụ:
MD5.
Bước 3: Nhập nội dung cần mã hóa
Chọn nội dung hoặc dữ liệu cần mã hóa
Ví dụ: Mã hóa số điện thoại trước khi gửi
Bước 4: Chọn định dạng kết quả
Lựa chọn định dạng của kết quả mã hóa, gồm:
Thập lục phân (Hexadecimal)
Base64
Bước 5: Lưu cấu hình
Sau khi hoàn tất thiết lập, nhấn Lưu để lưu cấu hình mã hóa.
8. Cài đặt giá trị biến
Khái niệm:
Cài đặt giá trị biến là quá trình thiết lập các biến tạm thời trong hệ thống, giúp lưu trữ và sử dụng dữ liệu trong quá trình xử lý các hành động khác nhau. Các biến này có thể được sử dụng để điều kiện hóa, lưu dữ liệu tạm thời hoặc làm đầu vào cho các quy trình sau đó, đặc biệt hữu ích khi xử lý các vòng lặp và điều kiện.
Trường hợp sử dụng:
Lưu trữ dữ liệu giữa các bước: Sử dụng biến để lưu trữ các giá trị tính toán hoặc kết quả từ các bước trước và sử dụng lại trong các bước sau.
Kết hợp với vòng lặp: Sử dụng biến làm bộ đếm hoặc tham số điều kiện để kiểm soát số lần lặp lại của một vòng lặp trong quy trình.
Các bước thực hiện cài đặt giá trị biến
Bước 1: Nhập tên biến
Nhập tên cho biến để dễ dàng nhận biết và sử dụng trong các bước sau. Tên biến cần ngắn gọn và có ý nghĩa mô tả.
Bước 2: Chọn kiểu dữ liệu
Chọn kiểu dữ liệu của biến, gồm:
String
Number
Datetime
Boolean
Bước 3: Gán giá trị cho biến
Gán giá trị cho biến bằng cách sử dụng công thức để gán giá trị. Giá trị này có thể là một giá trị tĩnh hoặc động dựa trên dữ liệu đầu vào từ các bước trước.
Bước 4: Lưu cài đặt
Sau khi thiết lập, nhấn "Lưu" để lưu lại biến và giá trị. Biến này sẽ sẵn sàng để sử dụng trong các quy trình tiếp theo.
9. Vòng lặp
Khái niệm:
Vòng Lặp được sử dụng để duyệt qua tất cả các phần tử trong một danh sách và xử lý dữ liệu của các phần tử đó trong quy trình tiếp theo.
Trường hợp sử dụng:
Lấy ra từng thông tin khách hàng: Lặp qua danh sách từng phần tử trong mảng danh sách khách hàng để lấy ra thông tin của từng khách hàng và ghi vào hệ thống quản lý khác.
Các bước thực hiện Vòng lặp
Bước 1: Nhập tên vòng lặp
Đặt tên cho vòng lặp để dễ dàng nhận biết và quản lý trong quy trình.
Bước 2: Cài đặt kiểu vòng lặp
Lặp theo điều kiện: Vòng lặp sẽ lặp theo giới hạn số lần lặp và điều kiện dừng vòng lặp.
Giới hạn số lần lặp: Người dùng có thể đặt số lần lặp tối đa để vòng lặp tự động dừng sau một số lần nhất định
Nhập công thức logic cho Điều kiện lặp. Công thức này sẽ được kiểm tra ở mỗi lần lặp, và nếu kết quả trả về là
true, vòng lặp sẽ tiếp tục. Ngược lại, nếu kết quả làfalse, vòng lặp sẽ kết thúc.
Lặp theo danh sách: Vòng lặp sẽ duyệt qua từng phần tử trong một danh sách và thực hiện các hành động cho đến khi hết danh sách hoặc theo giới hạn số lần lặp tối đa.
Chọn Danh sách lặp từ các nguồn dữ liệu.
Giới hạn số lần lặp:
Lặp cho đến hết danh sách: Vòng lặp sẽ duyệt qua toàn bộ phần tử trong danh sách, thực hiện hành động trên mỗi phần tử.
Số lần lặp giới hạn tối đa: Đặt giới hạn về số lần lặp tối đa, giúp kiểm soát số lần lặp dù danh sách có nhiều phần tử. Khi đạt đến giới hạn này, vòng lặp sẽ dừng lại ngay cả khi còn phần tử chưa xử lý trong danh sách.
Lặp theo số lần: Vòng lặp sẽ lặp lại một số lần cố định do người dùng đặt ra.
Nhập số lần lặp tối đa cho vòng lặp.
Bước 3: Lưu cấu hình
Sau khi hoàn tất thiết lập, nhấn Lưu để lưu cấu hình vòng lặp.
10. Cập nhật giá trị biến
Khái niệm:
Action “Cập nhật giá trị biến” cho phép người dùng gán hoặc thay đổi giá trị của một biến (variable) trong quá trình chạy kịch bản automation. Đây là hành động logic quan trọng, thường được dùng để:
Lưu trữ tạm thời kết quả tính toán hoặc dữ liệu trung gian.
Xét điều kiện, xử lý vòng lặp hoặc so sánh giá trị trong workflow.
Cập nhật biến để làm input cho các action kế tiếp (ví dụ: gửi tin, tạo webhook, ghi dữ liệu ra CDP...).
Trường hợp sử dụng:
Tăng bộ đếm trong vòng lặp: Dùng để đếm số lần lặp qua danh sách khách hàng hoặc sản phẩm. →
var_count = var_count + 1Gán trạng thái xử lý: Sau khi kiểm tra điều kiện, có thể gán biến trạng thái: →
status = "đã gửi broadcast"Chuẩn bị dữ liệu cho bước sau: Tạo biến tổng hợp dữ liệu (ví dụ “Họ tên + Số điểm + Ngày”) để gửi sang webhook hoặc Zalo OA.
Lưu kết quả tạm: Khi tính toán qua nhiều bước, biến có thể lưu giá trị trung gian trước khi ghi ra CDP.

Các bước thực hiện:
1. Chọn biến
Chọn biến mà bạn muốn cập nhật giá trị.
Khi bấm vào ô chọn, hệ thống sẽ hiển thị danh sách các biến có sẵn (như
var1,var2...).
👉 Ví dụ:
Chọn biến var1 để cập nhật giá trị mới cho nó.
2. Kiểu dữ liệu (Data Type)
CNV CDP tự nhận diện kiểu dữ liệu của biến, hiển thị ở cột “Kiểu dữ liệu”.
Các kiểu phổ biến:
String: chuỗi ký tự (ví dụ “Khách hàng mới”)Number: số (ví dụ 100, 3.14)Boolean: giá trị đúng/sai (true/false)ArrayhoặcObject: dùng cho dữ liệu phức tạp (trong các trường hợp nâng cao).
👉 Trong hình: kiểu dữ liệu của biến là String.
3. Giá trị biến (Variable Value)
Đây là nơi bạn nhập giá trị mới hoặc công thức tính toán để gán cho biến.
Có hai chế độ nhập:
Giá trị tĩnh: nhập trực tiếp (ví dụ
"Khách hàng VIP"hoặc100).Công thức (fx): sử dụng biểu thức động, có thể gọi biến khác, toán tử, hoặc hàm logic.
Ví dụ các biểu thức thường dùng:
var1 + 1→ tăng giá trị biến lên 1.concat("Hello ", var3)→ nối chuỗi văn bản.
Lưu ý quan trọng
Hành động này chỉ cập nhật giá trị tạm thời trong phiên workflow.
Nếu có nhiều action “Cập nhật giá trị biến” liên tiếp, hệ thống sẽ ghi đè theo thứ tự thực thi sau cùng.
Có thể dùng trong vòng lặp hoặc điều kiện rẽ nhánh (if/else) để xử lý logic phức tạp.
Gợi ý kết hợp
Dynamic Hook / Webhook: gửi giá trị biến vừa cập nhật sang endpoint ngoài.
Điều kiện rẽ nhánh: sử dụng giá trị biến để quyết định luồng đi tiếp.
Topup / Tag / Segment: dùng biến làm điều kiện kích hoạt hành động thưởng, trừ, hoặc phân loại khách hàng.
11. Javascript Mapping
Khái niệm:
JavaScript Mapping cho phép người dùng xử lý, biến đổi dữ liệu đầu vào thông qua đoạn mã JavaScript trước khi truyền sang các bước tiếp theo trong luồng automation. Tính năng này giúp linh hoạt trong việc chuẩn hóa dữ liệu, tách, nối, tính toán hoặc định dạng lại thông tin mà không cần chỉnh sửa ở nguồn gốc.
Trường hợp sử dụng:
Chuẩn hóa dữ liệu khách hàng trước khi gửi lên CRM.
Biến đổi dữ liệu form để tính toán kết quả (ví dụ: tổng điểm trắc nghiệm, giá trị đơn hàng).
Rút gọn hoặc ẩn thông tin nhạy cảm trước khi truyền ra ngoài qua API.
Chuyển đổi dữ liệu sang định dạng JSON phức tạp phục vụ webhook.

Các bước thực hiện:
1. Danh sách tham số
Đây là nguồn dữ liệu đầu vào mà người dùng muốn xử lý.
Có thể chọn từ các trường dữ liệu trong các bước trước (ví dụ: “Số điện thoại”, “Email”, “Tên khách hàng”...).
Có thể thêm nhiều tham số bằng cách nhấn “+ Thêm tham số” để truyền vào hàm xử lý.
Hệ thống sẽ đưa toàn bộ tham số này vào hàm
handler()dưới dạng danh sách đầu vào.
Ví dụ: Nếu chọn 2 tham số “Số điện thoại” và “Họ tên”, hàm sẽ nhận:
function handler(phone, name) { ... }2. Kiểu dữ liệu đầu ra
Chọn loại dữ liệu mà kết quả sau khi xử lý sẽ trả về:
String: Chuỗi văn bảnNumber: SốBoolean: Giá trị đúng/saiObjecthoặcArray: Dữ liệu phức tạp (dành cho xử lý nâng cao)
Hệ thống sẽ tự kiểm tra tính hợp lệ của kết quả trả về so với kiểu dữ liệu đã chọn.
3. Code JavaScript
Đây là nơi người dùng viết logic xử lý dữ liệu bằng cú pháp JavaScript.
Mặc định, CNV CDP tạo sẵn một hàm cơ bản:
function handler(input) { return input; }→ Hàm này chỉ trả lại dữ liệu gốc, chưa có biến đổi.
Người dùng có thể bấm “Chỉnh sửa code” để mở giao diện viết mã đầy đủ hơn.
Ví dụ sử dụng phổ biến
a. Chuẩn hóa số điện thoại
Loại bỏ ký tự đặc biệt và đầu số “+84” để đồng nhất định dạng:
function handler(phone) {
return phone.replace(/\D/g, '').replace(/^84/, '0');
}b. Ghép họ tên đầy đủ
function handler(firstName, lastName) {
return `${lastName} ${firstName}`;
}c. Kiểm tra định dạng email
function handler(email) {
return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
}Lưu ý sử dụng
Hàm bắt buộc phải có
return, nếu không hệ thống sẽ không nhận kết quả.Mỗi lần lưu, CNV CDP sẽ kiểm tra lỗi cú pháp cơ bản để tránh code lỗi làm ngắt luồng.
Có thể kết hợp JavaScript Mapping với các action khác như Webhook, Ghi dữ liệu, Điều kiện rẽ nhánh để xử lý dữ liệu động.
Nếu dùng nhiều tham số, đảm bảo thứ tự biến trong code trùng khớp với thứ tự chọn tham số ở phần trên.
12. Nạp tiền vào Số điện thoại
Khái niệm:
Action “Nạp tiền vào Số điện thoại” cho phép hệ thống CNV CDP tự động nạp tiền điện thoại cho khách hàng dựa trên các điều kiện hoặc hành động trong workflow. Tính năng này giúp doanh nghiệp triển khai các chương trình khuyến mãi, tri ân hoặc tặng thưởng trực tiếp cho người dùng mà không cần thao tác thủ công, đảm bảo tính tự động, chính xác và minh bạch.
Trường hợp sử dụng:
Tặng thưởng khách hàng trung thành: Tự động nạp 50.000đ cho khách hàng đạt mốc chi tiêu tháng.
Phần thưởng khi chơi game / mini app: Khi người chơi trúng giải, hệ thống nạp tiền ngay lập tức vào số điện thoại đăng ký.
Chương trình hoàn tiền (cashback): Dựa vào giá trị đơn hàng, hệ thống tính toán và nạp tiền tương ứng.

Các bước thực hiện:
1. API Key, Partner Code, Secret Key
Đây là thông tin xác thực kết nối giữa CNV CDP và đối tác cung cấp dịch vụ nạp tiền (telco hoặc aggregator).
Doanh nghiệp cần được cấp các thông số này khi đăng ký sử dụng dịch vụ nạp tiền.
Tất cả ba trường đều bắt buộc để đảm bảo hệ thống có thể gửi yêu cầu nạp tiền hợp lệ.
Chú ý: Các thông tin này nên được lưu trữ và bảo mật cẩn thận. Không chia sẻ ra ngoài hoặc để lộ trong luồng công khai.
2. Số điện thoại
Là trường dữ liệu khách hàng sẽ nhận tiền nạp, được lấy từ bước trước trong workflow.
Có thể chọn trường “Số điện thoại” từ các hành động như:
Dynamic Action (khách hàng nhập form),
Webhook,
Hoặc từ dữ liệu lưu trong CDP.
👉 Ví dụ: Bước 1: Thủ công - Khách hàng → Số điện thoại
Hệ thống sẽ tự động nạp vào số điện thoại đó khi workflow chạy.
3. Số tiền nạp
Xác định mức tiền hoặc gói topup sẽ được nạp cho khách hàng.
Lấy giá trị từ một biến (
var1,var2, ...) hoặc một bước trước đó.Thông thường, giá trị này được xác định từ action “Cài đặt giá trị biến” trước đó.
Ví dụ: Bước 2: Cài đặt giá trị biến → var1
Cơ chế hoạt động
Khi workflow đến action này, hệ thống:
Lấy số điện thoại từ trường đã chọn.
Lấy số tiền từ biến cấu hình.
Gửi yêu cầu API tới đối tác nạp tiền bằng thông tin
API Key,Partner Code,Secret Key.
Đối tác xử lý giao dịch và phản hồi kết quả (thành công hoặc lỗi).
Nếu thành công, CNV CDP tự động trừ số credit tương ứng khỏi tài khoản doanh nghiệp, đảm bảo minh bạch trong quản lý chi phí.
Lưu ý quan trọng
Action chỉ nạp được cho thuê bao trả trước.
Số tiền nạp được trừ trực tiếp vào credit của doanh nghiệp trong CNV CDP.
Cần đảm bảo tài khoản còn đủ credit trước khi kích hoạt workflow.
Nên kiểm thử trước với mệnh giá nhỏ 10.000đ để xác nhận kết nối API.
Nếu sử dụng giá trị biến, cần đảm bảo biến này luôn có giá trị hợp lệ.
Trường hợp nạp lỗi (sai định dạng, hết credit, hoặc API partner từ chối), workflow sẽ ghi nhận lỗi trong log và không thực hiện lại tự động trừ credit.
Last updated