The quick answer
Go to Setup > Import/Export > Import CSV Records. Set Import Type to Customization so Record Type is Custom List, choose a file with one row per option (list name, option value, abbreviation) and keep Data Handling on Add. On Field Mapping, map the list name to Custom List : Name (Req), the option value to Custom List - Values : Value (Req), and add Matrix Option List with the default value Yes. Then click Save & Run. In this example, five rows create two lists, Strap Length and Strap Webbing, and the job reads 2 of 2 records. The lists are not matrix options on items until a custom item field marked Matrix Option points at each one.
The screenshots show sample data. Person and company names are fictional. Use your own lists and values when following the steps.
Before you start
Example Supply Co. is about to sell straps in several lengths and webbing materials. Each of those is a variant dimension, and each needs a custom list of its values. Typing them into the list form one value at a time is slow, and it is easy to skip an abbreviation or leave the matrix box unticked. One CSV file loads every list and value in a single run.
The account needs the Matrix Items feature, under Setup > Company > Enable Features > Items & Inventory. The label can differ by release. Your role needs permission to create custom lists and run CSV imports. Every value of a list marked Matrix Option List needs an abbreviation of up to 15 characters. Abbreviations are optional on an ordinary custom list. NetSuite can use the abbreviation when it builds matrix item names. Try a small file first, in a sandbox if you have one.
This import creates the lists only. It does not create items or item fields. Each list also needs a custom item field marked Matrix Option before it shows up as an option on matrix items. That is a separate setup.
01. Check the starting point
Go to Customization > Lists, Records, & Fields > Lists. The Custom Lists page shows Color and Width. There is no Strap Length or Strap Webbing list yet. Check for your own list names before you import, because a list name has to be unique.
02. Prepare the file
Build the file with a header row and one row for every option. It has three columns: the list the option belongs to, the option value and its abbreviation. The list name repeats on every row of that list, so one file can create several lists. Each distinct name becomes one list, and each row with that name adds one value. Keep a list's rows together and in the order you want the values to appear, because a list set to show options in the order entered keeps that order. Quote any value that contains a comma, and check that your spreadsheet has not changed a value. A single list can't import with more than 25,000 values.
Here the file has five rows: Strap Length with 2 m, 3 m and 5 m, and Strap Webbing with Nylon and Polyester.
03. Start the import
Go to Setup > Import/Export > Import CSV Records. Set Import Type to Customization. Record Type shows Custom List. Click Select..., choose the file and click Next.
On Import Options, leave Data Handling on Add, which creates new lists, and click Next. A single file has no separate File Mapping step.
04. Map the fields
Field Mapping opens with one row mapped, Abbreviation to Custom List - Values : Abbreviation. Two required rows are empty: Custom List : Name (Req) and Custom List - Values : Value (Req). In the release used for this guide, only the Abbreviation column mapped itself, even when the headers were named Name and Value. Automatic mapping depends on the release and the headers, so check every row.
Map List Name to Custom List : Name (Req) and Option Value to Custom List - Values : Value (Req). A check appears beside each mapped column under Your Fields.
Matrix Option List is a check box on the list, not a column in your file. Under Custom List in NetSuite Fields, add Matrix Option List, click the pencil on its new row, keep Provide Default Value, choose Yes and click OK. The default applies to every list in the file. A list created without it is an ordinary custom list.
The mapping now has four rows. List Name goes to Custom List : Name (Req), Abbreviation to Custom List - Values : Abbreviation, Option Value to Custom List - Values : Value (Req), and the default Yes to Custom List : Matrix Option List. Click Next.
05. Save, run and check the job
In Import Map Name, enter a name, such as Strap option lists import. Description and ID are optional. Click Save & Run. The Finished page confirms that the CSV import has been saved and the job is in process. Click the Import Job Status link.
On Job Status, the Custom List job reads Complete, 100.0%, with 2 of 2 records imported successfully. The 2 counts the two list records, Strap Length and Strap Webbing. The five rows in the file supply their values. The wording can differ by release. Open CSV Response for row-level detail if a list or value is refused.
06. Confirm the lists
Go back to Customization > Lists, Records, & Fields > Lists. Strap Length and Strap Webbing are in the list, owned by the user who ran the import. Each has an ID that NetSuite generated, the customlist prefix and a number. That ID is the list's script ID. Custom lists have no External ID, so map a deliberate ID if scripts or integrations will refer to a list.
Open Strap Length. Show options in is the order entered and Matrix Option List is ticked. On the Values subtab, 2 m has the abbreviation 2M, 3 m has 3M and 5 m has 5M. Go back to the list and open Strap Webbing, which has Nylon (NYL) and Polyester (POL).
Check the result
- The job reads Complete, with 2 of 2 records imported.
- Strap Length and Strap Webbing are on the Custom Lists page.
- Matrix Option List is ticked on each list.
- Every value shows its abbreviation.
To use a list on items, create a custom item field for it with Matrix Option ticked, the list chosen in List/Record and the item types it applies to ticked under Applies To. Check that the field shows for the item form your users work with. Adding a value to a list later only makes the value selectable. It does not create items.
Common questions
How do I import custom lists from a CSV file in NetSuite?
Go to Setup > Import/Export > Import CSV Records, set Import Type to Customization so Record Type is Custom List, and choose your file. Keep Data Handling on Add, map the list name to Custom List : Name (Req) and the option value to Custom List - Values : Value (Req), and click Save & Run.
How do I make an imported custom list a matrix option list?
Matrix Option List is a check box on the list, so it is not a column in the file. On Field Mapping, add Matrix Option List from the Custom List fields, click its pencil and give it the default value Yes. Every list in that file is then created as a matrix option list. Check the box on each list after the job.
Why don't my imported lists show up as options on a matrix item?
A list on its own is not an option on items. Each list needs a custom item field marked Matrix Option, with the list chosen in List/Record and the item types it applies to ticked under Applies To. The field also has to show on the item form your users work with. Create one field for each list.
How do I import several custom lists in one file?
Put one row in the file for every value and repeat the list name on each row of that list. Each distinct name becomes one list, and each row with that name adds one value. Keep a list's rows together and in the order you want.
Why does the job say 2 of 2 records when my file has five rows?
The job counts records, and each list is one record. A multi-list import groups the five rows into two list records, and the values are lines on those lists. Open CSV Response for the row-level detail.
Do the values need abbreviations?
Only on a list marked Matrix Option List. Each value needs an abbreviation of up to 15 characters. NetSuite can use it when it builds matrix item names, and the list shows it beside each value. An ordinary custom list doesn't need abbreviations.
How do I keep the values in the order I entered?
Keep each list's rows in the order you want and check that Show options in is set to the order entered on the list afterward. With alphabetical order selected, NetSuite sorts the values instead.
Does the import create matrix items or item fields?
No. It creates the lists and their values only. You still create a custom item field for each list, and you create the matrix parent and children separately.
What happens if I run the same file again?
Don't rely on running the same file again with Add. A list name that already exists is expected to be refused rather than extended, so the values would not be added to the existing list. This was not tested for this guide, so try it on a copy or in a sandbox and read the CSV Response before you depend on it.