Budowa agentów AI w n8n
Od workflow do faktur po agenta obsługującego skrzynkę co minutę — w jednej platformie.
Executive summary
- n8n vs Make: n8n można self-hostować (mniejszy celownik hakerski, większa odpowiedzialność za serwer). Make jest prostszy, n8n potężniejszy w skomplikowanych agentach.
- Workflow podstawowy: Manual Trigger → Google Drive (lista plików) → Download → Extract from PDF → Code (parser JS, kod od Gemini) → If (sprzedaż vs zakup) → Google Sheets (zapis).
- AI Agent node = cluster: model językowy (Gemini 2.5 Flash) + Memory (Simple Memory z kluczem sesji) + Tools (Gmail send, HTTP request, custom).
- Pamiętaj: agent czytający Gmail co minutę = 60 wywołań/h × 24 = 1440 wywołań dziennie. Ustaw filtr, żeby reagował tylko na maile po określonym czasie / od określonych nadawców.
Czym to jest
n8n to open-source'owy konkurent Make z możliwością self-hostowania i lepszą obsługą agentów AI. W jednej platformie zbudujesz zarówno deterministyczny workflow (200 faktur → arkusz z VAT-em), jak i prawdziwego agenta z pamięcią i toolami, który czyta skrzynkę co minutę i odpisuje sam.
Kluczowe pojęcia
Pryncypia
- 01Najpierw zbuduj workflow bez AI, zobacz że dane lecą. Dopiero potem podmień Code/If na AI Agenta.
- 02Self-hosting n8n = zysk + ryzyko. Bez doświadczenia z administracją serwerem — wybierz n8n Cloud.
- 03Agent z triggerem „every minute" wymaga FILTRA — inaczej spali Ci API key i wyśle 1000 odpowiedzi na 1 maila.
- 04Memory agenta = kosztuje tokeny przy każdym wywołaniu. Trzymaj krótką (3-5 wymian), nie ciągnij całej historii.
Przykłady zastosowań
Workflow faktur (bez AI)
Manual Trigger (zakres dat) → Create Spreadsheet (3 zakładki: Sprzedaż/Zakupy/Podsumowanie) → Drive List Files → Download → Extract from PDF → Code (parser JS od Gemini) → If (sprzedaż?) → Sheets Append. Output: gotowy arkusz VAT-owy z 200 faktur.
Agent obsługujący Gmail co minutę
Gmail Trigger (every minute) → AI Agent [model: Gemini 2.5 Flash, memory: Simple Memory z thread_id, tools: Gmail Send + Sheets Lookup (dostępność produktów) + Slack Notify pracowników]. System prompt klasyfikuje mail i decyduje akcję.
Generator opisów produktów
Trigger: webhook z e-commerce → AI Agent z toolem „pobierz dane produktu z bazy" → generuje opis → tool „zapisz do CMS" → Slack notification do copywritera „nowy opis czeka na akceptację".
Sklep internetowy — agent obsługujący zapytania o dostępność
Sklep z 2000 SKU. ~80 maili dziennie typu „czy macie X w rozmiarze Y na 15.06?". Pracownik tracił 2h dziennie na sprawdzanie i ręczne odpisywanie.
Podejście
- 1.Trigger Gmail every minute, filtr: tylko maile z polem „dostępność" lub „rozmiar" w temacie/treści.
- 2.AI Agent: model Gemini 2.5 Flash, Simple Memory (key = thread_id), Tools: 1) HTTP Request do API magazynu (sprawdza stan), 2) Gmail Send (odpisuje).
- 3.System prompt: klasyfikuje pytanie (dostępność/cena/inne), wywołuje odpowiedni tool, generuje uprzejmą odpowiedź ze stanem i sugestią terminu dostawy.
- 4.Fallback: jeśli pytanie spoza zakresu → tag „escalate" + powiadomienie pracownika.
Najczęstsze błędy — checklista
0/4 oznaczonePrompty gotowe do użycia
Kiedy: n8n AI Agent czyta Gmail i podejmuje decyzje.
Jesteś asystentem działu obsługi sklepu internetowego TwojaMarka. Otrzymujesz mail klienta. Twoje zadania, w tej kolejności: 1) Sklasyfikuj mail w jednej z kategorii: [dostępność, status zamówienia, reklamacja, pytanie ogólne, spam]. 2) Jeśli „dostępność" — wywołaj tool check_stock(sku, size). Jeśli „status zamówienia" — wywołaj tool get_order(order_id). 3) Wygeneruj uprzejmą odpowiedź po polsku, max 5 zdań, z konkretną informacją. 4) Jeśli kategoria to „reklamacja" lub „pytanie ogólne" — NIE odpowiadaj sam, wywołaj tool escalate_to_human(reason). NIGDY nie wymyślaj numerów SKU, cen ani terminów dostawy. Jeśli czegoś nie wiesz z toola — eskaluj.
Częsty błąd: Bez „NIGDY nie wymyślaj" agent zwróci halucynowane SKU i odeśle klienta z błędną informacją.
Kiedy: Potrzebujesz Code node w n8n, który wyciągnie pola z surowego tekstu PDF.
Jesteś programistą JavaScript. Napisz funkcję dla n8n Code node, która z poniższego surowego tekstu wyciągniętego z PDF faktury zwróci obiekt: { invoiceNumber, issueDate, sellerName, sellerNip, buyerName, buyerNip, netAmount, vatAmount, grossAmount }. Wszystkie kwoty jako Number (kropka jako separator dziesiętny). Daty w ISO 8601. Jeśli pole niewykrywalne — zwróć null. Kod gotowy do wklejenia w n8n (return items.map(...)). Przykładowy input: """${EXAMPLE_PDF_TEXT}"""LAB — ćwiczenie
Zbuduj w n8n agenta, który raz dziennie czyta Twoją skrzynkę, klasyfikuje 10 ostatnich maili i wysyła Ci na Slacka podsumowanie.
1Schedule Trigger ustawiony na 18:00 każdego dnia roboczego.
2Gmail node Get Many Messages, limit 10, filter „is:unread" lub po dacie.
3AI Agent cluster: model Gemini 2.5 Flash, BEZ memory (jednorazowe wywołanie), system prompt klasyfikujący.
4Slack Send Message do Twojego kanału prywatnego, treść = output agenta.
5Manual Execute — Slack dostaje czytelne podsumowanie kategorii i 3 najpilniejszych maili.
Pytania kontrolne
Powiązane moduły
Skończyłeś moduł? Oznacz go i ruszaj dalej.