Bots pour la finance : comment augmenter l'efficacité du back-office grâce à l'automatisation

Publié: 2022-07-22

La mention du bureau du futur pourrait évoquer des images de machines prenant en charge des tâches répétitives et à forte intensité de main-d'œuvre. Mais cet avenir, c'est maintenant. Le développement de technologies telles que les applications basées sur le cloud, ainsi que les plates-formes logicielles et les systèmes de planification des ressources d'entreprise qui aident les entreprises à atteindre une efficacité opérationnelle maximale, ont fait des bureaux automatisés une réalité.

Selon le cabinet de conseil McKinsey, les services financiers des entreprises ont réduit leurs coûts de près de 30 % au cours de la dernière décennie en mettant en œuvre des solutions d'automatisation dans des domaines tels que les achats, la comptabilité et la paie. Ces innovations ont transformé les fonctions financières et éliminé de nombreuses inefficacités.

En tant qu'analyste financier et développeur de logiciels, j'ai pleinement profité de l'automatisation en configurant des robots pour les tâches financières lorsque j'ai créé et construit ma propre société de conseil, Pylink. Mais de nombreux bureaux des finances ne l'ont toujours pas fait, ils continuent donc à consacrer un temps et des ressources démesurés à l'exécution de tâches de base.

Je ne suis pas le seul à avoir noté le problème. Le cabinet de conseil PwC a constaté que les bureaux financiers devaient augmenter leur productivité et leur perspicacité grâce à l'automatisation et à l'amélioration des processus, ce qui peut réduire les coûts de pourcentages à deux chiffres pour de nombreuses fonctions clés. Les recherches de PwC indiquent que l'automatisation pourrait réduire de 40 % le temps consacré aux rapports de gestion, 27 % du temps consacré à la comptabilité fiscale et 23 % des heures consacrées à la gestion du crédit, à la comptabilité générale et à la facturation.

Deloitte est parvenu à des conclusions comparables : citant des recherches publiées par Ayehu, il rapporte que l'automatisation intelligente réduit les coûts des processus métier de 25 à 40 %. Et les recherches de Gartner révèlent qu'une entreprise comptant 40 employés comptables à temps plein pourrait éliminer plus de 870 000 $ de dépenses chaque année en automatisant les tâches et en éliminant le travail supplémentaire pour corriger les erreurs humaines.

Dans cet article, j'aimerais partager quelques stratégies d'automatisation simples que j'ai utilisées pour mon entreprise et mes clients, des solutions simples qui peuvent être utiles pour les organisations de toutes tailles.

Des solutions prêtes à l'emploi comme QuickBooks peuvent être utiles pour les petites organisations. Cependant, pour maximiser l'efficacité, je conseille d'utiliser des langages de programmation comme Python pour créer vos solutions sur mesure, y compris des bots pour les entreprises. Python est très intuitif et fournit une grande bibliothèque standard d'outils, ainsi qu'un accès à des bibliothèques spécifiques à la finance, ce qui le rend plus polyvalent qu'Excel.

Dans mon article précédent pour Toptal, j'ai montré à quel point il est facile d'utiliser Python pour développer des modèles de flux de trésorerie sur mesure pour les entreprises. Je vous encourage à lire cela si vous êtes intéressé à apprendre la langue. Dans cet article, cependant, je vais vous donner un aperçu des applications pratiques - allant du suivi du temps à la paie en passant par les e-mails - qu'un développeur peut rapidement et facilement implémenter pour vous si vous n'êtes pas intéressé à vous plonger dans le code vous-même.

Comment mon entreprise exploite les bots pour la finance : paiements simples et efficaces

Permettez-moi de démontrer à quel point l'automatisation personnalisée peut être utile en vous montrant un exemple de mon entreprise, qui peut servir d'étude de cas. Bien que nous soyons une petite entreprise, mon équipe chez Pylink et moi-même sommes confrontés à une complexité considérable qui présente des défis en matière de paiements, notamment les suivants :

  • Nous travaillons sur plusieurs projets basés sur des contrats horaires et devons suivre le temps de chacune de nos tâches.
  • Nos clients viennent de différents pays et nous paient donc en plusieurs devises.
  • Alors que nous utilisons une équipe d'ingénierie logicielle interne sur certains projets, nous en sous-traitons d'autres à des développeurs de différents pays.
  • Du point de vue de l'optimisation fiscale, nous avons trois sociétés : une basée au Royaume-Uni, une basée dans l'UE et une indépendante basée dans l'UE.
  • Chacune de nos sociétés possède des comptes bancaires distincts dans plusieurs devises, dont USD, EUR, GBP et HUF.
  • Nous avons des coûts réguliers, tels que les impôts, les salaires et les avantages sociaux des employés à temps plein, les locaux et fournitures de bureau et les logiciels, dans différentes devises.

Pour développer un système de paiement qui répondrait à ces défis, j'utilise (et recommande) les technologies suivantes pour créer un bot Python s'exécutant dans l'infrastructure cloud d'Amazon Web Services (AWS).

  • Base de code : Python (téléchargeable gratuitement)
  • Service sur lequel le code s'exécute : AWS Lambda
    • Lambda facilite la mise à l'échelle de l'exécution de notre code selon les besoins.
    • Ce service n'entre en vigueur que lorsqu'il est déclenché. Vous placez votre code Python dans une fonction Lambda et configurez un événement déclencheur, qu'il s'agisse d'une commande vocale Alexa ou d'une heure de calendrier planifiée.
    • Étant donné que Lambda est sans serveur, il s'agit d'une solution rentable qui nous oblige à ne payer que pour le temps de calcul que nous utilisons réellement.
  • Outil d'opérations bancaires : Wise API
    • Une API (Application Programming Interface) est un intermédiaire logiciel qui permet à deux applications de communiquer entre elles. L'API Wise me permet, à moi et à mon équipe, d'obtenir facilement des informations sur les relevés et des données historiques sur les transactions, ainsi que d'effectuer des paiements automatiquement. Il nous permet également de suivre les taux de change et d'effectuer des conversions automatisées.
  • Suivi du temps : API Everhour + Everhour
    • Ce logiciel offre un suivi précis du temps et des capacités de facturation et de budgétisation flexibles. De plus, il s'intègre parfaitement aux outils de gestion de projet tels qu'Asana, Trello, Jira et GitHub.
  • Expéditeur de l'e-mail : Amazon Simple Email Service
    • Avec Amazon SES, nous disposons d'un moyen adaptable et sécurisé d'envoyer des e-mails HTML à partir de n'importe quelle application, ainsi que d'analyses de données pour surveiller les livraisons et les rebonds.
    • Le niveau d'utilisation gratuite de SES vous permet d'envoyer gratuitement jusqu'à 62 000 messages par mois si vous activez le service à partir d'une application hébergée sur Amazon EC2 ou via AWS Lambda.
  • Planificateur : AWS EventBridge
    • À l'aide de cet outil, nous pouvons facilement déclencher notre bot Python pour effectuer des fonctions financières planifiées mensuellement ou bimensuellement.
    • Étant donné qu'EventBridge, comme Lambda, ne nécessite pas de serveur pour fonctionner, il réduit considérablement nos frais généraux.
  • Notification Slack : API Slack
    • Cette API envoie des alertes en temps réel pour nous informer des heures de nos sous-traitants et nous dire si les clients nous ont payés.
  • Communication Slack avec le bot : API Slack + Amazon API Gateway
    • L'API Slack permet au bot Python de nous envoyer des demandes de paiement pour approbation.
    • D'un simple clic de notre côté, notre bot peut utiliser API Gateway pour effectuer automatiquement chaque paiement.
    • API Gateway propose un niveau gratuit qui vous donne accès à plus d'un million d'appels d'API et à un million de messages par mois pendant un an.

Voici comment j'ai utilisé ces outils pour automatiser un cas d'utilisation multitâche : payer le personnel, les sous-traitants et moi-même. Je vais vous montrer l'ensemble du processus à un niveau élevé avant de plonger dans les pratiques d'automatisation les plus courantes.

Un organigramme avec des icônes montre le processus en neuf étapes suivi par Miklos pour payer les employés, les développeurs et lui-même. Tous les détails sont fournis dans le texte qui suit.

Passons maintenant aux étapes :

  1. Le premier jour de chaque mois, nous utilisons AWS EventBridge pour déclencher le bot Python qui est stocké dans AWS Lambda.
  2. À l'aide de l'API Everhour, le bot extrait les feuilles de temps de tous les employés, sous-traitants (développeurs, dans le cas de Pylink) et moi.
  3. Ensuite, le bot agrège les heures travaillées pour chaque projet et crée une feuille de temps et une facture (les deux PDF). Ensuite, il envoie ces documents aux clients par e-mail.
  4. De plus, le bot informe l'équipe de Pylink via Slack des heures des sous-traitants. Il demande également l'autorisation de les payer en présentant des boutons "approuver" et "refuser".
  5. Si quelqu'un de l'équipe de direction de Pylink approuve la demande, le bot envoie un message à notre propre API (une URL publique toujours disponible) via AWS API Gateway, qui exécute un autre code dans une fonction Lambda pour effectuer le transfert.
  6. La deuxième fonction Lambda utilise l'API Wise pour effectuer le paiement.
  7. Le 14 de chaque mois, nous utilisons à nouveau EventBridge pour planifier une autre série de fonctions de suivi. Mais cette fois, EventBridge déclenche un code différent enregistré dans une autre fonction Lambda.
  8. Ce code utilise l'API Wise pour suivre les transactions des deux dernières semaines et vérifier si le client a payé.
  9. S'il y a eu un paiement du client, le bot envoie une confirmation Slack à l'équipe Pylink via l'API Slack. S'il n'y a pas eu de paiement, le bot envoie un e-mail au client en utilisant le service Amazon SES.

Auparavant, toutes ces tâches étaient effectuées manuellement, consommant un temps et une énergie précieux qui peuvent maintenant être dépensés ailleurs. Mieux encore, nous avons pu mettre en place ce processus sans un gros investissement de temps ou d'argent.

Ce que vous pouvez faire avec l'automatisation

Examinons maintenant certaines des applications les plus pratiques pour l'automatisation, en utilisant les outils dont j'ai déjà parlé. Pour votre information, j'inclurai quelques exemples de codage en tant que ressource pour vos développeurs internes, sous contrat ou indépendants, ou pour vous-même, si vous choisissez d'apprendre Python pour vous aider dans le travail de votre entreprise ou de votre client.

Suivi des heures de travail et des projets

À la fin de chaque mois, le bot (utilisant Everhour) exécute la fonction "close_the_month" qui collecte toutes les heures passées sur différentes missions :

  • Mes heures sur mes projets de conseil (revenu)
  • Les heures des développeurs sur les projets du client (revenus et coûts)
  • Les heures des développeurs sur notre propre développement logiciel (coût)

Ce qui suit est une fonction simple qui renvoie un Pandas DataFrame, c'est-à-dire un tableau avec des lignes et des colonnes, comprenant toutes les heures et projets pour une période de temps pour un utilisateur donné. Veuillez noter que, comme mentionné précédemment, ceci et tous les extraits de codage suivants ne sont que des points saillants de l'ensemble de la base de code, et non un didacticiel étape par étape pour créer notre bot.

Une capture d'écran montrant un échantillon du code Python écrit pour exécuter la fonction "close_the_month". Il affiche le langage et la syntaxe utilisés par l'auteur ligne par ligne.

Création d'une feuille de temps et d'une facture au format PDF

Les heures de projet de chaque travailleur étant automatiquement suivies, la tâche suivante consiste à créer des feuilles de temps et des factures. Il existe de nombreux packages Python qui vous permettent de créer des fichiers PDF. Nous utilisons PyFPDF, une bibliothèque compacte de génération de documents qui offre simplicité et flexibilité pour dessiner des formes et ajouter des images et du texte. Comme vous pouvez le voir dans l'exemple suivant, cela donne une facture propre et professionnelle :

Une facture de Pylink s'affiche. Il indique "Facturé à Watchclever Ltd", le client, et indique la date de la facture, la date d'échéance, la période facturée et le type de paiement (virement bancaire). Il affiche également les heures de chacun des quatre consultants et le total combiné de 45,7 heures.

Bien qu'il existe des méthodes plus avancées pour créer des rapports, le format PDF est un bon choix car il s'agit d'un format universel utilisé dans tous les secteurs et facile à générer. Il permet également d'envoyer des fichiers à n'importe qui tout en garantissant que toutes les polices, images, tableaux et mises en forme seront transférées. De plus, il fonctionne indépendamment de votre matériel informatique et de votre système d'exploitation et peut être utilisé hors ligne.

Envoyer des emails

Amazon Simple Email Service est un outil économique et évolutif pour créer et déployer des e-mails HTML bien formatés. De plus, les analyses de données de SES suivent et partagent des informations sur les résultats de la boucle de rétroaction pour vous avertir si des destinataires signalent votre message comme spam, soit par erreur, soit parce que l'e-mail a été envoyé à la mauvaise adresse. Les analyses mesurent également l'efficacité de chaque communication en termes d'engagement, y compris les taux d'ouverture et de clics. Cette fonctionnalité est particulièrement utile pour les e-mails marketing.

Voici un exemple du code Python utilisé pour générer un e-mail avec une facture en pièce jointe et l'envoyer à un client :

Une capture d'écran montre un extrait de codage avec le langage Python et la syntaxe utilisée par l'auteur pour créer un e-mail, joindre une facture et l'envoyer à son client pour paiement.

Et voici le mail qu'il produit :

Une capture d'écran de l'e-mail créé par le code. Un PDF de la facture est joint. Le message se lit comme suit :

Automatisation des activités bancaires

Nous avons choisi Wise pour les comptes bancaires privés et professionnels car nous avons des revenus et des coûts dans plusieurs devises, et cette société de technologie financière a des frais de change avantageux, une interface utilisateur intuitive et une API flexible avec une documentation détaillée.

Nous utilisons cette API pour accomplir les tâches suivantes :

  • Recueillir des informations sur les relevés pour chaque entreprise et chaque devise, afin que je puisse voir rapidement la liquidité globale et réelle.
  • Extrayez les informations historiques sur les transactions, afin que je puisse identifier les tendances des différents éléments de coût et vérifier si le client a payé la facture du mois précédent. Si ce n'est pas le cas, l'API envoie un e-mail de rappel.
  • Effectuez des transferts d'argent automatiquement.

Vous trouverez ci-dessous le code que nous avons programmé pour effectuer la première de ces tâches (collecte d'informations sur les déclarations) :

Une capture d'écran affiche un échantillon du code Python que l'auteur utilise pour obtenir des informations sur le solde de chacune des sociétés de Pylink.

Pour les frais fixes réguliers (salaire, taxes, frais de bureau, etc.), vous n'avez pas besoin d'écrire de code pour effectuer des virements automatiques ; Wise a une fonction de paiement programmé. Cependant, si le montant n'est pas fixe mais basé sur une formule qu'un algorithme peut calculer, l'API Wise est utile. Dans mon cas, le salaire du conseiller d'affaires est un exemple notable puisqu'il est fonction du revenu mensuel. En vérifiant les heures suivies, le bot sait exactement combien de revenus nous avons et donc combien payer le conseiller.

Atténuation des risques grâce à une conversation bilatérale avec le bot

Il est crucial d'être conscient de l'activité du bot, car il peut y avoir des bogues de codage qui ne sont pas révélés lors des tests. Nous recevons des notifications en temps réel sur Slack, ce qui nous permet de corriger rapidement tout code défectueux. Voici quelques exemples de notification qui nous permettent de savoir que le bot fonctionne correctement :

Cette petite image simple capture un message Slack du bot Pylink qui se lit comme suit : "Le paiement a réussi !"

L'image suivante est une autre notification Slack du bot Pylink. Le texte dit, "Clôture du mois précédent 2022-01-01 -- 2022-01-31" et montre le coût total du travail effectué pour Watchclever Ltd. pendant cette période, suivi d'une ventilation de ce coût en fonction des heures pour chaque consultant.

Nous avons également permis au bot d'envoyer des questions de confirmation à l'équipe Pylink avant chaque virement bancaire. Cela nous aide à éviter les erreurs dues à une erreur humaine. Imaginez qu'un développeur fasse une faute de frappe et entre 825 heures au lieu de 8,25 heures pour un ticket. Une étape d'approbation dans Slack garantit que nous ne transférons pas cent fois plus d'argent que nous ne devons. Le processus conserve l'élément de vérification humaine mais offre une expérience transparente.

Une capture d'écran d'une notification Slack "Confirmation de paiement" du bot Pylink. On y lit : « Yurii a travaillé 43,5 heures le mois dernier ; par conséquent, [vide] USD est dû. Puis-je le payer ? (Le montant en dollars est expurgé.) Les options "Approuver" et "Refuser" sont présentées.

Il existe également de nombreuses autres fonctionnalités que vous pouvez obtenir avec l'API Slack.

Le bureau de demain

L'automatisation des activités peut aider les organisations à prospérer. Les outils dont j'ai parlé peuvent transformer les entreprises qui ont besoin d'une efficacité et d'un contrôle accrus, en particulier lorsqu'il s'agit de fonctions transactionnelles telles que les comptes fournisseurs, les comptes clients et d'autres domaines comptables de base.

Mais ce n'est pas la fin de l'histoire. Selon McKinsey, le défi pour les chefs d'entreprise est de jeter un filet encore plus large pour de nouvelles efficacités. L'entreprise soutient la réinvention de l'ensemble des opérations financières, allant au-delà des simples tâches transactionnelles en étant leader dans des domaines tels que l'analyse de données, en consolidant, simplifiant et contrôlant les informations dans l'ensemble de l'entreprise. Je ne pourrais pas être plus d'accord. Je vous recommande d'explorer des solutions de codage qui aident votre organisation à s'approprier ses réponses et à faire progresser sa culture axée sur les résultats. En attendant, l'adoption des tactiques que j'ai décrites ici peut aider votre entreprise à devenir plus efficace aujourd'hui, tout en vous donnant un avant-goût des possibilités de demain.