# Cho nhân viên thấy khách đã làm gì trước khi nhắn

Hộp thư hiện các trang, màn hình ứng dụng và sự kiện dẫn khách đến chỗ nhắn tin, cùng các thông tin website hoặc ứng dụng gửi về khách.

Khi khách mở chat, nhân viên thấy ngay khách vừa làm gì: các trang đã đọc trên website, các màn hình đã mở trong ứng dụng và những thao tác mà lập trình viên của bạn ghi lại, như một lần thanh toán thất bại. Nhờ vậy nhân viên có thể trả lời "Mình thấy thẻ của bạn bị từ chối lúc thanh toán" thay vì phải hỏi chuyện gì đã xảy ra.

## Nhân viên thấy gì

- **Trước khi nhắn**: một khối ở đầu hội thoại liệt kê các bước gần nhất, từ cũ đến mới, kèm thời gian. Khối hiện ba bước cuối; bấm vào để xem hết. Bước nào có tên giống một sự cố (lỗi, thất bại, bị từ chối, hết thời gian chờ) được tô nổi bật.
- **Hành trình** trong [bảng thông tin khách](https://hatang.dev/vi/help/inbox/customer-panel): cũng các bước đó, tối đa 20 bước.
- **Thuộc tính** trong bảng thông tin khách: những thông tin website hoặc ứng dụng gửi về khách, như gói dịch vụ hay đơn hàng gần nhất, dạng bảng.

![Khối Trước khi nhắn ở đầu hội thoại](https://hatang.dev/help/img/vi/widget/journey.webp)

Chỉ nhân viên của bạn thấy các thông tin này, khách không thấy trong khung chat.

Trong ứng dụng Hạ Tầng trên điện thoại, hội thoại có một dòng như "Trước khi nhắn: 5 bước"; chạm vào để xem các bước. Phần thông tin hội thoại có mục **Hành trình** và **Thuộc tính**. Trong ứng dụng cho Mac, dòng này cũng hiện trong hội thoại, và bảng thông tin khách (⌥⌘I) có mục **Hành trình** và **Thuộc tính**.

## Những gì được ghi tự động

| Ở đâu | Tự ghi, không cần làm thêm |
|---|---|
| Website có widget chat | Mỗi trang khách mở, kèm tiêu đề và địa chỉ, kể cả khi chuyển trang trong ứng dụng một trang (single-page app) |
| Ứng dụng di động của bạn | Không tự ghi. Ứng dụng báo màn hình người dùng đang ở bằng một dòng code mỗi lần chuyển màn hình (xem bên dưới) |

Các kênh mạng xã hội như Zalo, Messenger, TikTok không gửi những thông tin này, nên hội thoại từ các kênh đó không có hành trình.

## Lập trình viên thêm gì

Lập trình viên có thể gửi ba loại thông tin, mỗi loại chỉ cần một hai dòng code:

- **Sự kiện**: những thao tác quan trọng với việc hỗ trợ, ví dụ `payment_failed` kèm mã đơn và lý do, hoặc `viewed_pricing`. Sự kiện hiện trong **Trước khi nhắn** và, khi đang chat, ngay trong hội thoại.
- **Thuộc tính**: thông tin về khách, ví dụ gói dịch vụ, giá trị giỏ hàng hay mã khách hàng. Giá trị mới thay giá trị cũ cùng tên; các giá trị khác được giữ nguyên.
- **Màn hình** (chỉ với ứng dụng): tên màn hình người dùng đang mở, để hành trình đọc như "Giỏ hàng → Thanh toán → Chọn thẻ".

Gửi cho lập trình viên tài liệu phù hợp:

- Website: [JavaScript API](https://hatang.dev/vi/docs/guides/support/web-widget/javascript-api) (`pushEvent` và `setData`).
- Ứng dụng: mục "Sự kiện và dữ liệu" trong tài liệu SDK [iOS](https://hatang.dev/vi/docs/guides/sdks/ios#events-and-data), [Android](https://hatang.dev/vi/docs/guides/sdks/android#events-and-data), [Flutter](https://hatang.dev/vi/docs/guides/sdks/flutter#events-and-data) hoặc [React Native](https://hatang.dev/vi/docs/guides/sdks/react-native#events-and-data) (`pushEvent`, `setData` và `setScreen`).

> [!TIP]
> Vài sự kiện đặt tên rõ ràng giúp ích hơn nhiều sự kiện lặt vặt. Hãy nhờ lập trình viên ghi lại những lúc nhân viên hay phải hỏi khách nhất: thanh toán thất bại, thông báo lỗi, phiên đăng nhập hết hạn, sản phẩm hết hàng.

## Quyền riêng tư và giới hạn

- Hạ Tầng chỉ giữ các bước trong 24 giờ, nên hành trình nhiều nhất là một ngày trước khi khách nhắn.
- Chỉ 20 bước gần nhất được giữ lại và hiển thị.
- Giá trị có tên giống thông tin bí mật, như mật khẩu, token hay số thẻ, được ẩn đi trước khi lưu.
- Mỗi lần gửi thuộc tính tối đa 8 KB.

Hãy dặn lập trình viên chỉ gửi những gì nhân viên cần để hỗ trợ khách, không bao giờ gửi mật khẩu, số thẻ hay giấy tờ cá nhân.
