01 - Wprowadzenie
Od kodu do wartości biznesowej
Nota o poufności (NDA): Case study dotyczy realnego wdrożenia dla firmy z sektora B2B (drukarnia / e-commerce). Ze względu na tajemnicę handlową oraz ochronę operacyjnej przewagi konkurencyjnej klienta, nazwa firmy oraz twarde dane finansowe zostały utajnione. Skupiamy się wyłącznie na logice biznesowej, architekturze systemowej (workflowy) i integracjach API.
Większość młodych programistów skupia się na frameworkach i wymyślaniu koła na nowo. Rozwijając własną agencję automatyzacji (AIAA / MaDevo) i wdrażając systemy dla klientów B2B, zrozumiałem kluczową zasadę inżynierii produktu: biznes nie kupuje kodu. Biznes kupuje odzyskany czas, skalowalność i eliminację błędów.
Nasz klient borykał się z klasycznym "bólem wzrostu" (Growing Pains). Gwałtowny rozrost sprzedaży i rosnąca liczba zamówień B2B doprowadziły do operacyjnego chaosu. Przepływ danych był zdezorganizowany - informacje krążyły między kartami w Trello, skrzynką mailową, platformą BaseLinker i systemem księgowym wFirma.
Ręczne przepisywanie danych przez zespół handlowy generowało gigantyczne wąskie gardła (bottlenecks):
Błędy ludzkie: Pomyłki w numerach NIP i kwotach, które w dobie rygorystycznego systemu KSeF niosą poważne konsekwencje prawno-księgowe.
Utrata SEO: Kopiowanie tych samych opisów produktów (Duplicate Content) na platformach sprzedażowych drastycznie obniżało widoczność ofert.
Marnowanie roboczogodzin: Dział handlowy spędzał godziny na rutynowym "przeklepywaniu" statusów zamiast na sprzedaży i obsłudze klienta.
Architektura rozwiązania
Po przeprowadzeniu dogłębnej analizy procesów biznesowych, zaprojektowaliśmy i wdrożyliśmy zintegrowany ekosystem. Zamiast budować drogą, dedykowaną aplikację od zera, wykorzystaliśmy architekturę Agentic Workflows opartą na platformie n8n.
Połączyliśmy rozproszone systemy klienta rygorystycznymi kontraktami po REST API, a w miejscach wymagających "ludzkiej" oceny nieustrukturyzowanego tekstu, zaimplementowaliśmy modele LLM Google Gemini jako silniki decyzyjne i analityczne.
Poniżej przedstawiam anatomię dwóch kluczowych procesów, które zrewolucjonizowały obieg dokumentów i cykl życia produktu u klienta.
02 - Workflow #1
Workflow #1: Inteligentna fabryka produktów (BaseLinker API)
Problem biznesowy: Wprowadzanie nowych wariantów produktów do systemu e-commerce było wysoce powtarzalnym wąskim gardłem. Dział handlowy spędzał wiele godzin na żmudnym przypisywaniu zdjęć do kodów SKU oraz kopiowaniu opisów. Powielanie tych samych tekstów (Duplicate Content) dodatkowo obniżało pozycjonowanie ofert.
Zbudowaliśmy system, który całkowicie zautomatyzował ten proces, zachowując pełną kontrolę nad integralnością danych.
Architektura i przepływ danych (data flow)
Wdrożyliśmy hybrydowe rozwiązanie (Smart Frontend + Agentic Backend), aby zachować niezawodność także przy masowym przetwarzaniu (batch processing):
Smart queueing (ochrona przed rate limits): Użytkownik ładuje CSV i paczkę zdjęć w panelu webowym. Frontend kolejkuje żądania i wysyła je sekwencyjnie, zamiast strzelać wszystkimi requestami naraz (HTTP 429).
Edge security: Przepływ n8n zaczyna się od webhooka, który natychmiast weryfikuje zaszyfrowane hasło ukryte w payloadzie. Nieautoryzowany ruch jest odrzucany zanim dotknie logiki biznesowej i limitów API.
Walidacja stanu magazynowego: Przed uruchomieniem AI system wykonuje zapytanie GET do BaseLinkera, szuka produktu referencyjnego po SKU i przy braku referencji od razu przerywa wątek, wysyłając alert błędu na firmowego Discorda.
Czysty JavaScript > ślepe low-code
Wizualne workflow engines świetnie orkiestrują API, ale przy skomplikowanej transformacji danych gotowe bloki bywają kruche. Największym wyzwaniem było bezbłędne przypisanie dziesiątek zdjęć do właściwych wariantów.
[ engineering detail ]
AI jako silnik SEO (LLM)
Jeśli pracownik aktywował flagę AI, surowe parametry produktu trafiały do modelu GPT-4o. Model nie decydował o logice biznesowej - działał jako wyspecjalizowany copywriter. Na bazie rygorystycznego promptu generował unikalny tytuł i bogaty opis HTML.
Na końcu komplet danych (nowe SKU, mapowanie zdjęć z JS i kod HTML z AI) trafiał do BaseLinkera przez addInventoryProduct, tworząc ofertę gotową do sprzedaży.
Biznesowy ROI: Skrócenie czasu wystawienia 50 produktów z kilku godzin ręcznej pracy do kilku minut automatycznego przetwarzania w tle. Dodatkowo: eliminacja pomyłek przy przypisywaniu zdjęć i wyraźny wzrost widoczności ofert dzięki unikalnym opisom.
03 - Workflow #2
Workflow #2: Autonomiczny księgowy (Trello → wFirma)
Problem biznesowy: Fakturowanie stałych zleceń B2B polegało na ręcznym kopiowaniu opisów z kart w Trello do systemu księgowego wFirma. Przy zamówieniach wielopozycyjnych handlowiec spędzał nawet 15 minut nad jedną fakturą. Przy nadchodzącym KSeF najdrobniejszy błąd w numerze NIP lub kwocie generuje poważne ryzyko prawne i konieczność korekt.
Rozwiązanie: agent AI analizujący nieustrukturyzowany tekst, spięty z twardą walidacją w rejestrach państwowych i API księgowym.
Architektura danych: od chaosu do JSON-a
System opiera się na paradygmacie Human-in-the-loop: AI odbiera większość czarnej roboty, ale ostateczne „wyślij” zostaje u człowieka.
Event-driven trigger: zmiana statusu karty w Trello na „Do wystawienia FV” natychmiast wysyła webhook do n8n.
Ekstrakcja danych AI (Gemini / GPT-4o): LLM czyta chaotyczne opisy z Trello, wyciąga NIP i pozycje zamówienia, zwracając czystą tablicę JSON (nazwa produktu + cena netto).
JS guardrail: dlaczego nie ufamy AI w finansach?
Modele językowe świetnie radzą sobie z kontekstem, ale bywają słabe w matematyce i precyzji. W księgowości nie ma miejsca na halucynacje.
[ data sanitization & math ]
Odpowiedź z LLM nie trafia bezpośrednio do systemu księgowego. Działa sztywny skrypt JavaScript (Data Sanitizer):
- Podmiana przecinków na kropki (standaryzacja liczb zmiennoprzecinkowych).
- Weryfikacja matematyczna stawek i sum.
- Zliczanie wystąpień słowa "Produkt" w pierwotnym tekście, żeby upewnić się, że AI nie pominęło pozycji.
Walidacja GUS i księgowanie (wFirma API)
Zanim wygenerujemy dokument, dane kontrahenta muszą być legalne i aktualne:
API Ministerstwa Finansów (GUS): zapytanie do białej listy podatników VAT po NIP; pobieramy oficjalną nazwę i adres, nadpisując literówki z karty Trello.
wFirma REST API: iteracja po oczyszczonej tablicy produktów (np. .map()) i utworzenie jednej faktury wielopozycyjnej.
Status draft: dokument w stanie normal_draft (szkic); pracownik dostaje powiadomienie na Discordzie i etykietę w Trello, weryfikuje szkic w wFirma i klika akceptację.
Biznesowy ROI: eliminacja ręcznego przepisywania (dziesiątki godzin miesięcznie), spójne kartoteki kontrahentów dzięki weryfikacji NIP, drafty utrzymują kontrolę księgową przed finalnym wystawieniem.
04 - Optymalizacja
Optymalizacja kosztów: z event-driven na batch (wizja AU03)
Automatyzacja potrafi być pułapką: gdy system działa stabilnie, firma przetwarza więcej transakcji. Przy wejściu KSeF biura rachunkowe zaczęły naliczać opłaty za przetworzenie każdego dokumentu (np. ok. 0,80 zł / fakturę). Osobna faktura na każde drobne zlecenie z Trello dla stałych klientów B2B generowała niepotrzebny narzut.
Rozwiązanie wymagało zmiany architektonicznej: z paradygmatu event-driven na batch processing.
Bufor relacyjnej bazy (PostgreSQL)
Zamiast natychmiast uderzać do API wFirmy przy zamknięciu karty w Trello, zaprojektowaliśmy buforowanie stanu w bazie:
Storage (odkładanie w czasie): po zamknięciu karty n8n nadal wyciąga dane (AI), ale zamiast faktury zapisuje wiersz w tabeli PendingOrders w PostgreSQL ze statusem „Oczekuje”. Trello dostaje odpowiednią etykietę.
Zadanie cykliczne (CRON): ostatniego dnia miesiąca o 15:00 serwer uruchamia proces wsadowy.
[ sql aggregation ]
Kluczowa transformacja trafia do warstwy bazy: proste zapytanie z GROUP BY NIP agreguje setki drobnych zleceń w jednym miesiącu. Wynik to zoptymalizowany obiekt JSON na klienta B2B.
Jeden strzał do API
Po agregacji w SQL workflow wykonuje jeden strzał do API wFirmy na kontrahenta: jedna faktura zbiorcza z wieloma pozycjami (np. 20 zleceń z miesiąca). Rekordy w bazie przechodzą w status „Zafakturowane”.
Biznesowy ROI: zamiana wielu małych faktur na kilka zbiorczych mocno obniża opłaty biura za przetwarzanie dokumentów (w opisywanym układzie rząd wielkości ponad 90%). Mniej „szumu’’ w ERP i czytelniejsze raportowanie.
05 - Wnioski
Kluczowe wnioski: myślenie inżyniera procesów
Budowanie agencji automatyzacji (AIAA) i komercyjnych wdrożeń B2B zmieniło moje podejście do inżynierii. Klienci nie płacą za „czysty kod’’ ani za to, który framework jest modny - płacą za niezawodność, odzyskany czas i uszczelniony budżet.
Key takeaways
01 - Nigdy nie ufaj ślepo AI (data sanitization)
Modele LLM (Gemini, GPT-4o) świetnie czytają nieustrukturyzowany tekst, ale bywają słabe w precyzyjnej matematyce. W obiegu dokumentów finansowych AI musi być domknięte twardymi ramami walidacji w kodzie - np. weryfikacja sum w JavaScript.
02 - API to fundament, low-code to orkiestrator
Narzędzia w stylu n8n nie zastępują inżyniera - przyspieszają składanie systemów. Żeby zbudować niezawodny obieg dokumentów, nadal trzeba rozumieć kontrakty REST API, nagłówki autoryzacji, paginację i rate limiting. Gdy gotowe bloki nie starczają, potrzebny jest własny kod i SQL.
03 - Human-in-the-loop jako tarcza bezpieczeństwa
W procesach krytycznych (ERP, fakturowanie) automatyzacja nie powinna wyeliminować człowieka - ma dać mu przewagę. Dokumenty w statusie draft (szkic) skracają pracę z 15 minut do ok. 10 sekund, ale odpowiedzialność zostaje po stronie człowieka.
Refleksja końcowa: jako inżynier produktu uczę się patrzeć na system holistycznie. .NET, React, Python, SQL, n8n - to tylko narzędzia w skrzynce. Wartością jest wejście do firmy, diagnoza wąskich gardeł w przepływie danych i architektura, która pracuje (i zarabia) dla klienta 24/7.
MaDevo - aktualna oferta i kontakt na madevo.pl.