Importing Data

Import people, businesses, products & services, and chart of accounts from CSV files to get your account set up quickly.

Overview

Beeswax lets you bulk-import data from CSV files so you can get up and running quickly — especially useful when migrating from another system. You can import four types of data:

  • People — contacts and users
  • Businesses — clients and suppliers
  • Products & Services — items you buy and sell
  • Chart of Accounts — your transaction accounts (income, expense, asset, loan, and transfer accounts)

Each import type has a downloadable CSV template you can use as a starting point.

Note: Bank statement imports are handled separately via Money > Bank Import. See the Bank Import help article for details on importing bank CSV files.


Getting Started

Navigate to Data Imports from the main navigation. You will see four import cards — one for each data type. Each card has two actions:

  • Import — start a new CSV import
  • Download CSV Template — download a pre-formatted template with the correct column headers

Download the template first, fill it in with your data, then upload it to start the import.


The Import Workflow

Every import follows the same four-step process:

Step 1 — Select a CSV File

Choose the data type you want to import and upload your CSV file.

Requirement Detail
File format CSV (.csv)
Encoding UTF-8 recommended
First row Must contain column headers
Maximum size 10 MB

Step 2 — Preview

After uploading, Beeswax shows a preview of the first five rows from your CSV so you can verify the data looks correct before proceeding.

Step 3 — Map Fields

Map each column in your CSV to the corresponding Beeswax field. Use the dropdown next to each CSV header to select which field it maps to, or choose "Don't import" to skip a column.

Required fields are flagged with a Required badge. You cannot proceed until all required fields are mapped.

Import Options

Option Description
Update Existing Records When enabled, if a matching record is found (by email for people, by name for businesses and accounts, by title for products), the existing record is updated instead of creating a duplicate

Step 4 — Results

Once the import completes, you see a summary showing:

  • Number of records created
  • Number of records updated (if Update Existing was enabled)
  • Number of failures with error details

If any rows fail, the results page shows the row number, error message, and a summary of the row data so you can fix the issue in your CSV and re-import.

Note: Large imports (over 500 KB or more than 100 rows) are processed in the background. You will be redirected to a results page that updates when processing is complete.


Importing People

Import contacts into your account. Each person is associated with a business — if a business name is included in your CSV and does not already exist, it will be created automatically. If no business name is provided, the person is assigned to your default company.

CSV Template Fields

Field Required Description
first_name Yes Person's first name
last_name Yes Person's last name
email Yes Email address (used to match existing records when updating)
address No Street address
city No City or town
state No State or region
postcode No Postal or ZIP code
country No Country
phone No Phone number
mobile No Mobile number
fax No Fax number
company_name No Business to associate this person with — created automatically if it does not exist

Matching for Updates

When Update Existing Records is enabled, people are matched by email address within your account. If a person with the same email already exists, their details are updated.


Importing Businesses

Import client and supplier businesses into your account.

CSV Template Fields

Field Required Description
name Yes Business name (must be unique within your account)
address No Street address
city No City or town
state No State or region
postcode No Postal or ZIP code
country No Country
phone No Phone number
web_address No Website URL

Matching for Updates

When Update Existing Records is enabled, businesses are matched by name (case-insensitive) within your account.


Importing Products & Services

Import the items you buy and sell. These appear as line items when creating invoices and expenses.

CSV Template Fields

Field Required Description
title Yes Item name (must be unique within your account)
description No Item description
kind Yes One of: Sell, Buy, or Buy & Sell
unit Yes One of: Units, Hours, or Days
sell_amount Yes Default sell price
buy_amount No Default buy price
sell_account_name No Name of the income account to allocate sales to (defaults to first income account if not specified)
buy_account_name No Name of the expense account to allocate purchases to
item_category_name No Item category name — created automatically if it does not exist (defaults to "Main")
active No Whether the item is active — accepts: true, false, yes, no, 1, 0

Validation Rules

  • Kind must be exactly one of: Sell, Buy, or Buy & Sell (case-insensitive)
  • Unit must be exactly one of: Units, Hours, or Days (case-insensitive, singular forms like "Hour" or "Day" are also accepted)
  • If a sell or buy account name is provided but not found, the system falls back to the first income or expense account in your chart of accounts

Matching for Updates

When Update Existing Records is enabled, products are matched by title (case-insensitive) within your account.


Importing Chart of Accounts

Import transaction accounts (your chart of accounts). This is useful when migrating from another accounting system.

CSV Template Fields

Field Required Description
name Yes Account name
type No Account type — one of: IncomeAccount, ExpenseAccount, AssetAccount, LoanAccount, or TransferAccount. You can also use the short form: income, expense, asset, loan, transfer. Defaults to AssetAccount if not specified
opening_balance No Opening balance amount (decimal)
description No Account description
bsb No BSB number (for bank accounts)
account_number No Bank account number
bank_account No Whether this is a bank account — accepts: true, false, yes, no, 1, 0
active No Whether the account is active

Account Types

Type Value Description
IncomeAccount (or income) Revenue accounts (e.g. Services, Interest Earned)
ExpenseAccount (or expense) Expense accounts (e.g. Rent, Software & Subscriptions)
AssetAccount (or asset) Asset accounts (e.g. Bank accounts, Equipment)
LoanAccount (or loan) Loan and liability accounts
TransferAccount (or transfer) Transfer accounts for moving money between accounts

Matching for Updates

When Update Existing Records is enabled, accounts are matched by name within your account.


Import History

You can view past import results by navigating to Data Imports and checking the import history. Each result shows:

  • The data type that was imported
  • Number of records created, updated, and failed
  • Status (completed, completed with errors, or failed)
  • Date of the import

Click on an individual result to see detailed error information for any rows that failed.


Tips & Best Practices

  • Start with the template. Download the CSV template for each data type and use it as your starting point. This ensures your column headers match what Beeswax expects.
  • Import in order. If your people reference businesses, import businesses first so the company associations can be resolved.
  • Clean your data first. Remove empty rows, fix formatting, and ensure required fields are filled in before uploading.
  • Use Update Existing for corrections. If you need to fix data after an initial import, enable "Update Existing Records" and re-import your corrected CSV.
  • Check the results. After each import, review the results page for any failed rows and fix them in your CSV before re-importing.
  • Use UTF-8 encoding. If your data contains special characters (accents, symbols), save your CSV with UTF-8 encoding to avoid character issues.