Wyzwalacze i zdarzenia systemowe
Wyzwalacz decyduje, kiedy powstaje instancja obiegu. Do wyboru jest pięć rodzajów: ręczny, harmonogram, webhook, zdarzenie systemowe i reguła przypisania do zamówienia. Zdarzeń systemowych jest dwanaście.
Na tej stronie
Rodzaje wyzwalaczyHarmonogramWebhookZdarzenia systemoweZamówienie złożoneZamówienie opłacone w całościZmiana statusu zamówieniaZamówienie anulowaneNiedokończona płatność (porzucone zamówienie)Oznaczenie w komentarzu zamówieniaRejestracja klienta (storefront)Logowanie klienta (storefront)Pierwsze logowanie klienta (storefront)Pierwsze zamówienie klientaKlient nieaktywnyPorzucony koszykRodzaje wyzwalaczy#
| Wyzwalacz | Kiedy startuje obieg | Typowe zastosowanie |
|---|---|---|
| Ręczny | Gdy użytkownik uruchomi obieg przyciskiem | Zamknięcie dnia, jednorazowy raport |
| Harmonogram | O zadanej porze lub co ustalony odstęp | Raport poranny, cykliczne porządki |
| Webhook | Gdy zewnętrzny system wywoła adres obiegu | Integracja z ERP, platformą dostaw |
| Zdarzenie systemowe | Gdy w systemie wydarzy się wybrane zdarzenie | Potwierdzenia, CRM, powiadomienia |
| Reguła przypisania | Gdy zamówienie spełni warunki (kanał, status, typ, rozliczenie) | Główny obieg realizacji zamówienia |
Harmonogram#
Interwały: co 15 minut, co 30 minut, co godzinę, co 6 godzin, codziennie, co tydzień i co miesiąc. Zamiast interwału możesz podać wyrażenie cron, które ma pierwszeństwo. Możesz ustawić datę początku i końca oraz strefę czasową (domyślnie według ustawień firmy, np. Europe/Warsaw).
Webhook#
Webhook udostępnia adres, który uruchamia obieg. Konfigurujesz:
| Ustawienie | Znaczenie |
|---|---|
| Dozwolone metody | GET, POST, PUT, PATCH, DELETE, HEAD |
| Uwierzytelnianie | Token typu bearer, nagłówek o wybranej nazwie albo parametr w adresie. Sekret system generuje, jeśli go nie podasz |
| Wymagane nagłówki | Nazwa i opcjonalnie oczekiwana wartość |
| Schemat treści | JSON Schema (draft-07) do walidacji ciała żądania |
| Zapis treści i parametrów | Do zmiennej procesu: surowe ciało oraz parametry z adresu |
| Parametry adresu | Nazwane parametry z opcją „wymagany”, dostępne jako {{trigger_param:nazwa}} |
| Tryb synchroniczny | Wywołujący czeka na koniec obiegu i dostaje zmienną odpowiedzi jako JSON (domyślny limit oczekiwania 15 s) |
Zdarzenia systemowe#
Zdarzenia dotyczą zamówień i cyklu życia klienta. Zdarzenie dostarczane jest w jednym z dwóch trybów:
- Czas rzeczywisty - zdarzenie emitowane tam, gdzie coś się dzieje, po zapisaniu zmiany. Obieg startuje od razu.
- Skaner - zdarzenia bez „momentu” (np. brak wpłaty przez godzinę). Wykrywa je skaner co kilka minut i emituje jak zdarzenie czasu rzeczywistego.
Zdarzenia klienta mogą działać w trybie pojedynczym (jedno zdarzenie = jedna instancja z jednym klientem, mention customer) albo wsadowym (według harmonogramu zbiera pasujących klientów do tablicy, mention customers, i przetwarzasz ich w pętli).
Zamówienie złożone#
Nowe zamówienie z dowolnego kanału. Obieg startuje obok obiegu przypisanego regułą — np. powiadomienia, CRM, integracje.
- Klucz zdarzenia:
order.placed - Dotyczy: zamówienia
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Źródło zamówienia | lista | Ogranicz do kanału. Puste = dowolne. Wartości: Sklep internetowy (storefront), Touch POS, POS (klasyczny), POS (panel), Aplikacja zamówień, Wewnętrzne (panel), Ręczne, API zewnętrzne. |
| Sposób rozliczenia | lista | Ogranicz do sposobu płatności. Puste = dowolny. Wartości: Online (operator płatności), Przy odbiorze, Przelew tradycyjny. |
| Minimalna wartość brutto | liczba | Odpal tylko dla zamówień od tej kwoty. Puste = każda kwota. |
Zamówienie opłacone w całości#
Płatność rozliczyła całą kwotę zamówienia — z webhooka operatora, rekoncyliacji albo ręcznego rozliczenia.
- Klucz zdarzenia:
order.paid - Dotyczy: zamówienia
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Źródło zamówienia | lista | Ogranicz do kanału. Puste = dowolne. Wartości: Sklep internetowy (storefront), Touch POS, POS (klasyczny), POS (panel), Aplikacja zamówień, Wewnętrzne (panel), Ręczne, API zewnętrzne. |
| Minimalna wartość brutto | liczba | Odpal tylko dla zamówień od tej kwoty. Puste = każda kwota. |
Zmiana statusu zamówienia#
Status zmienił się z panelu, POS, obiegu albo automatu płatności. Wskaż status docelowy, żeby reagować tylko na jedno przejście.
- Klucz zdarzenia:
order.status_changed - Dotyczy: zamówienia
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Nowy status | status zamówienia | Odpal tylko, gdy zamówienie przeszło NA ten status. Puste = każda zmiana. |
| Źródło zamówienia | lista | Ogranicz do kanału. Puste = dowolne. Wartości: Sklep internetowy (storefront), Touch POS, POS (klasyczny), POS (panel), Aplikacja zamówień, Wewnętrzne (panel), Ręczne, API zewnętrzne. |
Zamówienie anulowane#
Zamówienie trafiło na status oznaczony jako anulujący — niezależnie od tego, kto i skąd je anulował.
- Klucz zdarzenia:
order.cancelled - Dotyczy: zamówienia
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Źródło zamówienia | lista | Ogranicz do kanału. Puste = dowolne. Wartości: Sklep internetowy (storefront), Touch POS, POS (klasyczny), POS (panel), Aplikacja zamówień, Wewnętrzne (panel), Ręczne, API zewnętrzne. |
Niedokończona płatność (porzucone zamówienie)#
Zamówienie z płatnością online nie zostało opłacone przez zadany czas i nie jest anulowane. Serwerowy odpowiednik porzuconego koszyka — przypomnienie, rabat, anulowanie.
- Klucz zdarzenia:
order.payment_overdue - Dotyczy: zamówienia
- Dostarczanie: skaner co kilka minut
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Brak wpłaty przez (minuty) | liczba | Po tylu minutach od złożenia zamówienie bez rozliczonej płatności uznajemy za porzucone. Domyślnie 60. |
| Minimalna wartość brutto | liczba | Odpal tylko dla zamówień od tej kwoty. Puste = każda kwota. |
Oznaczenie w komentarzu zamówienia#
Ktoś oznaczył pracownika (@) w komentarzu wewnętrznym zamówienia. Obieg startuje osobno dla każdej oznaczonej osoby — np. e-mail z treścią komentarza i linkiem do zamówienia w Bitee. Autor nie dostaje zdarzenia o samym sobie.
- Klucz zdarzenia:
order.comment_mention - Dotyczy: zamówienia
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Kogo dotyczy | lista | Domyślnie tylko oznaczone osoby. Opcjonalnie także autor wątku, gdy ktoś mu odpowie. Wartości: Oznaczone osoby i autor wątku (odpowiedzi), Tylko autor wątku (odpowiedzi). |
Rejestracja klienta (storefront)#
Klient założył konto na sklepie (email / Google / inny provider).
- Klucz zdarzenia:
customer.registered - Dotyczy: klienta
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: tak
| Filtr | Typ | Opis |
|---|---|---|
| Sposób rejestracji | lista | Ogranicz do wybranego providera. Puste = dowolny. Wartości: E-mail / hasło, Google, Facebook, Apple. |
Logowanie klienta (storefront)#
Klient zalogował się na sklepie. Opcjonalnie tylko powrót po przerwie.
- Klucz zdarzenia:
customer.login - Dotyczy: klienta
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: tak
| Filtr | Typ | Opis |
|---|---|---|
| Powrót po ≥ X dniach nieaktywności | liczba | Odpal tylko, gdy klient wraca po co najmniej X dniach od poprzedniego logowania. Puste = każde logowanie. |
Pierwsze logowanie klienta (storefront)#
Pierwsze w życiu logowanie na konto klienta.
- Klucz zdarzenia:
customer.first_login - Dotyczy: klienta
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: tak
Pierwsze zamówienie klienta#
Klient złożył pierwsze zamówienie w firmie. Real-time po zapisie zamówienia — powitanie, rabat na drugie zakupy, onboarding.
- Klucz zdarzenia:
customer.first_order - Dotyczy: klienta
- Dostarczanie: czas rzeczywisty
- Tryb pojedynczy: tak, tryb wsadowy: nie
Klient nieaktywny#
Minęło N dni od ostatniego zamówienia albo logowania (albo od rejestracji, gdy nie było żadnego). Skaner wykrywa przekroczenie progu raz — nie odpytuje przy każdym żądaniu HTTP.
- Klucz zdarzenia:
customer.inactive - Dotyczy: klienta
- Dostarczanie: skaner co kilka minut
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Brak aktywności przez (dni) | liczba | Próg ciszy. Domyślnie 30. Sprawdzane co 5 minut, każde konto odpala się raz w momencie przekroczenia. |
| Tylko ze zgodą marketingową | lista | Puste = wszyscy nieaktywni. „tak" = tylko klienci, którym wolno wysłać ofertę. Wartości: Tylko ze zgodą marketingową. |
Porzucony koszyk#
Zalogowany klient miał produkty w koszyku i nic z nim nie zrobił przez zadany czas. Storefront zgłasza zmiany koszyka (debounce); skaner emituje zdarzenie raz. Gość bez konta nie jest skanowany — nie ma komu wysłać wiadomości.
- Klucz zdarzenia:
customer.cart_abandoned - Dotyczy: klienta
- Dostarczanie: skaner co kilka minut
- Tryb pojedynczy: tak, tryb wsadowy: nie
| Filtr | Typ | Opis |
|---|---|---|
| Bezczynność koszyka (minuty) | liczba | Po tylu minutach od ostatniej zmiany koszyka uznajemy go za porzucony. Domyślnie 60. Sprawdzane co 5 minut. |
- Pięć rodzajów wyzwalaczy: ręczny, harmonogram, webhook, zdarzenie systemowe, reguła przypisania.
- Dwanaście zdarzeń systemowych obejmuje zamówienia (6) i klientów (6), każde z własnymi filtrami.
- Zdarzenia skanowane (porzucona płatność, nieaktywny klient, porzucony koszyk) wykrywa skaner, nie „moment”.
- Zdarzenia klienta działają pojedynczo albo wsadowo (kolekcja klientów i pętla).
