Boty dla finansów: jak zwiększyć wydajność back-office poprzez automatyzację

Opublikowany: 2022-07-22

Wzmianka o biurze przyszłości może wywołać obrazy maszyn przejmujących powtarzalne i pracochłonne zadania. Ale ta przyszłość jest teraz. Rozwój technologii, takich jak aplikacje oparte na chmurze, a także platformy oprogramowania i systemy planowania zasobów przedsiębiorstwa, które pomagają firmom osiągnąć najwyższą wydajność operacyjną, sprawił, że zautomatyzowane biura stały się rzeczywistością.

Według firmy konsultingowej McKinsey działy finansów korporacyjnych zmniejszyły koszty o prawie 30% w ciągu ostatniej dekady, wdrażając rozwiązania automatyzacji w takich obszarach, jak zaopatrzenie, księgowość i płace. Te innowacje przekształciły funkcje finansowe i wyeliminowały wiele nieefektywności.

Jako analityk finansowy i programista w pełni wykorzystałem automatyzację, konfigurując boty do zadań finansowych, kiedy stworzyłem i zbudowałem własną firmę konsultingową Pylink. Jednak wiele biur finansowych nadal tego nie robi, więc nadal poświęcają nadmierną ilość czasu i zasobów na wykonywanie podstawowych zadań.

Nie tylko ja zauważyłem ten problem. Firma konsultingowa PwC stwierdziła, że ​​biura finansowe muszą zwiększyć swoją produktywność i wgląd poprzez automatyzację i usprawnienie procesów, co może obniżyć koszty wielu kluczowych funkcji o dwucyfrowe wartości procentowe. Badania PwC wskazują, że automatyzacja może skrócić o 40% czasu poświęcanego przez ludzi na sprawozdawczość zarządczą, o 27% czasu poświęconego na księgowość podatkową io 23% godzin poświęconych na zarządzanie kredytami, ogólną księgowość i rozliczenia.

Deloitte doszedł do podobnych wniosków: powołując się na badania opublikowane przez Ayehu, donosi, że inteligentna automatyzacja obniża koszty procesów biznesowych o 25 do 40%. Z badań Gartnera wynika, że ​​firma zatrudniająca 40 pełnoetatowych pracowników księgowych może co roku wyeliminować wydatki o wartości ponad 870 000 USD dzięki automatyzacji zadań i wyeliminowaniu dodatkowej pracy związanej z naprawą błędów ludzkich.

W tym artykule chciałbym podzielić się kilkoma prostymi strategiami automatyzacji, których użyłem dla mojej firmy i moich klientów — łatwymi poprawkami, które mogą być przydatne dla organizacji dowolnej wielkości.

Gotowe rozwiązania, takie jak QuickBooks, mogą być pomocne dla mniejszych organizacji. Jednak, aby zmaksymalizować wydajność, radzę używać języków programowania, takich jak Python, do tworzenia własnych rozwiązań, w tym botów dla biznesu. Python jest bardzo intuicyjny i zapewnia dużą standardową bibliotekę narzędzi oraz dostęp do bibliotek specyficznych dla finansów, co czyni go bardziej wszechstronnym niż Excel.

W moim poprzednim artykule dla Toptal pokazałem, jak łatwo jest używać Pythona do tworzenia szytych na miarę modeli przepływów pieniężnych dla korporacji. Zachęcam do przeczytania tego, jeśli jesteś zainteresowany nauką języka. W tym artykule przedstawię jednak przegląd praktycznych zastosowań — od śledzenia czasu pracy, przez listy płac, po pocztę elektroniczną — które programista może szybko i łatwo wdrożyć dla Ciebie, jeśli nie chcesz samodzielnie zagłębiać się w kod.

Jak moja firma wykorzystuje boty w finansach: łatwe, wydajne płatności

Pozwolę sobie zademonstrować, jak przydatna może być niestandardowa automatyzacja, pokazując przykład z mojej firmy, który może posłużyć jako studium przypadku. Pomimo tego, że jesteśmy małą firmą, mój zespół w Pylink i ja mamy do czynienia ze znaczną złożonością, która stanowi wyzwanie, jeśli chodzi o płatności, w tym:

  • Pracujemy nad kilkoma projektami w oparciu o kontrakty godzinowe i musimy śledzić czas każdego z naszych zadań.
  • Nasi klienci pochodzą z różnych krajów i dlatego płacą nam w wielu walutach.
  • Podczas gdy w niektórych projektach korzystamy z wewnętrznego zespołu inżynierów oprogramowania, inne zlecamy podwykonawcom programistom z różnych krajów.
  • Z punktu widzenia optymalizacji podatkowej mamy trzy firmy: jedną z Wielkiej Brytanii, jedną z UE i jedną indywidualną freelancer z siedzibą w UE.
  • Każda z naszych firm posiada oddzielne rachunki bankowe w wielu walutach, w tym USD, EUR, GBP i HUF.
  • Mamy regularne koszty — takie jak podatki, wynagrodzenia i świadczenia dla pracowników pełnoetatowych, powierzchnia biurowa i materiały eksploatacyjne oraz oprogramowanie — w różnych walutach.

Aby opracować system płatności, który sprostałby tym wyzwaniom, wykorzystuję (i rekomenduję) poniższe technologie do stworzenia bota w Pythonie działającego w infrastrukturze chmurowej Amazon Web Services (AWS).

  • Codebase: Python (do pobrania za darmo)
  • Usługa, na której działa kod: AWS Lambda
    • Lambda ułatwia skalowanie wykonania naszego kodu w razie potrzeby.
    • Ta usługa wchodzi w życie tylko wtedy, gdy zostanie uruchomiona. Umieszczasz swój kod Pythona w funkcji Lambda i konfigurujesz zdarzenie wyzwalające — od polecenia głosowego Alexa po zaplanowany czas w kalendarzu.
    • Ponieważ Lambda jest bezserwerowa, jest to opłacalne rozwiązanie, które wymaga od nas płacenia tylko za faktycznie wykorzystany czas obliczeniowy.
  • Narzędzie operacji bankowych: Wise API
    • API (interfejs programowania aplikacji) to oprogramowanie pośredniczące, które pozwala dwóm aplikacjom komunikować się ze sobą. Wise API umożliwia mi i mojemu zespołowi łatwe uzyskiwanie informacji o wyciągach i historycznych danych o transakcjach, a także automatyczne dokonywanie płatności. Pozwala nam również śledzić kursy wymiany walut i dokonywać automatycznych konwersji.
  • Śledzenie czasu: Everhour + Everhour API
    • To oprogramowanie zapewnia dokładne śledzenie czasu oraz elastyczne możliwości rozliczania i budżetowania. Ponadto bezproblemowo integruje się z narzędziami do zarządzania projektami, takimi jak Asana, Trello, Jira i GitHub.
  • Nadawca wiadomości e-mail: Amazon Simple Email Service
    • Dzięki Amazon SES mamy elastyczny i bezpieczny sposób wysyłania wiadomości e-mail w formacie HTML z dowolnej aplikacji, wraz z analizą danych w celu monitorowania dostaw i odrzuceń.
    • SES Free Usage Tier umożliwia wysyłanie do 62 000 wiadomości miesięcznie bez opłat, jeśli aktywujesz usługę z aplikacji hostowanej w Amazon EC2 lub za pośrednictwem AWS Lambda.
  • Harmonogram: AWS EventBridge
    • Korzystając z tego narzędzia, możemy łatwo uruchomić naszego bota Pythona do wykonywania zaplanowanych funkcji finansowych co miesiąc lub co pół miesiąca.
    • Ponieważ EventBridge, podobnie jak Lambda, nie wymaga do działania serwera, znacząco zmniejsza nasz narzut.
  • Powiadomienie o Slack: Slack API
    • Ten interfejs API wysyła alerty w czasie rzeczywistym, aby poinformować nas o godzinach pracy naszych kontrahentów i czy klienci nam zapłacili.
  • Komunikacja Slack z botem: Slack API + Amazon API Gateway
    • Slack API pozwala botowi Pythona wysyłać nam żądania płatności do zatwierdzenia.
    • Za pomocą jednego kliknięcia na naszym końcu nasz bot jest w stanie wykorzystać API Gateway do automatycznego zrealizowania każdej płatności.
    • API Gateway oferuje bezpłatną warstwę, która zapewnia dostęp do ponad miliona wywołań API i miliona wiadomości miesięcznie przez rok.

Oto, jak wykorzystałem te narzędzia do automatyzacji jednego przypadku użycia wielozadaniowego: płacący personel, kontrahenci i ja. Pokażę ci cały proces na wysokim poziomie, zanim zagłębię się w najczęstsze praktyki automatyzacji.

Schemat blokowy z ikonami pokazuje dziewięcioetapowy proces, który Miklos stosuje, aby zapłacić pracownikom, programistom i sobie. Szczegółowe informacje znajdują się w poniższym tekście.

Przejdźmy teraz przez kolejne kroki:

  1. Pierwszego dnia każdego miesiąca używamy AWS EventBridge do wyzwalania bota Pythona, który jest przechowywany w AWS Lambda.
  2. Korzystając z Everhour API, bot pobiera grafików dla wszystkich pracowników, wykonawców (programistów, w przypadku Pylink) i dla mnie.
  3. Następnie bot agreguje przepracowane godziny dla każdego projektu i tworzy grafik oraz fakturę (oba pliki PDF). Następnie wysyła te dokumenty do klientów za pośrednictwem poczty elektronicznej.
  4. Dodatkowo bot powiadamia zespół Pylink za pośrednictwem Slacka o godzinach pracy wykonawców. Prosi również o zgodę na ich opłacenie, przedstawiając przyciski „Zatwierdź” i „Odrzuć”.
  5. Jeśli ktoś z zespołu zarządzającego Pylink zatwierdzi żądanie, bot wysyła wiadomość do naszego własnego API (zawsze dostępny publiczny adres URL) przez AWS API Gateway, który wykonuje kolejny kod w funkcji Lambda w celu wykonania transferu.
  6. Druga funkcja Lambda wykorzystuje do realizacji płatności Wise API.
  7. 14 dnia każdego miesiąca ponownie używamy EventBridge do zaplanowania kolejnego uruchomienia kolejnych funkcji. Ale tym razem EventBridge wyzwala inny kod zapisany w innej funkcji Lambda.
  8. Ten kod wykorzystuje Wise API do śledzenia transakcji z ostatnich dwóch tygodni i sprawdzania, czy klient zapłacił.
  9. Jeśli nastąpiła płatność od klienta, bot wysyła potwierdzenie Slack do zespołu Pylink za pośrednictwem API Slack. Jeśli nie nastąpiła płatność, bot wysyła wiadomość e-mail do klienta za pomocą usługi Amazon SES.

Wcześniej wszystkie te zadania były wykonywane ręcznie, co pochłaniało cenny czas i energię, które teraz można wydać gdzie indziej. Co najlepsze, udało nam się uruchomić ten proces bez dużej inwestycji czasu i pieniędzy.

Co możesz zrobić dzięki automatyzacji

Przyjrzyjmy się teraz niektórym z najbardziej praktycznych zastosowań automatyzacji, korzystając z narzędzi, które już omówiłem. W celach informacyjnych dołączę kilka przykładów kodowania jako źródła dla programistów wewnętrznych, kontraktowych lub niezależnych — lub dla siebie, jeśli zdecydujesz się nauczyć Pythona, aby pomóc w pracy Twojej firmy lub klienta.

Śledzenie godzin pracy i projektów

Pod koniec każdego miesiąca bot (używający Everhour) uruchamia funkcję „close_the_month”, która zbiera wszystkie godziny spędzone na różnych zadaniach:

  • Moje godziny na moich projektach konsultingowych (przychody)
  • Godziny pracy deweloperów nad projektami klienta (zarówno przychody, jak i koszty)
  • Godziny programistów na własne tworzenie oprogramowania (koszt)

Poniżej znajduje się prosta funkcja, która zwraca Pandas DataFrame, tj. tabelę z wierszami i kolumnami, zawierającą wszystkie godziny i projekty dla danego okresu czasu dla danego użytkownika. Należy pamiętać, że, jak wspomniano wcześniej, ten i wszystkie kolejne fragmenty kodowania to tylko najważniejsze elementy całej bazy kodu, a nie samouczek krok po kroku, jak zbudować naszego bota.

Zrzut ekranu przedstawiający przykładowy kod Pythona napisany w celu wykonania funkcji „zamknij_miesiąc”. Wyświetla język i składnię, których autor używał wiersz po wierszu.

Tworzenie grafiku i faktury w formacie PDF

Po automatycznym śledzeniu godzin pracy każdego pracownika, następnym zadaniem jest tworzenie grafików i faktur. Istnieje wiele pakietów Pythona, które umożliwiają tworzenie plików PDF. Używamy PyFPDF, kompaktowej biblioteki do generowania dokumentów, która oferuje prostotę, a także elastyczność w rysowaniu kształtów oraz dodawaniu obrazów i tekstu. Jak widać na poniższym przykładzie, daje czystą i profesjonalną fakturę:

Wyświetlana jest faktura od Pylink. Brzmi on „Billed to Watchclever Ltd”, klient i podaje datę faktury, termin płatności, okres fakturowania i rodzaj płatności (przelew bankowy). Wyświetla również godziny dla każdego z czterech konsultantów i łączną sumę 45,7 godzin.

Chociaż istnieją bardziej zaawansowane metody tworzenia raportów, PDF jest dobrym wyborem, ponieważ jest to uniwersalny format używany we wszystkich branżach i łatwy do wygenerowania. Umożliwia także wysyłanie plików do każdego, zapewniając jednocześnie, że wszystkie czcionki, obrazy, tabele i formatowanie zostaną przeniesione. Ponadto działa niezależnie od sprzętu komputerowego i systemu operacyjnego i może być używany w trybie offline.

Wysyłać maile

Amazon Simple Email Service to ekonomiczne i skalowalne narzędzie do tworzenia i wdrażania ładnie sformatowanych wiadomości HTML. Co więcej, analityka danych SES śledzi i udostępnia informacje o wynikach pętli zwrotnej, aby powiadomić Cię, jeśli jacyś odbiorcy zgłoszą Twoją wiadomość jako spam, albo przez pomyłkę, albo dlatego, że wiadomość e-mail została wysłana na zły adres. Analitycy mierzą również skuteczność każdej komunikacji pod względem zaangażowania, w tym współczynniki otwarć i klikalności. Ta funkcja jest szczególnie przydatna w przypadku e-maili marketingowych.

Oto przykład kodu Pythona używanego do wygenerowania wiadomości e-mail z dołączoną fakturą i wysłania jej do klienta:

Zrzut ekranu przedstawia fragment kodu z językiem i składnią Python, którego autor użył do utworzenia wiadomości e-mail, załączenia faktury i wysłania jej do klienta w celu zapłaty.

A oto e-mail, który generuje:

Zrzut ekranu e-maila utworzonego przez kod. W załączeniu PDF faktury. Wiadomość brzmi:

Automatyzacja czynności bankowych

Wybraliśmy Wise do prywatnych i biznesowych rachunków bankowych, ponieważ mamy dochody i koszty w kilku walutach, a ta firma z branży technologii finansowych oferuje korzystne opłaty za wymianę walut, intuicyjny interfejs użytkownika i elastyczne API ze szczegółową dokumentacją.

Używamy tego API do realizacji następujących zadań:

  • Zbieraj informacje z wyciągów dla każdej firmy i waluty, aby szybko zobaczyć zagregowaną i rzeczywistą płynność.
  • Wydobądź historyczne informacje o transakcjach, abym mógł zidentyfikować trendy w różnych pozycjach kosztowych, a także sprawdzić, czy klient zapłacił fakturę z poprzedniego miesiąca. Jeśli nie, API wysyła e-mail z przypomnieniem.
  • Wykonuj przelewy automatycznie.

Poniżej znajduje się kod, który zaprogramowaliśmy, aby wykonać pierwsze z tych zadań (zbieranie informacji o wyciągu):

Zrzut ekranu pokazuje próbkę kodu Pythona, którego autor używa, aby uzyskać informacje o saldzie dla każdej z firm Pylink.

W przypadku stałych kosztów stałych (wynagrodzenie, podatki, koszty biurowe itp.) nie musisz pisać kodu, aby wykonać przelewy automatyczne; Wise ma funkcję zaplanowanej płatności. Jeśli jednak kwota nie jest stała, ale oparta na formule, którą algorytm może obliczyć, przydatny jest Wise API. W moim przypadku wynagrodzenie doradcy biznesowego jest godnym uwagi przykładem, ponieważ jest funkcją miesięcznych przychodów. Sprawdzając śledzone godziny, bot dokładnie wie, ile mamy przychodu i w związku z tym ile zapłacić doradcy.

Łagodzenie ryzyka poprzez dwustronną rozmowę z botem

Ważne jest, aby być świadomym aktywności bota, ponieważ mogą występować błędy w kodowaniu, które nie zostaną ujawnione podczas testowania. Otrzymujemy powiadomienia w czasie rzeczywistym na Slacku, dzięki czemu możemy szybko naprawić uszkodzony kod. Oto kilka przykładów powiadomień, które informują nas, że bot działa poprawnie:

Ten mały, prosty obrazek przechwytuje wiadomość Slack od bota Pylink, która brzmi: „Płatność się powiodła!”

Następny obraz to kolejne powiadomienie Slack od bota Pylink. Tekst mówi: „Zamknięcie poprzedniego miesiąca 2022-01-01 – 2022-01-31” i pokazuje całkowity koszt pracy wykonanej dla Watchclever Ltd. w tym okresie, a następnie rozbicie tych kosztów na podstawie godzin każdy konsultant.

Umożliwiliśmy także botowi wysyłanie pytań potwierdzających do zespołu Pylink przed każdym przelewem bankowym. Pomaga nam to uniknąć błędów spowodowanych błędem ludzkim. Wyobraź sobie, że programista robi literówkę i wprowadza 825 godzin zamiast 8,25 godzin dla jednego biletu. Krok zatwierdzenia w Slack zapewnia, że ​​nie przekażemy stu razy więcej pieniędzy, niż jesteśmy winni. Proces zachowuje element ludzkiej weryfikacji, ale zapewnia bezproblemową obsługę.

Zrzut ekranu powiadomienia Slack „Potwierdzenie płatności” od bota Pylink. Jest na niej napisane: „Yurii przepracował w zeszłym miesiącu 43,5 godziny; dlatego należy zapłacić [puste] USD. Czy mogę mu zapłacić?” (Kwota w dolarach jest redagowana.) Przedstawione są opcje „Zatwierdź” i „Odrzuć”.

Istnieje również wiele innych funkcji, które możesz osiągnąć dzięki API Slack.

Biuro Jutra

Automatyzacja biznesu może pomóc organizacjom w rozwoju. Omówione przeze mnie narzędzia mogą przekształcić firmy potrzebujące większej wydajności i kontroli, zwłaszcza jeśli chodzi o funkcje transakcyjne, takie jak rozrachunki z dostawcami, rozrachunki z odbiorcami i inne podstawowe obszary księgowe.

Ale to nie koniec historii. Według McKinseya wyzwaniem dla liderów korporacji jest zarzucenie jeszcze szerszej sieci dla nowych usprawnień. Firma wspiera przeprojektowanie całej operacji finansowej, wykraczając poza zadania transakcyjne, prowadząc w obszarach takich jak analiza danych — konsolidacja, upraszczanie i kontrolowanie informacji w całej korporacji. Nie mogłem się zgodzić. Zalecam zapoznanie się z rozwiązaniami w zakresie kodowania, które pomagają Twojej organizacji posiadać odpowiedzi i rozwijać kulturę zorientowaną na wyniki. W międzyczasie, przyjęcie taktyk, które tutaj opisałem, może pomóc Twojej firmie stać się bardziej wydajną dzisiaj, dając jednocześnie przedsmak możliwości jutra.