Cách tạo Chatbot random trắc nghiệm bằng AhaChat

Demo: https://m.me/223503528534838?ref=randomquiz

Tạo trò chơi trắc nghiệm (gọi tắc là quiz) là một cách thức để thu hút khách hàng tiềm năng cho doanh nghiệp của bạn rất hiệu quả. Và đặc biệt nếu kết hợp với chatbot viral thì sẽ tạo ra một sự bùng nổ khách hàng cực tốt. Ví dụ, bạn tổ chức một trò chơi quiz và mời A tham gia, sau khi A chơi quiz xong mà chưa đạt điểm số tối đa thì sẽ xuất hiện hộp thoại để A chia sẻ cho B cùng tham gia chơi. Nếu B tham gia thì A sẽ nhận được thông báo và cộng điểm…

Nếu bạn vẫn chưa biết cách tạo chatbot viral trên AhaChat thì có thể đọc qua bài này để hiểu (hoặc lười hơn bạn có thể vào menu Bot mẫu để copy chabot viral). Hoặc nếu bạn muốn tạo chatbot viral quiz phiên bản đơn giản thì đọc qua bài này.

Còn bây giờ mình sẽ hướng dẫn bạn tạo quiz và lưu thông tin KH cùng với điểm số vào google sheet. Câu hỏi và câu trả lời bạn sẽ tạo trước trong google sheet, sau đó bot sẽ hiện câu hỏi cho khách hàng theo thứ tự ngẫu nhiên để làm cho trò chơi trở nên thú vị.

Bước 1: Copy file sheet từ AhaChat

Bạn phải copy file này chứ không được tạo file mới vì nó chứa công thức vòng quay may mắn.

https://docs.google.com/spreadsheets/d/17-8BfQYvt8c0NmseBXQBw8K3wfXEVJNAT_KoVIL0bRw/copy

Image for post

Ciải thích các cột trong sheet:

id: chọn số bất kỳ, không được trùng nhau.

question: câu hỏi bot sẽ hiển thị random cho khách.

image: hình ảnh minh họa cho câu hỏi, có thể bỏ qua nếu không cần.

answer: câu trả lời đúng.

A: câu trả lời 1.

B: câu trả lời 2.

C: câu trả lời 3.

D: câu trả lời 4.

Bước 2: Vào file bạn vừa copy xong, chọn Tools > Script editor

Vào file bạn vừa copy xong, chọn Tools > Script editor

Image for post

Tại giao diện code, vào Deploy > New deployment

Khi hộp thoại thông báo hiện ra thì bạn hãy đồng ý

Image for post

Image for post

Image for post

Chú ý phải chọn Anyone, even anonymous để bất kỳ ai chat với bot thông tin cũng được lưu vào. Tại đây cũng copy link để dùng cho bước tiếp theo.

Bước 3: Tạo thuộc tính khách hàng

Image for post

Image for post

quizcau: kiểu dữ liệu số, dùng để xác định KH đã trả lời bao nhiêu câu.

quizdiem: kiểu dữ liệu số, dùng để cộng điểm khi KH trả lời đúng.

Bước 4: Vào https://ahachat.com để tạo kịch bản.

Khi tạo kịch bản cho bot (ở hướng dẫn này mình dùng Kịch bản từ khóa để có thể dùng lại cho những lần sau).

Image for post

batdau: dùng để kiểm tra KH đã tham gia quiz hay chưa. Mình sẽ dùng Rẽ nhánh theo điều kiện và kiểm tra xem {{quizcau}} là bao nhiêu. Trong trường hợp này, mỗi KH mình sẽ cho chơi 5 câu nên quizcau phải bé hơn 5. Còn nếu quizcau bằng 5 thì đã chơi đủ 5 câu rồi nên sẽ không cho chơi nữa và thông báo kết quả.

Image for post

quiz: Gọi api để lấy câu hỏi và câu trả lời từ sheet. Chú ý tham số max ở đây là số câu hỏi cần hiển thị, ví dụ này mình sẽ chọn 5 câu để phù hợp block batdau ở trên.

Image for post

dieu_kien: dùng để kiểm tra KH trả lời đúng câu hỏi hay không bằng cách kiểm tra câu trả lời KH chọn với {{dapan}}.

Tại đây mình cũng tạo 2 hành động quizcau={{quizcau}} + 1. Để đếm số câu hỏi mà khách hàng đã trả lời.

Image for post

dung: Nếu trả lời đúng thì thông báo chúc mừng và tạo hành động cộng điểm vào quizdiem.

Image for post

sai: Nếu trả lời sai thì thông báo chia buồn.

Ở cả 2 block dung và sai ta cũng kiểm tra xem đã hết câu hỏi chưa bằng cách so sánh thuộc tính {{quizcau}} < 5.

Image for post

ket_thuc: Thông báo kết quả sau khi KH trả lời tất cả câu hỏi.

Image for post

Nếu muốn lưu kết quả vào sheet, bạn có thể tạo thêm 1 block là luu_ketqua và truyền tham số giống như dưới đây.

Image for post

Nâng cao: Tạo bộ đếm Countdown cho kịch bản

Nếu bạn muốn tạo Quiz hồi hộp hơn nữa thì nên tạo thêm bộ đếm thời gian để giúp người chơi biết được thời gian còn lại sau khi trả lời mỗi câu hỏi. Cách làm như bên dưới:

1. Tạo thuộc tính thoigian với định dạng là “ngày giờ”

2. Trong kịch bản tạo 1 block thuộc tính và cài thuộc tính thoigian với giá trị là “Thời gian hiện tại”

3. Tạo block API tiếp theo bên dưới

Phương thức GET: https://ahachat.com/api/time-until

Truyền các tham số vào API:

  • futureDate : {{thoigian}}
  • futureDateFromFormat : d/m/Y H:i:s
  • addSeconds : 600 (600 ở đây là thời gian đếm ngược tương đương với 10 phút, nếu chọn giờ hoặc phút thì quy đổi ra giây và truyền vào)

Khi chạy API này sẽ tự tạo ra cho khách hàng các thuộc tính mới:

  • futureDate :
  • timeUntil :
  • yearsUntil :
  • monthsUntil :
  • daysUntil :
  • hoursUntil :
  • minutesUntil :
  • secondsUntil :

Ở đây chỉ đếm ngược 10 phút nên bạn sẽ dùng 3 thuộc tính minutesUntil, secondsUntil và timeUntil để so sánh.

Kết hợp vào kịch bản random trắc nghiệm bạn tạo thêm 2 block API_Countdown tương tự như trên vào 2 nhánh kiểm tra đúng - sai để kích hoạt lại bộ đếm Countdown

  • Tạo block điều kiện để check_time
  • Nếu số câu chưa đủ 20 và thời gian đếm ngược vẫn còn → chạy câu hỏi tiếp theo.
  • Nếu số câu chưa đủ 20 và thời gian đếm ngược hết → Kết thúc game và trả kết quả.
  • Nhánh mặc định: Nếu số câu đã đủ 20 → trả kết quả trò chơi và hiển thị thời gian đếm ngược còn lại.

  • Hết thời gian: Thông báo kết thúc và hiển thị số điểm, thời gian còn lại (0 phút 0 giây)

  • Hết 20 câu: Thông báo kết thúc và hiển thị số điểm, thời gian còn lại.

  • Cuối cùng: lưu kết quả thi vào Google sheet

Video kết quả