Giao diện
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 đó.
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:
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 động | Node Điều kiện | Kiểm tra dữ liệu của bước nào |
| Trường Zalo ID by OA | Node gửi tin Zalo OA | Lấy Zalo ID của người nhận từ đâu |
| Các ô gán biến | Tab 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 node | Có sinh dữ liệu mới không | Ghi chú |
|---|---|---|
| Trigger | Có | Nguồn dữ liệu gốc, luôn có sẵn cho mọi bước sau |
| Trì hoãn | Không | Chỉ chuyển tiếp dữ liệu từ bước trước |
| Điều kiện | Không | Chỉ lọc, không thêm trường |
| Phát Ưu đãi | Có | Sinh mã voucher — trỏ tới đây để lấy mã gửi cho khách |
| HTTP | Có | Sinh dữ liệu trả về từ API bên ngoài |
| Cài đặt giá trị biến | Có | Sinh đúng biến bạn khai báo |
| Javascript Mapping | Có | Sinh kết quả của đoạn mã |
| Gửi tin | Khô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:
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ượng | Nguyên nhân | Cách xử lý |
|---|---|---|
| Ô chọn bước không có bước tôi cần | Bước đó nằm sau node hiện tại | Di 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ốn | Bước đó không mang trường này | Trỏ về node Trigger, nơi có đầy đủ trường gốc |
| Tin nhắn gửi ra thiếu nội dung biến | Biế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ã voucher | Gán chuỗi cố định thay vì tham chiếu | Trỏ biến tới bước phát ưu đãi |
| Sửa node giữa luồng làm node sau báo lỗi | Node sau đang tham chiếu tới trường vừa bị đổi | Mở 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
- Tra cứu các trigger có sẵn: Thư viện Trigger
- Tra cứu các hành động: Thư viện Hành động
- Xem cách áp dụng: 10 ví dụ use case