Google Sheets to Moneybird invoice exporter
- Copy
config/local.js.example
toconfig/local.js
and configure as needed - Run the application:
node ./
and follow the steps shown.
Repeat this step until all dependencies are met. Dependencies are:- Google Sheets service account token
- Moneybird config file
- Moneybird token
For a list of options, just run: node .
The application will read invoice rows from clients' Google Sheets and create a new draft invoices in Moneybird, linked to the Dummy Client.
Once you've sent an invoice to the client, put the invoice number back into the relevant Google Sheet rows, so they won't be included in new invoices.
Below are some examples.
node . --status
node . --create-invoice
node . --create-invoice --clients fooClient,barClient
node . --status --month 2020-01
node . --dl-pdf
This was written for my own particular use case, so you'll probably have to tweak some things.
There should be one Google Sheet per client, with these columns:
- Date
- Amount of hours worked
- Hourly rate (optional, uses config.defaultFee if not set)
- Client name (optional) - for sub-clients, gets prepended to the invoice row if set
- Description of the work
- Invoice number - if this is set, the row will not be included in new invoices
Column names can be configured in config/local.js
Currency is hardcoded to Euro.
Dutch (DD-MM-YYYY) date formats are assumed for '00-00-0000'-style dates, and
numbers are formatted Dutch-style during --status
.