Case 1: Faktury — Transcript

Tutorial tworzenia automatycznego przepływu pracy do przetwarzania faktur w n8n z eksportem danych do Google Sheets.

Key Takeaways

  • Automatyzacja przetwarzania faktur w n8n pozwala na efektywne zarządzanie dokumentami i kontrolę kosztów.
  • Integracja z Google Sheets umożliwia przejrzyste raportowanie i podsumowanie danych finansowych.
  • Wykorzystanie kodu JavaScript i modelu Gemini usprawnia ekstrakcję i strukturyzację danych z plików PDF.
  • Ręczny trigger z definiowaniem zakresu dat daje elastyczność w uruchamianiu przepływu pracy.
  • Proces jest dostępny na darmowej platformie i nie wymaga zaawansowanej wiedzy programistycznej.

Summary

  • Prezentacja tworzenia workflow do przetwarzania faktur bez użycia modeli językowych na platformie n8n.
  • Automatyzacja obejmuje wczytywanie plików PDF, ekstrakcję danych tekstowych oraz zapis wyników w Google Sheets.
  • Workflow zawiera trzy zakładki w arkuszu: Sprzedaż, Zakupy oraz Podsumowanie z podsumowaniem VAT.
  • Przetwarzanie faktur odbywa się na podstawie zakresu dat zdefiniowanego w triggerze ręcznym.
  • Wykorzystanie węzłów takich jak Create spreadsheet, Move file, Edit fields, Download file, Extract from file, Code, If, Merge oraz agregatory sumujące wartości.
  • Ekstrakcja danych z faktur PDF realizowana jest przez konwersję do tekstu i przetwarzanie kodem JavaScript wygenerowanym z pomocą modelu Gemini.
  • Filtrowanie faktur według daty oraz rozdzielenie na faktury sprzedażowe i zakupowe.
  • Wprowadzenie nagłówków i usuwanie pustych wierszy w arkuszach Google Sheets.
  • Podsumowanie wartości netto, VAT i brutto oraz wyliczenie różnicy podatku VAT w zakładce Podsumowanie.
  • Przykład bazuje na 200 fakturach zgromadzonych na Google Drive i pokazuje pełny proces automatyzacji księgowej.

Full Transcript — Download SRT & Markdown

00:06
Speaker A
Na start pokażę ci, jak stworzyć przepływ prac do przetwarzania faktur, krok po kroku, bez używania modeli językowych, ale w pełni działający na darmowej platformie n8n. To świetna baza, by zobaczyć, w jaki sposób działa cały mechanizm, od wczytywania plików,
00:21
Speaker A
przez przetwarzanie danych, aż po zapis wyników w Google Sheets. Workflow, który stworzymy, jest automatyzacją dla osób prowadzących własną działalność, które chcą mieć pełną kontrolę nad kosztami, fakturami rozliczeniowymi oraz podatkiem VAT.
00:34
Speaker A
Na koniec działania workflow otrzymasz gotowy arkusz Google Sheets z trzema zakładkami: zakładka Sprzedaż, tutaj znajdziesz wszystkie faktury sprzedażowe z wybranego okresu, zakładka Zakupy, ta zakładka zawiera faktury kosztowe, tak samo jak wcześniej masz tu komplet danych potrzebnych do rozliczeń, oraz zakładka Podsumowanie,
00:54
Speaker A
to jest zakładka, która zawiera podliczenie, zarówno faktur sprzedażowych, jak i kosztowych, i tutaj będzie pokazana różnica podatku VAT.
01:04
Speaker A
Przykład, który przygotowałem, bazuje na bazie 200 faktur, które nasza firma zgromadziła. Są to zarówno faktury sprzedażowe, jak i zakupowe. Umieściłem wszystkie faktury na Google Drive. Otwieram nowy workflow, klikam "Create workflow" i otwieram edytor.
01:21
Speaker A
Do uruchomienia tego workflow wykorzystam najprostszy sposób uruchomienia, to jest ręczny trigger. Możemy ten przepływ uruchamiać ręcznie wtedy, kiedy chcemy przetworzyć faktury, na przykład na koniec miesiąca. W triggerze zdefiniuję dwa pola, to jest datę początkową i końcową.
01:39
Speaker A
Workflow będzie przetwarzał tylko faktury wystawione w tym zakresie. Okej, kolejnym krokiem jest przygotowanie arkusza wynikowego.
01:47
Speaker A
Wykorzystano do tego następujące node'y: "Create spreadsheet", ten node utworzy arkusz Google Sheets z trzema zakładkami. Nazwę go "Faktury za okres", od daty początkowej do daty końcowej, oraz dodaję zakładki, trzy zakładki: Sprzedaż, Zakupy, Podsumowanie.
02:38
Speaker A
Nowo utworzony plik utworzył się w domyślnej lokalizacji i zawiera faktycznie trzy zakładki. Tu jest lista wszystkich faktur, wszystkich dwustu faktur.
03:05
Speaker A
Chciałbym przenieść ten plik teraz do zakładki, do folderu "Podsumowanie faktur". Wykorzystam do tego węzeł "Move file".
03:18
Speaker A
Wybieram plik po ID pliku oraz wybieram docelową lokalizację. Plik został już przeniesiony. Utworzony plik nie ma żadnych nagłówków i teraz utworzę je node'em "Edit fields".
03:56
Speaker A
Dodaję kilka pól i na przykład numer faktury, data dokumentu, kto jest sprzedawcą, kto jest nabywcą, kwota netto, kwota VAT oraz kwota brutto.
04:51
Speaker A
Zmieniam typ zmiennych kwot na zmienne numeryczne. Uruchamiam przepływ i te pola, te nagłówki wprowadzam teraz do arkusza.
05:14
Speaker A
Wybieram arkusz po jego ID i te pola wprowadzam do zakładki Sprzedaż. Warto zwrócić uwagę, że domyślne działanie funkcji "Append row" jest takie, że tworzy również pierwszy wiersz pusty.
05:56
Speaker A
Należy go usunąć ręcznie node'em "Delete rows or columns". Zwróć uwagę, że w arkuszu, który utworzyliśmy, w zakładce Sprzedaż znajdują się już nagłówki.
06:23
Speaker A
Mamy trzy zakładki, a więc tę procedurę trzeba jeszcze powtórzyć dwa razy, odpowiednio dla dwóch pozostałych zakładek.
06:41
Speaker A
Łączę wszystko w jeden przepływ i konfiguruję odpowiednie węzły: Zakupy. Ponownie Zakup oraz trochę inny zestaw pól dla zakładki z Podsumowaniem, na przykład typ faktury, kwota netto, to jest wartość numeryczna, kwota VAT i ostatnia to jest wartość brutto.
08:10
Speaker A
Tutaj zmieniamy nazwę zakładki na "Podsumowanie" i też usuwamy pierwszy wiersz z pustymi danymi. Nasz arkusz teraz zawiera nagłówki, trzy zakładki, w każdej zakładce są odpowiednie nagłówki.
08:43
Speaker A
Okej, kolejnym krokiem jest sprawdzenie, ile mamy w poszczególnej, w konkretnej lokalizacji faktur. Chcemy zwrócić wszystkie dokumenty i wybieramy folder "Faktury".
09:08
Speaker A
Klikając "Execute step", uzyskuję 200 dokumentów. W tym momencie te dokumenty jeszcze nie są załadowane do pamięci, na razie tylko je widzę.
09:23
Speaker A
Żebym miał je dostępne, muszę je wszystkie pobrać i do tego wykorzystuję węzeł "Download file", ID tego, co znaleźliśmy.
09:43
Speaker A
W tym momencie ładujemy 200 dokumentów, 200 dokumentów PDF do pamięci. Ten etap może zająć dłuższą chwilę, nawet 5 minut. Wszystkie dokumenty się pobrały i teraz, jak widzisz, mam pobranych 200 dokumentów typu PDF do pamięci.
10:06
Speaker A
Zwróć uwagę, że są to dokumenty PDF, potrzebujemy z nich wyciągnąć dane tekstowe. Wykorzystam do tego węzeł "Extract from file", to jest węzeł, który przekształci plik PDF na dane tekstowe.
10:23
Speaker A
Uzyskujemy wynik, to jest tekst, który jest wyciągnięty z każdej z dwustu faktur. Na tym etapie potrzebujemy przetworzyć te dane tekstowe w ustrukturyzowaną formę, to znaczy musimy wybrać informacje o wartościach, kwotach, sprzedawcy, nabywcy.
10:45
Speaker A
Wykorzystuję do tego węzeł "Code". Uwaga, nie jestem programistą, natomiast wykorzystamy narzędzie Gemini do przygotowania kodu JavaScript. Wprowadzam prompt, który przygotowałem chwilę wcześniej i tutaj już definiuję cele, dane wejściowe oraz informacje o strukturze.
11:16
Speaker A
Żeby ułatwić zadanie modelowi językowemu, wybieram jedną z przykładowych faktur: faktura o numerze 276. Dodatkowo dodam jeszcze tekst, który udało mi się wyciągnąć z modelu n8n.
11:41
Speaker A
To jest ten cały tekst, który udało mi się wyekstrahować. Używamy Gemini do tego, uzyskujemy kod w JavaScript.
12:02
Speaker A
Wklejam tutaj uzyskany kod. Jeszcze wcześniej wkleję cały zakres parametrów, który przyjmuje n8n. Przekopiuję cały ten kod, wklejam w "Code in JavaScript" oraz "Execute step".
12:53
Speaker A
To jest ta nasza przykładowa faktura. Teraz chciałbym filtrować faktury po dacie wystawienia, to znaczy na początku zdefiniowaliśmy zakres od - do, teraz chcemy sprawdzić, czy konkretna faktura mieści się w tym zakresie.
13:14
Speaker A
Wyciągam daty, które zostały odczytane przez nasz parser danych oraz datę początkową, którą na samym początku zdefiniowaliśmy w triggerze.
13:37
Speaker A
Odpowiedni zakres. Zwróć uwagę, że tylko kilka faktur zostało wybranych, to znaczy tylko te faktury mieszczą się w naszym zakresie.
13:52
Speaker A
Teraz będę chciał rozdzielić faktury sprzedażowe i zakupowe. Bardzo podobnie wykorzystuję węzeł "If" i tutaj warunek, czy dana faktura jest sprzedażowa.
14:21
Speaker A
Następnie faktury sprzedażowe wprowadzam do wcześniej utworzonego arkusza Google Sheets, tutaj w zakładkę Sprzedaż, odpowiednio mapując pola: numer faktury, data, sprzedawca, nabywca, kwota netto, kwota brutto i kwota VAT.
15:12
Speaker A
Informacje o tych fakturach zostały już przeniesione. Następnie mogę zrobić podsumowanie, sumę. I tutaj będę wybierał agregator właśnie sumy.
15:31
Speaker A
Ponownie kwota netto, kwota VAT, kwota brutto. Wykorzystuję węzeł "Edit fields" i nadaję znowu nagłówki: typ faktury, suma netto, suma brutto, suma VAT.
16:20
Speaker A
Przypisuję odpowiednie wartości i te same działania, tu już skopiuję, powtarzamy dla faktur zakupowych. Tu Zakup, podpinam odpowiednie wartości.
17:36
Speaker A
Ostatnim krokiem w tym przykładzie będzie połączenie wszystkich danych i wyeksportowanie tych informacji do trzeciej zakładki, Podsumowanie.
17:46
Speaker A
Wykorzystam do tego węzeł "Merge". Ponownie "Append row", ten arkusz, który utworzyliśmy na samym początku, zakładka Podsumowanie, podpinam odpowiednie wartości, klikam "Execute step".
18:41
Speaker A
Dodaję bardzo krótki kod, który będzie liczył różnicę pomiędzy tymi wartościami. Ponownie wykorzystam do tego model językowy, wskażę mu informacje, które mam dostępne.
19:26
Speaker A
Uzyskaliśmy kod w JavaScript, uruchamiamy ten przepływ, uzyskujemy podsumowanie i wprowadzamy je na koniec do zakładki z Podsumowaniem.
19:53
Speaker A
Podsumowanie. Mapuję pola, uruchamiamy przepływ. Zwróć uwagę, że uzyskaliśmy arkusz, który zawiera podsumowanie kwot oraz różnicę podatku VAT, to jest trzecia zakładka, Podsumowanie.
20:31
Speaker A
W zakładce Zakupy mamy wszystkie faktury, w których nasza firma była nabywcą, oraz wszystkie faktury, w których nasza firma była sprzedawcą.
Topics:automatyzacja fakturn8nGoogle Sheetsprzetwarzanie fakturworkflowJavaScriptekstrakcja danychPDFpodsumowanie VATGemini AI

Frequently Asked Questions

Jakie narzędzia są używane do ekstrakcji danych z faktur PDF w tym workflow?

Do ekstrakcji danych z faktur PDF wykorzystuje się węzeł 'Extract from file' w n8n, który konwertuje pliki PDF na tekst, a następnie kod JavaScript wygenerowany z pomocą modelu Gemini przetwarza ten tekst na ustrukturyzowane dane.

W jaki sposób można filtrować faktury według daty w tym przepływie pracy?

Filtrowanie faktur według daty odbywa się poprzez zdefiniowanie zakresu dat w ręcznym triggerze, a następnie w kodzie JavaScript sprawdzane jest, czy data wystawienia faktury mieści się w tym zakresie, co pozwala na selekcję odpowiednich dokumentów.

Jakie są główne zakładki w arkuszu Google Sheets tworzonym przez workflow?

Workflow tworzy arkusz Google Sheets z trzema zakładkami: 'Sprzedaż' zawierającą faktury sprzedażowe, 'Zakupy' z fakturami kosztowymi oraz 'Podsumowanie', które zawiera sumy wartości netto, VAT, brutto oraz różnicę podatku VAT.

Get More with the Söz AI App

Transcribe recordings, audio files, and YouTube videos — with AI summaries, speaker detection, and unlimited transcriptions.

Or transcribe another YouTube video here →