Boți pentru finanțe: Cum să creșteți eficiența back-office-ului prin automatizare

Publicat: 2022-07-22

Mențiunea biroului viitorului ar putea evoca imagini cu mașini care preiau sarcini repetitive și care necesită multă muncă. Dar acel viitor este acum. Dezvoltarea de tehnologii precum aplicațiile bazate pe cloud, precum și platformele software și sistemele de planificare a resurselor întreprinderii care ajută companiile să atingă eficiența operațională maximă, au făcut ca birourile automatizate să devină realitate.

Potrivit firmei de consultanță McKinsey, departamentele de finanțe corporative au redus costurile cu aproape 30% în ultimul deceniu prin implementarea soluțiilor de automatizare în domenii precum achiziții, contabilitate și salarizare. Aceste inovații au transformat funcțiile financiare și au eliminat multe ineficiențe.

În calitate de analist financiar și dezvoltator de software, am profitat din plin de automatizare instalând roboți pentru sarcini financiare atunci când mi-am creat și construit propria mea firmă de consultanță, Pylink. Dar multe birouri financiare încă nu au făcut-o, așa că continuă să cheltuiască o cantitate exagerată de timp și resurse pentru îndeplinirea sarcinilor de bază.

Nu sunt singurul care a observat problema. Firma de consultanță PwC a descoperit că birourile financiare trebuie să-și sporească productivitatea și perspectiva prin automatizare și îmbunătățirea proceselor, ceea ce poate reduce costurile cu procente de două cifre pentru multe funcții cheie. Cercetarea PwC indică faptul că automatizarea ar putea reduce cu 40% din timpul petrecut de oameni pentru raportarea managementului, 27% din timpul petrecut cu contabilitatea fiscală și 23% din orele dedicate gestionării creditelor, contabilității generale și facturării.

Deloitte a ajuns la concluzii comparabile: citând cercetările publicate de Ayehu, raportează că automatizarea inteligentă scade costurile proceselor de afaceri cu 25 până la 40%. Iar cercetarea Gartner dezvăluie că o companie cu 40 de membri ai personalului contabil cu normă întreagă ar putea elimina peste 870.000 USD în cheltuieli în fiecare an prin automatizarea sarcinilor și eliminând munca suplimentară pentru a remedia erorile umane.

În acest articol, aș dori să împărtășesc câteva strategii simple de automatizare pe care le-am folosit pentru compania mea și clienții mei - remedieri simple care pot fi utile pentru organizații de orice dimensiune.

Soluțiile disponibile, cum ar fi QuickBooks, pot fi utile pentru organizațiile mai mici. Cu toate acestea, pentru a maximiza eficiența, vă sfătuiesc să utilizați limbaje de programare precum Python pentru a vă construi soluțiile personalizate, inclusiv roboți pentru afaceri. Python este foarte intuitiv și oferă o bibliotecă mare standard de instrumente, plus acces la biblioteci specifice finanțelor, ceea ce îl face mai versatil decât Excel.

În articolul meu anterior pentru Toptal, am arătat cât de ușor este să utilizați Python pentru a dezvolta modele de flux de numerar personalizate pentru corporații. Vă încurajez să citiți asta dacă sunteți interesat să învățați limba. În acest articol, totuși, vă voi oferi o privire de ansamblu asupra aplicațiilor practice - de la urmărirea timpului la salarizare la e-mail - pe care un dezvoltator le poate implementa rapid și ușor pentru dvs. dacă nu sunteți interesat să vă aprofundați singur codul.

Cum compania mea folosește botul pentru finanțare: plăți ușoare și eficiente

Permiteți-mi să vă demonstrez cât de utilă poate fi automatizarea personalizată, arătându-vă un exemplu de la compania mea, care poate servi drept studiu de caz. În ciuda faptului că sunt o afacere mică, echipa mea de la Pylink și cu mine ne confruntăm cu o complexitate considerabilă care prezintă provocări atunci când vine vorba de plăți, inclusiv următoarele:

  • Lucrăm la mai multe proiecte bazate pe contracte pe oră și trebuie să urmărim timpul fiecăreia dintre sarcinile noastre.
  • Clienții noștri sunt din țări diferite și astfel ne plătesc în mai multe valute.
  • În timp ce folosim o echipă internă de inginerie software pentru unele proiecte, subcontractăm altele către dezvoltatori din diferite țări.
  • Din perspectiva optimizării fiscale, avem trei companii: una cu sediul în Regatul Unit, una cu sediul în UE și una un freelancer individual din UE.
  • Fiecare dintre companiile noastre are conturi bancare separate în mai multe valute, inclusiv USD, EUR, GBP și HUF.
  • Avem costuri regulate, cum ar fi taxe, salarii și beneficii pentru angajații cu normă întreagă, spațiu de birou și consumabile și software, în diferite valute.

Pentru a dezvolta un sistem de plată care să răspundă acestor provocări, folosesc (și recomand) următoarele tehnologii pentru a crea un bot Python care rulează în infrastructura cloud a Amazon Web Services (AWS).

  • Baza de cod: Python (descărcabil gratuit)
  • Serviciul pe care rulează codul: AWS Lambda
    • Lambda facilitează scalarea execuției codului nostru după cum este necesar.
    • Acest serviciu intră în vigoare numai atunci când este declanșat. Puneți codul dvs. Python într-o funcție Lambda și configurați un eveniment de declanșare - orice, de la o comandă vocală Alexa la o oră calendaristică programată.
    • Deoarece Lambda este fără server, este o soluție rentabilă care ne cere să plătim doar pentru timpul de calcul pe care îl folosim efectiv.
  • Instrument de operațiuni bancare: Wise API
    • Un API (interfață de programare a aplicațiilor) este un intermediar software care permite a două aplicații să comunice între ele. Wise API ne permite mie și echipa mea să obținem cu ușurință informații despre extras și date istorice ale tranzacțiilor, precum și să efectuăm plăți automat. De asemenea, ne permite să urmărim cursurile de schimb valutar și să facem conversii automate.
  • Tracker timp: Everhour + Everhour API
    • Acest software oferă o urmărire precisă a timpului și capabilități flexibile de facturare și bugetare. În plus, se integrează perfect cu instrumente de management de proiect, cum ar fi Asana, Trello, Jira și GitHub.
  • Expeditor de e-mail: Amazon Simple Email Service
    • Cu Amazon SES, avem o modalitate adaptabilă și sigură de a trimite e-mailuri HTML din cadrul oricărei aplicații, împreună cu analiza datelor pentru a monitoriza livrările și returnările.
    • Nivelul de utilizare gratuit al SES vă permite să trimiteți până la 62.000 de mesaje pe lună gratuit dacă activați serviciul dintr-o aplicație găzduită în Amazon EC2 sau prin AWS Lambda.
  • Programator: AWS EventBridge
    • Folosind acest instrument, putem declanșa cu ușurință botul nostru Python pentru a efectua funcții financiare programate lunar sau semilunar.
    • Deoarece EventBridge, ca și Lambda, nu necesită un server pentru funcționare, ne reduce în mod semnificativ cheltuielile generale.
  • Notificare Slack: API Slack
    • Acest API trimite alerte în timp real pentru a ne informa despre programul contractorilor noștri și pentru a ne spune dacă clienții ne-au plătit.
  • Comunicare slăbită cu botul: Slack API + Amazon API Gateway
    • API-ul Slack permite botului Python să ne trimită cereri de plată pentru aprobare.
    • Cu un singur clic pe partea noastră, botul nostru poate folosi API Gateway pentru a finaliza fiecare plată automat.
    • API Gateway oferă un nivel gratuit care vă oferă acces la peste un milion de apeluri API și un milion de mesaje pe lună timp de un an.

Iată cum am folosit aceste instrumente pentru a automatiza un caz de utilizare multitask: personal plătitor, contractori și eu. Vă voi arăta întregul proces la un nivel înalt înainte de a aborda cele mai comune practici de automatizare.

O diagramă de flux cu pictograme arată procesul în nouă pași pe care Miklos îl urmează pentru a plăti angajații, dezvoltatorii și el însuși. Detaliile complete sunt furnizate în textul care urmează.

Acum să parcurgem pașii:

  1. În prima zi a fiecărei luni, folosim AWS EventBridge pentru a declanșa botul Python care este stocat în AWS Lambda.
  2. Folosind API-ul Everhour, botul extrage foi de pontaj pentru toți angajații, contractorii (dezvoltatori, în cazul lui Pylink) și pentru mine.
  3. Apoi, bot-ul adună orele lucrate pentru fiecare proiect și creează o foaie de pontaj și o factură (ambele PDF-uri). Apoi trimite aceste documente clienților prin e-mail.
  4. În plus, botul informează echipa lui Pylink prin Slack despre orele contractorilor. De asemenea, solicită permisiunea de a le plăti prin prezentarea butoanelor „aprobă” și „resping”.
  5. Dacă cineva din echipa de management Pylink aprobă cererea, botul trimite un mesaj către propriul nostru API (o adresă URL publică întotdeauna disponibilă) prin AWS API Gateway, care execută un alt cod într-o funcție Lambda pentru a efectua transferul.
  6. A doua funcție Lambda folosește API-ul Wise pentru a efectua plata.
  7. În data de 14 a fiecărei luni, folosim din nou EventBridge pentru a programa o altă serie de funcții de urmărire. Dar de data aceasta, EventBridge declanșează un cod diferit salvat într-o altă funcție Lambda.
  8. Acest cod folosește API-ul Wise pentru a urmări tranzacțiile din ultimele două săptămâni și pentru a verifica dacă clientul a plătit.
  9. Dacă a existat o plată de la client, botul trimite o confirmare Slack echipei Pylink prin API-ul Slack. Dacă nu a existat o plată, botul trimite un e-mail clientului utilizând serviciul Amazon SES.

Anterior, toate aceste sarcini erau efectuate manual, consumând timp și energie prețioasă care acum poate fi cheltuită în altă parte. Cel mai bine, am reușit să stabilim acest proces fără o investiție mare de timp sau bani.

Ce poți face cu automatizarea

Acum să ne uităm la unele dintre cele mai practice aplicații pentru automatizare, folosind instrumentele pe care le-am discutat deja. Pentru referință, voi include câteva exemple de codare ca resursă pentru dezvoltatorii dvs. interni, contractuali sau independenți sau pentru dvs., dacă alegeți să învățați Python pentru a vă ajuta cu activitatea companiei sau a clienților.

Urmărirea orelor de lucru și a proiectelor

La sfârșitul fiecărei luni, botul (folosind Everhour) rulează funcția „close_the_month” care colectează toate orele petrecute pe diferite sarcini:

  • Orele mele pe proiectele mele de consultanță (venituri)
  • Orele dezvoltatorilor pe proiectele clientului (atât venituri, cât și cost)
  • Orele dezvoltatorilor pe propria noastră dezvoltare software (cost)

Ceea ce urmează este o funcție simplă care returnează un Pandas DataFrame, adică un tabel cu rânduri și coloane, inclusiv toate orele și proiectele pentru o perioadă de timp pentru un anumit utilizator. Vă rugăm să rețineți că, așa cum am menționat mai devreme, acesta și toate fragmentele de codare ulterioare sunt doar punctele importante ale întregii baze de cod, nu un tutorial pas cu pas pentru a construi botul nostru.

O captură de ecran care arată un eșantion de cod Python scris pentru a efectua funcția „close_the_month”. Afișează limba și sintaxa pe care autorul le-a folosit rând cu rând.

Crearea unei foi de pontaj PDF și a unei facturi

Cu orele de proiect ale fiecărui muncitor urmărite automat, următoarea sarcină este crearea foilor de pontaj și a facturilor. Există multe pachete Python care vă permit să creați fișiere PDF. Folosim PyFPDF, o bibliotecă compactă de generare de documente care oferă simplitate, precum și flexibilitate de a desena forme și de a adăuga imagini și text. După cum puteți vedea din exemplul următor, rezultă o factură curată și profesională:

Se afișează o factură de la Pylink. Se citește „Facturat către Watchclever Ltd”, clientul și oferă data facturii, data scadenței, perioada facturată și tipul plății (transfer bancar). De asemenea, afișează orele pentru fiecare dintre cei patru consultanți și totalul combinat de 45,7 ore.

Deși există metode mai avansate pentru crearea de rapoarte, PDF-ul este o alegere bună, deoarece este un format universal utilizat în toate industriile și este ușor de generat. De asemenea, permite trimiterea de fișiere către oricine, asigurând în același timp că toate fonturile, imaginile, tabelele și formatarea vor fi transferate. În plus, funcționează independent de hardware-ul computerului și de sistemul de operare și poate fi utilizat offline.

Trimiterea de e-mailuri

Amazon Simple Email Service este un instrument rentabil și scalabil pentru crearea și implementarea e-mailurilor HTML frumos formatate. În plus, analiza datelor SES urmărește și distribuie informații despre rezultatele buclei de feedback pentru a vă anunța dacă vreun destinatari raportează mesajul dvs. ca spam, fie din greșeală, fie pentru că e-mailul a fost trimis la o adresă greșită. De asemenea, analizele măsoară eficiența fiecărei comunicări în ceea ce privește implicarea, inclusiv ratele de deschidere și de clic. Această caracteristică este utilă în special pentru e-mailurile de marketing.

Iată un exemplu de cod Python folosit pentru a genera un e-mail cu o factură atașată și pentru a o trimite unui client:

O captură de ecran arată un fragment de codificare cu limbajul și sintaxa Python pe care autorul le-a folosit pentru a crea un e-mail, a atașa o factură și a o trimite clientului său pentru plată.

Și iată e-mailul pe care îl produce:

O captură de ecran a e-mailului creat de cod. Se atașează un PDF al facturii. Mesajul spune:

Automatizarea activităților bancare

Am ales Wise pentru conturile bancare private și de afaceri, deoarece avem venituri și costuri în mai multe valute, iar această companie de tehnologie financiară are taxe de schimb avantajoase, o interfață de utilizator intuitivă și un API flexibil cu documentație detaliată.

Folosim acest API pentru a îndeplini următoarele sarcini:

  • Colectați informații din extras pentru fiecare companie și monedă, astfel încât să pot vedea rapid lichiditatea agregată și reală.
  • Extrageți informații despre tranzacții istorice, astfel încât să pot identifica tendințele diferitelor articole de cost și să verific dacă clientul a plătit factura din luna precedentă. Dacă nu au, API-ul trimite un e-mail de memento.
  • Efectuați automat transferuri de bani.

Mai jos este codul pe care l-am programat pentru a finaliza prima dintre aceste sarcini (colectarea informațiilor despre declarații):

O captură de ecran afișează un eșantion de cod Python pe care autorul îl folosește pentru a obține informații despre sold pentru fiecare dintre companiile Pylink.

Pentru costurile fixe obișnuite (salariu, taxe, costuri de birou etc.), nu este nevoie să scrieți cod pentru a face transferuri automate; Wise are o funcție de plată programată. Totuși, dacă suma nu este fixă, ci se bazează pe o formulă pe care o poate calcula un algoritm, API-ul Wise este util. În cazul meu, salariul consilierului de afaceri este un exemplu notabil, deoarece este o funcție a venitului lunar. Verificând orele urmărite, botul știe exact cât de mult venituri avem și, prin urmare, cât să plătească consilierului.

Atenuarea riscurilor printr-o conversație bilaterală cu botul

Este esențial să fii conștient de activitatea botului, deoarece pot exista erori de codare care nu sunt dezvăluite în timpul testării. Primim notificări în timp real pe Slack, astfel încât să putem remedia imediat orice cod rupt. Iată câteva exemple de notificări care ne informează că botul funcționează corect:

Această imagine mică și simplă surprinde un mesaj Slack de la botul Pylink care spune: „Plata a avut succes!”

Următoarea imagine este o altă notificare Slack de la botul Pylink. Textul spune: „Închiderea lunii precedente 2022-01-01 -- 2022-01-31” și arată costul total al lucrării efectuate pentru Watchclever Ltd. în această perioadă, urmat de o defalcare a acestui cost pe baza orelor pentru fiecare consultant.

De asemenea, am activat botul să trimită întrebări de confirmare pentru echipa Pylink înainte de fiecare transfer bancar. Acest lucru ne ajută să evităm greșelile din cauza erorilor umane. Imaginați-vă că un dezvoltator face o greșeală de tipar și introduce 825 de ore în loc de 8,25 ore pentru un bilet. Un pas de aprobare în Slack asigură că nu transferăm de o sută de ori mai mulți bani decât datorăm. Procesul păstrează elementul verificării umane, dar oferă o experiență perfectă.

O captură de ecran a unei notificări Slack „Confirmare plată” de la botul Pylink. Scrie: „Yurii a lucrat 43,5 ore luna trecută; prin urmare, [blank] USD sunt datorați. Pot să-l plătesc?” (Suma în dolari este redactată.) Sunt prezentate opțiunile „Aprobare” și „respingere”.

Există o mulțime de alte funcționalități pe care le puteți realiza și cu API-ul Slack.

Biroul de Mâine

Automatizarea afacerilor poate ajuta organizațiile să prospere. Instrumentele pe care le-am discutat pot transforma companiile care au nevoie de o mai mare eficiență și control, mai ales când vine vorba de funcții tranzacționale, cum ar fi conturile de plătit, conturile de încasat și alte domenii de bază ale contabilității.

Dar acesta nu este sfârșitul poveștii. Potrivit lui McKinsey, provocarea pentru liderii corporativi este de a crea o rețea și mai largă pentru noi eficiențe. Firma sprijină reimaginarea întregii operațiuni financiare, mergând dincolo de sarcinile tranzacționale, conducând în domenii precum analiza datelor - consolidarea, simplificarea și controlul informațiilor în cadrul corporației. Nu aș putea fi mai de acord. Vă recomand să explorați soluții de codificare care vă ajută organizația să-și dețină răspunsurile și să-și promoveze cultura orientată spre rezultate. Între timp, adoptarea tacticilor pe care le-am descris aici vă poate ajuta compania să devină mai eficientă astăzi, oferindu-vă în același timp o gustare a posibilităților de mâine.