Wysyłanie wiadomości WhatsApp z dowolnego systemu przez webhook
Sklep internetowy, CRM czy system rezerwacji już wiedzą, kiedy wpływa zamówienie, kiedy płatność się nie powiodła, a kiedy ktoś umówił wizytę. Webhook może zamienić każde z tych zdarzeń w wiadomość WhatsApp, bez programowania po Państwa stronie. Oto jak to zaplanować, zabezpieczyć i przetestować.
Zespół MonoChat Zaktualizowano: 7 min czytania
Na tej stronie
Aby wysłać wiadomość WhatsApp, gdy coś wydarzy się w innym systemie, wystarczy skierować webhook tego systemu do odbiorcy, który znajdzie klienta po numerze telefonu i wyśle zatwierdzony szablon wiadomości WhatsApp. Sklep, CRM czy system rezerwacji już wysyłają webhooki przy zamówieniach, płatnościach i wizytach. Praca polega na wyborze zdarzeń, które zasługują na wiadomość, napisaniu szablonów, zabezpieczeniu adresu URL i testach na prawdziwych żądaniach, zanim klienci cokolwiek zobaczą.
Ten poradnik omawia plan, zasady WhatsApp, które go kształtują, oraz sposób, w jaki zbudują to Państwo w MonoChat za pomocą przepływu startującego z własnego adresu URL webhooka.
Czym jest webhook, a czym nie jest
Webhook to żądanie HTTP, które jeden system wysyła pod wskazany przez Państwa adres URL, gdy nastąpi zdarzenie. Shopify może je wysłać przy utworzeniu zamówienia, WooCommerce przy jego aktualizacji, CRM przy przejściu szansy sprzedaży do kolejnego etapu, a system rezerwacji przy umówieniu wizyty. Żądanie zawiera szczegóły zdarzenia, zwykle w formacie JSON: numer zamówienia, kwotę, imię i nazwisko klienta oraz, co najważniejsze dla WhatsApp, numer telefonu.
Webhook sam niczego klientowi nie wysyła. Coś musi odebrać żądanie, zdecydować, co z nim zrobić, i wywołać WhatsApp Business API. Tym „czymś” jest albo kod, który Państwo piszą i utrzymują, albo platforma automatyzacji, która udostępnia adres URL webhooka i pozwala zbudować resztę bez kodu.
Które zdarzenia zasługują na wiadomość WhatsApp
Nie każde zdarzenie jest warte wiadomości. Klient, który dostaje pięć powiadomień o jednym zamówieniu, zaczyna ignorować wszystkie. Warto wybrać momenty, na które klienci naprawdę czekają:
| Zdarzenie | Wiadomość | Kategoria szablonu |
|---|---|---|
| Zamówienie utworzone lub opłacone | Potwierdzenie z numerem zamówienia i informacją, co dalej | Użytkowa (utility) |
| Płatność nieudana lub oczekująca | Krótka informacja i sposób ponownej płatności | Użytkowa (utility) |
| Zamówienie wysłane | Przewoźnik i link do śledzenia przesyłki | Użytkowa (utility) |
| Utworzone zamówienie za pobraniem | Pytanie: potwierdzić zamówienie, zmienić adres czy anulować | Użytkowa (utility) |
| Wizyta umówiona, zmieniona lub zaplanowana na jutro | Data, godzina, miejsce i sposób zmiany terminu | Użytkowa (utility) |
| Szansa sprzedaży wygrana lub przegrana w CRM | Przekazanie opiekunowi klienta lub prośba o opinię | Użytkowa lub marketingowa, zależnie od treści |
| Porzucony koszyk | Przypomnienie, ewentualnie z ofertą | Marketingowa |
Kategorię ustala Meta na podstawie treści szablonu, a nie wybranej przez Państwa etykiety. Wiadomość o konkretnym zamówieniu, płatności lub rezerwacji jest użytkowa; wszystko, co promuje, oferuje lub próbuje przekonać, jest marketingowe i wymaga zgody obejmującej marketing. Nasze przykłady szablonów WhatsApp zawierają gotowe treści dla przypadków użytkowych z tabeli.
Zasady WhatsApp, które obowiązują
Większość wiadomości z webhooka wymaga szablonu
Okno obsługi klienta otwiera się, gdy klient napisze lub zadzwoni do Państwa, i trwa 24 godziny od jego ostatniej wiadomości. W tym oknie można odpowiadać swobodnie; poza nim można wysyłać tylko wcześniej zatwierdzone szablony wiadomości. Zdarzenia ze sklepu i CRM rzadko mieszczą się w tym oknie, dlatego każdą wiadomość z webhooka warto zaplanować jako szablon i przesłać szablony do weryfikacji, zanim cokolwiek zostanie włączone.
Numer telefonu musi nadawać się do użycia
Webhook musi przekazywać numer, do którego WhatsApp może dotrzeć: w formacie międzynarodowym, z kierunkowym kraju (dla Polski 48). Wiele sklepów pozwala klientom wpisać numer w dowolny sposób, więc warto sprawdzić kilka prawdziwych zamówień. Numer bez kierunkowego kraju to najczęstszy powód, dla którego test działa, a produkcja nie.
Cennik zmienił się 1 października 2026 r.
Od 1 lipca 2025 r. Meta pobiera opłatę za każdą dostarczoną wiadomość. Od 1 października 2026 r. szablony użytkowe wysyłane w otwartym oknie obsługi klienta znów są płatne, po okresie, w którym były bezpłatne, a każdy firmowy numer telefonu otrzymuje 1000 bezpłatnych wiadomości serwisowych miesięcznie. Stawki zależą od kategorii i kraju klienta. W praktyce potwierdzenie zamówienia kosztuje niezależnie od tego, czy klient niedawno do Państwa pisał, więc warto wysyłać wiadomości, które mają znaczenie, a pomijać pozostałe. Przewodnik po cenniku WhatsApp API objaśnia tabelę stawek.
Zabezpieczenie adresu URL webhooka
Każdy, kto zna adres URL webhooka, może go wywołać. Jeśli ten adres wysyła wiadomości WhatsApp, jego wyciek oznacza, że ktoś inny może pisać do Państwa klientów w Państwa imieniu lub podbić Państwa rachunek. Zapobiegają temu trzy nawyki:
- Obowiązkowy sekret. System wysyłający dodaje sekret do nagłówka albo podpisuje nim treść żądania (HMAC-SHA256), dzięki czemu odbiorca może sprawdzić, że żądanie nie zostało zmienione po drodze. Żądania bez ważnego sekretu lub podpisu są odrzucane.
- Jeden adres URL do jednego celu. Przepływ zamówień i przepływ rezerwacji powinny mieć różne adresy URL i sekrety, aby można było wymienić jeden bez ruszania drugiego.
- Kontrola błędów po stronie wysyłającej. WooCommerce wyłącza webhook po ponad pięciu kolejnych nieudanych dostarczeniach, a Shopify usuwa subskrypcję webhooka, której adres docelowy wielokrotnie zwraca odpowiedź inną niż 200. Wyłączony lub źle skonfigurowany odbiorca może po cichu zatrzymać Państwa powiadomienia.
Gdzie utworzyć webhook w Shopify i WooCommerce
- Shopify: Settings › Notifications › Webhooks, następnie Create webhook. Należy wybrać jedno zdarzenie (Order creation, Order payment, Fulfillment creation i wiele innych), format JSON oraz adres
https://. Zdarzenia nie można zmienić po utworzeniu webhooka, więc potrzebny jest jeden webhook na każde zdarzenie. Send test sprawdza, czy żądanie dociera pod adres URL. - WooCommerce: WooCommerce › Settings › Advanced › Webhooks, następnie Add webhook. Należy wybrać topic (zdarzenia order, customer, coupon lub product), podać delivery URL i sekret; WooCommerce dodaje do nagłówków żądania hash payloadu utworzony tym sekretem.
- CRM lub system rezerwacji: warto poszukać opcji „webhooks”, „automations” lub „outgoing integrations”. Jeśli dostępny jest tylko stały format, przed budową czegokolwiek należy sprawdzić, które pole zawiera numer telefonu klienta.
Testy na prawdziwych żądaniach przed uruchomieniem
Payloady webhooków są długie, a każda platforma nazywa pola inaczej: numer telefonu może być w phone, billing.phone lub customer.default_address.phone. Nie warto zgadywać. Proszę wysłać prawdziwe żądanie testowe, sprawdzić, co dotarło, i na tej podstawie zmapować pola. Następnie warto przetestować przypadki brzegowe:
- zamówienie bez numeru telefonu lub z numerem bez kierunkowego kraju;
- to samo zdarzenie dostarczone dwa razy, co platformy robią przy ponawianiu;
- zamówienie złożone o 3 w nocy, jeśli wiadomość ma poczekać do rana;
- klienta, który odpowiada na powiadomienie, tak aby człowiek lub asystent AI był gotowy odpowiedzieć.
Jak to zrobić w MonoChat
MonoChat jest oficjalnym Meta Business Partner. Od wersji 3.8.37 (październik 2026 r.) przepływ może startować z webhooka, więc sklep lub CRM może wywoływać wiadomości WhatsApp bez programowania po Państwa stronie.
1. Przepływ zaczyna się od węzła Odebrano webhook. Dodają go Państwo z węzłów zdarzeń. Otrzymuje własny adres URL webhooka i sekret. Należy wybrać kanał, na przykład numer WhatsApp firmy, oraz Ścieżkę tożsamości, czyli miejsce w żądaniu, w którym znajduje się numer telefonu klienta (domyślnie request.body.phone). MonoChat znajduje klienta na tym kanale albo go tworzy i uruchamia dla niego przepływ. Węzeł odpowiada nadawcy kodem 202, gdy przepływ trafi do kolejki, oraz czytelnym błędem, gdy nie znajdzie kanału lub numeru telefonu.
2. Włączenie opcji Wymagaj sekretu. Nadawca może umieścić sekret w nagłówku tokenu (domyślnie Authorization, samodzielnie lub jako Bearer <secret>) albo wysłać podpis HMAC-SHA256 surowej treści w nagłówku podpisu (domyślnie X-Signature). Obie nazwy nagłówków można dopasować do systemu wysyłającego.
3. Przechwycenie prawdziwego żądania. Proszę dodać /test na końcu adresu URL webhooka i skierować tam testowy webhook sklepu. Gdy ustawienia węzła są otwarte, żądanie pojawia się w sekcji Odebrane żądanie wraz z treścią, parametrami zapytania i nagłówkami, bez uruchamiania przepływu. Pozwala to znaleźć potrzebne ścieżki i zapisać je jako zmienne przepływu, na przykład request.body.orderId jako orderId.
4. Wysłanie wiadomości. Proszę dodać węzeł Wyślij szablon wiadomości z zatwierdzonym szablonem i uzupełnić jego zmienne zmiennymi przepływu: numerem zamówienia, kwotą, linkiem do śledzenia. Warunki pozwalają wysyłać różne szablony dla różnych statusów.
5. Wywołanie zwrotne, jeśli jest potrzebne. Węzeł Żądanie HTTP może pobrać dodatkowe dane z Państwa systemu albo zapisać w nim odpowiedź klienta, na przykład „potwierdzone” przy zamówieniu za pobraniem. Przechodzi do Wyjście, gdy wywołanie się powiedzie, i do W przypadku niepowodzenia, gdy się nie powiedzie, dzięki czemu można wysłać wiadomość zastępczą lub przypisać rozmowę do konsultanta.
Gdy klient odpowie, rozmowa trafia do tej samej skrzynki MonoChat co pozostałe czaty z WhatsApp, Instagram i Messenger, gdzie Państwa zespół lub asystent AI może ją przejąć. Przepływy buduje się w automatyzacji przepływów pracy.
Dwie inne drogi, zależnie od tego, kto ma wykonać pracę:
- Państwa programiści już korzystają z API. Aplikacja WhatsApp Template API wysyła zatwierdzony szablon jednym wywołaniem API, a odpowiedzi trafiają do skrzynki.
- Prowadzą Państwo sklep na Shopify i chcą mieć dane zamówień w czacie. Automatyzacja czatu dla Shopify synchronizuje produkty i zamówienia, dzięki czemu zespół i asystent AI mogą odpowiadać na pytania o zamówienia.
Na start wystarczy założyć bezpłatne konto na app.monochat.ai, połączyć numer WhatsApp i porównać plany na stronie z cennikiem.
Źródła
- Meta for Developers: wysyłanie wiadomości i okno obsługi klienta
- Meta for Developers: cennik WhatsApp Business Platform
- Meta for Developers: kategoryzacja szablonów
- Centrum pomocy Shopify: Webhooks
- Dokumentacja WooCommerce: Webhooks
- Centrum pomocy MonoChat: przepływy, węzły Odebrano webhook i Żądanie HTTP
Wdróż to w praktyce z MonoChat