About the Tiller Migration Helper Add-on
The Migration Helper is a special case add-on intended to help customers transition from Feed Bot powered or Envelope Budget template spreadsheets into Tiller Money Feeds sheets and help clean up duplicated account data after upgrading their feeds from Legacy to YSL.
⚠️ Review the Installation Notes, which include disclaimers about the sensitive Google Drive permissions required by this add-on, before installing this add-on.
ℹ️ If you prefer not to use this add-on you can manually migrate your data using these steps.
Installing the Add-on
Choose the Google account you’d like to use to install the add-on
Accept the add-ons scopes
Migrating the data
Open your new spreadsheet, usually the Foundation Template sheet (this is the destination sheet).
If you are migrating from a Feed Bot sheet, and haven't yet started in your first Tiller Money Feeds sheet, please reference options 2 or 3 in this guide before proceeding with these steps.
Launch the Tiller Migration Helper from the Extensions menu
Accept the acknowledgement of use disclaimer
Select the "Migrate data from another sheet" radio option
Click the “Select Source spreadsheet” button
Use the file picker to choose your source (Feed Bot) spreadsheet. The easiest option is to search by name using the search feature at the top.
Customize the migration configuration options or stick with the default settings (described below)
ℹ️ Double check the name of your source sheet for quickly selecting it by visiting the Console at https://sheets.tillerhq.com/auth/login to review the list of currently linked sheets
Default Migration Settings
Bring over custom columns you have added that don’t exist in the destination sheet except those that use formulas in the header.
Use the categorizations and customized data for other columns (including custom columns) from the source sheet for transactions when there is a matching Transaction ID in the destination sheet.
Re-create split transactions when the source sheet has multiple transactions with the same ID, but only one instance of the Transaction ID in the destination.
Migrate all transactions that have manually generated IDs from the Tiller Community Solutions add-on.
Migrate all transactions that do not have a Transaction ID at all.
Ignore (does not migrate) transactions that only exist in the source sheet.
Migrates Balance History entries for only manually created accounts and updates their records to have a manual Account ID that the Tiller Money Feeds add-on will recognize if needed.
Merges the source categories’ structure into the destination categories sheet and preserves the destination sheet’s unique categories rather than completely overwriting the categories sheet.
Migrates the source AutoCat rules sheet if present and the destination doesn’t already have an AutoCat sheet.
Feel free to customize the migration configuration to meet your needs. You can read more in depth about all the settings and what they do below.
ℹ️ A few suggestions and things to note:
If you have not made any edits to the destination sheet’s Categories sheet to customize it, change the Categories default configuration to “Overwrite”
The Migration Helper does not migrate budget values or other custom columns from the Categories sheet at this time.
The Transaction ID column is required in both the source and destination sheets.
The Migration Helper will not migrate custom columns from the source sheet that have a formula in row 1 (e.g. an arrayformula filled column such as Group, Type, etc)
The Migration Helper will not migrate the data validation rules for columns that have a dropdown menu, but it will bring over the column and the values as text.
How The Migration Helper Works
The Migration Helper can move data from the source to destination spreadsheet for each of the following sheets:
Using the checkbox controls in the sidebar to configure your migrations based on the details below.
⚠️ The Migration Helper does not support the check box feature in the source Transactions sheet. If you have a column with checkboxes in the source Transactions sheet you will need to delete that column before running the Migration Helper.
Your source Transaction sheet may include columns that are not present in your destination Transactions sheet. When this option is set to “Migrate Columns”, missing columns will be added to the destination.
Note that columns where the header is a formula will be skipped and data validation rules (i.e. dropdown menu) will not be added if a missing column that has one is migrated.
Set to “Ignore” if you’d prefer to not add missing columns to your destination Transactions sheet.
Matching Transaction ID Found
The Matching Transaction ID Found section determines how transactions are handled when there is a matching Transaction ID in both the source and destination Transactions sheet. (For split transactions, this is a many (source) to one (destination) relationship.)
When the Migration Helper finds a matching Transaction ID between the source and the destination spreadsheets, it will either always overwrite the destination sheet’s category or overwrite only when it’s blank depending on which option is selected in the dropdown.
When the Migration Helper finds a matching Transaction ID between the source and the destination spreadsheets, it will either always overwrite the destination sheet’s data for the column or overwrite only when it’s blank depending on which option is selected in the dropdown.
“Other Columns” can be standard Transaction sheet columns (e.g. Description) or custom columns (e.g. Tags). The following column headers are protected and thereby will be ignored by this setting:
When the Migration Helper finds a Transaction ID with more than one instance of the ID in the source, but only a single instance in the destination, those rows are flagged as a split transaction. If the Migration Helper configuration is set to “Migrated Splits”, the existing (single) destination row is removed (any unique destination data is lost) and all source rows are inserted. In this way, splits are replicated into the destination spreadsheet.
Set Split Transactions to “Ignore” if you do not wish to migrate these types of records.
No Matching Transaction ID Found
The No Matching Transaction ID Found section determines how transactions are handled when either the Transaction ID is blank or there is not a matching Transaction ID in the destination Transactions sheet.
Manual transactions created by the Tiller Community Solutions add-on in the source spreadsheet (i.e. rows with Transactions IDs that are prefixed with manual:) will be moved to the destination spreadsheet if the “Manually Created” dropdown is set to “Migrate All”. If the dropdown is set to “Ignore”, these transactions will not be migrated.
No Transaction ID
Manually-added transactions in the source spreadsheet (i.e. rows with empty Transactions ID) will be moved to the destination spreadsheet if this option is set to “Migrate All”.
If the option is set to “Ignore”, transactions with empty Transaction IDs will not be migrated.
Note: that the Migration Helper is unable to check if rows without a Transaction ID have already been imported. They will be reimported each time this workflow is executed. To prevent duplicates, be careful not to run migrations with this option set multiple times.
“Other Transactions” are transactions that have Transaction IDs in the source sheet but are not found in the destination sheet. These transactions are migrated when the option is set to “Migrate All” and ignored when the option is set to “Ignore”.
“Other Transactions” with unmatched Transaction IDs are most often from accounts not linked in your destination sheet. This option defaults to “Ignore” as importing transactions from unlinked accounts can create confusion.
The Migration Helper can migrate your Categories sheet customizations for the Category, Group, Type, and Hide from reports columns.
⚠️ Budget amounts and other custom columns in the Categories cannot be migrated at this time.
When this option is set to “Merge”, for categories that exist in both the source and destination spreadsheets, the Migration Helper will overwrite Group, Type, and Hide From Reports configuration to match the source spreadsheet. Categories that exist only in the destination will be preserved.
When this option is set to “Overwrite”, the destination sheet’s categories will be wiped away before the source sheet’s categories are migrated to the destination sheet, providing a fresh start. This approach is preferred when migrating into a spreadsheet with default categories as unused destination categories are removed rather than orphaned.
If a Balance History entry has 9999 assigned in the deprecated Index column, the Migration helper will assign all balance entries with the same Account name a manual Account ID and migrate these accounts to the Destination sheet.
An Account ID is necessary for the Foundation Template Accounts and Balances sheets to display the account’s balance data, and to use the Tiller Money Feeds add-on to manually track account balances.
Balance History entries with a manual: Account ID prefix (i.e. manual accounts tracked via the Tiller Money Feeds add-on) will be moved to the destination spreadsheet.
Other Balance History entries (for automated accounts) will not be migrated as these entries should already exist in the destination’s Balance History sheet.
If the destination spreadsheet does not already contain an AutoCat sheet, the Migration Helper can copy the AutoCat rules sheet from the source spreadsheet into the destination spreadsheet.
Ideally, you should use the Google account associated with your Tiller subscription to install the Tiller Migration Helper add-on. However, because this add-on requires sensitive scopes you will not be able to install it with a Google account that has Advanced Protection turned on. You can install it with any Google account that doesn’t have Advanced Protection turned on because it does not need to authenticate with the Tiller service.
Disclaimer & explanation of scopes
This add-on requires several sensitive scopes, as depicted in the screenshot below. These scopes are required because they are bundled with the capability to use a batchUpdate() function that is only available in the v4 API from Google and to be able to select a file from your Google Drive, using a file picker. The batchUpdate() function, which requires the "https://www.googleapis.com/auth/spreadsheets" scope, allows the add-on to more quickly, accurately, and responsively merge & repair balance history entries and clean up duplicate transactions. The file picker, which requires the "https://www.googleapis.com/auth/drive.readonly" scope, is for ease of use when selecting a “source” sheet in the scenario where you are migrating data from one sheet to another.
The use of this add-on is completely optional. If you prefer not to grant access to the sensitive scopes required you can manually perform the same workflows using the steps in this guide.
You can also uninstall this add-on after completing these migration workflows, at which point, the add-on’s access to the contents of your Google Drive will be completely revoked.
Tiller uses the privileged access only to complete the selected workflows in the specified spreadsheets as part of the workflow’s process (i.e. the source and destination sheets that you choose as part of the workflow’s configuration).