Reguła, którą chcesz napisać, brzmi prosto: „jeśli deal wrócił z etapu Faktura wystawiona, powiadom kierownika sprzedaży". Reguła, którą naprawdę da się skonfigurować, jest inna. Reguła automatyzacji w Bitrix24 (Alaio) uruchamia się, gdy element dociera na etap, a jedyny etap, który zna, to ten, na którym stoi. Skąd deal przyszedł, nie ma ani w dokumencie, ani na liście zmiennych, ani w ustawieniach triggera — dla platformy zmiana etapu to jedno pole z nową wartością, a nie para „skąd → dokąd".

Co reguła automatyzacji naprawdę wie w czasie wykonania

Warto rozdzielić trzy rzeczy, które wyglądają jak jedna. Trigger reaguje na zdarzenie zewnętrzne — płatność, połączenie przychodzące, odpowiedź w czacie — i przenosi element. Reguły przypisane do etapu wykonują się w momencie dotarcia, od góry do dołu. A platforma zapisuje wiersz w historii etapów.

Ta ostatnia część jest najbardziej użyteczna i nie ma jej w dokumentacji: wiersz historii zapisywany jest synchronicznie z zapisem elementu, przed uruchomieniem reguł. Reguła działająca na etapie widzi więc już wiersz swojego własnego etapu — najnowszy wiersz to etap bieżący, a wiersz pod nim to poprzedni. Wszystko dalej opiera się na tym jednym fakcie.

Odczyt poprzedniego etapu bez pola niestandardowego

Typowe obejście wygląda tak: reguła na każdym etapie zapisuje jego kod do pola „poprzedni etap". Działa, dopóki ktoś nie zmieni nazwy etapu, nie wstawi nowego albo nie założy drugiego lejka — wtedy pola rozjeżdżają się z rzeczywistością i nikt nie pamięta, która reguła co wypełnia. Drugie obejście to aplikacje rozpakowujące historię do pól serwisowych w tle: pole pojawia się z opóźnieniem, więc w warunku jest bezużyteczne, bo warunek sprawdzany jest natychmiast.

Klocek Poprzedni etap czyta historię w czasie wykonania, jednym zapytaniem, i oddaje wynik wprost do procesu: kod etapu do warunków, nazwę etapu do e-maila lub komentarza, semantykę (w toku / wygrany / przegrany), ID lejka, moment opuszczenia etapu oraz czas na nim w sekundach. Osobna flaga „znaleziono" odróżnia „element nigdy się nie ruszał" od prawdziwego błędu, więc zwykła ścieżka nie potrzebuje obsługi wyjątków. Na karcie nie pojawia się żadne dodatkowe pole.

Etapy mają deale, leady i elementy procesów smart. Leady trzymają etap w innym polu niż deale, a klocek sam tę różnicę pochłania. Kontakty i firmy nie mają etapów wcale — nie ma tam czego zwracać.

Jak wychwycić cofnięcie deala w lejku

Cofnięcie to najdroższy rodzaj ruchu: deal wychodzi z etapu Faktura wystawiona z powrotem do Negocjacji, a w raporcie lejka wygląda to jak zwykła praca. Wychwytują to trzy kroki.

Postaw klocek „Poprzedni etap" na etapie, na który następuje cofnięcie. Porównaj wynik warunkiem jeśli — to: element przyszedł z etapu leżącego w lejku później, czyli to cofnięcie. Kilka sprawdzeń naraz — kod poprzedniego etapu, kwota, osoba odpowiedzialna — składa Warunek złożony bez zagnieżdżonych rozgałęzień. Dalej zwykły zestaw: zadanie dla kierownika, komentarz z nazwą poprzedniego etapu i czasem na nim, znacznik w polu do raportu.

Ten sam chwyt odróżnia „deal dotarł do etapu Wygrany własnym tempem" od „ktoś przeciągnął go ze środka lejka od razu na Wygrany". Rozróżnia je tylko poprzedni etap; po bieżącym oba wyglądają identycznie.

Czy można zabronić ręcznej zmiany etapu?

Role CRM potrafią ograniczyć pracę z poszczególnymi etapami — uprawnienia dostępu określają, które etapy rola widzi i zmienia. Czego role nie wyrażą, to reguła o samym przejściu: „tylko do przodu", „nie dalej niż o jeden etap", „nie na Wygrany, dopóki nie ma podpisanego dokumentu". Uprawnienia traktują etap jako stan, nigdy jako parę „skąd → dokąd".

Ta reguła należy do reguły automatyzacji. Na etapie docelowym sprawdź, skąd element przyszedł i czy wymagania są spełnione; jeśli reguła jest naruszona, Aktualizuj deala według ID odkłada go na poprzedni etap, a osoba odpowiedzialna dostaje powiadomienie z powodem. Nie wyłączony przycisk, a cofnięcie w sekundę plus wyjaśnienie — w praktyce działa to lepiej, bo człowiek uczy się reguły, zamiast odbijać się od wyszarzonej kontrolki. Aby wymagania były widoczne przed próbą, a nie po niej, umieść je na karcie: pole Lista kontrolna etapu pokazuje na każdym etapie własną listę działań obowiązkowych i opcjonalnych.

Pomiar czasu na etapie

Czas na etapie to odstęp między dwoma wierszami historii, a klocek zwraca go gotowego: sekundy na etapie, który element właśnie opuścił. Dalej jest to zwykła liczba — porównaj ją w warunku („stał dłużej niż trzy dni, eskaluj"), zapisz do pola i zbuduj na tym własną metrykę, żeby zobaczyć, gdzie zbiera się kolejka.

Dwa zastrzeżenia, o których warto wiedzieć z góry. Klocek mierzy ostatni pobyt na etapie: jeśli element wracał dwa razy, każda para przejść mierzona jest osobno, a sumy po wszystkich pobytach nie ma. I to czas kalendarzowy, nie roboczy — deal, który dotarł w piątek wieczorem, do poniedziałku rano uczciwie nazbiera trzy dni, co dla KPI zwykle nie jest tym, o co chodzi.

Przenoszenie między lejkami

Przeniesienie do innego lejka zapisywane jest jako jeden wiersz historii — nowy lejek i nowy etap razem, bez osobnego zdarzenia „zmieniono lejek". Dla klocka to zwykła zmiana etapu: zwraca poprzedni etap plus ID lejka, do którego należał, więc przeniesienie między lejkami odróżnia się od ruchu wewnątrz jednego dokładnie tą wartością.

Druga strona: wykonanie przeniesienia jest bardziej wybredne. Starsza metoda aktualizacji deala po cichu ignoruje pole lejka — bez błędu, deal zostaje tam, gdzie był, i to kosztuje pół dnia. „Aktualizuj deala według ID" korzysta z uniwersalnej metody CRM, więc zmienia lejek razem z etapem; pozostałe drogi zebrane są w przewodniku o aktualizacji pól deala. Jeśli proces działa na innym elemencie, Znajdź deala najpierw odnajdzie właściwego.

Co dalej

Zacznij od jednego etapu, na którym deale gubią się najczęściej: Poprzedni etap, warunek cofnięcia, zadanie dla kierownika. Tydzień później masz pierwsze liczby — skąd następują cofnięcia i jak długo elementy stoją w miejscu — i właśnie pod nie warto przebudować lejki i triggery. Do oznaczenia istniejącej bazy w jednym przebiegu służy masowe uruchomienie.

Sąsiednie klocki żyją w katalogu robotów: warunki, aktualizacja encji, narzędzia do dat. A jeśli brakuje tego, którego potrzebujesz — opisz zadanie: Roboteka buduje brakujące aktywności bezpłatnie i wystawia je do wspólnej biblioteki. „Poprzedni etap" powstał dokładnie tak.