Blog JSystems - uwalniamy wiedzę!

Szukaj
Gotowy przepływ w n8n: agent AI czyta maila, klasyfikuje go i kieruje do działu reklamacji, zamówień albo do eksperta
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.

Animowany schemat przepływu agenta: nowy mail trafia do AI, która klasyfikuje go jako reklamację, zamówienie albo „nie wiem”, i kieruje do odpowiedniej akcji
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
Animacja w n8n: pusta kanwa, kliknięcie Add first step, wyszukanie i wybór wyzwalacza Email Trigger (IMAP)
Panel dodawania węzła w n8n z wynikami Email Trigger (IMAP) i Gmail dla wyszukanej frazy Email Trigger
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).

Węzeł Email Trigger (IMAP) w n8n - pole Credential z napisem No credentials yet i przyciskiem Set up credential
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.

Edytor poświadczenia IMAP w n8n z wprowadzonymi danymi - User powiadomienia@jsystems.pl, Password ukryte kropkami, Host imap.gmail.com, Port 993 oraz przełącznik SSL/TLS
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żą.

Skonfigurowany węzeł Email Trigger (IMAP) w n8n z podpiętym poświadczeniem powiadomienia@jsystems.pl, folder INBOX, format Resolved
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.
Uruchomiony na żywo Email Trigger (IMAP) w n8n - w panelu wyjścia pobrany prawdziwy mail: temat Reklamacja uszkodzony laptop, nadawca i treść 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)".

Panel dodawania węzła w n8n z wpisaną frazą Edit Fields i wynikiem 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.

Świeżo dodany węzeł Edit Fields w n8n - tryb Manual Mapping i puste pole Fields to Set z przyciskiem Add Field
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).

Węzeł Edit Fields w n8n z jednym polem from i adresem nadawcy
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.

Węzeł Edit Fields w n8n z trzema polami from, subject i body wypełnionymi treścią przykładowej reklamacji
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.

Węzeł Edit Fields w n8n po Execute step - panel Output z jednym elementem: kolumny from, subject i body wypełnione danymi przykładowej reklamacji
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
Animacja: budowa węzła Edit Fields w n8n krok po kroku - od pustego pola po trzy uzupełnione pola przykładowego maila
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.

Panel dodawania węzła w n8n z wpisaną frazą Text Classifier i wynikiem Text Classifier
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.

Węzeł Text Classifier w n8n - w środku puste Text to Classify i brak kategorii, a po lewej w panelu Input dane z poprzedniego węzła: from, subject, body
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
Animacja w n8n: przeciąganie pól subject i body z panelu Input do pola Text to Classify - wstawiają się wyrażenia json
Węzeł Text Classifier w n8n z polem Text to Classify wypełnionym wyrażeniami subject i body
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:

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.

Rozwinięta kategoria Reklamacja w węźle Text Classifier w n8n - pole Category z nazwą kategorii i pole Description z jej opisem
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".

Menu Add Option w węźle Text Classifier w n8n z pozycją When No Clear Match do wyboru
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.

Rozwinięta lista wartości When No Clear Match w n8n: Discard Item oraz Output on Extra Other Branch
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:

Węzeł Text Classifier w n8n - tekst do klasyfikacji, dwie kategorie zwinięte oraz When No Clear Match ustawione na Output on Extra Other Branch
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.

Kanwa n8n: pod węzłem klasyfikatora gniazdo Model z zaznaczonym na czerwono przyciskiem plus i podpisem Kliknij tutaj
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
Animacja w n8n: kliknięcie plusa w gnieździe Model pod klasyfikatorem, wybór OpenAI Chat Model i podłączenie go do węzła
Węzeł modelu językowego OpenAI w n8n podłączony do klasyfikatora - wybór modelu i dane uwierzytelniające
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.

Edytor poświadczenia OpenAI w n8n z polem API Key ukrytym kropkami, Organization ID i Base URL https://api.openai.com/v1
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
Animacja: konfiguracja węzła Text Classifier i podpiętego modelu językowego w n8n

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.

Panel dodawania węzła w n8n z wpisaną frazą AI Agent i wynikiem AI Agent
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).

Świeżo dodany węzeł AI Agent w n8n z pustym promptem i źródłem promptu Define below
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:

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 }}
Węzeł AI Agent w n8n z promptem do napisania odpowiedzi na reklamację
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.

Panel dodawania węzła w n8n z wpisaną frazą Gmail i wynikiem Gmail
Krok 3d - w panelu „+" wyszukujemy „Gmail".
Lista akcji węzła Gmail w n8n przefiltrowana frazą draft, z zaznaczoną akcją Create a draft
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".

Świeżo dodany węzeł Gmail w n8n w trybie tworzenia wersji roboczej, przed podłączeniem konta
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.
Edytor poświadczenia Gmail OAuth2 API w n8n - metoda OAuth2 recommended, OAuth Redirect URL, przykładowe Client ID, ukryty Client Secret i przycisk Sign in with Google
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).

Menu Create credentials w Google Cloud Console (APIs and Services, sekcja Credentials) z zaznaczoną pozycją OAuth client ID
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.

Formularz tworzenia klienta OAuth Web application w Google Cloud Console z adresem przekierowania n8n wklejonym w polu Authorized redirect URIs
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.

Węzeł Gmail w n8n w trybie tworzenia wersji roboczej odpowiedzi na reklamację
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
Animacja: agent piszący odpowiedź na reklamację i węzeł Gmail tworzący wersję roboczą

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ń:

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 }}
Świeżo dodany węzeł AI Agent gałęzi zamówień w n8n z pustym promptem
Krok 4a - świeży agent gałęzi „zamówienie", jeszcze bez promptu.
Węzeł AI Agent w n8n z promptem do odpowiedzi na zamówienie
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.

Świeżo dodany węzeł Gmail gałęzi zamówień w n8n w trybie tworzenia wersji roboczej
Krok 4c - świeży węzeł Gmail (Draft) drugiej gałęzi, przed podłączeniem konta działu zamówień.
Węzeł Gmail w n8n tworzący wersję roboczą odpowiedzi na zamówienie
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
Animacja: agent piszący odpowiedź na zamówienie i węzeł Gmail tworzący wersję roboczą

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.

Panel dodawania węzła w n8n z wpisaną frazą Gmail i wynikiem Gmail
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.

Świeżo dodany węzeł Gmail w n8n w trybie wysyłki wiadomości, przed uzupełnieniem adresu i treści
Krok 5b - świeży węzeł Gmail w trybie wysyłki (zasób „Message", operacja „Send"), przed uzupełnieniem adresu i treści.
Węzeł Gmail w n8n przekazujący niezaklasyfikowanego maila do eksperta
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
Animacja: dodanie i konfiguracja węzła Gmail przekazującego niezaklasyfikowaną wiadomość do eksperta

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.

Najczęściej zadawane pytania

Czym jest agent AI rozdzielający maile?

To przepływ (workflow) w n8n, który dla każdej przychodzącej wiadomości czyta jej treść modelem językowym, rozpoznaje typ sprawy (reklamacja, zamówienie albo coś innego) i kieruje ją tam, gdzie trzeba: tworzy gotową wersję roboczą odpowiedzi u właściwej osoby, a sprawy niejasne przekazuje do eksperta.

Czy agent wysyła maile sam, bez kontroli człowieka?

Nie musi. W naszym przepływie agent tworzy wersję roboczą (draft) odpowiedzi w skrzynce właściwej osoby. Człowiek ją tylko przegląda, ewentualnie poprawia i wysyła. To bezpieczny wzorzec: AI wykonuje większość pracy, a decyzja zostaje po stronie człowieka.

Co się dzieje, gdy AI nie wie, jak zaklasyfikować maila?

Klasyfikator ma osobne wyjście dla przypadków bez pewnej kategorii. Taka wiadomość nie jest zgadywana na siłę - trafia (forward) do wyznaczonej osoby albo eksperta, który zdecyduje, co dalej.

Jakich narzędzi potrzebuję, żeby to zbudować?

Potrzebujesz n8n (open-source, można uruchomić na własnym serwerze albo w chmurze), konta skrzynki pocztowej (Gmail lub dowolny IMAP) oraz dostępu do modelu językowego (np. OpenAI albo lokalny model przez Ollama). Całość buduje się klikając węzły, bez pisania kodu.

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 n8n + AI - sztuczna inteligencja w automatyzacji firmy, JSystems Szkolenie n8n + AI -->
Szkolenie ma termin gwarantowany - odbędzie się na pewno, niezależnie od liczby zapisanych uczestników.

Najczęściej zadawane pytania

Czym jest agent AI rozdzielający maile?
To przepływ (workflow) w n8n, który dla każdej przychodzącej wiadomości czyta jej treść modelem językowym, rozpoznaje typ sprawy (reklamacja, zamówienie albo coś innego) i kieruje ją tam, gdzie trzeba: tworzy gotową wersję roboczą odpowiedzi u właściwej osoby, a sprawy niejasne przekazuje do eksperta.
Czy agent wysyła maile sam, bez kontroli człowieka?
Nie musi. W naszym przepływie agent tworzy wersję roboczą (draft) odpowiedzi w skrzynce właściwej osoby. Człowiek ją tylko przegląda, ewentualnie poprawia i wysyła. To bezpieczny wzorzec: AI wykonuje większość pracy, a decyzja zostaje po stronie człowieka.
Co się dzieje, gdy AI nie wie, jak zaklasyfikować maila?
Klasyfikator ma osobne wyjście dla przypadków bez pewnej kategorii. Taka wiadomość nie jest zgadywana na siłę - trafia (forward) do wyznaczonej osoby albo eksperta, który zdecyduje, co dalej.
Jakich narzędzi potrzebuję, żeby to zbudować?
n8n (open-source, można uruchomić na własnym serwerze albo w chmurze), konto skrzynki pocztowej (Gmail lub dowolny IMAP) oraz dostęp do modelu językowego (np. OpenAI albo lokalny model przez Ollama). Całość buduje się klikając węzły, bez pisania kodu.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...