Klasyczny problem każdego BOK-u: skrzynka zbiorcza, a maile trzeba ręcznie sortować na reklamacje, zamówienia i pytania ogólne. Pokazuję gotowy przepływ w n8n, który robi to automatycznie.
Oto cały agent, którego razem zbudujemy - jeden przepływ w n8n, który czyta przychodzący mail, rozpoznaje jego typ i kieruje go we właściwe miejsce.
Z tego artykułu dowiesz się:
- Jak działa agent AI, który sam segreguje przychodzące maile
- Jak w n8n rozpoznać typ wiadomości modelem językowym (klasyfikacja)
- Jak skierować reklamacje do jednego działu, a zamówienia do drugiego
- Jak sprawić, by agent tworzył gotową wersję roboczą odpowiedzi u właściwej osoby
- Co zrobić, gdy AI nie wie - jak bezpiecznie przekazać sprawę do eksperta
Skrzynka działu obsługi to zwykle jeden wielki kosz, do którego wpada wszystko naraz: reklamacje, pytania o zamówienia, faktury, prośby o ofertę i sprawy, które trudno od razu przypisać. Ktoś musi to codziennie ręcznie przeglądać i rozdzielać. W tym artykule pokażemy, jak tę robotę przejmie agent AI zbudowany w n8n - przeczyta każdą wiadomość, rozpozna, o co chodzi, i sam skieruje ją tam, gdzie trzeba.
Co ważne, nasz agent nie wysyła nic za plecami człowieka. Dla reklamacji i zamówień przygotowuje gotową wersję roboczą odpowiedzi (draft) u właściwej osoby - ta tylko ją przegląda, ewentualnie poprawia i wysyła. A jeśli model nie jest pewny, do jakiej kategorii należy mail, nie zgaduje na siłę, tylko przekazuje go dalej, do eksperta. Wszystko zbudujemy klikając węzły, bez pisania kodu.
Co dokładnie robi nasz agent
Zasada jest prosta i mieści się w jednym zdaniu: przeczytaj treść, rozpoznaj typ sprawy, skieruj tam, gdzie trzeba. Na diagramie poniżej widać cały przepływ z lotu ptaka.
Przepływ agenta w ruchu: jedno wejście (mail), jedna decyzja (klasyfikacja AI) i trzy możliwe drogi - reklamacja, zamówienie albo przekazanie do eksperta.
Agent ma trzy możliwe drogi:
- Reklamacja - klient skarży się na produkt lub usługę, chce wymiany, zwrotu albo naprawy. Agent pisze empatyczną odpowiedź i zostawia ją jako wersję roboczą u działu reklamacji.
- Zamówienie - pytanie o status, dostawę, fakturę albo chęć złożenia zamówienia. Agent przygotowuje rzeczową odpowiedź jako wersję roboczą u działu zamówień.
- Nie wiem - treść nie pasuje jednoznacznie do żadnej kategorii. Zamiast zgadywać, agent przekazuje maila do eksperta, który zdecyduje, co dalej.
Czego potrzebujesz, żeby to powtórzyć:
- n8n - narzędzie, w którym budujemy przepływ (open-source). Najprościej i najszybciej zacząć w n8n Cloud - konto gotowe w kilka minut, nic nie instalujesz. Możesz też postawić n8n na własnym serwerze (tu pokazujemy instalację krok po kroku).
- Model językowy - „mózg", który czyta i klasyfikuje treść (np. OpenAI albo lokalny model przez Ollama).
- Skrzynka pocztowa - Gmail lub dowolny serwer IMAP, z którego agent czyta maile i w którym tworzy wersje robocze.
Krok 1: wiadomość do obsłużenia
Każdy przepływ w n8n musi się od czegoś zacząć. Na produkcji wyzwalaczem jest nowy mail - węzeł „Gmail Trigger" albo „Email Trigger (IMAP)", który sam odpala przepływ, gdy do skrzynki wpadnie wiadomość. Najpierw pokażemy ten wyzwalacz na prawdziwej skrzynce, a potem - żeby wygodnie przetestować resztę - podłożymy przykładową wiadomość.
Wariant produkcyjny: wyzwalacz na prawdziwej skrzynce
a) Dodaj wyzwalacz poczty. Na pustej kanwie klikamy duży kafelek „Add first step" (znak „+") - otwiera się panel wyzwalaczy. W polu wyszukiwania wpisujemy „Email Trigger" i wybieramy: dla dowolnego serwera poczty uniwersalny „Email Trigger (IMAP)", a dla Gmaila dedykowany „Gmail Trigger".
Dodanie wyzwalacza od zera - kolejne ekrany w pętli
Krok 1 (produkcja) - panel wyzwalaczy z bliska: wyszukujemy „Email Trigger (IMAP)" (uniwersalny) albo „Gmail Trigger".
b) Otwórz edytor poświadczenia. Zaraz po dodaniu węzła (krok a) otwiera się jego panel z ustawieniami - a jeśli go zamknąłeś, wejdziesz w węzeł ponownie dwuklikiem na nim na kanwie. To właśnie w tym panelu, przy polu „Credential", na starcie widnieje „No credentials yet". Klikamy obok przycisk „Set up credential" - to on otwiera edytor, w którym wpisujemy dane logowania do skrzynki (przy kolejnych węzłach Gmail wybierzemy to poświadczenie już z listy, bez ponownego wpisywania).
Krok 1 (produkcja) - punkt wejścia: przy polu „Credential" klikamy „Set up credential", żeby otworzyć edytor poświadczenia.
c) Wpisz dane skrzynki. W edytorze poświadczenia podajemy dane konta pocztowego:
-
User - adres skrzynki, np.
powiadomienia@jsystems.pl; - Password - hasło konta pocztowego (dla Gmaila/Workspace: hasło aplikacji);
-
Host - serwer IMAP, np.
imap.gmail.com; -
Port - zwykle
993; - SSL/TLS - włączone (szyfrowane połączenie).
Hasło pozostaje ukryte, a n8n trzyma je zaszyfrowane w osobnym poświadczeniu - nie widać go ani w węźle, ani w przepływie.
Krok 1 (produkcja) - edytor poświadczenia z wprowadzonymi danymi: użytkownik, hasło (zamaskowane), serwer (host), port i włączone SSL/TLS.
d) Wskaż skrzynkę, akcję i format danych. Po zapisaniu poświadczenia wracamy do węzła: wybieramy je z listy „Credential" i ustawiamy folder do nasłuchu (pole „Mailbox Name", zwykle INBOX). W polu „Action" decydujemy, co n8n zrobi z pobraną wiadomością: „Mark as Read" oznaczy ją jako przeczytaną (dzięki temu nie trafi do przepływu drugi raz), a „Nothing" zostawi ją bez zmian - w tym demo użyliśmy „Nothing", żeby nie ruszać stanu skrzynki. Na koniec - to ważne - w polu „Format" zmieniamy domyślne „Simple" na „Resolved". Dzięki temu na wyjściu dostaniemy gotowe, rozłożone pola (temat, nadawca, treść), a nie surowy obiekt wiadomości - i kolejne węzły łatwo się nimi posłużą.
Krok 1 (produkcja) - Email Trigger (IMAP) z podpiętym poświadczeniem, folderem INBOX i formatem „Resolved". Dane logowania siedzą w poświadczeniu, nie w samym węźle.
Uwaga: pole „Custom Email Rules" widoczne na zrzutach to opcjonalny filtr (dodawany, jak inne opcje, przez „Add Option" w sekcji „Options"). Dorzuciliśmy go tylko na potrzeby tego demo, żeby wyzwalacz złapał jedną konkretną testową wiadomość po temacie. U siebie możesz go pominąć - bez niego wyzwalacz reaguje po prostu na każdy nowy mail w skrzynce.
e) Sprawdź, że naprawdę działa. Klikamy „Execute step" - węzeł łączy się ze skrzynką i realnie pobiera wiadomość. Na wyjściu dostajemy pełną treść maila (nadawca, temat, treść), gotową do dalszej obróbki.
Wskazówka: wyzwalacz pobiera tylko to, co realnie jest w skrzynce. Zanim klikniesz „Execute step", wyślij na ten adres testowego maila (np. z innej skrzynki) - inaczej węzeł nie ma czego pobrać i test się nie zakończy. To nie błąd konfiguracji, po prostu nie ma nowej wiadomości.
Krok 1 (produkcja) - wyzwalacz uruchomiony na żywo: n8n naprawdę pobrał wiadomość ze skrzynki (temat, nadawca i treść widoczne po prawej). Fragment nagłówka z adresem IP nadawcy celowo zamazaliśmy.
Wskazówka: „Gmail Trigger" łączy się z Gmailem przez Google (OAuth) i jest najwygodniejszy dla kont Gmail/Workspace; „Email Trigger (IMAP)" działa z dowolnym serwerem pocztowym (host, użytkownik, hasło). Logika za wyzwalaczem jest identyczna - obie wersje przekazują dalej te same pola: nadawcę, temat i treść.
Wariant do nauki: przykładowy mail
Żeby wygodnie przetestować resztę przepływu bez czekania na prawdziwe wiadomości, na czas nauki podłożymy agentowi przykładowy mail węzłem „Edit Fields" (Ustaw pola). Zbudujmy ten węzeł krok po kroku.
1. Dodaj węzeł. Na kanwie klikamy przycisk „+" (w prawym górnym rogu albo na wyjściu poprzedniego węzła) - otwiera się panel dodawania węzłów. W polu wyszukiwania wpisujemy Edit Fields i wybieramy „Edit Fields (Set)".
Krok 1a - panel dodawania węzła. Wpisujemy „Edit Fields" i klikamy wynik „Edit Fields (Set)". Dokładnie tak dodajemy każdy kolejny węzeł: „+", wpisz nazwę, kliknij wynik.
2. Wybierz tryb. W środkowym panelu, w polu „Mode", zostawiamy Manual Mapping (ręczne mapowanie), a sekcja „Fields to Set" - czyli pola, które węzeł ma ustawić - jest jeszcze pusta, więc klikamy „Add Field". Lewy panel „Input" może być pusty albo pokazywać dane z poprzedniego węzła (np. wiadomość z wyzwalacza) - to normalne; konfigurujemy tu wyłącznie środek, czyli pola do ustawienia.
Krok 1b - świeżo dodany węzeł Edit Fields w trybie Manual Mapping. Pole „Fields to Set" jest jeszcze puste; pola dodajemy przyciskiem „Add Field".
3. Dodaj pierwsze pole. Klikamy „Add Field", zostawiamy typ String, wpisujemy nazwę from i wartość - adres nadawcy (np. anna.kowalska@example.com).
Krok 1c - pierwsze pole „from" (nadawca). Kolejne pola dodajemy tym samym przyciskiem „Add Field".
4. Dodaj pozostałe dwa pola. Tak samo dodajemy subject (temat) i body (treść). W każde wpisujemy przykładową wartość - tak, jakby to była prawdziwa reklamacja uszkodzonego laptopa.
Krok 1d - komplet trzech pól: nadawca (from), temat (subject) i treść (body). To one zasilą kolejne węzły przepływu. W produkcji te same pola wypełni prawdziwy mail z Gmaila lub IMAP, a resztę przepływu zostawiasz bez zmian.
5. Uruchom węzeł i zobacz dane. Klikamy „Execute step". Węzeł wykonuje się i po prawej, w panelu „Output", pojawia się gotowy element z trzema polami: from, subject i body. To dokładnie te dane, które popłyną dalej - do klasyfikatora i agentów.
Krok 1e - węzeł uruchomiony: w panelu „Output" widać jeden element z polami from, subject i body. Tak wygląda „mail", który dostaną kolejne węzły przepływu.
Operacja „Ustawienie przykładowego maila" - kolejne ekrany w pętli
Wskazówka: dzięki temu, że na początku używamy przykładowego maila, każdy kolejny krok przetestujesz na żywo jednym kliknięciem. Gdy wszystko działa, podmieniasz pierwszy węzeł na Gmail/IMAP Trigger - cała logika za nim zostaje nietknięta.
Krok 2: AI rozpoznaje treść (klasyfikacja)
To serce całego agenta. Węzeł Text Classifier, korzystając z modelu językowego, czyta treść maila i przypisuje go do jednej z kategorii. Zbudujmy go krok po kroku.
1. Dodaj węzeł Text Classifier. Klikamy „+", wpisujemy Text Classifier i wybieramy węzeł z rodziny AI.
Krok 2a - w panelu „+" wyszukujemy „Text Classifier".
2. Otwórz świeży węzeł. Zaraz po dodaniu klasyfikator jest pusty - w środku nie ma jeszcze ani tekstu do analizy, ani kategorii. Po lewej, w panelu „Input", widać już wiadomość z poprzedniego węzła (pola from, subject i body) - to na niej za chwilę popracujemy.
Krok 2b - świeży klasyfikator: środek jeszcze pusty (brak tekstu i kategorii), a po lewej, w panelu „Input", widać już maila z poprzedniego węzła (from, subject, body).
3. Wskaż tekst do klasyfikacji. W polu „Text to Classify" mówimy, co model ma czytać: temat i treść wiadomości ({{ $json.subject }} oraz {{ $json.body }}).
Nie musimy wpisywać tych wyrażeń ręcznie - najwygodniej przeciągnąć pola z panelu „Input" (po lewej) prosto do pola „Text to Classify". n8n sam wstawi wtedy odpowiednie wyrażenie, np. {{ $json.subject }}.
Przeciąganie pól z „Input" do „Text to Classify" - kolejne ekrany w pętli
Krok 2c - „Text to Classify" dostaje temat i treść maila (pola wciągnięte z panelu „Input").
4. Zdefiniuj kategorie i wyjście dla niepewnych. Dodajemy dwie kategorie, każdą opisujemy jednym zdaniem - to po tych opisach model rozpoznaje, gdzie pasuje wiadomość. Im konkretniejszy opis, tym celniejsza klasyfikacja:
Kopiuj
Reklamacja - klient skarży się na produkt lub usługę: uszkodzenie, wada, chce wymiany, zwrotu albo naprawy.
Zamówienie - pytanie o zamówienie: status, dostawa, faktura, chęć złożenia lub zmiany zamówienia.
W węźle klikamy „Add Category" i dla każdej kategorii wpisujemy jej nazwę w pole „Category" (np. Reklamacja), a opis wklejamy do pola „Description". To właśnie ten opis czyta model, decydując, czy wiadomość pasuje do kategorii.
Krok 2d - rozwinięta kategoria „Reklamacja": nazwę wpisujemy w pole „Category", a opis (ten z ramki powyżej) - w pole „Description".
Zostało najważniejsze zabezpieczenie: trzecie wyjście dla wiadomości, których model nie rozpozna na pewno. Nie ma go domyślnie - trzeba je dodać. W sekcji „Options" klikamy „Add Option" i z listy wybieramy „When No Clear Match".
Krok 2e - pod „Options" klikamy „Add Option" i wybieramy „When No Clear Match" (domyślnie tej opcji nie ma - trzeba ją dodać).
Dodaną opcję ustawiamy na „Output on Extra, 'Other' Branch" - to ona tworzy osobną, trzecią gałąź „Other" dla spraw niejasnych. Druga możliwość, „Discard Item", po prostu wyrzuciłaby taką wiadomość, a my chcemy ją przekazać człowiekowi.
Krok 2f - wybieramy „Output on Extra, 'Other' Branch", żeby powstała trzecia gałąź na niepewne wiadomości.
To wszystko. Kategorie możesz zostawić rozwinięte albo zwinąć strzałką przy ich nazwie - to tylko kosmetyka i nie wpływa na działanie. Zwinięty, gotowy klasyfikator wygląda tak:
Krok 2g - gotowy klasyfikator (kategorie zwinięte dla czytelności): tekst do klasyfikacji, dwie kategorie i „When No Clear Match" ustawione na „Output on Extra, 'Other' Branch".
5. Podłącz „mózg" - model językowy. Sam klasyfikator nie myśli. U dołu jego węzła jest osobne gniazdo „Model" (z czerwoną gwiazdką - jest wymagane, dlatego węzeł ma na razie ostrzeżenie). Klikamy w nim „+", w wyszukiwarce wpisujemy OpenAI Chat Model i wybieramy ten węzeł (albo lokalny model przez Ollama, jeśli treść maili nie ma opuszczać Twojej firmy). Model podepnie się pod klasyfikator.
Krok 2h - miejsce, w które klikamy: gniazdo „Model" pod węzłem klasyfikatora (na czerwono zaznaczony przycisk „+").
Podłączenie modelu w gnieździe „Model" - kolejne ekrany w pętli
Krok 2i - model językowy podpięty jako „mózg" klasyfikatora (jego okno konfiguracji). Ten sam model wykorzystamy później do pisania odpowiedzi, więc wystarczy skonfigurować go raz.
Świeżo dodany model prosi jeszcze o jedno: poświadczenie OpenAI. W węźle „OpenAI Chat Model", przy polu „Credential", klikamy „Set up credential" i w polu „API Key" wklejamy swój klucz API OpenAI (wygenerujesz go w panelu OpenAI, w sekcji „API keys"). To jednorazowe - potem model jest gotowy do pracy.
Krok 2j - edytor poświadczenia OpenAI: w pole „API Key" wklejamy klucz z panelu OpenAI (jest ukryty). To właśnie tym kluczem model łączy się z chmurą OpenAI.
Uwaga: dopóki model nie jest podłączony i skonfigurowany (z działającym kluczem), klasyfikator pokazuje ostrzeżenie „A Model sub-node must be connected and enabled". To nie błąd konfiguracji - znika po podpięciu działającego modelu. Jeśli mimo prawidłowego podpięcia komunikat nadal się wyświetla, odśwież stronę z kanwą (F5) - po przeładowaniu zniknie.
Jeśli po „Execute workflow" zobaczysz błąd „Problem in node 'Text Classifier' - Model output doesn't fit required format" - to znaczy, że model odpowiedział w formacie, którego klasyfikator nie potrafił dopasować do żadnej kategorii (zdarza się losowo, częściej przy słabszych modelach). Rozwiązanie: w węźle klasyfikatora otwórz sekcję „Options", kliknij „Add Option" i włącz „Enable Auto-Fixing" (ta sama lista opcji, w której dodawaliśmy „When no clear match") - n8n ponowi wtedy zapytanie i naprawi odpowiedź modelu tak, żeby pasowała do formatu. Upewnij się też, że wybrany jest sprawny model (np. gpt-4o-mini). Zwykle to wystarcza; pojedynczy błąd bywa też przejściowy - wtedy pomaga samo ponowne „Execute workflow".
Operacja „Klasyfikacja" - kolejne ekrany w pętli
Krok 3: gałąź „reklamacja" - wersja robocza odpowiedzi
Klasyfikator ma teraz trzy wyjścia. Z pierwszego, „Reklamacja", wiadomość trafi do węzła AI Agent, który napisze odpowiedź, a gotowy tekst wyląduje jako wersja robocza w skrzynce działu. Budujemy to dwoma węzłami.
1. Dodaj węzeł AI Agent. Na wyjściu „Reklamacja" klikamy „+", wpisujemy AI Agent i wybieramy węzeł agenta.
Krok 3a - w panelu „+" wyszukujemy „AI Agent".
2. Otwórz świeży węzeł. Świeżo dodany agent ma w polu „Source for Prompt (User Message)" zwykle domyślnie „Connected Chat Trigger Node" - a nasz przepływ nie ma czatu, więc zmieniamy tę opcję na „Define below" (zdefiniuj poniżej). Dopiero wtedy pojawia się pole na własny prompt (na razie puste).
Krok 3b - świeży AI Agent: prompt jeszcze pusty, źródło promptu ustawione na „Define below".
3. Wpisz instrukcję (prompt). Cały sekret tkwi w instrukcji - mówimy agentowi, kim jest i jak ma odpowiedzieć. Treść maila podstawia się automatycznie wyrażeniami w nawiasach klamrowych:
Kopiuj
Jesteś konsultantem działu reklamacji. Napisz uprzejmą, empatyczną odpowiedź na poniższą reklamację klienta. Przeproś za sytuację, zaproponuj konkretne rozwiązanie (wymiana/zwrot) i poproś o brakujące dane, jeśli trzeba. Nie obiecuj rzeczy niepewnych.
Od: {{ $json.from }}
Temat: {{ $json.subject }}
Treść: {{ $json.body }}
Krok 3c - agent odpowiadający na reklamacje. W prompcie nadajemy mu rolę (konsultant działu reklamacji) i zasady; treść maila podstawia się automatycznie.
4. Dodaj węzeł Gmail i wybierz „wersję roboczą". Na wyjściu agenta klikamy „+", wyszukujemy Gmail i klikamy go. n8n pokazuje wtedy listę akcji tego węzła - wybieramy z niej „Create a draft" (utworzenie wersji roboczej). Najszybciej znaleźć ją, wpisując „draft" w wyszukiwarce akcji.
Krok 3d - w panelu „+" wyszukujemy „Gmail".
Krok 3e - w liście akcji Gmail wybieramy „Create a draft". Po wpisaniu „draft" w wyszukiwarce akcji zostają same akcje wersji roboczych.
5. Skonfiguruj wersję roboczą. Świeży węzeł Gmail najpierw wymaga jednorazowego podłączenia konta - ale przez OAuth (inaczej niż wyzwalacz IMAP w kroku 1, gdzie podawaliśmy login i hasło). W węźle, przy polu „Credential", klikamy „Set up credential" - otwiera się edytor poświadczenia „Gmail OAuth2 API".
Krok 3f - świeży węzeł Gmail w trybie „Draft". Komunikat o koncie przypomina, że trzeba raz podłączyć skrzynkę - po podpięciu znika.
W edytorze widać wybraną metodę „OAuth2 (recommended)". Dalsze kroki zależą od tego, gdzie działa Twój n8n:
- n8n w chmurze - najprościej: klikasz od razu „Sign in with Google", logujesz się na konto Gmail/Workspace i potwierdzasz zgody. To wszystko - Client ID ani Secret nie są potrzebne.
- n8n na własnym serwerze - raz zakładasz w Google Cloud Console klienta OAuth 2.0, przeklejasz stamtąd Client ID i Client Secret, a pokazany w n8n „OAuth Redirect URL" wpisujesz w Google Cloud jako dozwolony adres przekierowania. Dopiero potem klikasz „Sign in with Google" - wszystko krok po kroku pokazujemy niżej.
Krok 3g - edytor poświadczenia „Gmail OAuth2 API". W chmurze wystarczy „Sign in with Google"; na własnym serwerze wklejasz Client ID i Client Secret z Google Cloud, a n8n podaje adres przekierowania OAuth. Client Secret jest ukryty i przechowywany w postaci zaszyfrowanej.
Klient OAuth w Google Cloud (tylko własny serwer). Gdy n8n stoi na Twoim serwerze, klienta OAuth zakładasz raz w Google Cloud Console. Ze strony głównej wejdź w „APIs & Services", po lewej otwórz „Credentials", kliknij „Create credentials" i wybierz „OAuth client ID" (w części kont Google przenosi to na ekran „Google Auth Platform" z sekcją „Clients" - to ten sam kreator).
Krok 3h - wejście: w Google Cloud Console otwieramy „APIs & Services", sekcję „Credentials", klikamy „Create credentials" i wybieramy „OAuth client ID".
Jako „Application type" wybierz „Web application", a w polu „Authorized redirect URIs" wklej adres „OAuth Redirect URL" skopiowany z n8n (ten z poprzedniego zrzutu). Po kliknięciu „Create" Google pokaże Client ID i Client Secret - te dwie wartości wklejasz z powrotem do poświadczenia w n8n.
Krok 3i - tworzenie klienta OAuth „Web application" w Google Cloud Console (tylko przy n8n na własnym serwerze). Adres z pola n8n „OAuth Redirect URL" wklejasz w „Authorized redirect URIs"; po „Create" Google zwróci Client ID i Client Secret do wklejenia w n8n.
Po podłączeniu konta komunikat o poświadczeniu znika, a samo poświadczenie zostaje na liście „Credential" (przy kolejnych węzłach Gmail wybierzesz je wprost, bez ponownego logowania). Teraz - jak zapowiadaliśmy - jako treść wersji roboczej wstawiamy odpowiedź agenta, a temat i skrzynkę działu uzupełniamy jak w zwykłym mailu.
Krok 3j - gotowa wersja robocza (draft) trafia do skrzynki działu reklamacji. Człowiek tylko ją przegląda i wysyła.
Operacja „Gałąź reklamacja" - kolejne ekrany w pętli
Krok 4: gałąź „zamówienie" - druga wersja robocza, inny dział
Druga gałąź działa bliźniaczo: te same dwa węzły co przy reklamacjach (AI Agent + Gmail), tylko inny dział i inny ton. Dodajemy je dokładnie tak samo jak w kroku 3 - „+", „AI Agent", a potem „+", „Gmail".
1. Dodaj agenta i wpisz prompt dla zamówień. Z wyjścia „Zamówienie" dodajemy osobny węzeł AI Agent. Świeży agent ma pusty prompt - wklejamy instrukcję dopasowaną do obsługi zamówień:
Kopiuj
Jesteś konsultantem działu zamówień. Napisz rzeczową, miłą odpowiedź na poniższą wiadomość dotyczącą zamówienia. Podaj następne kroki (np. status, termin dostawy) i poproś o numer zamówienia, jeśli go brakuje.
Od: {{ $json.from }}
Temat: {{ $json.subject }}
Treść: {{ $json.body }}
Krok 4a - świeży agent gałęzi „zamówienie", jeszcze bez promptu.
Krok 4b - agent obsługujący zamówienia: inna rola, inny ton, ale dokładnie ten sam schemat co przy reklamacjach.
2. Dodaj wersję roboczą w skrzynce działu zamówień. Odpowiedź agenta zapisujemy jako wersję roboczą - tym razem w skrzynce działu zamówień. To właśnie tu „reklamację do jednego, zamówienie do drugiego" zamienia się w konkret: dwie gałęzie, dwie różne osoby, dwie różne skrzynki.
Krok 4c - świeży węzeł Gmail (Draft) drugiej gałęzi, przed podłączeniem konta działu zamówień.
Krok 4d - wersja robocza odpowiedzi na zamówienie trafia do działu zamówień, niezależnie od ścieżki reklamacyjnej.
Operacja „Gałąź zamówienie" - kolejne ekrany w pętli
Krok 5: gałąź „nie wiem" - przekazanie do eksperta
Najważniejsza - i najczęściej pomijana - część dobrego agenta to obsługa przypadków, których nie da się jednoznacznie przypisać. Dzięki ustawieniu „Output on Extra, 'Other' Branch" z kroku 2 klasyfikator ma trzecie wyjście, „Other". Trafiają tu maile, których model nie zaklasyfikował z pewnością. Zamiast zgadywać, po prostu przekazujemy je do eksperta - jednym węzłem Gmail. To proste zabezpieczenie sprawia, że agent jest godny zaufania: lepiej oddać trudną sprawę człowiekowi, niż udzielić błędnej automatycznej odpowiedzi.
1. Dodaj węzeł Gmail. Na wyjściu „Other" klikamy „+", wyszukujemy Gmail i dodajemy węzeł - dokładnie jak w krokach 3-4.
Krok 5a - w panelu „+" wyszukujemy „Gmail".
2. Ustaw wysyłkę do eksperta. W świeżym węźle wybieramy zasób „Message" i operację „Send" (wyślij). W polu „To" wpisujemy adres eksperta, a w treści przekazujemy oryginalną wiadomość - z adnotacją, że wymaga ludzkiej decyzji. Treść możemy złożyć z wyrażeń dynamicznych (składnia {{ }}), żeby wciągnąć temat i treść oryginalnego maila wprost z poprzednich węzłów - jak one działają, opisujemy w artykule o n8n, w sekcji o wyrażeniach dynamicznych. Przykład takiej treści widać na zrzucie poniżej.
Krok 5b - świeży węzeł Gmail w trybie wysyłki (zasób „Message", operacja „Send"), przed uzupełnieniem adresu i treści.
Krok 5c - gotowy węzeł: gdy AI nie jest pewne, mail trafia do eksperta. Agent nigdy nie udaje, że wie - to klucz do zaufania.
Operacja „Przekazanie do eksperta" - kolejne ekrany w pętli
Z testu na produkcję
Gdy całość działa na przykładowym mailu, zostają trzy rzeczy, by wpuścić agenta do prawdziwej skrzynki:
- Podmień wyzwalacz - w miejsce węzła z przykładowym mailem wstaw „Gmail Trigger" albo „Email Trigger (IMAP)". Reszta przepływu zostaje bez zmian, bo każda gałąź czyta te same pola (nadawca, temat, treść).
- Podłącz konta - węzły Gmail (wersje robocze i przekazanie) wymagają jednorazowego podłączenia skrzynki. Możesz wskazać różne konta dla różnych działów.
- Dobierz model - dla danych wrażliwych rozważ lokalny model przez Ollama, żeby treść maili nie opuszczała Twojej infrastruktury.
Uwaga: zostaw agentowi „bezpiecznik" w postaci gałęzi dla niepewnych przypadków i trzymaj człowieka w pętli (wersje robocze zamiast automatycznej wysyłki). To różnica między pomocnym asystentem a generatorem kłopotów.
Naucz się budować takich agentów
Pokazaliśmy szkielet, który możesz dowolnie rozbudowywać: dorzucić zapis sprawy do bazy lub CRM, powiadomienie na Slacku, ocenę pilności czy automatyczne tagowanie. Jeśli chcesz nauczyć się budować takie przepływy od podstaw - od pierwszego węzła po agentów AI z narzędziami i pamięcią - zapraszamy na nasze praktyczne szkolenie.
Chcesz budować takich agentów AI w swojej firmie?
Na szkoleniu n8n + AI krok po kroku stawiasz własne przepływy i agentów - od integracji ze skrzynką i bazą danych po automatyczne odpowiedzi z modelem językowym. Pracujesz na realnym serwerze, na własnych przykładach.
Szkolenie ma termin gwarantowany - odbędzie się na pewno, niezależnie od liczby zapisanych uczestników.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5















































Top comments (0)