Giải thích các Toán tử trong điều kiện và cách áp dụng
Last updated
Last updated
Khi bạn làm việc với dữ liệu khách hàng, xây dựng kịch bản chắc hẳn bạn đã từng sử dụng các công cụ bộ lọc, điều kiện trên LadiFlow. Tuy nhiên để xây dựng và áp dụng bộ lọc theo đúng bài toán và nhu cầu không hề dễ thực hiện. Bài viết này sẽ giúp bạn hiểu rõ từng toán tử và cách áp dụng kết hợp các biểu thức phù hợp với nhu cầu thực tế.
Toán tử trên LadiFlow là biểu thức logic( lớn hơn, nhỏ hơn, bằng, chứa...) dùng để so sánh, áp dụng trong biểu thức, là điều kiện để lọc ra tập dữ liệu thỏa mãn biểu thức.
Tương ứng với từng kiểu dữ liệu sẽ có những biểu thức logic tương ứng. Kiểu dữ liệu bao gồm: dòng văn bản, dạng số, dạng danh sách, boolean, hộp chọn, hộp kiểm....
Trước hết, để bạn hiểu rõ định nghĩa từng toán tử, tôi sẽ đưa ra các định nghĩa sau:
Trường so sánh: Là trường thông tin trong biểu thức điều kiện dùng để so sánh với Giá trị so sánh theo toán tử với công thức: <Trường so sánh> <toán tử> <Giá trị so sánh>. Đây là các trường trong dữ liệu khách hàng.
Giá trị so sánh: là giá trị dùng để so sánh với Trường so sánh theo toán tử.
Toán tử | Mô tả |
---|---|
Là, Đúng bằng | Trả ra kết quả Trường so sánh có giá trị chính xác( Bằng) với giá trị nhập |
Không phải là | Trả ra kết quả Trường so sánh có giá trị khác với giá trị nhập. |
Có bất kỳ giá trị nào | Trả ra kết quả Trường so sánh có giá trị, tất cả các giá trị đều thỏa mãn. Có bất kỳ giá trị nào + Không có giá trị= Tập khách hàng của bạn. |
Chứa | Trả ra kết quả Trường so sánh có giá trị chứa Giá trị so sánh. Bạn cần nhập giá trị so sánh theo từ, cụm từ. Với kiểu dữ liệu danh sách, điều kiện áp dụng với từng phần tử trong dánh sách. Ví dụ: "Nguyễn Văn A" chứa "Văn A" => true "Nguyễn Văn A" chứa "Văn B" =>false "Nguyễn Văn A" chứa "Vă"=>false |
Không chứa | Trả ra kết quả Trường so sánh có giá trị không chứa Giá trị so sánh. Bạn cần nhập giá trị so sánh theo từ, cụm từ. Với kiểu dữ liệu danh sách, điều kiện áp dụng với từng phần tử trong dánh sách. Ví dụ: "Nguyễn Văn A" Không chứa "Văn A" => false "Nguyễn Văn A" chứa "Văn B" =>false "Nguyễn Văn A" chứa "Vă"=>false |
Bắt đầu với | Trả ra kết quả Trường so sánh có giá trị Bắt đầu với Giá trị so sánh. Ví dụ: "Nguyễn Văn A" Bắt đầu với "Nguyễn"=> true "Nguyễn Văn A" Bắt đầu với "Nguyen" =>false "Nguyễn Văn A" Bắt đầu với "Nguy"=>true "Nguyễn Văn A" Bắt đầu với "Nguyễn" =>true |
Không có giá trị | Trả ra kết quả Trường so sánh không có bất kỳ giá trị nào. Ví dụ bạn tạo mới trường tùy chỉnh thì tất cả khách hàng đang có Không có giá trị hoặc bạn xóa hết dữ liệu trong trường dữ liệu và cập nhật khách hàng. Khi xem thông tin khách hàng thì trường dữ liệu này Không có giá trị. Không có giá trị + Có bất kỳ giá trị nào = Tập khách hàng của bạn |
Lớn hơn | Trả ra kết quả Trường so sánh lớn hơn Giá trị so sánh. Chỉ áp dụng với kiểu dữ liệu dạng số và ngày tháng. Đối với kiểu dữ liệu ngày tháng, bạn xem thêm tại mục |
Lớn hơn hoặc bằng | Trả ra kết quả Trường so sánh lớn hơn hoặc bằng Giá trị so sánh. Chỉ áp dụng với kiểu dữ liệu dạng số. |
Nhỏ hơn | Trả ra kết quả Trường so sánh nhỏ hơn Giá trị so sánh. Chỉ áp dụng với kiểu dữ liệu dạng số và ngày tháng. Đối với kiểu dữ liệu ngày tháng, bạn xem thêm tại mục |
Nằm trong list | Trả ra kết quả Trường so sánh có giá trị nằm trong danh sách. Chỉ áp dụng với kiểu dữ liệu dòng văn bản, dạng số, hộp chọn, tự tăng. Ví dụ: "A" nằm trong list ["A","B","C"] =>true "A" nằm trong list ["B","C","D"] =>false |
Nhỏ hơn hoặc bằng | Trả ra kết quả Trường so sánh nhỏ hơn hoặc bằng Giá trị so sánh. Chỉ áp dụng với kiểu dữ liệu dạng số. |
Toán tử | Mô tả |
---|---|
Là ngày | Trả ra kết quả Trường so sánh Bằng Giá trị so sánh. Giá trị so sánh là ngày cụ thể |
Từ ngày | Trả ra kết quả Trường so sánh bắt đầu từ Giá trị so sánh tới tương lai. Giá trị so sánh là ngày cụ thể |
Trước ngày hiện tại | Trả ra kết quả Trường so sánh nhỏ hơn ngày hiện tại. Các giá trị ngày trong quá khứ sẽ thỏa mãn điều kiện. |
Sau ngày hiện tại | Trả ra kết quả Trường so sánh lớn hơn ngày hiện tại. Các giá trị ngày trong tương lai sẽ thỏa mãn điều kiện. |
Đến ngày | Trả ra kết quả Trường so sánh nhỏ hơn hoặc bằng Giá trị so sánh. Giá trị so sánh là ngày cụ thể. Các giá trị là quá khứ của Giá trị so sánh thỏa mãn điều kiện |
Có bất kỳ giá trị nào | Trả ra kết quả Trường so sánh có giá trị. Có bất ký giá trị nào + Không có giá trị = Tập khách hàng |
Không có giá trị | Trả ra kết quả trường so sánh không có giá trị. |
Lớn hơn | Trả ra kết quả trường so sánh lớn hơn bao nhiêu ngày trước. Ví dụ: Ngày tái khám lớn hơn 5 ngày trước => Ngày tái khám > (Ngày hiện tại - 5 ngày) |
Nhỏ hơn | Trả ra kết quả trường so sánh nhỏ hơn bao nhiều ngày trước. Ví dụ: Ngày tái khám nhỏ hơn 5 ngày trước => Ngày tái khám <(Ngày hiện tại -5 ngày) |
Cách đây | Trả ra kết quả trường so sánh cách đây bao nhiêu ngày trước. Ví dụ: Ngày tái khám cách đây 5 ngày trước=> Ngày tái khám= Ngày hiện tại - 5 ngày |
Với kiểu dữ liệu thời gian, thời gian trong tương lai luôn lớn hơn thời gian ở hiện tại và quá khứ.
Kết hợp các điều kiện giúp bạn Segment tập khách hàng mong muốn, lọc ra danh sách khách hàng hoặc là điều kiện lọc khách hàng vào Flow. Mỗi chương trình, kịch bản sẽ có các điều kiện khác nhau. Do đó bạn cần kết hợp linh hoạt các điều kiện để thực hiện kịch bản mong muốn. Các bước cần thực hiện như sau:
Xác định điều kiện/tập điều kiện thực hiện kịch bản: ví dụ Khách hàng có tổng giá trị lớn hơn 1 triệu đồng và có sinh nhật vào tháng 5.
Phân tách điều kiện ở bước 1 thành các điều kiện đơn lẻ(không thể phân tách được nữa) và mối quan hệ giữa các điều kiện. Cần ứng dụng linh hoạt theo toán tử trên LadiFlow. Ví dụ ở bước 1, ta xác định được 2 điều kiện đơn lẻ sau: - Điều kiện 1: Tổng giá trị đơn hàng > 1 triệu - Điều kiện 2: Tháng sinh = 5 - Mối quan hệ giữa các điều kiện: VÀ( Tất cả điều kiện)
Thực hiện rút gọn các điều kiện nếu các điều kiện giao nhau hoặc trùng nhau. Việc rút gọn điều kiện sẽ giúp điều kiện của bạn ngắn gọn, dễ hiểu và dễ quản lý. Ví dụ: - Điều kiện 1: Thời gian tạo đơn cuối < 2 tháng - Điều kiện 2: Thời gian tạo đơn cuối < 1 năm - Mối quan hệ giữa các điều kiện: OR(Một trong các điều kiện) => Ta rút gọn điều kiện: Thời gian tạo đơn cuối <1 năm
Kiểm tra và đảm bảo các dữ liệu trên tài khoản của bạn đã có. Nếu chưa có hãy thực hiện bổ sung bằng cách import file, tạo các flow để bổ sung dữ liệu...
Áp dụng điều kiện vào các khu vực cần sử dụng: Tạo segment, lọc danh sách khách hàng, Hành động điều kiện trong Flow...
Để hiểu rõ cách làm, bạn theo dõi 2 ví dụ dưới đây:
VÍ DỤ 1: Khách hàng có hạng là Gold với tổng chi tiêu lớn hơn hoặc bằng 2 triệu hoặc khách hàng có hạng Diamond với tổng chi tiêu lớn hơn hoặc bằng 4 triệu thì gửi voucher giảm giá
Điều kiện thực hiện kịch bản: Khách hàng có hạng là Gold với tổng chi tiêu lớn hơn hoặc bằng 2 triệu hoặc khách hàng có hạng Diamond với tổng chi tiêu lớn hơn hoặc bằng 4 triệu
Tách thành các tập điều kiện đơn lẻ sau: Nhóm điều kiện 1: Hạng là Gold và tổng giá trị đơn hàng lớn hơn hoặc bằng 2 triệu
Nhóm điều kiện 2: Hạng là Diamond và tổng giá trị đơn hàng lớn hơn hoặc bằng 4 triệu
Mối quan hệ giữa các nhóm điều kiện: OR(Một trong các điều kiện)
Các điều kiện không giao nhau, trùng nhau nên không thể rút gọn.
Kiểm tra dữ liệu Hạng và tổng chi tiêu đã có trên khách hàng của bạn chưa - Dữ liệu Hạng: nếu thông tin khách hàng chưa có, hãy kiểm tra các mã trường tùy chỉnh tại nền tảng tích hợp đổ dữ liệu khách hàng(nếu có), danh sách các mã trường dữ liệu đã được liệt kê trên help của từng nền tảng tích hợp. Nếu có mã dữ liệu hạng thành viên, hãy tạo mã trường tùy chỉnh tương ứng. Nếu không có, cần nhập file dữ liệu bổ sung hoặc chạy kịch bản bổ sung dữ liệu. - Dữ liệu tổng chi tiêu: Tổng chi tiêu là trường dữ liệu Tổng giá trị đơn hàng
Thực hiện tạo thiết lập điều kiện trong Segment.
Ở đây, ta thấy có 2 nhóm điều kiện nên cần sử dụng tính năng segment để lọc tập khách hàng. Sau khi thết lập, điều kiện segment sẽ như sau:
Để xem danh sách khách hàng thuộc segment này, bạn chọn Segment tại danh sách khách hàng như hình dưới đây:
Sau khi đã có segment, bạn có thể chạy Campaign với tập này, hoặc thực hiện Flow với các Khách hàng trong segment.
VÍ DỤ 2: Khách hàng sinh nhật tháng 5 và có đơn cuối cùng từ tháng 1/2024 đến hết tháng 4/2024 thì gửi voucher khuyến mại
Điều kiện khách hàng: Khách hàng sinh nhật tháng 5 và có đơn cuối cùng từ tháng 1/2024 đến hết tháng 4/2024
Phân tách điều kiện thành các điều kiện đơn lẻ: - Điều kiện 1: Tháng sinh là 5 - Điều kiện 2: Ngày tạo đơn cuối từ ngày 0:00 01/01/2024 - Điều kiện 3: Ngày tạo đơn cuối đến ngày 24:00 30/04/2024, tương đương với 0:00 01/05/2024 - Mối quan hệ giữa các điều kiện: Và(Tất cả điều kiện)
Các điều kiện không giao nhau, nên không thể rút gọn.
Tìm các trường thông tin theo điều kiện - Tháng sinh tương ứng với trường Tháng sinh - Ngày tạo đơn cuối tương ứng với trường Order Created At
Thực hiện tạo Segment, bộ lọc dữ liệu ta được kết quả sau
Đã thay đổi và bằng | Trường so sánh thay đổi giá trị và giá trị mới bằng Giá trị so sánh. |
Đã thay đổi và chứa | Trường so sánh đã thay đổi giá trị và giá trị mới chứa Giá trị so sánh. Bạn cần nhập giá trị so sánh theo từ, cụm từ. Với kiểu dữ liệu danh sách, điều kiện đúng khi một phần tử trong danh sách thỏa mãn. Ví dụ: "Nguyễn Văn A" chứa "Văn A" => true "Nguyễn Văn A" chứa "Văn B" =>false "Nguyễn Văn A" chứa "Vă"=>false |
Đã thay đổi và không bằng | Trường so sánh đã thay đổi giá trị và giá trị mới Khách với Giá trị so sánh. |
Đã thay đổi và không chứa | Trường so sánh đã thay đổi giá trị và giá trị mới KHÔNG chứa Giá trị so sánh. Bạn cần nhập giá trị so sánh theo từ, cụm từ. Với kiểu dữ liệu danh sách, điều kiện đúng khi tất cả phần tử trong danh sách thỏa mãn. |
Đã thay đổi và bắt đầu với | Trường so sánh đã thay đổi giá trị và giá trị mới bắt đầu với Giá trị so sánh. Ví dụ: "Nguyễn Văn A" Bắt đầu với "Nguyễn"=> true "Nguyễn Văn A" Bắt đầu với "Nguyen" =>false "Nguyễn Văn A" Bắt đầu với "Nguy"=>true "Nguyễn Văn A" Bắt đầu với "Nguyễn" =>true |
Đã thay đổi và thành Không có giá trị | Trường so sánh đã thay đổi giá trị thành không có giá trị. Khi xem thông tin khách hàng thì trường dữ liệu này Không có giá trị. |
Đã thay đổi và nằm trong list | Trường so sánh đã thay đổi giá trị và giá trị mới nằm trong danh sách. Chỉ áp dụng với kiểu dữ liệu dòng văn bản, dạng số, hộp chọn, tự tăng. Ví dụ: "A" nằm trong list ["A","B","C"] =>true "A" nằm trong list ["B","C","D"] =>false |
Đã thay đổi và thành giá trị bất kỳ | Trường so sánh đã thay đổi giá trị và giá trị mới có dữ liệu. |
Đã thay đổi và lớn hơn | Trường so sánh đã thay đổi và giá trị mới lớn hơn giá trị so sánh |
Đã thay đổi và nhỏ hơn | Trường so sánh đã thay đổi và giá trị mới nhỏ hơn giá trị so sánh |