Skip to main content

Headers on Google Sheets

Learn how Freezing the first row on your Google Sheet enhances your workflow when Recording data on Bkper

Updated over 2 weeks ago

Headers on Google Sheets

The Bkper Add-on for Google Sheets uses the first row of your data range as a header to understand the meaning of each column. This applies when you save Transactions, Accounts, and Groups.

How the Add-on Recognizes Headers

The Add-on considers your first row a valid header when either of these conditions is met:

Frozen first row — When you freeze the first row in Google Sheets (View > Freeze > 1 row), the Add-on always treats it as a header, regardless of the column names.

Recognized column names — Even without freezing, the Add-on recognizes specific column names and uses them to map your data correctly. This gives you flexibility when working with data exported from other systems.

Recognized Column Names

The following column names are automatically recognized:

Column Name

Aliases

What it does

Date

The post date of the Transaction

Amount

The amount on the Transaction

From

Origin, From Account, Credit Account

The From Account on the Transaction

To

Destination, To Account, Debit Account

The To Account on the Transaction

Description

The description, including external URLs

ID

Unique identifier for generating IDs

Transaction ID

Used to update existing Transactions (see below)

BookId

Target Book ID when saving to multiple Books

Attachment

File attachment URL

When using recognized column names, you can place them in any order on your Sheet.

When No Header is Recognized

If the first row is not frozen and contains no recognized column names, the Add-on falls back to positional parsing. In this mode, the order of the data determines its meaning — for example, the first Account name found on a row becomes the From Account.

Saving vs. Updating Transactions

When your data includes a Transaction ID column, the Add-on can update existing Transactions instead of recording new ones:

  • Rows with a Transaction ID value will update the existing Transaction in your Book

  • Rows without a Transaction ID value will record a new Transaction

This enables batch editing of Transactions directly from Google Sheets. Simply fetch your Transactions, make your changes, and save them back.

Note: Some columns are read-only and cannot be modified when updating: Transaction ID, Status, and Recorded At (or Created At).

Custom Properties

Any column with a header name that is not a recognized system column becomes a custom property. The column header becomes the property key and the cell value becomes the property value.

For example, a column named project_code with a cell value of PRJ-2025 will record the custom property project_code: PRJ-2025 on the Transaction.

To use custom properties, you should freeze the first row to ensure consistent header recognition.

Note: Custom properties for Books cannot be recorded via Google Sheets.

Ignoring Columns

Columns with blank headers are ignored when saving data with the Bkper Add-on.

This is useful when your Sheet contains additional information used for other purposes — such as checkboxes for internal approval workflows — that should not be recorded in Bkper.

Summary

Scenario

Header Recognition

Custom Properties

First row frozen

Always recognized

Supported

Recognized column names (not frozen)

Recognized

Supported

No freeze, no recognized names

Falls back to positional parsing

Not supported

Recommendation: For maximum flexibility and to ensure custom properties work correctly, freeze your first row.

Did this answer your question?