Skip to content

Tham chiếu dữ liệu giữa các bước

Trang này để làm gì

Giải thích cơ chế lấy dữ liệu từ bước này dùng cho bước kia — thứ bạn gặp ở mọi node dưới dạng ô chọn hai tầng Bước N › Tên trường.

Đây là khái niệm gây nhầm lẫn nhiều nhất với người mới, và cũng là chìa khoá để dựng được luồng phức tạp.

Vấn đề mà cơ chế này giải quyết

Khi cấu hình node Gửi tin Zalo OA, hệ thống cần biết: gửi cho ai? Nó không tự đoán được, vì trong một luồng có thể có nhiều nguồn dữ liệu khác nhau.

Vì vậy mỗi node hành động đều hỏi bạn: "Lấy Zalo ID từ đâu?" — và bạn trả lời bằng cách trỏ tới một bước cụ thể và một trường cụ thể trong bước đó.

1Trigger — Khách hàngDữ liệu bước này mang theo: ID khách hàngTên khách hàngZalo ID by OAĐiểm, Hạng, Nguồn…2Trì hoãnChờ 1 giờKhông sinh dữ liệu mới,chỉ chuyển tiếp3Gửi tin Zalo OACấu hình “Trường Zalo ID by OA”:Bước 1Zalo ID by OA→ Hệ thống quay lại bước 1, lấy giá trị Zalo ID của đúng khách hàng đang chạyTham chiếu ngược: bước sau lấy dữ liệu của bước trước

Quy tắc vàng

Bước sau lấy được dữ liệu của mọi bước đứng trước nó. Không lấy được của bước phía sau.

Vì vậy khi ô chọn bước không hiển thị bước bạn muốn, gần như chắc chắn bạn đang cố lấy dữ liệu từ một bước nằm sau — điều này không khả thi, vì tại thời điểm chạy, bước đó chưa xảy ra.

Ô chọn hai tầng

Mọi ô tham chiếu đều có cùng cấu trúc:

Bước 1 : Có thông tin khách hàng…Tầng 1 — Chọn BƯỚCLấy dữ liệu từ bước nào trong luồng?Zalo ID by OATầng 2 — Chọn TRƯỜNGTrường nào trong bước đó?

Danh sách ở tầng 2 phụ thuộc hoàn toàn vào lựa chọn ở tầng 1. Chọn bước là node Trigger Khách hàng thì tầng 2 hiện các trường hồ sơ khách; chọn bước là node Đơn hàng thì tầng 2 hiện các trường đơn hàng.

Ba tên gọi khác nhau, cùng một cơ chế

Tuỳ node, ô tham chiếu có nhãn khác nhau nhưng bản chất giống hệt:

Nhãn hiển thịXuất hiện ởÝ nghĩa
Nguồn dữ liệu nhận hành độngNode Điều kiệnKiểm tra dữ liệu của bước nào
Trường Zalo ID by OANode gửi tin Zalo OALấy Zalo ID của người nhận từ đâu
Các ô gán biếnTab Cài đặt tham sốĐiền giá trị cho biến trong mẫu tin

Bước nào sinh ra dữ liệu mới

Không phải node nào cũng sinh dữ liệu. Nắm được điều này giúp bạn biết nên trỏ tới bước nào:

Loại nodeCó sinh dữ liệu mới khôngGhi chú
TriggerNguồn dữ liệu gốc, luôn có sẵn cho mọi bước sau
Trì hoãnKhôngChỉ chuyển tiếp dữ liệu từ bước trước
Điều kiệnKhôngChỉ lọc, không thêm trường
Phát Ưu đãiSinh mã voucher — trỏ tới đây để lấy mã gửi cho khách
HTTPSinh dữ liệu trả về từ API bên ngoài
Cài đặt giá trị biếnSinh đúng biến bạn khai báo
Javascript MappingSinh kết quả của đoạn mã
Gửi tinKhông đáng kểChủ yếu là điểm cuối

Ví dụ thực tế: gửi voucher riêng cho từng khách

Đây là tình huống bắt buộc phải dùng tham chiếu đúng cách:

1TriggerKhách hàng thêm mới→ có Tên, Zalo ID2Ưu đãi — phát voucherPhát mã giảm 10%→ SINH RA: Mã voucher3Gửi tin Zalo OANgười nhận ← Bước 1 › Zalo ID by OABiến ma_voucher ← Bước 2 › Mã voucherNode gửi tin lấy dữ liệu từ HAI bước khác nhau: người nhận từ bước 1, mã voucher từ bước 2.

Nếu ở bước 3 bạn gõ một chuỗi cố định thay vì trỏ tới Bước 2, mọi khách sẽ nhận cùng một mã voucher.

Lỗi thường gặp

Hiện tượngNguyên nhânCách xử lý
Ô chọn bước không có bước tôi cầnBước đó nằm sau node hiện tạiDi chuyển node, hoặc lấy dữ liệu từ bước trước đó
Chọn được bước nhưng không có trường mong muốnBước đó không mang trường nàyTrỏ về node Trigger, nơi có đầy đủ trường gốc
Tin nhắn gửi ra thiếu nội dung biếnBiến chưa được gán ở tab Cài đặt tham sốMở lại node, sang tab 2, gán đủ
Mọi khách nhận cùng một mã voucherGán chuỗi cố định thay vì tham chiếuTrỏ biến tới bước phát ưu đãi
Sửa node giữa luồng làm node sau báo lỗiNode sau đang tham chiếu tới trường vừa bị đổiMở node sau, chọn lại tham chiếu

Thứ tự node quyết định những gì bạn tham chiếu được

Khi thiết kế luồng, hãy đặt các node sinh dữ liệu (phát ưu đãi, gọi HTTP, tính biến) lên trước các node tiêu thụ dữ liệu (gửi tin). Sắp xếp ngược lại thì dù logic nghiệp vụ đúng, bạn vẫn không trỏ tham chiếu được.

Bước tiếp theo

Tài liệu hướng dẫn sử dụng nền tảng CNV CDP