Set Up NetSuite Forms for Classes, Locations and Departments¶
QuickBooks Online has two tracking settings, one for Location and one for Class. What SuiteMigration sends to NetSuite, and what you need to set up in NetSuite, depends on how each one is set.
This article goes through each setting in turn.
SuiteMigration assumes per-line classes, departments and locations are turned on in NetSuite. It does not read the NetSuite preference, and it always sends these values on the lines. If per-line tracking is off in your NetSuite account, turn it on before you push, or NetSuite can reject the records.
Find your QuickBooks Online settings¶
The settings are in QuickBooks Online under Account and settings → Advanced → Categories.
You can also see them in SuiteMigration. The Metadata Fields Used in QuickBooks Online card on the Migration Readiness Audit shows both settings for the connected company, and lists the fields each record type uses, where QuickBooks Online holds them, and what to show on the NetSuite form.
| Setting | Possible values |
|---|---|
| Location tracking | Off, or one per transaction |
| Class tracking | Off, one per transaction, or one per line |
A company can rename Location to something else, such as Division, Department or Store. SuiteMigration shows the company's own name for it.
Location tracking¶
Off¶
| In QuickBooks Online | Transactions carry no Location. |
| What SuiteMigration sends | No Location or Department. |
| What to set up in NetSuite | Nothing. |
One per transaction¶
| In QuickBooks Online | Each transaction has one Location, and it applies to every line of that transaction. Lines do not have their own. Journal entries are the exception: every journal entry line has its own Location. |
| What SuiteMigration sends | The Location goes on the NetSuite header and is copied to every NetSuite line. Journal entry lines are sent with their own Location. |
| What to set up in NetSuite | Turn on Allow Per-Line Locations, Allow Per-Line Departments, or both, depending on where you map the Location (see below). Show the field on both the main section and the line columns of each transaction form. |
NetSuite keeps a separate value on each line, and a line without one shows as unclassified in reports. That is why the Location is copied to the lines and not left on the header alone.
Location or Department¶
QuickBooks Online has one Location field. NetSuite has two separate fields, Location and Department. You choose where each QuickBooks Online Location goes in Metadata Mapping:
- Mapped on the Locations tab only: it lands in NetSuite Location.
- Mapped on the Departments tab only: it lands in NetSuite Department.
- Mapped on both tabs: it lands in both.
Set up the NetSuite preference and form fields for whichever of the two you map to.
Class tracking¶
Off¶
| In QuickBooks Online | Transactions carry no Class. |
| What SuiteMigration sends | No Class. |
| What to set up in NetSuite | Nothing. |
One per transaction¶
| In QuickBooks Online | Each transaction has one Class, and it applies to every line of that transaction. |
| What SuiteMigration sends | The Class goes on the NetSuite header and is copied to every NetSuite line. |
| What to set up in NetSuite | Turn on Allow Per-Line Classes. Show Class on both the main section and the line columns of each transaction form. |
One per line¶
| In QuickBooks Online | Each line has its own Class, so one transaction can be split across several classes. The transaction as a whole has no Class. |
| What SuiteMigration sends | Each NetSuite line is sent with its own Class, as it is in QuickBooks Online. Nothing goes on the NetSuite header, and nothing is copied between lines. |
| What to set up in NetSuite | Turn on Allow Per-Line Classes. Show Class on the line columns of each transaction form. |
How to make the changes in NetSuite¶
1. Turn on the per-line preferences¶
Go to Setup → Accounting → Accounting Preferences, open the General subtab, and in the Classifications section check the ones your settings above call for:
- Allow Per-Line Classes
- Allow Per-Line Departments
- Allow Per-Line Locations
Without these, NetSuite has only the header field for that classification and has nowhere to keep a value on the line.
2. Show the fields on your transaction forms¶
The NetSuite form action column on the audit card says which fields each record type needs and where. For each record type it lists, open the form SuiteMigration will use under Customization → Forms → Transaction Forms and edit it:
- On Screen Fields → Main, check Show for the field, so it is available on the header.
- On Sublist Fields, check Show for the field on the item and expense sublists, so it is available on the lines.
Then mark the form as preferred, so it is the one used when records are created through the integration.
Terms and Payment Method, which the audit card also lists, are header fields. They only need to be shown on Screen Fields → Main.
NetSuite's own steps are in Customizing Forms for Per-Line and Header Classifications.
3. Map the values¶
Map every Class and Location in Metadata Mapping before you push. A value with no mapping is not sent, and the NetSuite record lands without it. The Blank Value row on each tab decides what is sent when QuickBooks Online has no value at all.
If a push fails¶
When a form hides a field, or the per-line preference is off, NetSuite can reject the record. The error on the record in the Push Results Report names the field. Fix the preference or the form as described above, then push the record again.
If only some transaction types fail, check the form for that type. Each transaction type has its own form, and a field shown on the invoice form is not automatically shown on the bill form.
Checking the result¶
After a small push, run the same report in both systems for the same period, for example Profit and Loss by Class in QuickBooks Online and the Income Statement by Class in NetSuite. Amounts with no classification in NetSuite that have one in QuickBooks Online point at a form that is not showing the field on its lines, or at a value that has no mapping.