‹ Sid Verma

iOS Shortcuts for Firefly III

Dec 06, 2019

I’ve been using the excellent Firefly III to manage my expenses for a while. As a result, I have developed a habit to actively monitor every transaction I do, which, in my opinion is a much better way than using other automated expense managers which can only track your non-cash expenses, without a lot of context.

Android had an unofficial app which made it easier to interact with Firefly, but iOS doesn’t seem to have one, and the web-ui is not a very mobile friendly one.

While searching for solutions, I came across this blog post by Jesse Dyck where they utilised iOS Shortcuts to create transactions in Firefly. Honestly, I was pretty surprised that Shortcuts is powerful enough to do this, given Apple’s approach to customization.

The shortcuts provided by Jesse didn’t work for me (they were written for iOS 12, before Shortcuts were revamped for iOS 13), so I decided to build one for myself, with a UX more suited for my needs.

Here it is in action:

To use these for yourself, you have to download the following three shortcuts from your iOS device. The first two are function-like dependencies of the third one, which is used to add a transaction.

If you’re not into categories, you’d probably have to edit the Add Transaction shortcut and remove the steps where it deals with them. A fair bit of trial and error should probably give you what you want.

Note that, to be able to import shortcuts from outside the app gallery, you have to go to Settings > Shortcuts and enable Allow Untrusted Shortcuts.

While adding these shortcuts, you’d be prompted to enter your firefly URL and Personal Access Token for each of the shortcut. The URL is where you’ve hosted the app, complete with the protocol and without a trailing slash (like https://demo.firefly-iii.org). You can generate the token from Firefly by going to Options > Profile > scroll down to Personal Access Tokens and click on Create New Token.

After spending 3 hours creating these 150-step shortcuts on a very tiny screen, I was wondering if it’d have been easier to create a basic iPhone app itself. Not really, I don’t know Swift yet.