Overview
This is the script I use to manually import my Canadian transactions.
You install it the same way you install Simple CSV Import, by copying the Code.js
and Index.html
files into a new Apps Script project.
You choose a prepared CSV file from your computer and it shows a preview of the number of new vs. duplicate transactions and which headers match before you continue.
Why?
I wrote it because the existing tools all address preparing CSV files: remapping columns to match the Transactions
sheet, etc.
… but in my case preparing the CSV files was already well addressed by existing tools like Excel and scripts, but importing the prepared files remained fraught. I found copying and pasting and detecting duplicate transactions error prone for example.
Preparing data for import can in general be a broad topic … I wanted something that solved the orthogonal problem of importing it once prepared.
Like Import CSV Line Items Basic Bank CSV, this script:
- Maps columns to the
Transactions
sheet by (case-sensitive) header name. - Derives the month and week columns from the date, and the description from the full description.
… but unlike it, this script:
- Has no limit on the columns it imports. It will import any existing
Transactions
sheet columns e.g. category hint and transaction ID, and any new columns you may add to your own sheet. - Tries hard to reproduce edits that Yodlee/Tiller make to the description. With Basic Bank CSV I found my AutoCat rules sometimes don’t match my manually imported historic transactions because of differences like “PAYPAL *VANHACK 6046986819” vs. “Paypal *vanhack x6819”.
- Detects duplicate transactions. If your prepared CSV has a transaction ID column it uses that, otherwise it will derive content IDs that avoid manually importing those transactions again at least.
I’m grateful for any feedback especially if you also find this useful!
Next steps
Improve the UI, maybe as a sidebar like Import CSV Line Items vs. a dialog like it is now?