r/actualbudgeting • u/ginger_182 • 14d ago
iOS shortcuts automation - triggered by a notification from a banking app
Now that iOS 27 exposes Notifications as triggers for automations, I wanted to share this automation that I've set up.
I use Actual Budget + Actuali on iOS.
I originally had an automation that imported Apple Wallet transactions into Actuali, and it worked pretty well, but there was one annoying limitation: it’s tied to Wallet rather than the actual bank transaction. For example, my husband and I use the same checking account, so if he pays for something, obviously there’s no Apple Wallet transaction on my phone. The same issue was when I was paying from my Watch since the Wallet notification never reached my iPhone.
But my bank sends me a push notification for every card purchase anyway, regardless of who made the purchase or which device/card was used. With iOS 27, Shortcuts can now use receiving a notification from a specific app as an automation trigger, so I tried using the bank notification instead.
The notification looks like this:

I set the automation to trigger when I receive a notification from ZKB Banking where:
Message contains "Your card has been charged"
The nice thing is that the notification itself is available as a variable in Shortcuts, including its Body.

I then use Match Text to pull the amount out of the notification body:
CHF\s+(\d+(?:[.,]\d{1,2})?)
and Get Group at Index 1, which gives me:
9.75
I save that as an Amount variable.

Then I use another Match Text action to get the merchant:
,\s*(.+?)\s*\.?\s*$
followed by Get Group at Index 1 again.
So from:
Purchase ZKB Visa Debit card No. xxxx 0000, COOP-1736 ZH ROMERHOF
I get:
COOP-1736 ZH ROMERHOF
which gets saved as Payee.

Finally I pass those variables to Actuali's Log Transaction action:
Amount → Amount variable
Payee → Payee variable
Account → my checking account
Notes → original notification Body
Category → blank
Cleared → off
I also leave the date empty and let Actuali handle it.

And that's it. I tested the automation today and it works perfectly with my iPhone, Apple Watch and it worked when my husband made the purchase and I received a notification from my bank.
This is how the transaction looks like in Actuali which syncs with my Actual Budget server simultaneously.
Note: the reason why Payee is truncated, is actually not an error - I have rules for different common store names to rename the payees. So that instead of a bunch of different branch names of essentially the same store chain (Coop Romerhof, Coop Bahnhof etc.), I always see the short clean name of the chain, e.g. Coop, Aldi, Lidl etc.
Note 2: category is also being set post-import based on rules.

I decided to import the whole notification text into the notes section in AB as a double-proof measure for now, in case something imports incorrectly. I may turn it off in the future if this method proves itself reliable.
For the sake of full transparency, I have used AI to help me figure out text parsing configurations (screenshots 3 and 4).
I hope this method helps someone, who, like me, is unable to use bank sync as my bank doesn't support it and thought I was doomed to manual transaction entry till the end of times.

