Setup

Importing Data from Other Systems

Migrate your customers, suppliers, products, and historical transactions into IntBooks from Excel, CSV, or other accounting tools. Covers field mapping, validation, and rollback.

IntBooks supports CSV-based imports for every major data type. This document covers the import process, validation rules, and what to do if something goes wrong.

What can I import?

The CSV import wizard supports:

  • Customers — name, TIN, SSM, email, address, currency, payment terms
  • Suppliers — name, TIN, SSM, email, address, currency, default expense account
  • Products — SKU, name, description, unit, default sales price, default purchase price, tax classification, account code
  • Chart of accounts — code, name, type, sub-type, tax classification (see Chart of Accounts)
  • Opening balances — account code, debit, credit
  • Historical invoices — invoice number, date, customer, line items, totals
  • Historical bills — bill number, date, supplier, line items, totals
  • Historical journal entries — date, narration, line items
  • Historical bank transactions — date, amount, description, reference (for bank reconciliation)

How do I prepare a CSV?

For each import type, the wizard provides a template CSV with the required columns. Download it, fill in your data, and upload.

Templates are available under Settings → Data Import → Download Templates.

Template format requirements

  • UTF-8 encoding — required for non-ASCII characters (Malay, Chinese characters in customer names)
  • Comma-separated with no quoted fields unless the value contains a comma
  • Date format: YYYY-MM-DD (ISO 8601)
  • Currency amounts: decimal format, no currency symbol, no thousand separators (e.g., 1234.56, not RM 1,234.56)
  • Boolean fields: true / false or 1 / 0
  • Empty values: leave blank, do NOT use NULL or none

Step-by-step import

  1. Navigate to Settings → Data Import.
  2. Select the data type you want to import (e.g., Customers).
  3. Download the template CSV if you don’t already have one.
  4. Fill in your data using a spreadsheet tool (Excel, Google Sheets, LibreOffice).
  5. Save as CSV (UTF-8).
  6. Upload the file.
  7. The wizard parses the CSV and shows a preview with:
    • Row count
    • Column mapping (auto-detected; you can override)
    • Validation warnings (missing required fields, invalid TINs, duplicate names)
    • Sample of the first 10 rows
  8. Review the preview. If everything looks correct, click Import.
  9. The import runs in the background. You can leave the page; you’ll get an in-app notification when it completes.

Typical import speed: ~500 rows per second for customers, ~100 rows per second for invoices (slower because each invoice creates multiple records).

How do I handle validation errors?

If the wizard finds errors, it shows them in the preview with row numbers and a description. You have three options:

  1. Fix in place — click the errored row to edit the value inline, then re-validate.
  2. Skip errored rows — toggle Skip Invalid Rows before importing. Valid rows import; invalid rows are written to a separate error log you can download.
  3. Cancel and fix the CSV — go back to your spreadsheet, fix the errors, save, and re-upload.

What if I import the wrong data?

Every import is fully reversible for 24 hours after completion:

  1. Navigate to Settings → Data Import → History.
  2. Find the import you want to undo.
  3. Click Rollback.
  4. The system removes every record created by that import. Records that were modified (not created) are reverted to their pre-import state.

After 24 hours, rollback is no longer available because the records may have been referenced by subsequent transactions. To remove them, you’d need to manually delete each one (which may not be possible if they have downstream references).

Migration from common tools

From Excel

If your books are in Excel today, the easiest path is:

  1. Export your customer list from your master Excel file as a CSV.
  2. Map the columns to IntBooks‘s customer template (the wizard helps).
  3. Import customers.
  4. Repeat for suppliers, products, and historical invoices.

Total time for a typical SME with 200 customers, 50 suppliers, and 1000 historical invoices: ~30 minutes.

From SQL Account, AutoCount, MYOB, etc.

Most Malaysian-focused tools have a CSV export under their reporting menu. Use that to export each data type, then import into IntBooks.

If your existing tool exports in a format that doesn’t quite match the IntBooks template, you can either:

  • Restructure the CSV in Excel before importing
  • Contact our support team — we have pre-built converters for the most common Malaysian tools

From Xero, QuickBooks, Wave

These international tools export to CSV but don’t include Malaysian-specific fields like SST classification or MyInvois UIN. The customer/supplier import works fine; for historical invoices, you’ll need to add SST classifications manually after import.

Best practices

  1. Import in order: chart of accounts → customers → suppliers → products → opening balances → historical transactions. This avoids reference errors.

  2. Test with a small sample first. Before importing 1000 records, import 10. Confirm the result looks right, then do the full batch.

  3. Keep a backup of your source CSV. If something goes wrong, having the original data lets you re-import after fixing the issue.

  4. Don’t import data older than your fiscal year start unless you have a specific reason (e.g., audit trail). Historical records bloat your database without adding value to current operations.

  5. Validate TINs before import. The wizard validates against LHDN’s database, but if your source data has typos, you’ll have to fix each one individually after the import. Run a TIN check on your CSV first.

See also