HourBank Documentation for version 1.0.0

CSV import

If you already run retainers in a spreadsheet, you can bring them into HourBank in a few minutes. Open HourBank, Agreements and click Import retainers.

Step 1: Download the template

Click Download the CSV template. Open it in Excel, Google Sheets or LibreOffice. It has the column headings and one example row. Fill in one row per retainer.

ColumnRequiredNotes
ClientYesThe customer's company name exactly as it is in Perfex, or the customer number.
Agreement nameNoLeave empty to use a default name.
PlanNoThe name of an existing plan. Its hours, price and rules are used.
Start dateYesFor example 2026-01-01.
Hours per cycleIf there is no planFor example 10.
PriceNoPer billing cycle.
Opening balance (hours)NoHours the client has left today.
Opening balance expiresNoThe date those hours run out.
End dateNoLeave empty to renew without end.
Extra hours priceNoPrice per extra hour. Needed to bill extra hours.

For a retainer that started a long time ago, set the start date to the start of the current billing period and put the hours the client has left in Opening balance. Start dates more than two years ago are refused.

Step 2: Upload and match the columns

Choose your file (a CSV smaller than 2 MB, up to 2,000 rows) and click Next. Files saved by spreadsheets in many countries use semicolons instead of commas, and HourBank copes with both. It matches columns by their headings. If a heading is different, choose the right field in the drop-down, or Do not import for a column you do not need.

Matching the columns of the file
Matching the columns.

Step 3: Check the rows

Nothing is created yet. HourBank shows every row and says whether it is ready. Rows with a problem, such as a client it cannot find or a date it cannot read, say why and will be skipped.

The preview before importing
Check the rows before importing.

Step 4: Import

Click Import. HourBank creates the agreements as running retainers. Importing the same file twice does not create duplicates: a row whose client, name and start date already exist is skipped.