Last week I built an automated expense tracking dashboard on Tableau using SendGrid and Google Sheets. I use a Gmail filter to forward my credit card transaction emails to an Inbound Parser setup on SendGrid, which makes a POST call to my home server with the content of the email. A regex then captures the details from the POST body and pushes them to a Google Sheet.
Next I use Tableau Public to read data from Google Sheets and publish a dashboard to Tableau Public Online. Tableau Public automatically refreshes data on the server side from Google Sheets every few hours.
The good part is that all of this can run automatically without any manual intervention whatsoever and I get a beautiful near real-time dashboard for my daily expenses that I can access from anywhere (dashboard is publicly accessible but hidden).