Asystent AI: czat, który odpowiada treścią Twojej strony

Asystent AI to czat, który siedzi w rogu strony i odpowiada odwiedzającym treścią tej konkretnej witryny. Nie jest to ogólny bot doklejony z zewnętrznego serwisu ani formularz kontaktowy w przebraniu. Przed uruchomieniem wskazuję mu podstrony, z których ma się uczyć, dopisuję to, czego na stronie nie ma, i ustawiam, czego mówić nie wolno. Zbudowałem go jako moduł swojej wtyczki do WordPressa i wdrażam u klientów, do których w kółko wracają te same pytania. Pierwsze pełne wdrożenie dostał Manipura Teatr Ognia, gdzie pytania o czas trwania pokazu, wymagania techniczne i wolne terminy przychodzą codziennie, o każdej porze, także w środku nocy przed weselem.

Podstrona Manipury o pokazach weselnych z otwartym oknem czatu w prawym dolnym rogu: pomarańczowy nagłówek „Asystent AI Manipury”, powitanie „Witaj przy ognisku rozmów” i pięć gotowych pytań do kliknięcia, między innymi „Jak zarezerwować pokaz?” i „Czy pokaz ognia jest bezpieczny?”
Gotowe pytania biorą się z tego, o co klient naprawdę jest pytany. Odwiedzający nie musi wiedzieć, jak zagadać do bota.

Skąd się wziął

Powtarzalne pytania to najgorszy rodzaj pracy: zbyt proste, żeby cokolwiek wnosić, i zbyt ważne, żeby je zignorować, bo człowiek, który nie dostaje odpowiedzi wieczorem, rano pisze już do kogoś innego. Klasyczne rozwiązania tego nie domykają. Sekcja z najczęstszymi pytaniami działa tylko wtedy, gdy ktoś ją znajdzie i przeczyta akurat ten punkt, który go dotyczy. Formularz kontaktowy odkłada odpowiedź na następny dzień roboczy. Gotowe czaty z abonamentem albo nie znają oferty i trzeba im ją ręcznie wpisywać od zera, albo są zwykłym oknem do rozmowy z człowiekiem, którego akurat nie ma.

Chciałem czegoś pośredniego: narzędzia, które zna stronę, bo ją przeczytało, odpowiada natychmiast, a gdy pytanie wykracza poza to, co wie, przestaje zgadywać i prosi o kontakt. Reszta funkcji wzięła się z wdrożeń, po kolei, z rzeczy, które okazały się potrzebne dopiero na żywej stronie.

Baza wiedzy

  • Treść z podstron witryny – wskazuję listę stron, a bot czyta je tak, jak widzi je odwiedzający. Treść ukryta w akordeonach i zakładkach też się liczy, bo to właśnie tam zwykle siedzą odpowiedzi na najczęstsze pytania.
  • Własne pary pytanie-odpowiedź – wszystko, czego na stronie nie ma albo czego nie chce się tam publikować: widełki cenowe, zasady zaliczki, obszar dojazdu.
  • Pole na dowolny dokument – jeden blok tekstu doklejany na końcu bazy, wygodny na godziny pracy, dane kontaktowe i notatki wewnętrzne przygotowane pod bota.
  • Sama się odświeża – po zapisaniu podstrony z listy źródeł baza przebudowuje się bez niczyjego udziału, więc bot nie odpowiada wczorajszą ofertą. Jest też przycisk do przebudowy na żądanie.
  • Podgląd tego, co widzi bot – rozwijany blok z całą bazą, dokładnie w takiej postaci, w jakiej trafia do modelu. Gdy bot nie zna czegoś oczywistego, odpowiedź jest tu, a nie w domysłach.
  • Limit objętości bazy – każde pytanie niesie ze sobą całą bazę wiedzy, więc jej rozmiar wprost przekłada się na koszt. Limit znaków pilnuje, żeby nikt nie wrzucił przypadkiem całego bloga.
Zakładka „Baza wiedzy” w panelu wtyczki: pole nazwy firmy, lista podstron witryny do zaznaczenia, sekcja par pytanie-odpowiedź, duże pole „Dodatkowe informacje” z opisem firmy, limit znaków oraz stan bazy z datą ostatniej przebudowy i przycisk „Przebuduj bazę wiedzy”
Wszystko, co bot wie o firmie, mieści się na jednym ekranie. To celowe: klient ma móc sam sprawdzić, skąd wzięła się odpowiedź.

Rozmowa i pozyskiwanie kontaktu

  • Powitanie i gotowe pytania – po otwarciu okna czeka krótkie powitanie i kilka pytań do kliknięcia, ustawianych osobno dla każdej strony.
  • Dymek zachęty – po zadanej liczbie sekund obok bańki pojawia się jedno zdanie, można go też wyłączyć.
  • Pamięć w obrębie rozmowy – bot pamięta poprzednie pytania, więc „a ile to kosztuje?” po pytaniu o konkretną usługę działa tak, jak powinno.
  • Zdanie awaryjne – kiedy odpowiedzi nie ma w bazie, bot mówi to wprost i kieruje do kontaktu, zamiast wymyślać fakty o firmie.
  • Tematy zablokowane – listę spraw, których bot ma nie ruszać, ustawia się osobno, razem z tekstem, którym ma wtedy odpowiadać. Przydaje się wszędzie, gdzie zła odpowiedź kosztuje więcej niż brak odpowiedzi.
  • Formularz kontaktu w oknie czatu – imię, e-mail i wiadomość, z etykietami i tekstami do zmiany. Można go wywołać przyciskiem, pokazywać sam po pytaniu poza zakresem albo jedno i drugie.
  • Powiadomienie o zgłoszeniu – wiadomość na wskazany adres, z treścią rozmowy, która do zgłoszenia doprowadziła. Widać kontekst, a nie samo imię i adres.
  • Kopia rozmowy dla piszącego – opcjonalna, wyłączona domyślnie, z limitem wysyłek.
Okno czatu z rozwiniętym formularzem kontaktu: zachęta „Zostaw kontakt”, wypełnione pola z imieniem, adresem e-mail i wiadomością o weselu w lipcu dla około 80 gości, oraz przyciski „Wyślij” i „Anuluj”
Formularz otwiera się w tym samym oknie, w środku rozmowy. Nikt nie musi szukać zakładki z kontaktem.

Wygląd i miejsce na stronie

  • Pełna kontrola nad wyglądem – logo w nagłówku, kolory każdego elementu osobno, zaokrąglenia, cień, rozmiar okna i bańki, odstępy, krój i wielkość pisma, a do tego osobne wymiary na telefonach.
  • Kolory globalne motywu – na stronach zbudowanych w Elementorze czat może brać barwy z palety globalnej. Zmiana koloru marki w jednym miejscu przemalowuje też czat, bez zaglądania w jego ustawienia.
  • Czat pływający albo w treści – domyślnie siedzi w rogu, ale da się go wstawić jako element podstrony, na przykład zamiast sekcji z najczęstszymi pytaniami.
  • Reguły wyświetlania – na wszystkich podstronach, tylko na wybranych albo wszędzie poza wybranymi, z osobnym przełącznikiem ukrywającym czat na telefonach.
  • Tryb testowy – czat widoczny wyłącznie dla osoby zalogowanej. Odpowiedzi sprawdza się na żywej stronie, zanim zobaczy je ktokolwiek inny.
  • Odporność na motyw – style czatu są tak napisane, żeby motyw strony ich nie przejął. Okno wygląda tak samo niezależnie od tego, co szablon robi z przyciskami i polami tekstowymi.
Zakładka „Wygląd” w panelu: logo w nagłówku, jedenaście osobnych ustawień kolorów, część z nich wpięta w kolory globalne Elementora i oznaczona pomarańczowym znacznikiem, poniżej wybór czcionki, pozycji, cienia oraz pola z szerokością, wysokością i zaokrągleniami
Kolory wpięte w paletę Elementora mają obok podgląd wartości, którą aktualnie przyjmują.

Panel rozmów

  • Lista rozmów – data ostatniej aktywności, podstrona, na której zaczęła się rozmowa, liczba wiadomości i informacja, czy został zostawiony kontakt.
  • Podgląd przebiegu – cała rozmowa, pytanie po pytaniu, z rozróżnieniem na to, co napisał człowiek, a co odpowiedział bot.
  • Filtr i wyszukiwarka – osobny widok rozmów zakończonych kontaktem oraz szukanie po imieniu, adresie i treści.
  • Eksport do CSV – zebrane zgłoszenia jednym kliknięciem, do arkusza albo do systemu, w którym klient prowadzi sprzedaż.
  • Kasowanie zaznaczonych – ręczne sprzątanie testów i rozmów, których nie ma sensu trzymać.
Zakładka „Rozmowy czatu” w kokpicie: tabela rozmów z datą ostatniej aktywności, kolumną kontaktu, adresem podstrony i liczbą wiadomości, nad nią filtr „tylko z kontaktem” i wyszukiwarka, pod nią przyciski usuwania zaznaczonych i eksportu leadów do CSV
Ta lista jest najlepszym źródłem pomysłów na treści: pokazuje pytania, na które strona jeszcze nie odpowiada.

Koszty, limity i dane

  • Limit na adres i sufit dzienny – tyle wiadomości na godzinę z jednego adresu i tyle dziennie dla całej strony. Jedna osoba z nudów nie wyczerpie budżetu na miesiąc.
  • Limit długości wiadomości – pojedyncze pytanie nie może urosnąć do rozmiaru książki.
  • Automatyczne kasowanie – osobny termin dla rozmów bez kontaktu i osobny dla tych ze zgłoszeniem. Nic nie zostaje w bazie dłużej, niż powinno.
  • Gotowy akapit do polityki prywatności – panel podaje treść do skopiowania, razem z informacją o tym, co dzieje się z rozmowami.
  • Klucz do modelu należy do klienta – siedzi w jego panelu, zaszyfrowany, i nigdy nie trafia do przeglądarki odwiedzającego. Przy typowym ruchu strony firmowej koszt rozmów bywa symboliczny, ale to rachunek klienta, nie mój abonament.
  • Usunięcie danych przy odinstalowaniu – osobny przełącznik, domyślnie wyłączony. Wyłączenie wtyczki nie kasuje niczego.

Jak to wygląda na co dzień

Po mojej stronie jest wdrożenie: wskazuję podstrony, dopisuję ceny i zasady, ustawiam kolory pod markę, piszę powitanie i gotowe pytania, po czym sprawdzam odpowiedzi w trybie testowym. Po stronie klienta zostaje jedno miejsce w kokpicie. Zagląda się tam po nowe zgłoszenia i po to, żeby raz na jakiś czas przeczytać, o co ludzie pytali. Jeśli w rozmowach wraca pytanie, na które bot nie umiał odpowiedzieć, dopisuje się jedną parę pytanie-odpowiedź i sprawa jest zamknięta. Zmiana treści na stronie nie wymaga niczego dodatkowego.

Okno czatu po zadaniu pytania „Ile trwa pokaz i co muszę zapewnić na miejscu?”. Bot odpowiada konkretami: czas od 10 do 20 minut, wymagana przestrzeń około 10 na 15 metrów, start najwcześniej 30 minut po zachodzie słońca i pół godziny na przygotowanie sprzętu
Odpowiedź jest złożona z tego, co klient sam napisał na swoich podstronach, więc nie rozjeżdża się z ofertą ani z regulaminem.

Dla kogo to ma sens

Najwięcej daje tam, gdzie oferta wymaga wyjaśnienia, a decyzja zapada wieczorem: usługi na zamówienie, wydarzenia, wynajem, wszystko, co ma warianty i wymagania techniczne. Przy sklepie z prostym katalogiem albo stronie, na której i tak wszystko mieści się w cenniku, dokłada niewiele. Nie zastępuje też człowieka w sprawach, w których liczy się zobowiązanie: rezerwacji terminu, negocjacji, reklamacji. Od tego jest w oknie przycisk z kontaktem.

Całość jest zwykłą wtyczką w PHP na typowej instalacji WordPressa, bez zewnętrznego serwisu pośredniczącego i bez abonamentu za sam czat.


Zrzuty pochodzą z wdrożenia dla Manipura Teatr Ognia oraz z panelu wtyczki. Panel rozmów jest dostępny po zalogowaniu do kokpitu WordPressa. Czat korzysta z zewnętrznego modelu językowego, więc jego odpowiedzi warto traktować jako pierwszą pomoc, a nie jako wiążącą ofertę. Rozmowy są zapisywane na stronie klienta i kasowane automatycznie po ustalonym czasie, o czym informuje akapit dopisywany do polityki prywatności.