Co potrzebujesz przed startem

Zanim zaczniesz budować cokolwiek w n8n, potrzebujesz czterech rzeczy. Po pierwsze, konto Google Cloud z włączonym Gmail API (potrzebne do OAuth 2.0). Po drugie, instancję n8n, albo self-hosted na VPS za 50-80 zł miesięcznie, albo n8n Cloud od 20 euro. Po trzecie, dostęp do waszego ERP jeśli odpowiedzi mają zawierać dane z systemu. I po czwarte, historię maili z ostatnich minimum 2-3 miesięcy, żeby zbudować sensowny klasyfikator.

Jeśli nie masz Google Workspace tylko zwykłego Gmaila, też zadziała. Różnica jest taka że przy Workspace masz większe limity API (co ważne przy setkach maili dziennie).

Nie potrzebujesz umieć programować. n8n jest wizualny. Jeśli umiesz skonfigurować regułę w Outlooku, ogarniesz podstawy n8n w kilka dni. Bardziej zaawansowane rzeczy, jak własne węzły w JavaScripcie, mogą poczekać.

Krok 1: Podpięcie Gmail API do n8n

To jest najbardziej techniczny krok w całym procesie, głównie dlatego że Google Cloud Console nie jest zaprojektowane z myślą o przyjemności użytkownika. Potrzebujesz projektu w Google Cloud, włączonego Gmail API, i credentials OAuth 2.0.

W n8n dodajesz węzeł Gmail Trigger. Wybierasz "Polling" (sprawdza skrzynkę co minutę) albo "Webhook" (Gmail push notification, szybsze ale trudniejsze do skonfigurowania). Dla większości firm Polling w zupełności wystarczy. Ustawiasz interwał na 1 minutę.

Uwierzytelnianie: wybierasz OAuth2, podajesz Client ID i Client Secret z Google Cloud. Przy pierwszym połączeniu n8n przekieruje Cię do Google po autoryzację. Po autoryzacji węzeł działa.

Na tym etapie polecam dodać filtr który ignoruje maile wysłane przez was (automatyczne odpowiedzi nie powinny generować pętli), maile oznaczone jako spam, i maile od konkretnych nadawców których nie chcemy automatyzować (np. klientów VIP). To prosty węzeł IF w n8n.

Krok 2: Budowa klasyfikatora maili

Klasyfikator to serce automatyzacji. To on decyduje czy mail dostaje automatyczną odpowiedź, czy trafia do konkretnej osoby, czy ląduje w kolejce do ręcznego przejrzenia.

W n8n używasz węzła AI (OpenAI, Anthropic, albo lokalnego modelu przez Ollama). Treść maila (temat + body) trafia do modelu razem z promptem który definiuje kategorie. Przykładowy prompt który działa od miesięcy:

Jesteś klasyfikatorem maili dla polskiej firmy. Przeczytaj poniższego maila i przypisz JEDNĄ kategorię:
- STATUS: klient pyta o status zamówienia lub faktury
- DOKUMENT: klient prosi o fakturę, duplikat, potwierdzenie
- TECHNICZNY: problem techniczny, awaria, reklamacja
- OFERTA: zapytanie o cenę, ofertę, dostępność
- INNE: nie pasuje do powyższych
Zwróć TYLKO nazwę kategorii i poziom pewności (WYSOKI/ŚREDNI/NISKI).

Dla kategorii z poziomem pewności NISKI, mail automatycznie trafia do ręcznej kolejki. Nie ma sensu ryzykować błędnej automatycznej odpowiedzi.

Kluczowa rzecz o której dowiedziałem się po kilku wdrożeniach: nie używaj jednego ogólnego promptu. Stwórz osobny prompt dla każdej kategorii i uruchamiaj go tylko jeśli mail pasuje do danej kategorii. Jeden duży prompt ze wszystkimi kategoriami jest mniej dokładny. Dwa albo trzy mniejsze prompty uruchamiane sekwencyjnie dają lepsze wyniki.

Krok 3: Automatyczne odpowiedzi z danymi z systemu

Gdy klasyfikator oznaczy mail jako STATUS, węzeł HTTP w n8n odpytuje wasze ERP (np. Subiekt GT, Enova) przez API. Pobierasz status zamówienia po numerze, który klasyfikator wyciągnął z treści maila.

Dane z ERP trafiają do kolejnego węzła AI, tym razem z promptem do generowania odpowiedzi:

Wygeneruj odpowiedź mailową do klienta na podstawie danych:
- Nazwa klienta: [nazwa]
- Numer zamówienia: [numer]
- Status: [status]
- Przewidywana data dostawy: [data]

Odpowiedź ma być w języku polskim, profesjonalna ale nie korporacyjna, maksymalnie 4 zdania. Podpisz jako [imię osoby z działu obsługi].

Wygenerowana odpowiedź trafia do węzła Gmail (Send) i wychodzi do klienta. Całość od momentu otrzymania maila do wysłania odpowiedzi trwa zazwyczaj 3 do 8 sekund.

Tu jest istotna rzecz: nie pozwalaj AI generować odpowiedzi od zera dla kategorii gdzie liczy się precyzja (faktury, dane finansowe). Dla tych użyj szablonów z podstawionymi danymi z ERP. AI jest świetne do parafrazowania i uprzejmego tonu, ale przy kwotach na fakturze potrzebujesz stuprocentowej dokładności, nie kreatywności.

Krok 4: Routing i eskalacja do człowieka

Maile które nie dostają automatycznej odpowiedzi (kategoria INNE, poziom pewności NISKI, albo kategorie TECHNICZNY i REKLAMACJA) trafiają do odpowiednich osób przez routing.

W n8n używasz węzła Switch który rozdziela maile na podstawie kategorii z klasyfikatora. Każda kategoria ma swoją ścieżkę. Dla STATUS z wysoką pewnością: automatyczna odpowiedź. Dla TECHNICZNY: forward do działu technicznego z dodaną notatką od AI ("klient zgłasza awarię internetu od wczoraj, poprzednie zgłoszenia w ticketach #452 i #478"). Dla REKLAMACJA: forward do kierownika z notatką i priorytetem.

Notatka od AI przed forwardem to jedna z najbardziej niedocenianych funkcji tej automatyzacji. Człowiek który dostaje maila nie musi czytać całego wątku, tylko widzi o co chodzi i jakie są konteksty. Oszczędza to 30-60 sekund na każdym mailu. Przy 50 mailach dziennie to pół godziny.

Osobna kolejka na maile z NISKĄ pewnością klasyfikatora trafia do ogólnego zespołu. Ktoś je przegląda raz na godzinę. To zazwyczaj 5 do 10 procent całego wolumenu.

Co poszło nie tak i jak to naprawiłem

Przy pierwszym wdrożeniu tego systemu popełniłem błąd który teraz wydaje mi się oczywisty. Nie dodałem limitu na liczbę maili które klasyfikator może przetworzyć w ciągu minuty. W poniedziałek rano, po weekendzie, do skrzynki wpadło ponad 200 maili. Klasyfikator odpalił dla wszystkich jednocześnie, wywołania API do modelu AI przekroczyły limit, połowa maili dostała błąd zamiast odpowiedzi.

Przez pierwsze dwie godziny w poniedziałek rano nie wiedziałem co się dzieje. Klient zadzwonił spanikowany że "system wysyła puste odpowiedzi albo w ogóle nie odpowiada". Okazało się że n8n przy dużej liczbie jednoczesnych wywołań nie kolejkował requestów tylko próbował je wszystkie naraz.

Rozwiązanie: dodałem węzeł Queue przed klasyfikatorem który ogranicza przetwarzanie do 10 maili na minutę. Przy 200 mailach od poniedziałku, ostatni mail jest przetwarzany po 20 minutach. To jest akceptowalne. Lepsze to niż 50 błędów.

Druga rzecz: w jednym z wdrożeń klasyfikator przez pierwszy tydzień mylił się na około 30 procentach maili pisanych po polsku z błędami ortograficznymi i bez polskich znaków. "jutro bedzie przesylka?" było klasyfikowane jako INNE zamiast STATUS. Rozwiązaniem było douczenie na 800 mailach z historii klienta i dodanie do promptu przykładów "pisowni bez znaków diakrytycznych".

Nie wiem dlaczego to nadal jest problem w 2026 roku, ale modele językowe ciągle gorzej radzą sobie z polskim pisanym bezogonkowo niż z poprawną polszczyzną. Może za mało danych treningowych z polskich korporacyjnych skrzynek. A może po prostu nikt nie zgłasza tego jako buga.