Đêm nay con bot spa của tôi tốt nghiệp: từ "biết nói" lên "gánh được khách thật"
Có một ranh giới mà mọi bản demo AI đều phải vượt qua mới thành sản phẩm: demo thì trả lời cho vui, sản phẩm thì không được làm chủ doanh nghiệp mất mặt. Đêm nay tôi dành trọn cho đúng cái ranh giới đó — bảy nâng cấp lõi cho con bot CSKH spa, build xong, test thật, và đẩy lên chạy LIVE ngay trong tối.
Đây là bản ghi hậu trường về những thứ "không lung linh" nhưng chính là khoảng cách giữa một con bot biết nói và một con bot gánh được khách thật.
1. Hết "hứa suông"
Bản demo cũ khi khách đặt lịch sẽ "vâng dạ đã ghi nhận" — nhưng yêu cầu đó chỉ nằm tạm trong bộ nhớ, restart một cái là bay sạch. Đó là hứa suông: nguy hiểm nhất, vì khách tin là đã đặt được.
Đêm nay tôi cho mọi yêu cầu đặt hẹn ghi bền vào cơ sở dữ liệu thật, tách riêng theo từng khách hàng doanh nghiệp. Khách nhắn đặt lịch → bản ghi nằm lại vĩnh viễn, nhân viên mở bảng ra là thấy đủ tên, số điện thoại, dịch vụ, khung giờ. Không còn lời hứa rơi vào hư vô.
2. Bot biết dừng — và biết im đúng lúc
Tôi từng viết về việc dạy bot gọi người khi gặp khiếu nại hay câu hỏi vượt quyền. Đêm nay tôi làm nốt phần khó hơn: sau khi đã chuyển cho người, bot phải tự im đúng với khách đó — không nhảy vào cướp lời nhân viên đang xử lý.
Nghe đơn giản nhưng đây là chỗ dễ vỡ nhất: khách đang bực bội thường nhắn liên tiếp 3–4 tin. Bot phải nhận ra "ca này đã bàn giao" và ngừng lại với tất cả các tin sau, kể cả tin đang xử lý dở. Tôi cài cơ chế tạm dừng theo từng khách, kiểm tra hai lần — đầu cuộc và ngay trước khi gửi — để không một tin nào lọt. Khi nhân viên xử lý xong, chỉ cần một nút bấm là bật bot trả lời khách đó trở lại.
3. Chạy nhiều bản song song mà không nghẽn
Một con bot chạy một bản thì dễ. Nhiều fanpage, nhiều khách cùng lúc thì phải chạy nhiều bản song song sau một bộ chia tải. Vấn đề: chúng phải dùng chung trí nhớ, nếu không hai bản sẽ trả lời trùng hoặc quên nhau.
Tối nay hệ thống chạy hai bản bot song song dùng chung bộ nhớ qua Redis — chống tin trùng, chia sẻ lịch sử hội thoại, và cả cái cờ "tạm dừng" ở mục 2 cũng dùng chung: khách bị bàn giao thì cả hai bản đều im. Đây là bước từ "một con bot" sang "một dịch vụ chịu được tải".
4. Gỡ nút thắt khiến cuộc chat khựng
Một lỗi âm thầm của bản cũ: mỗi lần bot ghi dữ liệu xuống đĩa, nó làm khựng cả luồng xử lý. Một khách đặt lịch có thể làm chậm phản hồi cho khách khác. Tôi đẩy toàn bộ việc ghi nền ra khỏi luồng chính — giờ bot vừa trò chuyện mượt vừa ghi dữ liệu mà không ai phải chờ ai.
5. Khoá cửa bảo mật ở production
Cuối cùng, một việc nhỏ mà thiếu nó thì không dám gọi là production: bot từ chối mọi webhook không có chữ ký hợp lệ khi chạy thật, thay vì âm thầm bỏ qua như chế độ dev. Cửa đã khoá.
Và tôi test thật ngay trong tối
Không chỉ viết code rồi tin là chạy. Tôi mở thẳng trang chat thật và thử ba tình huống:
- Hỏi giá → bot trả đúng bảng giá thật, chia thành mấy tin ngắn tự nhiên như người nhắn.
- Đặt lịch → bot tạo yêu cầu, và tôi kiểm tra tận cơ sở dữ liệu: bản ghi nằm đó thật, đủ thông tin.
- Khách bức xúc đòi hoàn tiền → bot chuyển cho người, ghi lại lý do đầy đủ, và bật cờ tạm dừng đúng khách đó.
Ba tình huống, ba lần đúng. Đó là lúc tôi biết: nó không còn là demo nữa.
Khoảng cách demo → sản phẩm nằm ở những thứ này
Mấy nâng cấp tối nay chẳng cái nào "nghe sướng tai" để khoe. Không có tính năng AI mới long lanh. Nhưng đây mới chính là phần khiến một chủ spa dám giao fanpage — và khách hàng của họ — cho con bot của tôi. Sản phẩm thật không thắng nhau ở chỗ biết nói hay; nó thắng ở chỗ không bao giờ làm hỏng việc của người tin nó.
👉 Tôi dạy đúng cung đường này — từ code → sản phẩm → deploy LIVE → chốt khách — trong Cohort 6 tuần "Build & Bán bot AI ra tiền". Hoặc bắt đầu nhẹ với mini-course miễn phí: Bot AI đầu tiên của bạn.