金融機器人:如何通過自動化提高後台效率

已發表: 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 實現許多其他功能。

明天的辦公室

業務自動化可以幫助組織蓬勃發展。 我討論的工具可以改變需要更高效率和控制力的公司,尤其是在應付賬款、應收賬款和其他核心會計領域等交易功能方面。

但這不是故事的結局。 根據麥肯錫的說法,企業領導者面臨的挑戰是為提高效率撒下更大的網。 該公司支持重新構想整個財務運營,通過在數據分析等領域領先——整合、簡化和控制整個公司的信息,而不僅僅是交易任務。 我完全同意。 我建議您探索有助於您的組織擁有自己的答案並推進其以結果為導向的文化的編碼解決方案。 同時,採用我在這裡描述的策略可以幫助您的公司在今天變得更有效率,同時讓您體驗明天的可能性。