CloudFly Helpdesk

Cho chat ẩn danh hay bắt đăng nhập

Chọn giữa cho khách chat ngay và bắt đăng nhập trước, hiểu vì sao biểu mẫu trước trò chuyện không phải là danh tính, và bàn giao phiên đã xác thực.

Xem .mdMở llms.txt

Phần Ai được chat hỏi đúng một câu: khách có phải khai mình là ai trước khi chat không, và bằng cách nào. Câu trả lời quyết định bạn có được tin dữ liệu kèm theo hội thoại hay không.

Mục tiêu

Kênh chạy đúng một trong hai chế độ — chat ẩn danh, hoặc bắt đăng nhập — và bạn biết dữ liệu ở mỗi chế độ đáng tin tới đâu.

Trước khi bắt đầu

  • Vai trò quản trị viên, hoặc một vai trò khác đã được xếp vào nhóm quyền cho sửa kênh.
  • Nếu định bắt đăng nhập: địa chỉ trang đăng nhập của website bạn, và một lập trình viên nối được backend bên bạn với api-engine.
  • Biến môi trường INTERNAL_API_TOKEN đã đặt trên api-engine. Chưa đặt thì cửa server-to-server trả 404 chứ không mở.
  • Đọc Vai trò và quyền theo tính năng nếu bạn không chắc tài khoản mình sửa được kênh.

Các bước

Ở cột trái bấm Kênh, mở kênh tiện ích website, chọn tab Cấu hình rồi tới phần Ai được chat.

Phần Ai được chat trong tab Cấu hình: công tắc Cho phép chat ẩn danh đang bật, bên dưới là công tắc Bật biểu mẫu trước trò chuyện lùi vào trong một đường kẻ dọc
Biểu mẫu trước trò chuyện nằm bên trong nhánh cho phép chat ẩn danh.

Giữ Cho phép chat ẩn danh ở trạng thái bật nếu khách được chat ngay mà không phải khai gì. Đây là mặc định của một kênh mới.

Muốn hỏi thông tin trước khi khách nhắn, bật Bật biểu mẫu trước trò chuyện. Ba công tắc con hiện ra ngay dưới.

Chọn trong Bắt buộc nhập tên, Bắt buộc nhập EmailBắt buộc nhập số điện thoại. Cả ba ô luôn được hỏi; công tắc quyết định ô nào khách không được bỏ qua.

Cần danh tính đáng tin thì tắt Cho phép chat ẩn danh. Biểu mẫu biến mất và ô Trang đăng nhập hiện ra thay chỗ.

Điền Trang đăng nhập bằng một đường dẫn bắt đầu bằng https://. Console từ chối lưu khi ô này trống hoặc sai dạng.

Bố trí bước bàn giao phiên ở phía website của bạn, theo hai đoạn mã bên dưới. Thiếu bước này thì khách đăng nhập xong vẫn không chat được.

Bấm Lưu cài đặt.

Biểu mẫu trước trò chuyện chỉ thu thập, không xác thực. Khách gõ được bất cứ tên và địa chỉ nào, và không có bước nào kiểm chứng chúng. Phiên mở ra từ biểu mẫu vẫn là phiên ẩn danh. Đừng dùng dữ liệu đó để tra cứu tài khoản, xác nhận đơn hàng hay mở bất cứ thông tin nào của khách khác.

Bàn giao một phiên đã xác thực

Chỉ chế độ bắt đăng nhập mới cho bạn một danh tính đáng tin, và nó đi qua backend của bạn chứ không qua trình duyệt. Sau khi backend đã xác thực khách, nó gọi cửa server-to-server của api-engine:

curl -X POST "https://<api-cua-ban>/internal/widget-sessions" \
  -H "X-Internal-Token: <INTERNAL_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{ "inbox_id": <INBOX_ID>, "identifier": "cloudfly:1234567", "email": "khach@example.com" }'

Phản hồi mang widget_token. Trang web đưa nó cho widget, và xoá nó đi khi khách đăng xuất:

window.CustomChatSDK.identify({ widget_token: "<WIDGET_TOKEN>" });

// Khi khách đăng xuất. Token sống lâu hơn phiên duyệt web, nên bỏ bước này là
// người dùng máy chung tiếp theo thừa hưởng cuộc trò chuyện.
window.CustomChatSDK.reset();

Hai chế độ loại trừ nhau, và console dựng biểu mẫu lồng bên trong nhánh cho phép ẩn danh để bạn không bật được cả hai. Lý do: khi kênh bắt đăng nhập, cửa ẩn danh POST /widgets/:inbox_id/contacts trả 403 — mà đó đúng là nơi biểu mẫu gửi dữ liệu tới. Bật cả hai là mời khách điền tên, email, điện thoại rồi báo gửi không được.

Kiểm chứng

Ở chế độ ẩn danh có biểu mẫu: mở widget bằng cửa sổ ẩn danh của trình duyệt. Biểu mẫu phải hiện trước khung soạn tin, và ô nào bạn đặt bắt buộc thì mang dấu sao đỏ trên nhãn.

Ở chế độ bắt đăng nhập: mở widget khi chưa đăng nhập, khung chat phải thay chỗ bằng nút Đăng nhập để chat dẫn tới trang bạn đã khai. Đăng nhập trên website rồi mở lại widget: khung soạn tin phải mở ra, và hội thoại cũ của đúng người đó hiện lại.

Sự cố thường gặp

Hiện tượngNguyên nhânCách xử lý
Bấm Lưu cài đặt không ăn, ô Trang đăng nhập viền đỏĐang tắt chat ẩn danh mà chưa khai trang đăng nhậpĐiền một đường dẫn bắt đầu bằng https://
Khách đăng nhập xong widget vẫn hiện nút đăng nhậpWebsite chưa gọi identify() với token do backend lấy vềBổ sung bước bàn giao phiên ở trên
Backend gọi /internal/widget-sessions nhận 404INTERNAL_API_TOKEN chưa đặt trên api-engine, nên cửa này coi như không tồn tạiĐặt biến môi trường rồi khởi động lại api-engine
Backend nhận 403 ở cùng lời gọi đóHeader X-Internal-Token sai giá trịĐối chiếu lại với biến môi trường của api-engine
Người dùng sau trên máy chung thấy hội thoại của người trướcWebsite không gọi reset() khi đăng xuấtGọi CustomChatSDK.reset() trong luồng đăng xuất

Tiếp theo

On this page