Automatyzacja bez czarnej skrzynki

Jak projektować node-based automatyzacje w Apexloop tak, żeby były czytelne, bezpieczne i użyteczne w codziennej pracy zespołu.

Marek Raja

Automatyzacja ma oszczędzać uwagę zespołu, a nie tworzyć niewidzialne zachowania, których ludzie się boją. W Apexloop automatyzacje to node-based flow. Każdy flow ma dokładnie jeden trigger, a potem szereg kroków, które pracują z kontekstem.

Ten kształt jest ważny: kiedy jasne jest, co uruchamia flow i co następuje potem, proces można czytać, debugować i rozszerzać.

Wybierz jeden jasny trigger

Triggerem może być ręczny przycisk, harmonogram, webhook, otrzymany e-mail lub powiadomienie, albo zmiana CRUD rekordu. Dobry flow zaczyna się od konkretnego zdarzenia:

  • użytkownik kliknął „Wystaw fakturę”,
  • codziennie o 8:00 sprawdzane są rekordy po terminie,
  • przyszedł webhook z usługi zewnętrznej,
  • powstał nowy rekord z formularza,
  • zmienił się status szansy sprzedaży na „Wygrana”.

Jeśli masz wrażenie, że flow potrzebuje kilku triggerów, zwykle oznacza to kilka procesów. Podziel je.

Przekazuj kontekst dalej

Każdy węzeł może przekazać kontekst swoim następcom. Dzięki temu można pracować z danymi, które flow już znalazł lub utworzył. Typowe węzły to CRUD rekordu, find records, iterator, condition, send message, HTTP i webhook.

Przykład flow fakturowania:

  1. Przycisk w projekcie uruchamia flow.
  2. Flow znajduje klienta i pozycje projektu.
  3. Condition sprawdza, że nie brakuje danych do faktury.
  4. Węzeł CRUD zakłada fakturę i pozycje.
  5. Szablon dokumentu wypełnia się danymi.
  6. Flow wysyła e-mail lub zapisuje wynik przy rekordzie.

Użytkownik widzi jeden krok, ale proces wciąż jest czytelny.

Zmieniaj tylko pola nieobliczane

Automatyzacja może za pomocą węzła update zmieniać wartości necomputed, czyli pola bez formuły. Pola obliczane powinny pozostać pod kontrolą formuł. Dzięki temu flow nie nadpisuje ręcznie wartości, które powinny być wyliczane z danych.

W praktyce: automatyzacja może ustawić status, osobę odpowiedzialną, termin lub odnośnik do utworzonego rekordu. Sumę pozycji, marżę czy flagę ryzyka powinna zostawić formułom.

Automatyzacja i uprawnienia

Przy wrażliwych procesach pamiętaj o ograniczeniach column-level. Ceny, dane osobowe, pola zatwierdzeń czy notatki wewnętrzne nie muszą być widoczne dla wszystkich. Flow powinien respektować model danych i zapisywać wyniki tam, gdzie zespół ich oczekuje.

Jeśli rekord jest zarchiwizowany, a pozostałe kolumny są readonly, dobrze mieć jasno określone, które automatyzacje wciąż mogą go zmieniać i dlaczego.

Integracje należą na brzeg flow

Węzły webhook i HTTP łączą Apexloop z zewnętrznymi usługami. Sekretami zarządzaj przez connectory, osobiste lub współdzielone, zależnie od potrzeby. Jeśli integracja wymaga specjalnej logiki, można przygotować custom node.

Staraj się trzymać główny proces biznesowy w Apexloop, a wywołania zewnętrzne jako jasno nazwane kroki. Kiedy integracja się zmieni, nie musisz przepisywać całego workflow.

Dobry test automatyzacji

Przed wdrożeniem przejdź przez trzy scenariusze:

  • zwykły przypadek, gdy wszystkie dane istnieją,
  • brakującą wymaganą wartość,
  • rekord, który został już przetworzony lub zarchiwizowany.

Jeśli flow w każdym scenariuszu pokaże zrozumiały wynik, zespół zacznie mu ufać. Automatyzacja przestaje być wtedy czarną skrzynką. Staje się zapisanym procesem.

Jeśli zastanawiasz się, kiedy budować automatyzację wewnątrz systemu, a kiedy sięgnąć po zewnętrzny łącznik, odpowiada na to artykuł Zapier i Make umarły?. Cały temat, od szukania kandydatów po obliczenie zwrotu z inwestycji, prowadzi przewodnik po automatyzacji procesów firmowych.