Quản Lý Dữ Liệu Trong Bot
Trong bài này, chúng tôi sẽ giúp bạn hiểu rõ về hệ thống các loại dữ liệu trong Bot và cách sử dụng chúng hiệu quả. Những dữ liệu này được thu thập trong quá trình tương tác của Bot và người dùng, giúp bot hiểu rõ và truyền tải thông điệp một cách phù hợp.
Ví dụ, bạn có một chatbot phục vụ việc bán pizza. Chatbot này có nhiệm vụ giúp khách hàng order sản phẩm, tính toán giá trị đơn hàng và trả lời các thắc mắc. Với những nội dung lặp đi lặp lại nhiều lần, việc bạn phải gõ tay cho mọi câu trả lời hẳn không phải là một phương án hay. Nếu bạn biết cách ứng dụng các loại dữ liệu một cách thông minh, bot có thể dễ dàng hoàn thành các nhiệm vụ đó. Cụ thể, bot có thể tư vấn sản phẩm dựa trên phản hồi của khách hàng với loại dữ liệu Phản Hồi Người Dùng, tính toán giá trị đơn hàng với Biến Hội Thoại, trả lời thắc mắc về doanh nghiệp với Thuộc Tính Bot và cá nhân hoá tin nhắn bằng các Thuộc Tính Người Dùng.
Phân loại dữ liệu trong Bot
Hệ thống dữ liệu trong BotStar bao gồm 4 loại, được sử dụng với các mục đích khác nhau, hình minh hoạ bên dưới sẽ giúp bạn có cái nhìn tóm lược về chúng:
Sơ lược về 4 loại dữ liệu có trong BotStar
Quản lý các loại Dữ Liệu
Bạn có thể quản lý tập trung 4 loại dữ liệu này ở khu vực bên trái màn hình của Flow Editor
:
Phản Hồi Người Dùng
Định nghĩa
Phản Hồi Người Dùng là những nội dung phản hồi cuối cùng của người dùng đối với mỗi block. Những giá trị này được lưu dưới tên của block đó và sẽ mất đi khi người dùng bắt đầu một cuộc hội thoại mới (khi người dùng bấm nút Bắt Đầu).
Lưu trữ phản hồi người dùng
Khi bạn bật lựa chọn Lưu Phản Hồi Người Dùng ở phần thiết lập cho một block trên thanh Properties
, phản hồi của người dùng được lưu lại. Điều đó có nghĩa, block sẽ dừng lại để chờ người dùng phản hồi, rồi lưu nội dung đó dưới cái tên của block. Vậy nên, bạn nên đặt tên các block thật rõ ràng và có ý nghĩa, để có thể dễ dàng phân biệt giữa các phản hồi được lưu và tìm kiếm các block một cách nhanh chóng.
Khi bạn bật lựa chọn Lưu Phản Hồi Người Dùng trong phần thiết lập của 1 block, nội dung của phản hồi sẽ được lưu lại dưới tên block đó
Để tìm kiếm vị trí các block tương ứng với phản hồi người dùng được lưu trên thanh Data
, nhấn nút Đi Tới Block bên cạnh phản hồi đó đó.
Tìm kiếm block tương ứng với phản hồi được lưu
Biến Hội Thoại
Định nghĩa
Biến Hội Thoại là biến lưu giữ những thông tin do bạn định nghĩa trong suốt quá trình hội thoại giữa bot và người dùng. Các biến này thường được sử dụng để lưu những nội dung có tính chất tạm thời, chỉ được sử dụng ngay trong cuộc hội thoại giữa bot và người dùng. Ví dụ như thông tin đặt hàng, số lượng sản phẩm đặt mua... Các giá trị này sẽ được đặt lại khi người dùng bắt đầu một hội thoại mới (khi người dùng bấm nút Bắt Đầu).
Tạo Biến Hội Thoại
Để tạo một biến hội thoại, bạn nhấp chuột vào nút Thêm Biến ở góc phải trên, sau đó nhập những thông tin liên quan đến biến rồi nhấn nút Tạo. Biến vừa tạo sẽ được liệt kê vào danh sách.
Nhấn vào nút Thêm Biến để bắt đầu tạo Biến Hội Thoại
Những trường thông tin bạn cần điền vào khi tạo Biến Hội Thoại bao gồm:
Tên của biến, dùng để phân biệt các biến với nhau. Tên của các biến phải duy nhất, và không phân biệt hoa thường.
Mô Tả (tuỳ chọn) bạn có thể nhập những thông tin liên quan để dễ nhận biết biến này.
Kiểu Dữ Liệu là những định dạng thông tin mà bạn mong muốn cho biến này. Chúng tôi hỗ trợ 3 loại định dạng sau: Văn bản, Số Đếm, Ngày Tháng.
Lưu Các Giá Trị Thành Danh Sách cho phép bạn lưu các giá trị biến nhận được thành một danh sách.
Giá Trị Ban Đầu cho phép bạn thiết lập giá trị biến lần đầu được tạo.
Cập nhật/ Xoá Biến Hội Thoại
Bạn nhấp chuột vào nút Chỉnh Sửa Biến ở góc phải trên của biến mà bạn muốn chỉnh sửa. Trong màn hình này cũng cho phép bạn xoá biến đó bằng cách chọn nút Xoá.
Nhấn vào nút Chỉnh Sửa Biến để cập nhật/ xoá một Biến Hội Thoại
Chú ý: Việc xoá một biến cần được cân nhắc kĩ. Một khi bạn đã xoá một biến thì không có cách nào khôi phục lại biến đó và những nơi có dùng biến này có thể sẽ hoạt động không như mong muốn.
Thuộc Tính Người Dùng
Thuộc Tính Người Dùng là những thông tin mà bạn định nghĩa thêm cho người dùng ngoài những thông tin mà hệ thống đã cung cấp như Tên, Họ. Những thông tin khác thường được định nghĩa thêm cho người dùng đó là: sinh nhật, nơi ở, số điện thoại của người dùng,...Các giá trị này chỉ mất đi cùng người dùng mà bạn xoá trong phần Quản Lý Người Dùng.
Bạn có thể tham khảo phần hướng dẫn chi tiết cách tạo loại biến này ở trang Thuộc Tính Người Dùng.
Thuộc Tính Bot
Thuộc Tính Bot là những thông tin được bạn định nghĩa cho bot. Giá trị của các thuộc tính này giống nhau đối với tất cả người dùng tương tác với bot. Bạn có thể định nghĩa những thông tin như địa chỉ, số điện thoại của doanh nghiệp mà bot này đang phục vụ. Giá trị của các thuộc tính này sẽ được đặt lại mỗi khi bạn cập nhật trên thanh dữ liệu (Data).
Bạn có thể quản lý Thuộc Tính Bot tại khu vực bên trái màn hình Flow Editor. Việc tạo mới hoặc xoá được thực hiện tương tự như Biến Hội Thoại.
Ứng dụng
Định nghĩa giá trị cho biến khác
Bạn có thể định nghĩa hay thay đổi giá trị của một Biến Hội Thoại với action Update Variables. Action này giúp giá trị của biến cập nhật một cách tự động trong luồng hội thoại.
Action Update Variables
Để có thể định nghĩa giá trị cho một biến, trước hết bạn cần kéo thả action Update Variable trong thư viện vào trang canvas tại đúng vị trí bạn mong muốn. Sau đó tiến hành thiết lập nội dung cho các biến mà bạn muốn thay đổi giá trị.
Đối với biến có kiểu dữ liệu là Văn bản, nội dung bạn gán cho biến là những gì biến sẽ nhận được sau các biến thành phần có trong nội dung của nó được cập nhật. Ví dụ: Bạn thiết lập nội dung cho biến
productOrder
bao gồm những thông tin về đơn hàng:Định nghĩa giá trị cho Biến Hội Thoại với action Update Variables
Bạn thiết lập nội dung cập nhật cho biến
productOrder
như sau:Name:
{response.Product}
Quantity:
{response.Quantity}
Price:
{product.Price}
$Kết quả của biến
productOrder
sau khi action được thực hiệnBạn có thể kiểm tra việc cập nhật nội dung này với chức năng Preview. Kết quả của
productOrder
sau khi action được thực hiện như sau:Phản hồi người dùng
{response.Product}
được thay thế bằng ApplePhản hồi người dùng
{response.Quantity}
được thay thế bằng 3Giá trị của biến
cost
được thay thế bằng 87
Đối với biến có kiểu dữ liệu là Ngày Tháng, bạn có thể gán trực tiếp giá trị hoặc sử dụng một loại dữ liệu bất kì nhưng phải theo định dạng năm/tháng/ngày. Ví dụ:
2019-01-01
.Đối với biến có kiểu dữ liệu là Số, bạn có thể thực hiện ngay các phép toán cơ bản như cộng (+), trừ (-), nhân (*), hoặc chia (/).
Cập nhật biến kiểu Số
Ví dụ bạn gán giá trị cho biến
cost
như sau:cost
={totalPrice}
-{totalPrice}
*{discount}
Kết quả biến
cost
sau khi action ở trên được thực hiệnBan đầu:
totalPrice có giá trị là 100
discount có giá trị là 0.2
price có giá trị là 0
Sau khi thực hiện phép toán, giá trị mới của
cost
là:cost
= 100 - 100 * 0.2 = 80
Đối với biến có kiểu dữ liệu là danh sách các giá trị, bạn có thể gán giá trị cho nó bằng cách chọn nhiều biến thành phần cùng lúc trong mỗi action, khi hiển thị các biến thành phần này sẽ được tự động ngăn cách bởi dấu phẩy.
Chèn chữ hoặc gán các biến khác vào để tạo thành danh sách các giá trị cho biến
ordered
Ban đầu, biến
ordered
chưa có giá trị. Sau khi action được thực hiện, biến ordered
mang giá trị của 3 biến thành phần: {first_name}, {productPrice} và {productOrder}
Chèn vào nội dung tin nhắn
Bạn có thể chèn các loại dữ liệu này vào nội dung của bất kì block nào trong kịch bản để gửi tin nhắn đến người dùng.
Chèn vào nội dung tin nhắn (ví dụ 1)
Chèn vào nội dung tin nhắn (ví dụ 2)
Ví dụ 1 (hình bên trái), khi người dùng thắc mắc về địa chỉ cửa hàng của bạn, bạn có thể trả lời câu hỏi với một biến store_address
(Thuộc Tính Bot / Bot Attribute) đã tạo sẵn. Đồng thời, để tạo sự thân thiện và cá nhân hoá câu trả lời, bạn có thể chèn thêm tên người dùng first_name
(Thuộc Tính Người Dùng / User Attribute) vào đoạn tin nhắn gửi đến họ. Trong ví dụ minh hoạ đầu tiên, tên cửa hàng/ doanh nghiệp cũng có thể được tận dụng. Nhấn vào nút Chèn Dữ Liệu để mở danh sách và chọn dữ liệu bạn muốn chèn vào tin nhắn.
Ví dụ 2 (hình bên phải), bạn muốn thống kê giá trị đơn hàng của khách hàng. Để liệt kê các mức chi phí cần trả, bạn cần sử dụng các Biến Hội Thoai được tạo lập/ tính toán trước đó như là ordered
, totalPrice
và cost
. Đọc về cách định nghĩa giá trị cho một biến.
Điều khiển luồng hội thoại
Các loại dữ liệu này có thể được sử dụng trong các liên kết giữa 2 block bất kỳ để điều hướng người dùng với các câu trả lời phù hợp. Việc này giúp bot phục vụ những đối tượng khác nhau một cách thông minh.
Trường hợp 1, sử dụng Phản Hồi Người Dùng để điều hướng cuộc hội thoại. Ví dụ: Điều hướng người dùng đến câu trả lời thích hợp dựa trên mong muốn mua hàng của họ.
Lưu phản hồi người dùng nhập vào
Ở block Product, bạn bật lựa chọn Lưu Phản Hồi Người Dùng để lưu lại phản hồi mà người dùng nhập vào. Giả sử khách hàng biết 2 mặt hàng chính của doanh nghiệp là Set và Item.
Thiết lập điều kiện trên kết nối với Phản Hồi Người Dùng
Trên mỗi liên kết từ block Product đến 2 block sản phẩm là Set và Item, bạn đặt điều kiện với cấu trúc: User's response - contains - từ khoá sản phẩm. Nếu câu trả lời của người dùng trùng với từ khoá bạn thiết lập, cuộc hội thoại sẽ được điều hướng đến block sản phẩm tương ứng.
Trường hợp 2, sử dụng Biến Hội Thoại để điều hướng cuộc hội thoại. Ví dụ: Tặng cho người dùng các mức chiết khấu dựa trên hoá trị đơn hàng. Nếu đơn hàng lớn hơn 20$, tặng 20% chiết khấu.
Điều hướng luồng hội thoại với Biến Hội Thoại
Trước tiên, bạn cần tạo Biến Hội Thoại totalPrice
như hướng dẫn trong phần Biến Hội Thoại để tính toán tổng giá trị đơn hàng của người dùng. Trên liên kết dẫn đến block Discount More, bạn tạo điều kiện như sau: totalPrice
- equal or greater than - một số. Nếu giá trị đơn hàng được tính toán lớn hơn 20$, người dùng sẽ được thông báo mức chiết khấu 20%.
Trường hợp 3, phân luồng hội thoại dựa trên Thuộc Tính Người Dùng. Ví dụ: Chào người dùng với danh xưng phù hợp dựa trên Giới Tính.
Điều hướng luồng hội thoại với Thuộc Tính Người Dùng
Với bot được triển khai trên Facebook hoặc sử dụng Facebook Messenger Chat Plugin để triển khai trên website, biến Giới Tính sẽ có sẵn. Với luồng hội thoại được thiết kế như hình minh hoạ, bạn chỉ cần thiết lập điều kiện lọc: Gender
- is/is not - Giới Tính.
Trường hợp 4, phân luồng hội thoại dựa trên Thuộc Tính Bot. Ví dụ, bot gửi tin nhắn khác nhau tới người dùng dựa trên khung giờ mà họ tương tác với bot.
Điều hướng luồng hội thoại với Thuộc Tính Người Bot
Trước tiên, bạn cần thiết lập một biến hội thoại cho thời gian hoạt động của doanh nghiệp (Office Hour) và dùng nó trong câu điều kiện của kết nối để gửi tin nhắn phù hợp đến khách hàng. Ví dụ giờ hoạt động của doanh nghiệp là 8AM-6PM, nếu khách hàng hỏi ngoài khung giờ này, bot có thể hẹn trả lời thắc mắc vào ngày làm việc tiếp theo.
Lọc các item của CMS Entity
Lọc nội dung CMS
Các dữ liệu này hoàn toàn có thể được sử dụng để tạo điều kiện lọc ra các item phù hợp từ Entity, tương ứng với sự tương tác của người dùng.
Gửi dữ liệu từ bot đến hệ thống của bạn
Gửi dữ liệu ra các hệ thống bên ngoài (Chèn dữ liệu bạn cần gửi vào phần payload, chọn nút Chèn Dữ Liệu để thêm biến)
Bạn có thể gửi dữ liệu ra bên ngoài thông qua các block lập trình có sẵn ở trong thư viện như Scripting, HTTP Block, HTTP Action,...
Tổng kết
Nhìn chung, những sự khác nhau cơ bản của các loại dữ liệu có thể được tóm gọn như sau:
Phản Hồi Người Dùng | Biến Hội Thoại | Thuộc Tính Người Dùng | Thuộc Tính Bot | |
---|---|---|---|---|
Định Nghĩa | Nội dung phản hồi cuối cùng của người dùng đối với mỗi block | Thông tin do bạn định nghĩa trong suốt quá trình giao tiếp của bot và người dùng. Biến mang tính chất tạm thời, chỉ được sử dụng ngay trong cuộc hội thoại. | Thuộc tính mà bạn định nghĩa thêm cho người dùng ngoài những thuộc tính có sẵn | Thuộc tính mà bạn định nghĩa cho bot, nó giống nhau đối với tất cả người dùng tương tác với bot |
Giá Trị | Phản hồi của người dùng | Tuỳ biến theo mỗi cuộc hội thoại | Thông tin bổ sung cho mỗi người dùng | Thông tin bổ sung cho bot, được cố định cho mọi cuộc hội thoại |
Thời Hạn Lưu Trữ | Mất đi khi người dùng bắt đầu cuộc hội thoại mới (khi người dùng bấm nút Bắt Đầu) | Mất đi khi người dùng bắt đầu cuộc hội thoại mới (khi người dùng bấm nút Bắt Đầu) | Mất đi khi bạn xoá người dùng | Dữ liệu thay đổi khi được bạn đặt lại |
Cách thay đổi dữ liệu | Không thể thay đổi | Thay đổi một cách tự động bằng các sử dụng action "Update Variables" trong luồng hội thoại | Thay đổi trong trang Quản Lý Người Dùng hoặc bằng thay đổi một cách tự động bằng cách sử dụng action "Update User Attributes" trong luồng hội thoại | Thay đổi trên thanh Data trong Flow Editor |