Quiz w chatbocie. Jak go stworzyć?

Quiz w chatbocie

Jedną z zalet chatbotów jest możliwość angażowania użytkowników w rozmowę. Można organizować konkursy, prosić o opinię czy tworzyć quizy, które wymagają interakcji od subskrybenta. Dzisiaj chciałbym pokazać Wam jak stworzyć Quiz w chatbocie używając narzędzia Chatfuel. Nie będę tutaj opisywał samego narzędzia – zakładam, że ktoś kto chce stworzyć quiz posiada już podstawową wiedzę dotyczącą Chatfuel’a. Jeśli ktoś chce się zaznajomić z możliwościami narzędzia i podstawowymi informacjami to odsyłam do innych artykułów temu poświęconych – TU i TU.

Dotychczas jednym ze sposobów na stworzenie quizu było wykorzystanie gotowego szablonu dostępnego w Chatfuel – Quiz Score. Problem polega na tym, że ten szablon wykorzystuje zewnętrzny serwis do obsługi pytań. Dlaczego jest to problemem? Otóż twórcy szablonu wyłączyli ten serwis, przez co niemożliwe jest skorzystanie z szablonu w takiej postaci w jakiej jest dostępny.

Pokażę Wam jednak alternatywny sposób stworzenia quizu, który nie będzie wymagał korzystania z zewnętrznych narzędzi, przez co uniezależnicie się od takich rozwiązań.

Założenia

Założenia quizu są proste – składa się z 3 pytań, a na końcu użytkownik otrzyma wiadomość zwrotną od bota z ilością zdobytych punktów oraz komentarzem, czy poszło mu dobrze, czy nienajlepiej.

Powinno to wyglądać mniej więcej tak:

Quiz w chatbocie

 

Licznik

Każdy quiz zazwyczaj składa się z ograniczonej liczby pytań, a za każdą odpowiedź użytkownik otrzymuje odpowiednią liczbę punktów. Wynik końcowy uzależniony jest od wcześniej zdobytej liczby punktów. Dokładnie tego typu logikę odwzorujemy w naszym bocie.

Licznik, czyli aktualna liczba zdobytych punktów, powinien być przypisany do użytkownika i zmieniać się w zależności od wybranej odpowiedzi. Odpowiednim elementem, który będzie przetrzymywał taką informację jest atrybut, który możemy przypisać do subskrybenta. Ustawiając początkową wartość takiego atrybutu na 0, możemy ten licznik zwiększać za każdym razem, gdy padnie poprawna odpowiedź.

Dla chcących doczytać o atrybutach, polecam oficjalna dokumentację: TU i TU.

Quiz w Chatfuel

Pierwszym krokiem, jaki musimy stworzyć jest blok umożliwiający rozpoczęcie quizu. Może być to element galerii, przycisk lub tzw. szybka odpowiedź. Na potrzeby poradnika rozpoczęcie quizu będzie miało miejsce po kliknięciu przycisku „Start”.

Aby umożliwić użytkownikowi rozpoczęcie quizu stworzyć musimy 2 bloki. Nazwę je następująco:

  • Test start
  • Question 1

W bloku Test start dodam tekst oraz przycisk, po kliknięciu, którego użytkownik zostanie przekierowany do początku testu – do pierwszego pytania.

Quiz w chatbocie

Blok Question 1 będzie pełnił dwie role – pierwsza to zadanie pytania subskrybentowi, a druga to wyzerowanie licznika. Licznikiem będzie atrybut o nazwie Total, który będzie przetrzymywał liczbę punktów zdobytych przez użytkownika. Jeśli użytkownik rozpocznie test ponownie, licznik ten należy wyzerować, czyli ustawić jego wartość na 0.

Tak powinien wyglądać w tej chwili blok Question 1:

Wyzerowanie licznika

Pytania i odpowiedzi

Najważniejszą częścią testu są pytania i odpowiedzi. We wcześniejszym paragrafie stworzyliśmy już blok Question 1, którego zadaniem będzie wyświetlenie pytania. Aby jednak przejść dalej musimy najpierw stworzyć 2 dodatkowe bloki:

  • Right answer
  • Question 2

Blok Right answer będzie odpowiedzialny za dodawanie punktu do licznika za prawidłową odpowiedź i powinien wyglądać tak:

Prawidlowa odpowiedz

Blok Question 2 standardowo będzie zawierał kolejne pytanie. Gdy mamy już dodane te dwa elementy możemy wrócić do pierwszego pytania. Dodajemy pytanie oraz 4 możliwe podpowiedzi. Każda z nich przekieruje nas do pytania nr 2, a w przypadku prawidłowej odpowiedzi dodatkowo przejdziemy przez blok Right answer, który zwiększy licznik użytkownika.

Powinno to wyglądać mniej więcej tak:

Pytanie 1

 

Kolejne pytania dodajemy analogicznie, przekierowując użytkownika do następnych pytań oraz do bloku z prawidłową odpowiedzią, jeśli użytkownik odpowiedział dobrze. Gdy dojdziemy do ostatniego pytania – w moim przypadku pytania nr 3, sytuacja jest trochę inna. Skoro jest to ostatnie pytanie, musimy użytkownika przekierować do bloku podsumowującego, którego jeszcze nie mamy. Dodamy więc blok Summary, którego zadaniem będzie podsumowanie wyniku użytkownika.

Jeśli chcemy wyświetlić inną wiadomość w zależności od wyniku quizu musimy dodatkowo stworzyć bloki dla każdej takiej wiadomości osobno, np.:

  • Low result ( w moim przypadku 0 punktów)
  • Medium result ( w moim przypadku 1,2 punkty)
  • High result (w moim przypadku 3 punkty)

Odpowiednim miejscem na decyzję, do którego z ww. bloków skierujemy użytkownika jest blok Summary, który w zależności od ilości zdobytych punktów przekieruje subskrybenta do odpowiedniego bloku.

Podsumowanie

Wart dodać, że generując wiadomość podsumowującą mamy dostęp do wartości licznika: {{Total}} więc możemy go wykorzystać w wiadomości.

Podsumowanie

Przedstawiłem dzisiaj sposób, w jaki możemy stworzyć prosty quiz w naszym chatbocie bez użycia zewnętrznych narzędzi. Problemem takiego rozwiązania jest trzymanie pytań w Chatfuelu. W jednym z kolejnych postów spróbuję Wam pokazać stworzenie quizu z wykorzystaniem arkusza Google, który będzie służył do zarządzania pytaniami i odpowiedziami.

PS. Quiz często służy poza rozrywką dla użytkownika zdobyciu pewnych informacji, np. umiejętności, wyników, preferencji itp. Z tego względu warto wyniki quizów czy testów zapisywać, a najłatwiej to zrobić używając integracji z GoogleSheet (element dostępny w Chatfuel). Dzięki temu będziemy mogli zapisywać wyniki testu, imię uczestnika i inne informacje o nim i przekazać te dane do odpowiedniego działu.