Ręczne przepisywanie danych ze zdjęć faktur to strata czasu, którą łatwo zautomatyzować. Ten agent w n8n czyta zdjęcie i zwraca gotowe pola: sprzedawcę, NIP, numer, datę, kwotę.
Automatyzacja z n8n
Efekt końcowy w skrócie: agent AI bierze zdjęcie lub skan faktury i sam wypełnia pola - sprzedawcę, NIP, numer, datę i kwotę - gotowe do dalszego użycia, bez przepisywania.
Przepisywanie danych z faktur i paragonów do arkusza albo systemu księgowego to jedna z najbardziej żmudnych, codziennych czynności w biurze. W tym przewodniku zbudujemy agenta AI, który robi to za nas: dostaje zdjęcie lub skan faktury, „czyta” go jak człowiek i zwraca uporządkowane pola - nazwę sprzedawcy, NIP, numer faktury, datę i kwotę. Wszystko bez pisania kodu, w narzędziu n8n.
To kolejny krok względem agenta, który tylko rozmawia. Tutaj agent widzi - przetwarza obraz, a nie tylko tekst. Przewodnik jest dla osób nietechnicznych: pokażemy każdy etap na prawdziwym zrzucie ekranu z działającego przepływu.
Z tego artykułu dowiesz się:
- czym jest agent „widzący” obraz i czym różni się od zwykłego chatbota,
- jak w n8n złożyć przepływ: wejście (zdjęcie), model rozpoznający obraz i uporządkowane dane na wyjściu,
- jak napisać instrukcję, żeby agent zwracał czyste pola, a nie opis słowny,
- jak przygotować dane do zapisania w arkuszu, Excelu lub bazie,
- na co uważać: jakość zdjęć, paragony, weryfikacja kwot i koszty.
1. Agent, który widzi - nie tylko czyta tekst
Większość agentów AI, które znamy, pracuje na tekście: zadajesz pytanie, dostajesz odpowiedź. Modele multimodalne potrafią więcej - przyjmują na wejściu również obraz i „rozumieją” jego treść. Możesz pokazać im zdjęcie dokumentu, a one odczytają z niego konkretne informacje. To otwiera drzwi do automatyzacji, która wcześniej wymagała specjalistycznego oprogramowania do rozpoznawania tekstu (OCR) i mozolnej konfiguracji.
Nasz agent będzie miał jedno zadanie: z obrazu faktury wyciągnąć ustalone pola w uporządkowanej formie. Nie chcemy opisu w stylu „to faktura od firmy TechHurt na kwotę...”, tylko gotowych danych, które od razu wpadną do kolumn arkusza. Różnica jest taka jak między notatką a wypełnioną tabelką.
Jeśli wcześniej budowałeś z nami prywatnego agenta odpowiadającego z dokumentów, to jest naturalny kolejny krok: tam agent czytał tekst, tutaj będzie czytał obrazy.
2. Co zbudujemy - przegląd, zanim zaczniemy
n8n to narzędzie do automatyzacji, w którym łączysz „klocki” (węzły) na płótnie - każdy wykonuje jedno zadanie. Nasz agent to zaledwie trzy połączone węzły, które za chwilę dodamy krok po kroku:
- Wgraj fakturę - prosty formularz z polem na plik. Przeciągasz zdjęcie lub skan i klikasz Wyślij; to uruchamia cały przepływ (Twoje „ręczne” wywołanie). Nic nie wgrywasz na żaden serwer.
- Analizuj fakturę - węzeł AI z operacją „rozpoznaj obraz”. To tu model patrzy na fakturę i wyciąga dane.
- Uporządkuj dane - zamienia odpowiedź modelu na czysty wiersz z kolumnami, gotowy do arkusza.
Cały pomysł w jednej animacji: zdjęcie faktury wchodzi z jednej strony, a gotowy wiersz danych wychodzi z drugiej.
Tak będzie wyglądał gotowy agent, kiedy przejdziemy przez wszystkie kroki: trzy połączone węzły, między nimi płynie po jednym elemencie danych. Teraz zbudujemy go od zera.
3. Krok 1: nowy workflow i formularz do wgrania faktury
Otwórz n8n i kliknij „+” w prawym górnym rogu, żeby założyć nowy workflow. Na pustym płótnie kliknij duży kafelek „Add first step”, a w panelu wyzwalaczy wybierz „On form submission” (po wysłaniu formularza). Dzięki temu dostaniesz prosty formularz, do którego wrzucisz skan faktury - bez wgrywania czegokolwiek na serwer i bez żadnych adresów URL. Wysłanie tego formularza to Twoje ręczne uruchomienie agenta.
W ustawieniach węzła nadaj formularzowi tytuł (np. „Wgraj fakturę”) i dodaj jedno pole: Element Type = File (plik), etykieta „Faktura (zdjęcie lub skan)”, a w polu Accepted File Types wpisz image/*,.pdf. n8n od razu wygeneruje dwa adresy formularza: Test URL (do prób) i Production URL (docelowy). Otwierasz taki link, przeciągasz zdjęcie i klikasz Wyślij.
Nowy, pusty workflow w n8n. Budowę zaczynamy od kliknięcia kafelka „Add first step” na środku płótna.
Wybór wyzwalacza („What triggers this workflow?”). Wybieramy „On form submission” - n8n zbuduje formularz, przez który wgrasz skan faktury.
Formularz w n8n: jedno pole typu File („Faktura - zdjęcie lub skan”), akceptowane typy image/*,.pdf. U góry gotowe adresy formularza (Test URL / Production URL) - to pod nie wrzucasz skan i klikasz Wyślij.
4. Krok 2: przygotuj fakturę na wejściu
Zanim dodamy „widzący” węzeł, ustalmy, co będzie jego wejściem. Do testu użyjemy przykładowej faktury, którą wgramy przez formularz z poprzedniego kroku. W prawdziwym wdrożeniu to będzie zdjęcie zrobione telefonem albo skan - też wrzucony do tego samego formularza - ważne, żeby dokument był czytelny i obejmował cały kadr.
Przykładowa faktura, którą dostanie agent. Z tego obrazu wyciągniemy sprzedawcę, jego NIP, numer faktury, datę wystawienia i kwotę do zapłaty.
Warto uświadomić sobie, co właściwie zastępujemy. Przepisanie jednej faktury do arkusza to kilka minut i sporo miejsc na pomyłkę - a takich dokumentów są dziesiątki dziennie:
Ta sama praca, dwa światy. Ręczne przepisywanie kosztuje czas i uwagę; agent robi to w sekundy i w tej samej formie za każdym razem.
5. Krok 3: dodaj węzeł, który widzi obraz
Najedź kursorem na węzeł formularza („Wgraj fakturę”) i kliknij „+”, który pojawia się przy jego prawej krawędzi - to dodaje kolejny klocek połączony z formularzem. Otworzy się wyszukiwarka węzłów. Wpisz „OpenAI” i wybierz z listy węzeł OpenAI - to on udostępnia operacje rozpoznawania obrazu.
Po kliknięciu „+” przy węźle formularza otwiera się wyszukiwarka węzłów („What happens next?”). Wpisujemy „OpenAI” i wybieramy węzeł OpenAI z listy.
Zobaczysz listę akcji, które potrafi ten węzeł. Wybierz Analyze image (analizuj obraz). Ten wybór od razu ustawia węzeł na zasób Image i operację Analyze Image - czyli „obejrzyj zdjęcie i wyciągnij z niego dane”, a nie „odpowiedz zwykłym tekstem”.
Lista akcji węzła OpenAI. Wybieramy „Analyze image” - to jednym kliknięciem ustawia zasób Image i operację Analyze Image.
Dla porządku zmień nazwę węzła na „Analizuj fakturę” (podwójne kliknięcie w nazwę u góry). To tylko etykieta, ale ułatwia orientację, gdy przepływ się rozrośnie.
6. Krok 4: skonfiguruj węzeł - instrukcja i wgrany plik
Teraz najważniejsze: powiemy modelowi, czego dokładnie od niego chcemy. W tym samym węźle uzupełnij kolejne pola:
- Credential (poświadczenie): wybierz swoje konto dostawcy modelu. Klucz API wklejasz jednorazowo - n8n zapamięta je jako „OpenAI account” i użyje ponownie następnym razem.
- Model: wybierz z listy model, który radzi sobie z odczytem dokumentów.
- Text Input (instrukcja): to serce całości - dokładnie opisujemy, jakie pola i w jakiej formie model ma zwrócić. Gotową instrukcję skopiuj z bloku poniżej (przycisk „Kopiuj”) i wklej w to pole.
- Input Type: ustaw Binary File(s) - agent czyta plik wgrany w formularzu, nie trzeba nigdzie wrzucać obrazu ani podawać żadnego adresu.
- Input Data Field Name: nazwa właściwości z wgranym plikiem (n8n zwykle podstawia ją sam - to plik wysłany przez formularz).
Instrukcja do wklejenia w pole „Text Input” - kliknij „Kopiuj” i wklej ją do węzła:
Kopiuj
Przeanalizuj obraz faktury i zwróć wyłącznie obiekt JSON (bez komentarzy, bez bloku markdown) z polami: sprzedawca, nip_sprzedawcy, numer_faktury, data_wystawienia (format RRRR-MM-DD), kwota_brutto. Jeśli któregoś pola brak, wpisz null.
Prosimy o czysty obiekt danych (JSON) bez komentarzy, żeby kolejny krok mógł go od razu wykorzystać. Cała „inteligencja” jest po stronie modelu - my tylko wypełniamy pola i mówimy mu, czego chcemy. Ani jednej linijki kodu.
Skonfigurowany węzeł „widzący”: zasób Image, operacja Analyze Image, model, instrukcja i wejście Binary File(s) - agent czyta plik wgrany w formularzu. Same pola do wypełnienia, żadnego kodu.
7. Krok 5: uruchom węzeł i sprawdź odczyt
Teraz uruchom przepływ dokładnie tak, jak zrobi to użytkownik: w węźle „Wgraj fakturę” otwórz Test URL, przeciągnij skan faktury i kliknij Wyślij. Po chwili w węźle „Analizuj fakturę”, w panelu „Output”, pojawi się wynik - komplet pól wyciągniętych z obrazu (to właśnie widać na zrzucie otwierającym ten artykuł). Model odczytał wszystkie pięć pól i podał je w gotowej formie:
Panel „Output” po uruchomieniu: zielony znacznik oznacza sukces, a model zwrócił czysty JSON z pięcioma polami odczytanymi wprost ze zdjęcia faktury.
| Pole | Wartość odczytana ze zdjęcia faktury |
|---|---|
| sprzedawca | TechHurt Sp. z o.o. |
| nip_sprzedawcy | 522-34-56-789 |
| numer_faktury | FV/2026/06/0042 |
| data_wystawienia | 2026-06-28 |
| kwota_brutto | 4305,00 |
Zwróć uwagę: to nie jest opis w stylu „to faktura od TechHurt na 4305 zł”, tylko gotowe pola - każde osobno, w tej samej formie, jaką narzuciliśmy w instrukcji. Model odczytał nawet NIP z myślnikami i datę zamienił na format RRRR-MM-DD, o który prosiliśmy.
8. Krok 6: uporządkuj dane do wiersza
Odpowiedź modelu to tekst zawierający dane. Żeby trafiły do osobnych kolumn arkusza, dokładamy mały węzeł porządkujący. Najedź na węzeł „Analizuj fakturę”, kliknij „+” przy jego prawej krawędzi, w wyszukiwarce wpisz „Code” i wybierz Code in JavaScript. W polu edytora wklej poniższy fragment - kilka linijek, które rozkładają odpowiedź na osobne pola:
Dodajemy węzeł porządkujący: „+” za węzłem „Analizuj fakturę”, w wyszukiwarce wpisujemy „Code” i wybieramy „Code in JavaScript”.
Kopiuj
const c = JSON.parse($input.first().json.content);
return [{ json: {
sprzedawca: c.sprzedawca,
nip_sprzedawcy: c.nip_sprzedawcy,
numer_faktury: c.numer_faktury,
data_wystawienia: c.data_wystawienia,
kwota_brutto: c.kwota_brutto
} }];
Węzeł „Code in JavaScript” z wklejonym fragmentem - to jedyne miejsce w całym agencie, gdzie pojawia się kod. Kilka linijek zamienia odpowiedź modelu na osobne kolumny.
Po wysłaniu formularza ten węzeł też się wykona i zwróci gotowy wiersz z kolumnami - dokładnie taki, jaki chcemy wpisać do rejestru faktur:
Po uporządkowaniu dane wyglądają jak wiersz arkusza - kolumny sprzedawca, NIP, numer faktury i kolejne. Stąd już tylko krok do Arkuszy Google, Excela czy bazy danych.
9. Krok 7: zapisz dane do arkusza (Google Sheets)
Najczęściej chcemy, żeby odczytane faktury lądowały w arkuszu - i tu pada słuszne pytanie: gdzie właściwie ten arkusz się znajduje? Odpowiedź: to zwykły Google Sheets w Twoim Dysku Google. Zakładasz go raz, a agent dopisuje do niego kolejne wiersze - jedna faktura to jeden wiersz. Otwierasz sheets.google.com i masz gotowy rejestr. Nic nie ląduje „na serwerze n8n” - dane trafiają wprost do Twojego arkusza.
Najpierw przygotuj arkusz. W Google Sheets stwórz nowy plik (np. „Rejestr faktur 2026”) i w pierwszym wierszu wpisz nagłówki kolumn - dokładnie takie same jak pola z instrukcji: sprzedawca, nip_sprzedawcy, numer_faktury, data_wystawienia, kwota_brutto. Do tych kolumn agent będzie dopisywał dane.
Teraz dodaj węzeł zapisu w n8n. Kliknij „+” za węzłem porządkującym dane (Code), w wyszukiwarce wpisz „Google Sheets” i wybierz akcję „Append row in sheet” (dopisz wiersz).
Dodajemy węzeł zapisu: „+” za węzłem porządkującym, w wyszukiwarce „Google Sheets”.
W konfiguracji węzła uzupełnij po kolei:
- Credential: kliknij „Set up credential” i połącz swoje konto Google (jednorazowe logowanie i zgoda na dostęp do arkuszy). Od tej pory n8n pamięta to połączenie.
- Operation: Append Row - dopisanie wiersza na końcu arkusza.
- Document: z listy Twoich arkuszy wybierz ten przygotowany („Rejestr faktur 2026”).
- Sheet: wybierz zakładkę (domyślnie „Arkusz1” albo „Sheet1”).
-
Mapowanie kolumn: n8n pokaże kolumny arkusza; do każdej podłącz odpowiednie pole z poprzedniego węzła (kolumna
sprzedawcaod pola sprzedawca, i tak dalej). Zero kodu - klikasz i łączysz.
Skonfigurowany zapis: operacja Append Row, dokument „Rejestr faktur 2026”, zakładka „Sheet1” i mapowanie pięciu kolumn (sprzedawca, nip_sprzedawcy, numer_faktury, data_wystawienia, kwota_brutto) do pól z poprzedniego węzła. Zostaje tylko raz kliknąć „Set up credential” i połączyć konto Google.
Gdzie wylądują dane? W dokładnie tym arkuszu Google, który wskazałeś - u Ciebie na Dysku Google. Po każdej wysłanej fakturze pojawia się w nim nowy wiersz z pięcioma kolumnami. Tak wygląda gotowy rejestr:
Docelowy arkusz Google „Rejestr faktur 2026” na Dysku Google. Każda przetworzona faktura to jeden wiersz - u góry nasza faktura z TechHurt, a pod nią kolejne.
Gotowy agent to teraz cztery połączone klocki:
Kompletny agent: formularz z fakturą, odczyt obrazu, uporządkowanie danych i dopisanie wiersza do arkusza Google.
A jeśli wolisz Excela?
- Excel w chmurze (Microsoft 365): zamiast Google Sheets użyj węzła „Microsoft Excel 365” - działa tak samo, tyle że plik leży na Twoim OneDrive.
- Plik .xlsx do pobrania lub mailem: dołóż węzeł „Convert to File” (format XLSX), a za nim węzeł e-mail - dostaniesz gotowy plik Excela w skrzynce po każdej fakturze.
- Baza danych albo system księgowy: zamiast arkusza wybierz węzeł bazy (np. PostgreSQL) i wskaż tabelę - reszta przepływu bez zmian.
10. Praktyka: jakość zdjęć, paragony i kontrola
- Jakość obrazu ma znaczenie. Czytelny skan działa najlepiej. Zdjęcie z telefonu też, o ile jest ostre, dobrze oświetlone i obejmuje cały dokument. Mocno pochylone albo ucięte kadry zwiększają ryzyko pomyłki.
- Nie tylko faktury. Ta sama metoda obsłuży paragony, rachunki, wizytówki czy zamówienia - wystarczy zmienić w instrukcji listę pól do wyciągnięcia.
- Przy kwotach zostaw sobie kontrolę. Odczyt automatyczny bywa omylny. Dla danych krytycznych dodaj prostą regułę (np. sprawdzenie, czy suma pozycji zgadza się z kwotą brutto) albo krok akceptacji przez człowieka.
- Koszt jest niski. Płacisz tylko za wywołania modelu - jedno przetworzenie faktury to ułamek grosza do kilku groszy. Samo n8n w wersji do samodzielnego uruchomienia jest darmowe.
Uwaga o danych. Faktury zawierają dane firmowe i osobowe. Jeśli korzystasz z modelu w chmurze, sprawdź jego politykę przetwarzania danych. Gdy wymagana jest pełna prywatność, ten sam schemat zbudujesz na modelu uruchomionym lokalnie - bez wysyłania dokumentów na zewnątrz.
11. Nie tylko faktury: paragony, wizytówki, zamówienia
Największa siła tego agenta to uniwersalność. Cały przepływ zostaje taki sam - zmieniasz jedynie w instrukcji listę pól do wyciągnięcia - a agent przeczyta zupełnie inne dokumenty firmowe:
Ten sam schemat, różne dokumenty: faktury, paragony, wizytówki, zamówienia. Podmieniasz listę pól w instrukcji - reszta przepływu bez zmian.
Typowy scenariusz. Biuro rachunkowe dostaje od klientów faktury w formie zdjęć z telefonu - kilkaset miesięcznie, w różnym stanie. Zamiast przepisywać je ręcznie, wpuszcza je przez taki przepływ: agent odczytuje pola, prosta reguła sprawdza, czy kwota brutto ma sens, a poprawne wiersze lądują w arkuszu do zaksięgowania. Wątpliwe przypadki (nieczytelne zdjęcia) trafiają do osobnej listy „do ręcznego sprawdzenia”. Człowiek zagląda tylko tam, gdzie naprawdę trzeba - reszta dzieje się sama.
12. Podsumowanie
Zbudowaliśmy agenta, który czyta zdjęcia faktur i zamienia je w uporządkowane dane - bez ani jednej linijki kodu pisanej od zera. Trzy klocki w n8n: wejście, węzeł rozpoznający obraz i porządkowanie danych. Kluczowe kroki:
Twój agent w skrócie
- Wejście - formularz, mail lub folder ze zdjęciami faktur.
- Węzeł AI - operacja „rozpoznaj obraz” plus instrukcja, jakie pola wyciągnąć.
- Porządkowanie - zamiana odpowiedzi na czysty wiersz z kolumnami.
- Zapis - jeden węzeł do Arkuszy, Excela lub bazy danych.
To prototyp, który łatwo rozbudować: o pętlę po wielu plikach naraz, o powiadomienie, gdy kwota przekroczy próg, albo o krok akceptacji przed zapisaniem. Od tego momentu przepisywanie danych z dokumentów przestaje być Twoim zadaniem.
Chcesz samodzielnie budować takich agentów i automatyzacje?
Ten agent łączy dwie umiejętności: budowę agentów AI oraz automatyzację w n8n. Obie pokazujemy na naszych szkoleniach - krok po kroku, z naciskiem na praktykę i realne wdrożenia.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5






















Top comments (0)