Widget czatu obsługuje klientów z poziomu przeglądarki. Ale osoba po drugiej stronie - operator - rzadko siedzi przy biurku. Jest na sali sprzedaży, w samochodzie, między spotkaniami. W enuchat.com brakującym elementem był telefon operatora: aplikacje na iOS i Androida, które mieszczą całą wielojęzyczną skrzynkę w kieszeni i - przede wszystkim - wibrują w chwili, gdy klient napisze. Nawet przy wygaszonym ekranie i zamkniętej aplikacji.

To historia tego, jak zbudowaliśmy te aplikacje w Kiran, opowiedziana bez żargonu. Najciekawsze decyzje okazały się dotyczyć mniej technologii, a bardziej tego, czego nie budować.

Nie przepisywaliśmy dashboardu - włożyliśmy go do kieszeni

Dashboard operatora enuchat już istnieje jako aplikacja webowa: lista rozmów, filtry, tłumaczenie na żywo, baza wiedzy. Działa dobrze. Zbudowanie tego wszystkiego po raz drugi jako osobnej "wersji na telefon" zajęłoby miesiące - a efektem byłaby gorsza, zdublowana kopia, która z czasem rozjeżdża się z oryginałem.

Zrobiliśmy więc odwrotnie. Aplikacja mobilna pokazuje ten sam dashboard, którego już używacie, opakowany w prawdziwą natywną aplikację. Korzyść jest ogromna: kiedy ulepszamy dashboard, każdy telefon dostaje aktualizację natychmiast - bez czekania na publikację w sklepie, bez komunikatów "zaktualizuj aplikację". Nową wersję aplikacji musimy wypuścić tylko przy rzeczach typowo telefonowych, jak system powiadomień albo nowa ikona. W praktyce produkt ulepszamy niemal codziennie, a sklepów dotykamy kilka razy w roku.

To znaczy też, że aplikacja jest zawsze identyczna z wersją na komputerze. Nic do nauczenia od nowa, niczego nie brakuje.

Powiadomienia to cały sens tej aplikacji

Jeśli aplikacja ma robić jedną rzecz bezbłędnie, to właśnie tę: klient pisze, a telefon operatora wibruje w kilka sekund, gdziekolwiek operator jest. Ta jedna funkcja jest powodem, dla którego aplikacja w ogóle powstała - strona w przeglądarce po prostu nie potrafi obudzić telefonu, gdy leży w kieszeni.

Zrobienie powiadomień dobrze jest trudniejsze, niż się wydaje, i to tutaj poszła większość pracy inżynierskiej:

  • Właściwa osoba, szybko. Gdy przychodzi wiadomość, system ustala, kto ma się o niej dowiedzieć - operator, do którego rozmowa jest przypisana, albo wszyscy, którzy włączyli odbieranie nieprzypisanych rozmów - i wysyła alert prosto na jego telefon.
  • Żadnego niepotrzebnego wibrowania. Jeśli operator ma już tę konkretną rozmowę otwartą na innym urządzeniu, nie wysyłamy pusha - przecież ją widzi. Telefon przerywa Wam tylko wtedy, gdy naprawdę jest coś nowego do obsłużenia.
  • AI nie wyłącza człowieka. Nawet gdy asystent AI już odpowiedział, operator i tak dostaje powiadomienie, bo może chcieć przejąć rozmowę. Aplikacja trzyma człowieka w pętli, nie zastępuje go.
  • Tapnij i już tam jesteś. Tapnięcie powiadomienia otwiera aplikację prosto na tej rozmowie - a nie na ogólnej skrzynce, w której trzeba potem szukać.
  • Dokładny licznik. Mała czerwona liczba na ikonie aplikacji pokazuje nieprzeczytane wiadomości i zeruje się w momencie, gdy otworzycie aplikację.

Dbamy też o porządek "pod maską": gdy ktoś odinstaluje aplikację albo się wyloguje, automatycznie przestajemy wysyłać na ten telefon, więc powiadomienia nigdy nie lecą "donikąd".

Odrzucenie przez App Store, które dało nam lekcję

Szczera część tej historii. Nasza pierwsza wersja została odrzucona przez Apple. Recenzent otworzył ją na iPadzie i przez chwilę zobaczył pusty, biały ekran - a pusty ekran czyta się jako "zepsuta aplikacja".

Przyczyna była prosta. Ponieważ aplikacja ładuje żywy dashboard przez internet, przy pierwszym, zimnym uruchomieniu na wolnym łączu jest krótka chwila - sekunda, dwie - zanim wszystko się pojawi. Dla nas na szybkim firmowym Wi-Fi było to niewidoczne. Dla recenzenta na najgorszym możliwym łączu wyglądało na zepsute.

Naprawą był dopracowany ekran ładowania: firmowy splash ze spinnerem, który utrzymuje się, dopóki dashboard naprawdę nie jest gotowy, żeby czekanie czytało się jako "ładowanie", a nie "zawiesiło się". Na szybkim łączu znika natychmiast; na wolnym trzyma się uspokajająco. Wysłaliśmy ponownie - i zostało zaakceptowane.

Wnioskiem kierujemy się dziś wszędzie: zakładaj, że Twój użytkownik ma najwolniejsze łącze w pomieszczeniu, i nigdy nie pozwól mu patrzeć na pusty ekran.

Wszystko, co robi wersja webowa - na telefonie

Ponieważ aplikacja jest dashboardem, każda funkcja jedzie z nią za darmo, bez przepisywania i bez pomijania czegokolwiek:

  • Tłumaczenie w czasie rzeczywistym w 60+ językach - klient pisze po ukraińsku, Wy odpowiadacie w swoim języku, a każda strona czyta to w swoim.
  • Odpowiedzi AI z bazy wiedzy, które obsługują pytania przychodzące, gdy nikt nie patrzy.
  • Jedna skrzynka dla wszystkich widgetów i marek, które prowadzicie, z każdą rozmową kierowaną do właściwej osoby.

Po prostu dostajecie to wszystko teraz na telefonie, z powiadomieniem na froncie, żeby nic Wam nie umknęło.

Budujecie coś podobnego?

To pragmatyczne podejście - wziąć solidną aplikację webową, opakować w prawdziwą natywną aplikację i włożyć energię w powiadomienia, które naprawdę docierają - to słuszny wybór dla wielu produktów, i dokładnie taką pracę robimy w Kiran. Jeśli macie dashboard albo narzędzie wewnętrzne, które potrzebuje mobilnego towarzysza, to nasz chleb powszedni w tworzeniu aplikacji. Ekrany rzadko są trudną częścią; trudne jest sprawić, by telefon zawibrował u właściwej osoby we właściwym momencie.

Następny krok

Jeśli chcecie samego produktu, aplikacje na iOS i Androida logują się tym samym kontem co widget webowy - zacznijcie za darmo na enuchat.com, bez karty. Jeśli rozważacie własną aplikację mobilną, 30-minutowa rozmowa wystarczy, żeby ją oszacować. Powiązane, od strony zespołu wsparcia, a nie twórcy: Obsługa klienta bez infolinii.