MONEY x MAIL: auto-capture card statements and transaction alerts from email; replace Shortcuts→Windmill→Actual pipeline (grill) #480

Open
opened 2026-09-30 05:06:51 +00:00 by kayg · 1 comment
Owner

Request (owner, 2026-09-30)

"we could even snag them automatically from the credit card statement email, would be super cool! that brings me to my iOS shortcuts → windmill server → actual budget http api automation to log transactions. if calternal has access to both mail and money, it would be wayyy more simple to auto log transactions!"

Scope (grill first)

  1. Statements from email: detect card statement emails in Mail (issuer sender, subject and PDF attachment). Open password-protected PDFs with a per-card password the User saves once, stored encrypted. Extract the statement close date, due date, total, minimum and the transaction lines, then offer them for Money: statement confirmation, reconciliation and "Unrecorded" lines.
  2. Transaction alerts from email or SMS forwarding: parse bank and card alert emails ("INR 450 spent at X on card XX1234") into proposed Money transactions (payee, amount, account, date). Suggest a category from the payee's history. Show them in an Approve queue, like YNAB's imported and unapproved rows, with auto-approve only when confident.
  3. Replacing the owner's current pipeline: today the owner runs iOS Shortcuts → a Windmill server → the Actual Budget HTTP API (the owner's ynab-auto-log repo, including log_txn.ts with refunds and sync_ids.ts). Study it and reach parity: the iOS Shortcut posts to a calternal endpoint (App Password scoped to Money), and refunds and ID sync come along too.
  4. EMI detection: statement lines showing EMI conversions or instalments suggest creating a Loan account and a payment plan (#462).
  5. Privacy: parsing is local only, raw statements stay in the User's Home, and nothing goes to the logs.
    Depends on: Mail M3 (#397), Money (#462), account kinds Debit/Credit/Loan/Tracking.
## Request (owner, 2026-09-30) "we could even snag them automatically from the credit card statement email, would be super cool! that brings me to my iOS shortcuts → windmill server → actual budget http api automation to log transactions. if calternal has access to both mail and money, it would be wayyy more simple to auto log transactions!" ## Scope (grill first) 1. **Statements from email:** detect card statement emails in Mail (issuer sender, subject and PDF attachment). Open password-protected PDFs with a per-card password the User saves once, stored encrypted. Extract the statement close date, due date, total, minimum and the transaction lines, then offer them for Money: statement confirmation, reconciliation and "Unrecorded" lines. 2. **Transaction alerts from email or SMS forwarding:** parse bank and card alert emails ("INR 450 spent at X on card XX1234") into proposed Money transactions (payee, amount, account, date). Suggest a category from the payee's history. Show them in an Approve queue, like YNAB's imported and unapproved rows, with auto-approve only when confident. 3. **Replacing the owner's current pipeline:** today the owner runs iOS Shortcuts → a Windmill server → the Actual Budget HTTP API (the owner's `ynab-auto-log` repo, including `log_txn.ts` with refunds and `sync_ids.ts`). Study it and reach parity: the iOS Shortcut posts to a calternal endpoint (App Password scoped to Money), and refunds and ID sync come along too. 4. **EMI detection:** statement lines showing EMI conversions or instalments suggest creating a Loan account and a payment plan (#462). 5. **Privacy:** parsing is local only, raw statements stay in the User's Home, and nothing goes to the logs. Depends on: Mail M3 (#397), Money (#462), account kinds Debit/Credit/Loan/Tracking.
Author
Owner

Owner (2026-09-30): "Transaction messages also come to email (as well as message, some come to messages only so we need to do iOS shortcuts there) so we can directly log from there!"
The two capture paths are equal inputs to one pipeline:

  • Email alerts: logged directly by the Mail plugin, with no Shortcut needed. Parse the issuer alert emails into proposed transactions.
  • SMS-only alerts: an iOS Shortcuts personal automation on Messages (today's triggers contain spent, Sent Rs, Paid inr and Scapia) posts the message text to a calternal Money endpoint, with an App Password scoped to Money. calternal should ship a ready-made Shortcut (and a deep link to install it) and document the Messages automation setup.
  • Dedup across both: the same transaction often arrives by SMS and by email. Match on amount, card last-4, time window and merchant, and never double-log. Ambiguous pairs stay separate for the User to confirm (Money rule M19).
  • The parser, category suggestion and Approve queue are shared by both paths.
**Owner (2026-09-30):** "Transaction messages also come to email (as well as message, some come to messages only so we need to do iOS shortcuts there) so we can directly log from there!" The two capture paths are equal inputs to one pipeline: - **Email alerts:** logged directly by the Mail plugin, with no Shortcut needed. Parse the issuer alert emails into proposed transactions. - **SMS-only alerts:** an iOS Shortcuts personal automation on Messages (today's triggers contain `spent`, `Sent Rs`, `Paid inr` and `Scapia`) posts the message text to a calternal Money endpoint, with an App Password scoped to Money. calternal should ship a ready-made Shortcut (and a deep link to install it) and document the Messages automation setup. - **Dedup across both:** the same transaction often arrives by SMS and by email. Match on amount, card last-4, time window and merchant, and never double-log. Ambiguous pairs stay separate for the User to confirm (Money rule M19). - The parser, category suggestion and Approve queue are shared by both paths.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal#480
No description provided.