金融机器人:如何通过自动化提高后台效率

已发表: 2022-07-22

提到未来的办公室可能会让人联想到机器接管重复性和劳动密集型任务的图像。 但那个未来就是现在。 诸如基于云的应用程序以及帮助企业实现最高运营效率的软件平台和企业资源规划系统等技术的发展,使自动化办公室成为现实。

据咨询公司麦肯锡称,在过去十年中,通过在采购、会计和工资单等领域实施自动化解决方案,企业财务部门将成本降低了近 30%。 这些创新改变了财务职能并消除了许多低效率的问题。

作为一名金融分析师和软件开发人员,我在创建和建立自己的咨询公司 Pylink 时,通过设置机器人来完成金融任务,从而充分利用了自动化。 但许多财务部门仍然没有这样做,因此他们继续花费过多的时间和资源来执行基本任务。

我不是唯一一个注意到这个问题的人。 咨询公司普华永道发现,财务办公室需要通过自动化和流程改进来提高生产力和洞察力,这可以将许多关键职能的成本降低两位数。 普华永道的研究表明,自动化可以减少人们花在管理报告上的时间 40%,花在税务会计上的时间减少 27%,花在信用管理、一般会计和计费上的时间减少 23%。

德勤得出了类似的结论:引用 Ayehu 发表的研究报告称,智能自动化可将业务流程成本降低 25% 至 40%。 Gartner 的研究表明,一家拥有 40 名全职会计人员的公司可以通过自动化任务和消除修复人为错误的额外工作,每年减少超过 870,000 美元的支出。

在本文中,我想分享一些我为我的公司和我的客户使用过的简单自动化策略——对任何规模的组织都有用的简单修复。

QuickBooks 等现成的解决方案可能对小型组织有所帮助。 但是,为了最大限度地提高效率,我建议使用 Python 等编程语言来自定义构建您的解决方案,包括用于业务的机器人。 Python 非常直观,并提供了一个大型标准工具库,以及对金融特定库的访问,使其比 Excel 更通用。

在我之前的 Toptal 文章中,我展示了使用 Python 为企业开发定制现金流模型是多么容易。 如果你有兴趣学习这门语言,我鼓励你阅读。 但是,在本文中,我将概述实际应用程序(从时间跟踪到工资单到电子邮件),如果您对自己深入研究代码不感兴趣,开发人员可以快速轻松地为您实现这些应用程序。

我的公司如何利用机器人进行金融:简单、高效的支付

让我通过向您展示我公司的示例来展示自定义自动化的有用性,该示例可以作为案例研究。 尽管是一家小型企业,但我和我在 Pylink 的团队面临着相当大的复杂性,在支付方面提出了挑战,包括以下内容:

  • 我们根据小时合同从事多个项目,并且必须跟踪我们每项任务的时间。
  • 我们的客户来自不同的国家,因此以多种货币向我们付款。
  • 虽然我们在一些项目上使用内部软件工程团队,但我们将其他项目分包给来自不同国家的开发人员。
  • 从税收优化的角度来看,我们拥有三家公司:一家位于英国,一家位于欧盟,一家位于欧盟的个人自由职业者。
  • 我们每家公司都有不同的银行账户,其中包括美元、欧元、英镑和匈牙利福林等多种货币。
  • 我们有不同货币的固定成本,例如税金、全职员工的工资和福利、办公空间和用品以及软件。

为了开发一个能够应对这些挑战的支付系统,我使用(并推荐)以下技术来创建一个在 Amazon Web Services (AWS) 的云基础设施中运行的 Python 机器人。

  • 代码库:Python(可免费下载)
  • 运行代码的服务:AWS Lambda
    • Lambda 可以方便地根据需要扩展我们的代码执行。
    • 此服务仅在触发时生效。 您将 Python 代码放入 Lambda 函数并设置触发事件——从 Alexa 语音命令到预定日历时间的任何内容。
    • 由于 Lambda 是无服务器的,因此它是一种经济高效的解决方案,我们只需为实际使用的计算时间付费。
  • 银行运营工具:Wise API
    • API(应用程序编程接口)是允许两个应用程序相互通信的软件中介。 Wise API 使我和我的团队能够轻松获取报表信息和历史交易数据,并自动付款。 它还可以让我们跟踪货币汇率并进行自动转换。
  • 时间跟踪器:Everhour + Everhour API
    • 该软件提供准确的时间跟踪和灵活的计费和预算功能。 此外,它还与 Asana、Trello、Jira 和 GitHub 等项目管理工具无缝集成。
  • 电子邮件发件人:亚马逊简单电子邮件服务
    • 借助 Amazon SES,我们拥有一种从任何应用程序中发送 HTML 电子邮件的适应性强且安全的方式,以及用于监控交付和退回的数据分析。
    • 如果您从托管在 Amazon EC2 中的应用程序或通过 AWS Lambda 激活服务,SES 的免费使用套餐允许您每月免费发送多达 62,000 条消息。
  • 调度程序:AWS EventBridge
    • 使用此工具,我们可以轻松触发 Python 机器人每月或每半月执行预定的财务功能。
    • 因为 EventBridge 和 Lambda 一样,不需要服务器来运行,它大大降低了我们的开销。
  • Slack 通知:Slack API
    • 此 API 发送实时警报以通知我们承包商的工作时间,并告诉我们客户是否已向我们付款。
  • 与机器人的 Slack 通信:Slack API + Amazon API Gateway
    • Slack API 允许 Python 机器人向我们发送付款请求以供批准。
    • 只需单击我们端,我们的机器人就能够使用 API Gateway 自动完成每笔付款。
    • API Gateway 提供免费套餐,让您可以在一年内每月访问超过一百万次 API 调用和一百万条消息。

以下是我如何使用这些工具来自动化一个多任务用例:支付员工、承包商和我自己。 在深入探讨最常见的自动化实践之前,我将向您展示整个过程。

带有图标的流程图显示了 Miklos 支付员工、开发人员和他自己的九个步骤。下文中提供了完整的详细信息。

现在让我们来看看这些步骤:

  1. 每个月的第一天,我们使用 AWS EventBridge 触发存储在 AWS Lambda 中的 Python 机器人。
  2. 使用 Everhour API,该机器人为所有员工、承包商(在 Pylink 的案例中为开发人员)和我提取时间表。
  3. 接下来,机器人汇总每个项目的工作时间并创建时间表和发票(均为 PDF)。 然后它通过电子邮件将这些文件发送给客户。
  4. 此外,该机器人通过 Slack 通知 Pylink 的团队有关承包商的工作时间。 它还通过显示“批准”和“拒绝”按钮来请求允许向他们付款。
  5. 如果 Pylink 管理团队中的某个人批准了请求,机器人会通过 AWS API Gateway 向我们自己的 API(始终可用的公共 URL)发送一条消息,该 API 会在 Lambda 函数中执行另一个代码来进行传输。
  6. 第二个 Lambda 函数使用 Wise API 进行付款。
  7. 每个月的 14 号,我们都会再次使用 EventBridge 来安排另一轮后续功能的运行。 但是这一次,EventBridge 触发了保存在另一个 Lambda 函数中的不同代码。
  8. 此代码使用 Wise API 跟踪过去两周的交易并检查客户是否已付款。
  9. 如果客户端已付款,机器人会通过 Slack API 向 Pylink 团队发送 Slack 确认。 如果没有付款,机器人会使用 Amazon SES 服务向客户发送一封电子邮件。

以前,所有这些任务都是手动完成的,耗费了现在可以花在其他地方的宝贵时间和精力。 最重要的是,我们能够在没有大量时间或金钱投资的情况下建立这个过程。

你可以用自动化做什么

现在让我们看看一些最实际的自动化应用程序,使用我已经讨论过的工具。 供您参考,我将包含一些编码示例作为您的内部、合同或自由开发人员的资源 - 或者您自己,如果您选择学习 Python 来协助您的公司或客户工作。

跟踪工作时间和项目

在每个月底,机器人(使用 Everhour)运行“close_the_month”函数,该函数收集用于不同任务的所有时间:

  • 我的咨询项目时间(收入)
  • 开发人员在客户项目上的工作时间(收入和成本)
  • 开发人员在我们自己的软件开发上的时间(成本)

下面是一个简单的函数,它返回一个 Pandas DataFrame,即一个包含行和列的表,包括给定用户在一段时间内的所有时间和项目。 请注意,如前所述,此和所有后续编码摘录只是整个代码库的亮点,而不是构建我们的机器人的分步教程。

显示为执行“close_the_month”函数而编写的 Python 代码示例的屏幕截图。它逐行显示作者使用的语言和语法。

创建 PDF 时间表和发票

随着每个工人的项目时间自动跟踪,下一个任务是创建时间表和发票。 有许多 Python 包可让您创建 PDF 文件。 我们使用 PyFPDF,这是一个紧凑的文档生成库,它提供了简单性以及绘制形状和添加图像和文本的灵活性。 从以下示例中可以看出,它生成了一张干净且专业的发票:

显示来自 Pylink 的发票。上面写着“向 Watchclever Ltd 开具账单”,客户,并提供发票日期、到期日、开票期限和付款类型(银行转帐)。它还显示了四位顾问各自的小时数以及总计 45.7 小时。

虽然有更高级的方法来创建报告,但 PDF 是一个不错的选择,因为它是所有行业都使用的通用格式,并且易于生成。 它还允许将文件发送给任何人,同时确保所有字体、图像、表格和格式都将传输。 此外,它独立于您的计算机硬件和操作系统工作,并且可以离线使用。

发送电子邮件

Amazon Simple Email Service 是一种经济高效且可扩展的工具,用于创建和部署格式良好的 HTML 电子邮件。 此外,SES 的数据分析跟踪和共享有关反馈循环结果的信息,以通知您是否有任何收件人将您的邮件报告为垃圾邮件,无论是错误的还是因为电子邮件发送到了错误的地址。 该分析还衡量每次沟通在参与度方面的有效性,包括打开率和点击率。 此功能对于营销电子邮件特别有用。

下面是一个 Python 代码示例,用于生成附有发票的电子邮件并将其发送给客户:

屏幕截图显示了作者用于创建电子邮件、附上发票并将其发送给客户进行付款的 Python 语言和语法的编码摘录。

这是它产生的电子邮件:

代码创建的电子邮件的屏幕截图。附上发票的 PDF 文件。消息内容如下:

自动化银行活动

我们选择 Wise 用于私人和商业银行账户,因为我们有多种货币的收入和成本,而且这家金融技术公司具有优惠的兑换费用、直观的用户界面以及带有详细文档的灵活 API。

我们使用这个 API 来完成以下任务:

  • 收集每个公司和货币的报表信息,以便我可以快速查看汇总和实际流动性。
  • 提取历史交易信息,以便识别不同成本项目​​的趋势,并检查客户是否支付了上个月的发票。 如果没有,API 会发送一封提醒电子邮件。
  • 自动进行汇款。

下面是我们为完成这些任务中的第一个任务(收集语句信息)而编写的代码:

屏幕截图显示了作者用来获取 Pylink 每个公司的余额信息的 Python 代码示例。

对于常规的固定成本(工资、税金、办公费用等),您无需编写代码进行自动转账; Wise 具有预定付款功能。 但是,如果金额不是固定的,而是基于算法可以计算的公式,则 Wise API 很有用。 就我而言,业务顾问的薪水是一个值得注意的例子,因为它是月收入的函数。 通过检查跟踪的时间,机器人确切地知道我们有多少收入,因此知道要付给顾问多少钱。

通过与机器人进行双向对话来降低风险

了解机器人的活动至关重要,因为可能存在在测试期间未发现的编码错误。 我们在 Slack 上收到实时通知,因此我们可以及时修复任何损坏的代码。 以下是几个通知示例,让我们知道机器人正在正常运行:

这个小而简单的图像捕获了来自 Pylink 机器人的 Slack 消息,上面写着“付款成功!”

下一张图片是来自 Pylink 机器人的另一个 Slack 通知。文本说,“上个月关闭 2022-01-01 -- 2022-01-31”,并显示了 Watchclever Ltd. 在此期间完成的工作的总成本,然后根据工作小时数细分该成本每个顾问。

我们还允许机器人在每次银行转账之前向 Pylink 团队发送确认问题。 这有助于我们避免由于人为错误而导致的错误。 想象一下,开发人员打错了字并输入了 825 小时而不是 8.25 小时的一张票。 Slack 中的批准步骤可确保我们转移的钱不会超过我们所欠的一百倍。 该过程保留了人工验证的元素,但提供了无缝体验。

来自 Pylink 机器人的“付款确认”Slack 通知的屏幕截图。上面写着:“Yurii 上个月工作了 43.5 小时;因此,[空白] 美元到期。我可以付钱给他吗?” (美元金额已编辑。)显示“批准”和“拒绝”选项。

您还可以使用 Slack API 实现许多其他功能。

明天的办公室

业务自动化可以帮助组织蓬勃发展。 我讨论的工具可以改变需要更高效率和控制力的公司,尤其是在应付账款、应收账款和其他核心会计领域等交易功能方面。

但这不是故事的结局。 根据麦肯锡的说法,企业领导者面临的挑战是为提高效率撒下更大的网。 该公司支持重新构想整个财务运营,通过在数据分析等领域领先——整合、简化和控制整个公司的信息,而不仅仅是交易任务。 我完全同意。 我建议您探索有助于您的组织拥有自己的答案并推进其以结果为导向的文化的编码解决方案。 同时,采用我在这里描述的策略可以帮助您的公司在今天变得更有效率,同时让您体验明天的可能性。