Budowaliśmy coacha AI, który prowadzi uczestników 30-dniowego programu rozwojowego w rozmowie na WhatsApp. Model językowy był najprostszą częścią tego projektu. Trudniejsze okazały się zasady samej platformy, współbieżność setek rozmów i sytuacje, w których bot powinien oddać rozmowę człowiekowi, a nic w metrykach o tym nie mówi.
Poniżej zebraliśmy wnioski, które przydadzą się każdemu, kto planuje bota na WhatsApp Business. Dane o platformie pochodzą z naszej analizy z początku 2026 roku, a Meta zmienia zasady dość często, więc przed startem warto je sprawdzić na nowo.
Limity liczą się na całą firmę, nie na numer
Wiadomości inicjowane przez firmę, takie jak przypomnienia czy broadcasty, podlegają dziennym limitom. Startowe konto może wysłać 250 takich rozmów dziennie, a kolejne progi to 1 000, 10 000 i 100 000. Awans na wyższy próg wymaga wysokiej oceny jakości i wykorzystywania co najmniej połowy obecnego limitu przez tydzień.
Od października 2025 roku limit jest wspólny dla całego portfolio firmy w Meta, a nie dla pojedynczego numeru. W praktyce oznacza to, że popularny pomysł „trzy numery to trzy razy większy limit” nie działa. Nowy numer dziedziczy limit portfolio. Jedyna droga do większej przepustowości to wyższy próg.
Dla architektury produktu ważniejsze jest co innego: limit nie dotyczy rozmów zaczętych przez użytkownika. Gdy uczestnik napisze, firma ma 24 godziny na swobodne odpowiedzi. Po tym czasie może wysłać tylko zatwierdzony szablon. Dlatego produkt warto projektować tak, żeby większość ruchu zaczynał człowiek, a szablony służyły do otwierania rozmowy, np. porannego przypomnienia o zadaniu.
Jakość numeru jest ważniejsza niż przepustowość
Meta ocenia jakość numeru, a jej spadek prowadzi do ograniczeń wysyłki i obniżenia progu. Na ocenę wpływają zgłoszenia spamu i blokady użytkowników, a do tego powtarzalne treści i zbyt częsta wysyłka. Zgłoszenia dotyczące jednego numeru obciążają całe portfolio.
Kilka decyzji, które z tego wynikają:
- Bot pracuje w ciągu dnia w strefie czasowej uczestników. Wiadomości z wieczora i nocy trafiają do kolejki, a poranne odpowiedzi wychodzą z losowym przesunięciem, nie wszystkie o pełnej godzinie.
- Masowe wiadomości idą w paczkach z przerwami, przez jeden worker z limitem na minutę.
- Każdy typ wiadomości ma kilka wersji losowanych przy wysyłce. Powtarzalność szkodzi ocenie jakości, a do tego, co potwierdził nasz audyt, zdradza automat w oczach ludzi.
- Dodatkowy numer nie zwiększa limitu, ale izoluje ryzyko, gdy coś stanie się z pierwszym. Środowisko testowe powinno mieć osobne portfolio.
Przy nowym numerze warto stopniowo zwiększać wolumen przez kilka tygodni, zamiast zaczynać od pełnej listy odbiorców.
Dostawca: zostaliśmy przy Twilio
Rozważaliśmy przejście na tańszego pośrednika albo bezpośrednie API Meta. Przy tej skali oszczędność na wiadomościach byłaby mniejsza niż ryzyko migracji tuż przed startem, a limity i tak są liczone na portfolio, więc zmiana dostawcy nie dałaby przepustowości. Do decyzji wrócimy przy kilku tysiącach aktywnych użytkowników, gdzie różnica w cenie zaczyna mieć znaczenie.
Architektura pod setki rozmów naraz
Webhook od operatora weryfikuje podpis każdego żądania i odrzuca duplikaty po identyfikatorze wiadomości. Potem wiadomość trafia do kolejki, a nie od razu do modelu.
Ludzie piszą na WhatsAppie seriami krótkich wiadomości. Gdyby bot odpowiadał na każdą osobno, rozmowa byłaby chaotyczna i droga. Każdy numer ma więc opóźnione zadanie w kolejce, które każda nowa wiadomość przesuwa. Bot czeka kilka sekund, dłużej, gdy wiadomość wygląda na niedokończoną, i odpowiada raz na całą wypowiedź. Każda wiadomość zostaje zapisana osobno, więc historia jest kompletna.
Wywołania modelu przechodzą przez limiter z kolejką. Jeśli model nie odpowie w rozsądnym czasie, uczestnik dostaje krótką wiadomość zastępczą, a rozmowa trafia do człowieka. Błąd w jednej rozmowie nie zatrzymuje pozostałych, a zespół ma wyłącznik AI globalnie i dla każdej rozmowy osobno.
Dwa błędy wyszły dopiero na produkcji. Identyfikator zadania w kolejce nie może zawierać dwukropka, którego używaliśmy w kluczu z numerem telefonu. Drugi to wyścig przy usuwaniu zadania, które akurat było w trakcie przetwarzania. Oba są drobne, ale dobrze pokazują, dlaczego nową funkcję warto wypuszczać za przełącznikiem, z bezpiecznym zachowaniem domyślnym.
Eskalacja: niska pewność modelu to za mało
Rozmowa trafia do ludzi w kilku sytuacjach. Najwyższy priorytet mają sygnały kryzysowe: AI natychmiast milknie, a dyżurny dostaje powiadomienie. Do tego dochodzą niska pewność odpowiedzi, negatywna ocena drugiego modelu, który sprawdza każdą odpowiedź przed wysłaniem, oraz sytuacja, gdy wyszukiwanie w bazie wiedzy nie znajduje pewnego trafienia. Wtedy bot nie zgaduje, tylko oddaje rozmowę.
Najcenniejszą lekcję dał ręczny audyt 747 wiadomości po pierwszych dniach. Średnia pewność modelu wynosiła 0,973, a mimo to jedna osoba utknęła w pętli: bot kilkadziesiąt razy powtarzał tę samą instrukcję i nie zareagował na prośbę o pomoc. Metryki tego nie pokazały. Dodaliśmy eskalację po serii nieudanych prób i przy prośbach o pomoc człowieka. Audyt znalazł też jedną halucynację i przypadek, w którym model zgadywał, które zadanie programu jest aktualne. Od tej pory o etapie programu decyduje harmonogram w systemie, nie model.
Wniosek jest prosty: wysoka średnia pewność nie mierzy jakości. Obok metryk potrzebny jest regularny przegląd prawdziwych rozmów przez człowieka.
Koszty
W pierwszych 11 dniach system obsłużył 1 248 wiadomości, a AI wysłało 597 z 601 odpowiedzi bez udziału człowieka. Koszt AI w tym okresie wyniósł 13,20 USD, czyli ok. 0,022 USD na odpowiedź. Największą część stanowiło generowanie odpowiedzi (8,36 USD), dalej koszty operatora (2,99 USD), reranking wyników wyszukiwania (1,19 USD), ocena odpowiedzi tańszym modelem (0,48 USD) i embeddingi (0,18 USD).
Łączenie serii wiadomości w jedną odpowiedź działa tu podwójnie: poprawia jakość rozmowy i obniża koszt, bo trzy krótkie wiadomości kosztują tyle, co jedna odpowiedź, a nie trzy.
Prognozy kosztów dla większej skali bardzo zależą od założeń o liczbie wymian dziennie, więc zamiast jednej liczby liczymy je w wariantach. Przy ruchu inicjowanym przez użytkownika koszt operatora jest niewielki, a rośnie szybko, gdy produkt opiera się na częstych broadcastach.
Lista kontrolna przed startem
- Sprawdź aktualne zasady limitów i cennik Meta, bo zmieniają się kilka razy w roku.
- Zaprojektuj produkt tak, żeby większość rozmów zaczynał użytkownik.
- Przygotuj i zatwierdź szablony z wyprzedzeniem, w kilku wariantach, łącznie z szablonem otwierającym rozmowę po 24 godzinach.
- Obsłuż rezygnację z wiadomości, zanim pierwszy użytkownik o nią poprosi.
- Podłącz ocenę jakości numeru i odsetek blokad do alertów, a nie tylko do ręcznego sprawdzania w panelu.
- Zaplanuj eskalację na pętle i prośby o pomoc, nie tylko na niską pewność modelu.
- Zrób ręczny przegląd rozmów po pierwszym tygodniu i powtarzaj go regularnie.
Opis całego wdrożenia jest w realizacji.



