Co miesiąc dostaję kilkadziesiąt faktur kosztowych do zaksięgowania.
Nie zautomatyzowałem tego procesu w 100%, ale znaczna jego część jest ogarniana przez Make.
Oto jak to działa 🧵 ↓
Wszystkie faktury, które muszę opłacić, wpadają na moje konto na Gmail.
Prosty filtr sprawdza, czy wiadomość zawiera określone słowa kluczowe oraz co najważniejsze, czy zawiera załącznik.
Jeśli tak, przypisuję mu etykietę: FAKTURY
Pierwszy scenariusz raz na kilka godzin sprawdza skrzynkę mailową w poszukiwaniu nowych faktur. Wyszukiwanie odbywa się na podstawie wcześniej wspomnianej etykiety.
Wszystkie załączniki z takich maili zapisywane są na Dropboxie + dodawana jest etykieta "PRZETWORZONE"
Drugi scenariusz (też co kilka godzin) sprawdza zawartość pewnego folderu na Dropbox. Jeśli znajdzie tam nowy plik PDF, to go pobiera.
Pobrany plik wysyłany jest do zewnętrznej usługi (PDF.co) parsującej pliki PDF i zamieniającej je na pliki TXT.
Otrzymany tekst wrzucam do LLM-a (GPT-4o) z odpowiednim promptem.
Mam w nim opisane, które faktury jak się rozlicza.
Coś na zasadzie:
"Jeśli faktura wspomina coś o aplikacjach SaaS, to wrzuć to do: aplikacje do obsługi biznesu".
Reguł jest kilkanaście.
Pierwszy bloczek "GPT" buduje treść maila z opisem faktury:
↳ numer
↳ klasyfikacja wydatku
↳ kwota
↳ sposób księgowania (import usług? klasyczne? paliwo?)
↳ dane wystawcy
↳ numer konta wystawcy
Drugi bloczek "GPT" buduje ścieżkę, pod którą faktura zostanie zapisana na serwerze NAS (Synology).
Ścieżka może mieć postać przykładowo:
2025/02/januszex-XF_2025_01_31_S_20250131.pdf
czyli:
rok/miesiąc/firma-NUMER_data.pdf
W numeracji faktur większość wystawców używa znaków slasha.
XF/2025/01/31/S
Gryzie się to ze ścieżkami w systemie plików, więc zmieniam slashe na znaki podkreślenia.
XF_2025_01_31_S
Nazwę firmy generuje dla mnie LLM, ale robi to w formie skróconej, najczęściej w formie jednego słowa.
Zakład Przetwórstwa Wędlin "Szynka Janusza" zostaje zapisane np. jako:
"SzynkaJanusza"
Kolejnym krokiem jest wysłanie maila do mojej żony, która wpisuje metodą Copiego-Pasta dane uzyskane od LLM-a do aplikacji księgowej.
LLM może się niekiedy pomylić lub czasami coś źle zaklasyfikować, stąd nadzór nad całą operacją.
Na Synology działa cron, który przerzuca wszystko z katalogu "faktury" do udostępnionego zasobu sieciowego, który zawiera pełne archiwum faktur i który jest backupowany w kilku dodatkowych miejscach.
Dropbox używany jest jako pośrednik tylko dlatego, że Synology nie posiada API
Taka automatyzacja przyspiesza proces księgowania wydatków, ponieważ:
1) Nie muszę ręcznie forwardować maili do żony
2) Żona nie musi otwierać załączników i kopiować danych z faktury. Są w formie ustrukturyzowanej.
3) Nie podejmujemy decyzji o sposobie księgowania wydatku