Bot untuk Keuangan: Cara Meningkatkan Efisiensi Back-office Melalui Otomatisasi

Diterbitkan: 2022-07-22

Menyebutkan kantor masa depan mungkin memunculkan gambaran mesin yang mengambil alih tugas yang berulang dan padat karya. Tapi masa depan itu adalah sekarang. Perkembangan teknologi seperti aplikasi berbasis cloud, serta platform perangkat lunak dan sistem perencanaan sumber daya perusahaan yang membantu perusahaan mencapai efisiensi operasi puncak, telah membuat kantor otomatis menjadi kenyataan.

Menurut perusahaan konsultan McKinsey, departemen keuangan perusahaan telah mengurangi biaya hampir 30% selama dekade terakhir dengan menerapkan solusi otomatisasi di berbagai bidang seperti pengadaan, akuntansi, dan penggajian. Inovasi ini telah mengubah fungsi keuangan dan menghilangkan banyak inefisiensi.

Sebagai analis keuangan dan pengembang perangkat lunak, saya memanfaatkan sepenuhnya otomatisasi dengan menyiapkan bot untuk tugas keuangan saat saya membuat dan membangun perusahaan konsultan saya sendiri, Pylink. Tetapi banyak kantor keuangan masih belum melakukannya, sehingga mereka terus menghabiskan banyak waktu dan sumber daya untuk melakukan tugas-tugas dasar.

Saya bukan satu-satunya yang mencatat masalah ini. Perusahaan konsultan PwC menemukan bahwa kantor keuangan perlu meningkatkan produktivitas dan wawasan mereka melalui otomatisasi dan peningkatan proses, yang dapat mengurangi biaya dengan persentase dua digit untuk banyak fungsi utama. Penelitian PwC menunjukkan bahwa otomatisasi dapat memangkas 40% waktu yang dihabiskan orang untuk pelaporan manajemen, 27% waktu yang dihabiskan untuk akuntansi pajak, dan 23% jam yang digunakan untuk manajemen kredit, akuntansi umum, dan penagihan.

Deloitte telah mencapai kesimpulan yang sebanding: Mengutip penelitian yang diterbitkan oleh Ayehu, ia melaporkan bahwa otomatisasi cerdas mengurangi biaya proses bisnis sebesar 25 hingga 40%. Dan penelitian Gartner mengungkapkan bahwa sebuah perusahaan dengan 40 anggota staf akuntansi penuh waktu dapat menghilangkan lebih dari $870.000 dalam pengeluaran setiap tahun dengan mengotomatisasi tugas dan menghilangkan pekerjaan ekstra untuk memperbaiki kesalahan manusia.

Dalam artikel ini, saya ingin membagikan beberapa strategi otomatisasi sederhana yang telah saya gunakan untuk perusahaan dan klien saya—perbaikan mudah yang dapat berguna untuk organisasi dari berbagai ukuran.

Solusi siap pakai seperti QuickBooks dapat membantu organisasi yang lebih kecil. Namun, untuk memaksimalkan efisiensi, saya menyarankan menggunakan bahasa pemrograman seperti Python untuk membuat solusi kustom Anda, termasuk bot untuk bisnis. Python sangat intuitif dan menyediakan perpustakaan alat standar yang besar, ditambah akses ke perpustakaan khusus keuangan, membuatnya lebih fleksibel daripada Excel.

Dalam artikel saya sebelumnya untuk Toptal, saya menunjukkan betapa mudahnya menggunakan Python untuk mengembangkan model arus kas yang dipesan lebih dahulu untuk perusahaan. Saya mendorong Anda untuk membacanya jika Anda tertarik untuk mempelajari bahasa tersebut. Namun, dalam artikel ini, saya akan memberi Anda gambaran umum tentang aplikasi praktis—mulai dari pelacakan waktu hingga penggajian hingga email—yang dapat diterapkan oleh pengembang dengan cepat dan mudah untuk Anda jika Anda tidak tertarik untuk mempelajari sendiri kode tersebut.

Bagaimana Perusahaan Saya Memanfaatkan Bot untuk Keuangan: Pembayaran yang Mudah dan Efisien

Izinkan saya menunjukkan betapa bermanfaatnya otomatisasi kustom dengan menunjukkan kepada Anda contoh dari perusahaan saya, yang dapat berfungsi sebagai studi kasus. Meskipun merupakan bisnis kecil, tim saya di Pylink dan saya menghadapi kompleksitas yang cukup besar yang menghadirkan tantangan dalam hal pembayaran, termasuk yang berikut:

  • Kami mengerjakan beberapa proyek berdasarkan kontrak per jam dan harus melacak waktu setiap tugas kami.
  • Klien kami berasal dari negara yang berbeda dan dengan demikian membayar kami dalam berbagai mata uang.
  • Meskipun kami menggunakan tim rekayasa perangkat lunak internal pada beberapa proyek, kami mensubkontrakkan proyek lainnya kepada pengembang dari berbagai negara.
  • Dari perspektif pengoptimalan pajak, kami memiliki tiga perusahaan: satu berbasis di Inggris Raya, satu berbasis di Uni Eropa, dan satu pekerja lepas individu berbasis di Uni Eropa.
  • Setiap perusahaan kami memiliki rekening bank terpisah dalam berbagai mata uang, termasuk USD, EUR, GBP, dan HUF.
  • Kami memiliki biaya rutin—seperti pajak, gaji, dan tunjangan untuk karyawan tetap, ruang dan perlengkapan kantor, serta perangkat lunak—dalam mata uang yang berbeda.

Untuk mengembangkan sistem pembayaran yang akan memenuhi tantangan ini, saya menggunakan (dan merekomendasikan) teknologi berikut untuk membuat bot Python yang berjalan di infrastruktur cloud Amazon Web Services (AWS).

  • Basis kode: Python (dapat diunduh gratis)
  • Layanan tempat kode dijalankan: AWS Lambda
    • Lambda memudahkan untuk menskalakan eksekusi kode kita sesuai kebutuhan.
    • Layanan ini berlaku hanya jika dipicu. Anda memasukkan kode Python ke dalam fungsi Lambda dan menyiapkan peristiwa pemicu—apa pun mulai dari perintah suara Alexa hingga waktu kalender yang dijadwalkan.
    • Karena Lambda tidak memiliki server, ini adalah solusi hemat biaya yang mengharuskan kami membayar hanya untuk waktu komputasi yang sebenarnya kami gunakan.
  • Alat operasi bank: API Bijaksana
    • API (Application Programming Interface) adalah perantara perangkat lunak yang memungkinkan dua aplikasi berkomunikasi satu sama lain. Wise API memungkinkan saya dan tim saya untuk mendapatkan informasi pernyataan dan data historis transaksi dengan mudah, serta melakukan pembayaran secara otomatis. Ini juga memungkinkan kami melacak nilai tukar mata uang dan melakukan konversi otomatis.
  • Pelacak waktu: Everhour + Everhour API
    • Perangkat lunak ini memberikan pelacakan waktu yang akurat dan kemampuan penagihan dan penganggaran yang fleksibel. Selain itu, ini terintegrasi secara mulus dengan alat manajemen proyek seperti Asana, Trello, Jira, dan GitHub.
  • Pengirim email: Amazon Simple Email Service
    • Dengan Amazon SES, kami memiliki cara yang dapat disesuaikan dan aman untuk mengirim email HTML dari dalam aplikasi apa pun, bersama dengan analitik data untuk memantau pengiriman dan pantulan.
    • Tingkat Penggunaan Gratis SES memungkinkan Anda mengirim hingga 62.000 pesan per bulan tanpa biaya jika Anda mengaktifkan layanan dari aplikasi yang dihosting di Amazon EC2 atau melalui AWS Lambda.
  • Penjadwal: AWS EventBridge
    • Dengan menggunakan alat ini, kita dapat dengan mudah memicu bot Python untuk melakukan fungsi keuangan terjadwal setiap bulan atau setengah bulan.
    • Karena EventBridge, seperti Lambda, tidak memerlukan server untuk pengoperasiannya, ini secara signifikan mengurangi overhead kami.
  • Pemberitahuan kendur: API Slack
    • API ini mengirimkan peringatan waktu nyata untuk memberi tahu kami tentang jam kerja kontraktor kami dan memberi tahu kami apakah klien telah membayar kami.
  • Komunikasi kendur dengan bot: Slack API + Amazon API Gateway
    • Slack API memungkinkan bot Python mengirimi kami permintaan pembayaran untuk persetujuan.
    • Dengan satu klik di pihak kami, bot kami dapat menggunakan API Gateway untuk menyelesaikan setiap pembayaran secara otomatis.
    • API Gateway menawarkan tingkat gratis yang memberi Anda akses ke lebih dari satu juta panggilan API dan satu juta pesan per bulan selama setahun.

Inilah cara saya menggunakan alat ini untuk mengotomatiskan satu kasus penggunaan multitugas: staf yang membayar, kontraktor, dan saya sendiri. Saya akan menunjukkan kepada Anda seluruh proses pada tingkat tinggi sebelum menyelami praktik otomatisasi yang paling umum.

Bagan alir dengan ikon menunjukkan proses sembilan langkah yang diikuti Miklos untuk membayar karyawan, pengembang, dan dirinya sendiri. Rincian lengkap disediakan dalam teks berikut.

Sekarang mari kita lakukan langkah-langkahnya:

  1. Pada hari pertama setiap bulan, kami menggunakan AWS EventBridge untuk memicu bot Python yang disimpan di AWS Lambda.
  2. Menggunakan API Everhour, bot menarik lembar waktu untuk semua karyawan, kontraktor (pengembang, dalam kasus Pylink), dan saya.
  3. Selanjutnya, bot mengumpulkan jam kerja untuk setiap proyek dan membuat lembar waktu dan faktur (keduanya PDF). Kemudian mengirimkan dokumen-dokumen ini ke klien melalui email.
  4. Selain itu, bot memberi tahu tim Pylink melalui Slack tentang jam kerja kontraktor. Itu juga meminta izin untuk membayar mereka dengan menghadirkan tombol "setuju" dan "tolak".
  5. Jika seseorang dari tim manajemen Pylink menyetujui permintaan tersebut, bot akan mengirimkan pesan ke API kami sendiri (URL publik yang selalu tersedia) melalui AWS API Gateway, yang mengeksekusi kode lain dalam fungsi Lambda untuk melakukan transfer.
  6. Fungsi Lambda kedua menggunakan Wise API untuk melakukan pembayaran.
  7. Pada tanggal 14 setiap bulan, kami kembali menggunakan EventBridge untuk menjadwalkan fungsi tindak lanjut lainnya. Tapi kali ini, EventBridge memicu kode berbeda yang disimpan di fungsi Lambda lain.
  8. Kode ini menggunakan Wise API untuk melacak transaksi dari dua minggu terakhir dan memeriksa apakah klien telah membayar.
  9. Jika sudah ada pembayaran dari klien, bot mengirimkan konfirmasi Slack ke tim Pylink melalui Slack API. Jika belum ada pembayaran, bot mengirimkan email ke klien menggunakan layanan Amazon SES.

Sebelumnya, semua tugas ini dilakukan secara manual, menghabiskan waktu dan energi berharga yang sekarang dapat dihabiskan di tempat lain. Yang terbaik dari semuanya, kami dapat menyiapkan proses ini tanpa investasi waktu atau uang yang besar.

Yang Dapat Anda Lakukan Dengan Otomatisasi

Sekarang mari kita lihat beberapa aplikasi otomatisasi yang paling praktis, menggunakan alat yang telah saya bahas. Untuk referensi Anda, saya akan menyertakan beberapa contoh pengkodean sebagai sumber daya untuk pengembang internal, kontrak, atau freelance Anda—atau untuk Anda sendiri, jika Anda memilih untuk belajar Python untuk membantu pekerjaan perusahaan atau klien Anda.

Melacak Jam Kerja dan Proyek

Pada akhir setiap bulan, bot (menggunakan Everhour) menjalankan fungsi “close_the_month” yang mengumpulkan semua jam yang dihabiskan untuk tugas yang berbeda:

  • Jam saya di proyek konsultasi saya (pendapatan)
  • Jam pengembang pada proyek klien (baik pendapatan maupun biaya)
  • Jam pengembang untuk pengembangan perangkat lunak kami sendiri (biaya)

Berikut ini adalah fungsi sederhana yang mengembalikan Pandas DataFrame, yaitu tabel dengan baris dan kolom, termasuk semua jam dan proyek untuk jangka waktu tertentu untuk pengguna tertentu. Harap dicatat bahwa, seperti yang disebutkan sebelumnya, ini dan semua kutipan pengkodean berikutnya hanyalah sorotan dari seluruh basis kode, bukan tutorial langkah demi langkah untuk membangun bot kami.

Tangkapan layar yang menunjukkan contoh kode Python yang ditulis untuk menjalankan fungsi "close_the_month". Ini menampilkan bahasa dan sintaks yang digunakan penulis baris demi baris.

Membuat Lembar Waktu dan Faktur PDF

Dengan setiap jam proyek pekerja dilacak secara otomatis, tugas selanjutnya adalah membuat lembar waktu dan faktur. Ada banyak paket Python yang memungkinkan Anda membuat file PDF. Kami menggunakan PyFPDF, pustaka pembuatan dokumen ringkas yang menawarkan kesederhanaan serta fleksibilitas untuk menggambar bentuk dan menambahkan gambar dan teks. Seperti yang dapat Anda lihat dari contoh berikut, ini menghasilkan faktur yang bersih dan profesional:

Faktur dari Pylink ditampilkan. Bunyinya, "Ditagih ke Watchclever Ltd," klien, dan memberikan tanggal faktur, tanggal jatuh tempo, periode faktur, dan jenis pembayaran (transfer bank). Ini juga menampilkan jam untuk masing-masing dari empat konsultan dan total gabungan 45,7 jam.

Meskipun ada metode yang lebih canggih untuk membuat laporan, PDF adalah pilihan yang baik karena merupakan format universal yang digunakan di semua industri dan mudah dibuat. Ini juga memungkinkan untuk mengirim file ke siapa pun sambil memastikan bahwa semua font, gambar, tabel, dan pemformatan akan ditransfer. Selain itu, ia bekerja secara independen dari perangkat keras komputer dan sistem operasi Anda, dan dapat digunakan secara offline.

Mengirim Email

Amazon Simple Email Service adalah alat yang hemat biaya dan skalabel untuk membuat dan menerapkan email HTML yang diformat dengan baik. Lebih lanjut, data analytics SES melacak dan membagikan informasi tentang hasil loop umpan balik untuk memberi tahu Anda jika ada penerima yang melaporkan pesan Anda sebagai spam, baik karena kesalahan atau karena email dikirim ke alamat yang salah. Analitik juga mengukur efektivitas setiap komunikasi dalam hal keterlibatan, termasuk rasio terbuka dan klik-tayang. Fitur ini sangat berguna untuk email pemasaran.

Berikut adalah contoh kode Python yang digunakan untuk membuat email dengan faktur terlampir dan mengirimkannya ke klien:

Tangkapan layar menunjukkan kutipan pengkodean dengan bahasa Python dan sintaks yang digunakan penulis untuk membuat email, melampirkan faktur, dan mengirimkannya ke pelanggannya untuk pembayaran.

Dan inilah email yang dihasilkannya:

Tangkapan layar email yang dibuat oleh kode. PDF faktur terlampir. Pesan itu berbunyi:

Mengotomatiskan Aktivitas Perbankan

Kami memilih Wise untuk rekening bank pribadi dan bisnis karena kami memiliki pendapatan dan biaya dalam beberapa mata uang, dan perusahaan teknologi keuangan ini memiliki biaya pertukaran yang menguntungkan, antarmuka pengguna yang intuitif, dan API yang fleksibel dengan dokumentasi terperinci.

Kami menggunakan API ini untuk menyelesaikan tugas-tugas berikut:

  • Kumpulkan informasi pernyataan untuk setiap perusahaan dan mata uang, sehingga saya dapat dengan cepat melihat likuiditas agregat dan aktual.
  • Ekstrak informasi transaksi historis, sehingga saya dapat mengidentifikasi tren dalam item biaya yang berbeda serta memeriksa apakah klien telah membayar faktur bulan sebelumnya. Jika belum, API akan mengirimkan email pengingat.
  • Lakukan transfer uang secara otomatis.

Di bawah ini adalah kode yang kami program untuk menyelesaikan tugas pertama ini (mengumpulkan informasi pernyataan):

Tangkapan layar menampilkan contoh kode Python yang digunakan penulis untuk mendapatkan informasi saldo untuk masing-masing perusahaan Pylink.

Untuk biaya tetap reguler (gaji, pajak, biaya kantor, dll.), Anda tidak perlu menulis kode untuk melakukan transfer otomatis; Wise memiliki fitur pembayaran terjadwal. Namun, jika jumlahnya tidak tetap tetapi berdasarkan rumus yang dapat dihitung oleh algoritme, API Wise berguna. Dalam kasus saya, gaji penasihat bisnis adalah contoh penting karena merupakan fungsi dari pendapatan bulanan. Dengan memeriksa jam yang dilacak, bot tahu persis berapa banyak pendapatan yang kita miliki dan oleh karena itu berapa banyak untuk membayar penasihat.

Mengurangi Risiko Melalui Percakapan Dua Sisi Dengan Bot

Sangat penting untuk menyadari aktivitas bot, karena mungkin ada bug pengkodean yang tidak terungkap selama pengujian. Kami mendapatkan notifikasi real-time di Slack, sehingga kami dapat segera memperbaiki kode yang rusak. Berikut adalah beberapa contoh pemberitahuan yang memberi tahu kami bahwa bot beroperasi dengan benar:

Gambar kecil dan sederhana ini menangkap pesan Slack dari bot Pylink yang berbunyi, "Pembayaran berhasil!"

Gambar selanjutnya adalah notifikasi Slack lain dari bot Pylink. Teks tersebut mengatakan, "Menutup bulan sebelumnya 2022-01-01 -- 2022-01-31" dan menunjukkan total biaya pekerjaan yang dilakukan untuk Watchclever Ltd. selama periode ini, diikuti dengan perincian biaya ini berdasarkan jam untuk masing-masing konsultan.

Kami juga mengaktifkan bot untuk mengirim pertanyaan konfirmasi untuk tim Pylink sebelum setiap transfer bank. Ini membantu kita menghindari kesalahan karena kesalahan manusia. Bayangkan seorang pengembang membuat kesalahan ketik dan memasuki 825 jam, bukan 8,25 jam untuk satu tiket. Langkah persetujuan di Slack memastikan bahwa kita tidak mentransfer uang seratus kali lebih banyak daripada hutang kita. Prosesnya mempertahankan elemen verifikasi manusia tetapi memberikan pengalaman yang mulus.

Tangkapan layar pemberitahuan Slack "Konfirmasi Pembayaran" dari bot Pylink. Bunyinya, "Yurii bekerja 43,5 jam bulan lalu; oleh karena itu, [kosong] USD jatuh tempo. Bisakah saya membayarnya?" (Jumlah dolar dihapus.) Opsi "Setuju" dan "tolak" disajikan.

Ada banyak fungsi lain yang dapat Anda capai dengan Slack API juga.

Kantor Besok

Otomatisasi bisnis dapat membantu organisasi berkembang. Alat yang saya bahas dapat mengubah perusahaan yang membutuhkan efisiensi dan kontrol yang lebih besar, terutama dalam hal fungsi transaksional seperti hutang, piutang, dan area akuntansi inti lainnya.

Tapi ini bukan akhir dari cerita. Menurut McKinsey, tantangan bagi para pemimpin perusahaan adalah untuk menciptakan jaring yang lebih luas untuk efisiensi baru. Perusahaan mendukung konsep ulang seluruh operasi keuangan, melampaui hanya tugas transaksional dengan memimpin di bidang-bidang seperti analitik data—mengkonsolidasikan, menyederhanakan, dan mengendalikan informasi di seluruh perusahaan. Saya sangat setuju. Saya menyarankan Anda menjelajahi solusi pengkodean yang membantu organisasi Anda memiliki jawabannya dan memajukan budaya berorientasi hasil. Sementara itu, menerapkan taktik yang telah saya jelaskan di sini dapat membantu perusahaan Anda menjadi lebih efisien hari ini—sambil memberi Anda gambaran tentang kemungkinan masa depan.