Quickbooky

Accounting News

Data Import & Lists

Importing customer and supplier lists into QuickBooks Online

QuickBooks Online will not update existing contacts on a re-import, and nested customer records cannot come in. Here is what the import accepts.

COMMUNITY ISSUESQUICKBOOKY

The contact importer in QuickBooks Online takes a list exported from Outlook, Gmail, Excel or Google Sheets, and it works cleanly when the file is prepared beforehand. Most of the trouble we see gathers before the upload: a workbook with a second tab, a stray formula, two email columns, or a list that has already been imported once. This report covers the limits the importer applies, the records it will not accept, and the sequence that reliably gets a list in.

The file has to be flat, clean and small

QuickBooks Online caps an import at 2 MB or 1,000 rows, whichever arrives first. A longer list has to be split across several runs. That ceiling surprises anyone with years of contacts sitting in Gmail, but it is a hard limit rather than a suggestion.

The spreadsheet also needs the shape the importer expects. Column headings belong in the first row, contacts on the first sheet, and nothing else anywhere in the workbook. Formulas, charts and blank rows all read as bad data, so clear them out. Error values such as #REF!, #NAME?, #N/A or #VALUE! will stop the run. Names must not contain a colon or double quotation marks.

One email address per contact is the other rule people miss. Further addresses can be added inside QuickBooks afterwards, one record at a time.

Sub-customers cannot be imported at all

The importer builds a flat list, so it has nowhere to put a contact that sits beneath a parent. Customer records filed as sub-customers will not come in at that level, and neither will any nested record behind them. The workaround is to promote those records to the top level of the list, run the import, then reassign them once they are inside QuickBooks.

Worth separating two ideas that get mixed up here. Sub-accounts belong to the chart of accounts, not to the customer or supplier lists, and nothing in the contact importer touches them.

Which names have to be unique?

A customer name has to be distinct among your customers, and a supplier name has to be distinct among your suppliers. Those are two separate lists, so the same trading name can appear once in each without a clash. The constraint sits inside each list, not across them.

A second import adds records rather than correcting them

Nothing in this process updates a record that already exists. If the first run lands badly, running the same file again stacks a fresh set of entries on top instead of fixing the earlier ones, and you are left sorting two sets by hand. The recovery that works is to delete the records the bad run created, correct the file, and import once more. That cleanup is far quicker than editing individual records afterwards.

Getting the list out of Outlook or Gmail

In Outlook, choose File, then Open and Export, then Import/Export. Take Export to a file and Comma Separated Values, select the contacts folder, and note where the file is saved.

In Gmail, open the app launcher and choose Contacts, then Export. Pick all contacts or a single group, and choose Outlook CSV or Google CSV. Google’s own format and Outlook’s format label their columns differently, so check the headings before the upload rather than after.

The steps that finally worked

The sequence that holds up is straightforward. Export a clean CSV, open it, and keep only the rows and columns the importer needs. Confirm one email per row, confirm no two rows in the list share a name, save, then import.

When a run still fails, delete whatever it created, correct the file against the rules above, and try again. The importer is strict about its input and silent about the reason it rejected a row, so a few minutes spent checking the file is time saved twice over.

← Back to Community Issues