Bot per la finanza: come aumentare l'efficienza del back-office attraverso l'automazione

Pubblicato: 2022-07-22

La menzione dell'ufficio del futuro potrebbe evocare immagini di macchine che si occupano di compiti ripetitivi e ad alta intensità di lavoro. Ma quel futuro è adesso. Lo sviluppo di tecnologie come applicazioni basate su cloud, nonché piattaforme software e sistemi di pianificazione delle risorse aziendali che aiutano le aziende a raggiungere la massima efficienza operativa, hanno reso gli uffici automatizzati una realtà.

Secondo la società di consulenza McKinsey, i dipartimenti di finanza aziendale hanno ridotto i costi di quasi il 30% nell'ultimo decennio implementando soluzioni di automazione in aree come approvvigionamento, contabilità e buste paga. Queste innovazioni hanno trasformato le funzioni finanziarie ed eliminato molte inefficienze.

In qualità di analista finanziario e sviluppatore di software, ho sfruttato appieno l'automazione configurando bot per attività finanziarie quando ho creato e creato la mia società di consulenza, Pylink. Ma molti uffici finanziari non l'hanno ancora fatto, quindi continuano a dedicare una quantità eccessiva di tempo e risorse allo svolgimento di attività di base.

Non sono l'unico ad aver notato il problema. La società di consulenza PwC ha scoperto che gli uffici finanziari devono aumentare la propria produttività e conoscenza attraverso l'automazione e il miglioramento dei processi, che possono ridurre i costi di percentuali a due cifre per molte funzioni chiave. La ricerca di PwC indica che l'automazione potrebbe ridurre del 40% il tempo dedicato dalle persone alla reportistica di gestione, il 27% del tempo dedicato alla contabilità fiscale e il 23% delle ore dedicate alla gestione del credito, alla contabilità generale e alla fatturazione.

Deloitte è giunta a conclusioni comparabili: citando una ricerca pubblicata da Ayehu, riporta che l'automazione intelligente riduce i costi dei processi aziendali dal 25 al 40%. E la ricerca di Gartner rivela che un'azienda con 40 dipendenti contabili a tempo pieno potrebbe eliminare oltre $ 870.000 di spesa ogni anno automatizzando le attività ed eliminando il lavoro extra per correggere l'errore umano.

In questo articolo, vorrei condividere alcune semplici strategie di automazione che ho utilizzato per la mia azienda e i miei clienti: semplici soluzioni che possono essere utili per organizzazioni di qualsiasi dimensione.

Soluzioni standard come QuickBooks possono essere utili per le organizzazioni più piccole. Tuttavia, per massimizzare l'efficienza, consiglio di utilizzare linguaggi di programmazione come Python per creare soluzioni personalizzate, inclusi i bot per le aziende. Python è molto intuitivo e fornisce un'ampia libreria standard di strumenti, oltre all'accesso a librerie specifiche per le finanze, il che lo rende più versatile di Excel.

Nel mio precedente articolo per Toptal, ho mostrato quanto sia facile usare Python per sviluppare modelli di flusso di cassa su misura per le aziende. Ti incoraggio a leggerlo se sei interessato ad imparare la lingua. In questo articolo, tuttavia, ti fornirò una panoramica delle applicazioni pratiche, che vanno dal monitoraggio del tempo al libro paga, all'e-mail, che uno sviluppatore può implementare rapidamente e facilmente per te se non sei interessato ad approfondire il codice da solo.

In che modo la mia azienda sfrutta i bot per la finanza: pagamenti facili ed efficienti

Lascia che ti dimostri quanto possa essere utile l'automazione personalizzata mostrandoti un esempio della mia azienda, che può fungere da case study. Nonostante sia una piccola impresa, io e il mio team di Pylink affrontiamo una notevole complessità che presenta sfide quando si tratta di pagamenti, tra cui le seguenti:

  • Lavoriamo su diversi progetti basati su contratti orari e dobbiamo tenere traccia del tempo di ciascuna delle nostre attività.
  • I nostri clienti provengono da diversi paesi e quindi ci pagano in più valute.
  • Mentre utilizziamo un team di ingegneri del software interno su alcuni progetti, altri subappaltiamo a sviluppatori di paesi diversi.
  • Dal punto di vista dell'ottimizzazione fiscale, abbiamo tre società: una con sede nel Regno Unito, una con sede nell'UE e una libera professionista con sede nell'UE.
  • Ciascuna delle nostre società ha conti bancari separati in più valute, inclusi USD, EUR, GBP e HUF.
  • Abbiamo costi regolari, come tasse, stipendi e benefit per dipendenti a tempo pieno, spazi e forniture per ufficio e software, in valute diverse.

Per sviluppare un sistema di pagamento in grado di soddisfare queste sfide, utilizzo (e raccomando) le seguenti tecnologie per creare un bot Python in esecuzione nell'infrastruttura cloud di Amazon Web Services (AWS).

  • Codebase: Python (scaricabile gratuitamente)
  • Servizio su cui è in esecuzione il codice: AWS Lambda
    • Lambda rende conveniente ridimensionare l'esecuzione del codice in base alle esigenze.
    • Questo servizio entra in vigore solo quando viene attivato. Inserisci il tuo codice Python in una funzione Lambda e imposti un evento trigger, da un comando vocale Alexa a un'ora di calendario pianificata.
    • Poiché Lambda è serverless, è una soluzione conveniente che ci impone di pagare solo per il tempo di elaborazione effettivamente utilizzato.
  • Strumento per le operazioni bancarie: Wise API
    • Un'API (Application Programming Interface) è un intermediario software che consente a due applicazioni di comunicare tra loro. Wise API consente a me e al mio team di ottenere facilmente informazioni sull'estratto conto e dati storici sulle transazioni, oltre a effettuare pagamenti automaticamente. Ci consente inoltre di monitorare i tassi di cambio valuta ed effettuare conversioni automatizzate.
  • Time tracker: Everhour + Everhour API
    • Questo software offre un monitoraggio accurato del tempo e funzionalità flessibili di fatturazione e budgeting. Inoltre, si integra perfettamente con strumenti di gestione dei progetti come Asana, Trello, Jira e GitHub.
  • Mittente e-mail: Amazon Simple Email Service
    • Con Amazon SES, abbiamo un modo adattabile e sicuro per inviare e-mail HTML da qualsiasi applicazione, insieme all'analisi dei dati per monitorare consegne e rimbalzi.
    • Il piano di utilizzo gratuito di SES ti consente di inviare gratuitamente fino a 62.000 messaggi al mese se attivi il servizio da un'applicazione ospitata in Amazon EC2 o tramite AWS Lambda.
  • Utilità di pianificazione: AWS EventBridge
    • Utilizzando questo strumento, possiamo facilmente attivare il nostro bot Python per eseguire funzioni finanziarie programmate mensilmente o semestralmente.
    • Poiché EventBridge, come Lambda, non richiede un server per il funzionamento, riduce notevolmente il nostro sovraccarico.
  • Notifica Slack: API Slack
    • Questa API invia avvisi in tempo reale per informarci sugli orari dei nostri appaltatori e indicarci se i clienti ci hanno pagato.
  • Comunicazione debole con il bot: API Slack + Amazon API Gateway
    • L'API Slack consente al bot Python di inviarci richieste di pagamento per l'approvazione.
    • Con un solo clic da parte nostra, il nostro bot è in grado di utilizzare API Gateway per completare automaticamente ogni pagamento.
    • API Gateway offre un livello gratuito che ti dà accesso a oltre un milione di chiamate API e un milione di messaggi al mese per un anno.

Ecco come ho utilizzato questi strumenti per automatizzare un caso d'uso multitasking: personale pagante, appaltatori e me stesso. Ti mostrerò l'intero processo ad alto livello prima di immergerti nelle pratiche di automazione più comuni.

Un diagramma di flusso con icone mostra il processo in nove fasi che Miklos segue per pagare dipendenti, sviluppatori e se stesso. Tutti i dettagli sono forniti nel testo che segue.

Ora andiamo attraverso i passaggi:

  1. Il primo giorno di ogni mese, utilizziamo AWS EventBridge per attivare il bot Python archiviato in AWS Lambda.
  2. Utilizzando l'API Everhour, il bot estrae schede attività per tutti i dipendenti, gli appaltatori (sviluppatori, nel caso di Pylink) e me.
  3. Successivamente, il bot aggrega le ore lavorate per ciascun progetto e crea un foglio presenze e una fattura (entrambi PDF). Quindi invia questi documenti ai clienti tramite e-mail.
  4. Inoltre, il bot notifica al team di Pylink tramite Slack gli orari degli appaltatori. Chiede inoltre il permesso di pagarli presentando i pulsanti "approva" e "nega".
  5. Se qualcuno del team di gestione di Pylink approva la richiesta, il bot invia un messaggio alla nostra API (un URL pubblico sempre disponibile) tramite AWS API Gateway, che esegue un altro codice in una funzione Lambda per effettuare il trasferimento.
  6. La seconda funzione Lambda utilizza l'API Wise per effettuare il pagamento.
  7. Il 14 di ogni mese, utilizziamo nuovamente EventBridge per programmare un'altra serie di funzioni di follow-up. Ma questa volta EventBridge attiva un codice diverso salvato in un'altra funzione Lambda.
  8. Questo codice utilizza l'API Wise per tenere traccia delle transazioni delle ultime due settimane e verificare se il cliente ha pagato.
  9. Se c'è stato un pagamento da parte del cliente, il bot invia una conferma Slack al team Pylink tramite l'API Slack. Se non c'è stato un pagamento, il bot invia un'e-mail al cliente utilizzando il servizio Amazon SES.

In precedenza, tutte queste attività venivano eseguite manualmente, consumando tempo ed energia preziosi che ora possono essere spesi altrove. Soprattutto, siamo stati in grado di impostare questo processo senza un grande investimento di tempo o denaro.

Cosa puoi fare con l'automazione

Ora diamo un'occhiata ad alcune delle applicazioni più pratiche per l'automazione, utilizzando gli strumenti di cui ho già parlato. Per riferimento, includerò alcuni esempi di codifica come risorsa per i tuoi sviluppatori interni, a contratto o freelance o per te stesso, se dovessi scegliere di imparare Python per assistere la tua azienda o il lavoro del cliente.

Monitoraggio delle ore di lavoro e dei progetti

Alla fine di ogni mese, il bot (usando Everhour) esegue la funzione "chiudi_il_mese" che raccoglie tutte le ore trascorse in diversi incarichi:

  • Le mie ore sui miei progetti di consulenza (ricavi)
  • Le ore degli sviluppatori sui progetti del cliente (entrate e costi)
  • Le ore degli sviluppatori sul nostro sviluppo software (costo)

Quella che segue è una semplice funzione che restituisce un Pandas DataFrame, cioè una tabella con righe e colonne, che include tutte le ore ei progetti per un periodo di tempo per un dato utente. Tieni presente che, come accennato in precedenza, questo e tutti i successivi estratti di codice sono solo punti salienti dell'intera base di codice, non un tutorial passo-passo per costruire il nostro bot.

Uno screenshot che mostra un esempio del codice Python scritto per eseguire la funzione "chiudi_il_mese". Visualizza la lingua e la sintassi che l'autore ha utilizzato riga per riga.

Creazione di un foglio presenze in PDF e fattura

Con le ore di progetto di ogni lavoratore monitorate automaticamente, l'attività successiva consiste nel creare schede attività e fatture. Esistono molti pacchetti Python che ti consentono di creare file PDF. Utilizziamo PyFPDF, una libreria di generazione di documenti compatta che offre semplicità e flessibilità per disegnare forme e aggiungere immagini e testo. Come puoi vedere dal seguente esempio, produce una fattura pulita e professionale:

Viene mostrata una fattura di Pylink. Si legge "Fatturato a Watchclever Ltd", il cliente, e fornisce la data della fattura, la data di scadenza, il periodo fatturato e il tipo di pagamento (bonifico bancario). Visualizza anche le ore per ciascuno dei quattro consulenti e il totale combinato di 45,7 ore.

Sebbene esistano metodi più avanzati per la creazione di report, il PDF è una buona scelta perché è un formato universale utilizzato in tutti i settori ed è facile da generare. Consente inoltre di inviare file a chiunque garantendo il trasferimento di tutti i tipi di carattere, immagini, tabelle e formattazione. Inoltre, funziona indipendentemente dall'hardware del computer e dal sistema operativo e può essere utilizzato offline.

Inviando email

Amazon Simple Email Service è uno strumento conveniente e scalabile per creare e distribuire e-mail HTML ben formattate. Inoltre, l'analisi dei dati di SES tiene traccia e condivide le informazioni sui risultati del ciclo di feedback per avvisarti se un destinatario segnala il tuo messaggio come spam, per errore o perché l'e-mail è stata inviata all'indirizzo sbagliato. L'analisi misura anche l'efficacia di ogni comunicazione in termini di coinvolgimento, comprese le percentuali di apertura e di click-through. Questa funzione è particolarmente utile per le email di marketing.

Ecco un esempio del codice Python utilizzato per generare un'e-mail con una fattura allegata e inviarla a un cliente:

Uno screenshot mostra un estratto di codice con il linguaggio Python e la sintassi utilizzata dall'autore per creare un'e-mail, allegare una fattura e inviarla al suo cliente per il pagamento.

Ed ecco l'email che produce:

Uno screenshot dell'e-mail creata dal codice. In allegato PDF della fattura. Il messaggio recita:

Automatizzare le attività bancarie

Abbiamo scelto Wise per conti bancari privati ​​e aziendali poiché abbiamo entrate e costi in diverse valute e questa società di tecnologia finanziaria ha commissioni di cambio favorevoli, un'interfaccia utente intuitiva e un'API flessibile con documentazione dettagliata.

Usiamo questa API per svolgere le seguenti attività:

  • Raccogli le informazioni sull'estratto conto per ciascuna società e valuta, in modo da poter vedere rapidamente la liquidità aggregata e effettiva.
  • Estrarre informazioni storiche sulle transazioni, in modo da poter identificare le tendenze in diverse voci di costo e verificare se il cliente ha pagato la fattura del mese precedente. In caso contrario, l'API invia un'e-mail di promemoria.
  • Effettua trasferimenti di denaro automaticamente.

Di seguito è riportato il codice che abbiamo programmato per completare la prima di queste attività (raccolta delle informazioni sull'estratto conto):

Uno screenshot mostra un esempio del codice Python che l'autore utilizza per ottenere informazioni sul saldo per ciascuna delle società di Pylink.

Per i costi fissi regolari (stipendio, tasse, spese di ufficio, ecc.), non è necessario scrivere codice per effettuare bonifici automatici; Wise ha una funzione di pagamento programmato. Tuttavia, se l'importo non è fisso ma basato su una formula che un algoritmo può calcolare, l'API Wise è utile. Nel mio caso, lo stipendio del consulente aziendale è un esempio notevole poiché è una funzione delle entrate mensili. Controllando le ore tracciate, il bot sa esattamente quante entrate abbiamo e quindi quanto pagare l'advisor.

Mitigazione dei rischi attraverso una conversazione bilaterale con il bot

È fondamentale essere consapevoli dell'attività del bot, poiché possono esserci bug di codifica che non vengono rivelati durante i test. Riceviamo notifiche in tempo reale su Slack, quindi possiamo correggere tempestivamente qualsiasi codice danneggiato. Ecco un paio di esempi di notifica che ci informano che il bot sta funzionando correttamente:

Questa piccola e semplice immagine cattura un messaggio Slack dal bot Pylink che dice "Il pagamento è andato a buon fine!"

L'immagine successiva è un'altra notifica Slack dal bot Pylink. Il testo dice "Chiusura del mese precedente 2022-01-01 -- 2022-01-31" e mostra il costo totale del lavoro svolto per Watchclever Ltd. durante questo periodo, seguito da una ripartizione di questo costo in base alle ore per ogni consulente.

Abbiamo anche consentito al bot di inviare domande di conferma per il team Pylink prima di ogni bonifico bancario. Questo ci aiuta a evitare errori dovuti all'errore umano. Immagina che uno sviluppatore commetta un errore di battitura e inserisca 825 ore invece di 8,25 ore per un biglietto. Un passaggio di approvazione in Slack garantisce che non trasferiamo cento volte più denaro di quanto dobbiamo. Il processo mantiene l'elemento della verifica umana ma offre un'esperienza senza interruzioni.

Uno screenshot di una notifica Slack "Conferma pagamento" dal bot Pylink. Si legge: "Yurii ha lavorato 43,5 ore il mese scorso, quindi è dovuto [vuoto] USD. Posso pagarlo?" (L'importo in dollari viene cancellato.) Vengono presentate le opzioni "Approva" e "Nega".

Ci sono anche molte altre funzionalità che puoi ottenere con l'API Slack.

L'ufficio di domani

L'automazione aziendale può aiutare le organizzazioni a prosperare. Gli strumenti di cui ho parlato possono trasformare le aziende che necessitano di maggiore efficienza e controllo, soprattutto quando si tratta di funzioni transazionali come conti fornitori, conti attivi e altre aree contabili fondamentali.

Ma questa non è la fine della storia. Secondo McKinsey, la sfida per i leader aziendali è lanciare una rete ancora più ampia per nuove efficienze. L'azienda supporta la reimmaginazione dell'intera operazione finanziaria, andando oltre le semplici attività transazionali, guidando in aree come l'analisi dei dati, consolidando, semplificando e controllando le informazioni in tutta l'azienda. Non potrei essere più d'accordo. Ti consiglio di esplorare soluzioni di codifica che aiutino la tua organizzazione a possedere le sue risposte e a far progredire la sua cultura orientata ai risultati. Nel frattempo, l'adozione delle tattiche che ho descritto qui può aiutare la tua azienda a diventare più efficiente oggi, dandoti un assaggio delle possibilità di domani.