A Google Apps Script application for importing and categorizing bank transactions in Google Sheets. This tool automates the process of converting bank data from various formats into a standardized transaction format with automatic categorization.
The application provides:
- Transaction Import: Converts bank data from multiple formats into a standardized Google Sheets format
- Auto-categorization: Applies configurable rules to automatically categorize transactions
- Google Sheets Integration: Adds a custom menu to Google Sheets for easy access
- Multi-bank Support: Handles different bank export formats through configurable converters
src/
├── main.ts # Entry point - Google Sheets menu integration
├── bankin-v3.ts # Core transaction processing logic
├── convert.ts # Bank data format conversion
├── categorization.ts # Transaction categorization rules
├── xls.ts # Excel file handling utilities
└── custom/ # Configuration files
- Node.js and npm
- Google Apps Script CLI (
@google/clasp)
-
Install dependencies:
npm install
-
Configure CLASP (Google Apps Script CLI):
cp clasp.example.json .clasp.json # Edit .clasp.json with your Google Apps Script project ID
-
Build: Compile TypeScript and bundle for Google Apps Script
npm run build
-
Test: Run Jest test suite
npm run test -
Deploy: Push to Google Apps Script (requires CLASP setup)
npx clasp push
-
View Logs: Monitor Google Apps Script execution
npx clasp logs
The application uses configuration files in the src/custom/ directory to define:
- Bank-specific data conversion rules
- Transaction categorization rules
- Column mappings and data transformations
- Build and deploy the application to Google Apps Script
- Open a Google Sheets document
- Use the "Accounting" → "Import Transactions" menu item
- The script will process and categorize your bank transaction data
The project includes Jest tests for core functionality. Tests are located in the __tests__/ directory and cover transaction processing and bank-specific parsing logic.