I think we can all agree that the Google Sheets export tool by Monzo is fantastic, but has some limitations. For example, I could not see any standing orders/direct debits on my export sheet, and any changes made in a transaction after the event would not be reflected in the export.
While I was working on automating my finances in the past year I wanted to:
- Automate the update of my own database with all my Monzo transactions, with metadata and category information
- Automate the movement of money between pots and main account at specific hours/days and based on logic (e.g. only move enough money to Pot to reach a certain budget)
- Trigger custom push notifications to update me on my balance, spending or warn me when I’ve made my 5th Deliveroo purchase in any given month!
- Automate the update of my Notion database tables so I can manage everything in one dashboard on Notion.
I’d like to share this project I started with anyone who might be interested in trying it out and tweaking the pipelines to their own liking. Airflow is the tool I have used to orchestrate daily fetches of Monzo transactions and stores it in a local Postgres database. I’ve included Metabase as a docker image to visualise the data as pushing data to my Notion page required a third party API and hosting my Postgres database in AWS cloud instead of locally (and everything ran on an EC2 instance) - but this was costly.
Many thanks to all the developers at Monzo for making this possible with the public API and credit to others who have created python packages to make interacting with it easy!
Link to the Github repo: GitHub - eliasbenaddou/personal_finance_de_project: A dockerised Airflow repository to automate API calls to your bank account (only Monzo currently supported) to store transactions in a Postgres database, check data quality with Great Expectations and visualise your data on Metabase.
I would love to hear suggestions about what could be improved and how you would use it!