Nowy klient podpisał umowę w piątek. Handlowiec wysłał maila do Ani z księgowości. Ania wystawiła fakturę proformę. Ktoś wrzucił zaproszenie na kickoff do kalendarza. Umowa wylądowała w folderze na Dysku, ale nikt nie wie, czy klient ma dostęp.
W poniedziałek okazuje się, że klient nie dostał faktury, bo Ania czekała na numer umowy. Kickoff jest za dwa dni i nikt nie wie, czy klient potwierdził termin. A sześć firm jest jednocześnie w tym samym stanie - gdzieś w połowie onboardingu, w trzech różnych narzędziach, bez jednego miejsca, gdzie można sprawdzić, co jeszcze zostało.
Ósmy i ostatni szablon tej serii rozwiązuje ten problem przez zamianę rozsypanych kroków w jeden rekord ze wspólnym, trwałym stanem.
Jedna sprawa, komplet akt
Workflow działa na wzorcu zwanym sagą. Jedno wywołanie - sygnał "onboardujemy klienta X" - tworzy rekord-matkę, który przechowuje stan wszystkich kroków onboardingu jako jednego spójnego przypadku. Oferta wstępna, pierwsza faktura, termin kickoffu, podpisany dokument: każdy krok ma swój wiersz z wyraźnym statusem w tej samej strukturze.
Zamiar każdego kroku jest zapisywany zanim krok się wydarzy. Krok jest uznany za wykonany dopiero wtedy, gdy konkretny dowód leży w tabeli wyników właściwej dla tego kroku. Dla oferty jest to wiersz w tabeli ofert, dla faktury - w tabeli faktur, dla rezerwacji - w tabeli rezerwacji, dla dokumentu - w tabeli dokumentów przychodzących. Sprawa niczego nie odhacza na wiarę.
"Nie umiem udowodnić, że nic nie wyszło" blokuje ponowienie
Ta decyzja projektowa jest sercem całego szablonu i warto ją zrozumieć dokładnie.
Każdy krok ma przypisaną informację o charakterze efektu ubocznego. Dla oferty jest to coś w stylu: nie można cofnąć wysłanego maila z ofertą. Dla faktury - analogicznie. Gdy wynik kroku jest niejednoznaczny, czyli nie ma dowodu, że coś wysłano, ale nie ma też dowodu, że nic nie wyszło, workflow klasyfikuje taki krok jako wymagający interwencji człowieka i nie ponawia go automatycznie.
Powód jest prosty: automatyczne ponowienie mogłoby wysłać klientowi drugi mail z ofertą albo wystawić drugą fakturę. W onboardingu B2B to błąd, który niszczy relację od pierwszego kontaktu. Człowiek dostaje taki krok do rozstrzygnięcia.
Dwa razy to samo zgłoszenie? Nic nowego się nie dzieje
Jeśli zewnętrzny system wyśle to samo zgłoszenie dwukrotnie - awaria, retry, błąd integracji - workflow rozpoznaje istniejącą sprawę i dołącza do niej. Żaden krok nie rusza po raz drugi i nic nie wychodzi do klienta ponownie.
Klucze sprawy i kroków są deterministyczne, generowane na podstawie stabilnego identyfikatora klienta i treści zgłoszenia. Identyczne zgłoszenie regeneruje identyczne klucze i trafia na istniejące wiersze. Dla sprawy, która jest już kompletna, system rozpoznaje duplikat i nie zapisuje nawet pustego potwierdzenia.
Wolne teksty jako identyfikatory klientów są odrzucone na wejściu. Workflow wymaga stabilnego identyfikatora zewnętrznego. To ograniczenie ma powód: deterministyczne klucze wymagają identyfikatora, który jest naprawdę stały.
Co 30 minut: adoptowanie spóźnionych wyników i alerty
Pierwsze wywołanie załatwia większość od razu, ale część wyników może dotrzeć z opóźnieniem. Jeśli workflow odpowiedzialny za fakturę zakończy się kilka minut po głównym uruchomieniu, sprawa-matka dowie się o tym przy kolejnym przebiegu.
Co pół godziny osobny proces przechodzi przez wszystkie aktywne sprawy, adoptuje wyniki kroków, które doszły po głównym uruchomieniu, i sprawdza, czy żadna sprawa nie tkwi za długo w jednym miejscu. Zbyt długi czas bez postępu - alert mailowy do zespołu, z mechanizmem tłumienia, żeby ten sam problem nie zasypał skrzynki. Alert jest rejestrowany jako zamiar zanim mail zostanie wysłany - nieudana wysyłka nie skasuje następnego alertu.
Zmiany po starcie sprawy, czyli korekta oferty albo przełożony termin kickoffu, są wykrywane i trafiają do człowieka. Saga nie ma automatycznej kompensacji. Decyzja o wystawieniu korekty faktury nie powinna być podejmowana przez system działający bez nadzoru.
Co jest w repozytorium
Szablon jest dostępny otwarcie:
https://github.com/kuliberdalabs/n8n-sme-workflows/tree/main/workflows/08-client-onboarding-saga
W środku jest plik workflow do importu, opis tabel, które trzeba założyć w n8n, i szczegółowe wyjaśnienie każdej decyzji projektowej.
Czego szablon sam nie zrobi:
- Sprawa-matka nie uruchamia kroków. Zapisuje zamiary i adoptuje wyniki z tabel, które muszą wypełniać osobne workflow. Bez działających workflow dla oferty, faktury, rezerwacji i dokumentów - kroki będą siedzieć w stanie "niejednoznaczny wynik" i to będzie właściwy obraz sytuacji. Kilka z tych workflow jest w tym samym repozytorium.
- Kroki "mail powitalny" i "checklista wewnętrzna" są wyłącznie zapisem w aktach sprawy. Żaden mail nie jest wysyłany, żadna lista nie jest wypełniana. Istnieją po to, żeby przypadek był kompletny.
- Deduplikacja opiera się na odczycie tabeli, nie na blokadzie atomowej. Równoczesne pierwsze zgłoszenia wysłane w dokładnie tym samym ułamku sekundy nie są serializowane.
Dokumentacja opisuje te granice bez owijania w bawełnę, bo to świadome decyzje wynikające z realiów n8n przy skali MŚP.
Klocek do spinania
Saga spina klocki, z których część już opisałem: fakturowanie i obieg dokumentów mają swoje workflow w tym samym repozytorium. Ofertowanie i rezerwacje wymagają osobnych workflow, które zapisują wyniki do swoich tabel. Bez tych klocków sprawa-matka ma co zapisywać, ale nie ma skąd adoptować wyników.
Katalog automatyzacji ma 14 pozycji, a osiem z nich leży otwarcie w repozytorium. Pozycja, którą nazywam Dyrygentem Onboardingu, to naturalny kolejny krok dla firm, które mają już podstawowe automaty postawione i szukają jednego miejsca z widokiem na cały stan onboardingu. Karta /automatyzacje/dyrygent-onboardingu opisuje, jak to wygląda we wdrożeniu.
Jeśli jesteś na wcześniejszym etapie, zacznij od katalogu /automatyzacje i umów bezpłatną diagnozę na /kontakt. Sprawdzimy, który z klocków ma u ciebie sens jako pierwszy, żeby dojść do punktu, w którym saga ma co spinać.
Na pytanie o koszt wdrożenia odpowiada artykuł /blog/ile-kosztuje-automatyzacja-procesow.