Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 4 — Nhắc tái khám và nhắc lịch: thiết kế nhắc thông minh

Đã đọc 0/9 mục · còn khoảng 3 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Nhắc lịch tưởng đơn giản nhưng làm sai sẽ gây phiền (spam) hoặc vô dụng (nhắc sai thời điểm). Bài này thiết kế hệ thống nhắc chủ động, đúng lúc, có xử lý phản hồi.

Hai loại nhắc

  • Nhắc lịch hẹn (appointment reminder): khách đã có hẹn, nhắc trước 1 ngày + trước 2 giờ.
  • Nhắc tái khám (recall): bác sĩ dặn "tái khám sau 30 ngày" nhưng khách chưa đặt — agent chủ động mời đặt lại.
Loại 2 giá trị hơn nhiều vì nó kéo bệnh nhân quay lại, tăng doanh thu và cải thiện chăm sóc — nhưng phải làm tinh tế để không thành spam.

Kiến trúc theo lịch (scheduler)

Khác với agent hội thoại (phản ứng), nhắc lịch là chủ động — cần một cron chạy định kỳ.

cron mỗi giờ:
  1. Query các hẹn trong 24h tới CHƯA nhắc → gửi nhắc T-24h
  2. Query các hẹn trong 2h tới CHƯA nhắc → gửi nhắc T-2h
  3. Query các recall tới hạn (tai_kham_ke_tiep <= hôm nay) 
     CHƯA mời trong 14 ngày → gửi lời mời tái khám
  4. Đánh dấu đã gửi để không trùng

Ví dụ nội dung nhắc

[Nhắc T-24h]
Chào chị Lan, phòng khám Minh Châu nhắc lịch:
SOI DA — mai Thứ 5 (04/06) lúc 16:00.
Chị xác nhận giúp em nhé: [1] Có đến  [2] Cần đổi lịch

[Recall tái khám]
Chào chị Lan, đã hơn 1 tháng từ lần khám trước ạ.
Bác sĩ khuyên tái khám định kỳ để theo dõi.
Chị muốn em đặt lịch tái khám tuần này không ạ?

Lưu ý recall: KHÔNG nêu lý do lâm sàng cụ thể ("để theo dõi mụn viêm") — chỉ nói chung "tái khám định kỳ theo lời dặn bác sĩ". Đây là ranh giới phi lâm sàng.

Bước triển khai

  • Thêm cột da_nhac_t24, da_nhac_t2, lan_moi_recall_gan_nhat vào bảng lịch/bệnh nhân.
  • Viết cron chạy mỗi giờ (không mỗi phút — tránh spam khi lỗi).
  • Với mỗi nhắc, gửi qua kênh ưu tiên của khách.
  • Bắt phản hồi: "Có đến" → cập nhật trạng thái; "Cần đổi" → chuyển vào luồng đặt lịch của Bài 3.
  • Ghi log mỗi lần gửi để audit và tránh trùng.

Quản lý tần suất (chống spam)

QUY TẮC TẦN SUẤT:
- Tối đa 2 nhắc / 1 lịch hẹn (T-24h, T-2h)
- Recall: tối đa 1 lời mời / 14 ngày / bệnh nhân
- Nếu khách trả lời "ngừng" → tắt recall cho khách đó
- Không gửi trong khung 21:00–07:00

Xử lý phản hồi bằng agent

Khi khách trả lời tin nhắc, đẩy vào cùng agent hội thoại. "Cần đổi lịch" tự động kích hoạt luồng đổi lịch. "Có đến" chỉ cần cập nhật DB, không cần LLM — tiết kiệm chi phí.

Checklist hệ thống nhắc

  • [ ] Có cờ chống gửi trùng cho từng loại nhắc
  • [ ] Tôn trọng khung giờ im lặng (đêm)
  • [ ] Recall không tiết lộ thông tin lâm sàng
  • [ ] Có cơ chế opt-out ("ngừng")
  • [ ] Phản hồi "đổi lịch" nối thẳng vào luồng đặt lịch
  • [ ] Log đầy đủ để audit

Sai lầm thường gặp

  • Cron chạy quá dày (mỗi phút) khiến khi có lỗi logic sẽ gửi hàng loạt tin trùng — ác mộng cho uy tín phòng khám.
  • Recall tiết lộ chẩn đoán. "Đến tái khám bệnh vảy nến" gửi nhầm số hoặc người nhà thấy → vi phạm riêng tư.
  • Không có opt-out. Khách bực và đánh giá xấu. Luôn cho phép "ngừng nhắc".
  • Nhắc ban đêm. Tin lúc 23:00 gây khó chịu. Tôn trọng khung giờ.
  • Dùng LLM cho mọi phản hồi. "Có/Không" xử lý bằng logic thường, rẻ và nhanh hơn.
Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi