# Managing Available Categories

The **Available Categories** screen controls which NetSuite categories are exposed to Client Admins on the active subsidiary. From here a NetSuite Admin can pick the visible subset, toggle whether brand-new categories are picked up automatically, and bulk-create categories from a CSV.

{% hint style="warning" %}
This screen is **NetSuite-Admin only**. Users with the Client Admin role hit an *Access denied* state if they navigate here. Switch to NetSuite Admin in the top-bar role toggle if you have both roles.
{% endhint %}

## When you'd use this

* A new subsidiary is being set up and you need to pick which categories its Client Admins can build catalogs from.
* New categories were added in NetSuite and you want them exposed here (or you want them to flow through automatically going forward).
* You're seeding a new product line and want to bulk-create categories from a spreadsheet rather than entering them one by one in NetSuite.
* A category needs to be hidden from a particular subsidiary without deleting the underlying NetSuite record.

## Before you start

* Sign in with a NetSuite-Admin-capable account.
* Confirm the **Subsidiary selector** in the top bar is set to the subsidiary you want to configure. The selection list is per-subsidiary.
* For CSV import: have a CSV ready with at least a `name` column. Optional columns: `description`, `parent`.

## Open the page

Navigate to `/categories/admin` in the Client Admin Portal (or follow a link from a NetSuite-side admin tool that takes you there). The page heading reads **Available Categories** with subtitle *Categories available to be configured for the {Subsidiary Name} subsidiary*.

![Available Categories screen with tree, Auto-add toggle, Import CSV and Save buttons](/files/aDyjyuWS3fvlCHY1fSsB)

## Pick which categories are visible

{% stepper %}
{% step %}

### Browse the tree

The full category tree from NetSuite is shown. Each row has a folder/folder-open icon, a checkbox, an optional thumbnail, the category name, and the description.
{% endstep %}

{% step %}

### Use the four tree controls

* **Select All** — checks every category, including children.
* **Unselect All** — clears every checkbox.
* **Expand All** — opens every node so children are visible.
* **Collapse All** — closes everything back to the top-level.
  {% endstep %}

{% step %}

### Tick or untick individual categories

Selecting a parent automatically selects its children. Unchecking a parent unchecks them too. You can mix — select a parent and uncheck specific children if you want to expose most but not all of a branch.
{% endstep %}

{% step %}

### (Optional) Turn on Auto add new categories

The **Auto add new categories** switch above the tree saves a flag on the subsidiary config. When on, newly created NetSuite categories on this subsidiary are surfaced to Client Admins automatically without you having to come back here. When off (the default), every new NetSuite category needs to be selected here before Client Admins can use it.
{% endstep %}

{% step %}

### Click Save

The **Save** button (top-right) writes both the selected-category list **and** the *Auto add new categories* flag to the subsidiary config. A toast confirms: *Configuration saved successfully. {N} categories selected.*
{% endstep %}
{% endstepper %}

## Bulk-import categories from CSV

Use this when you have a list of categories to create in NetSuite faster than the per-record UI allows. The Import CSV button creates fresh `customrecord_brm_category` records on this subsidiary.

### CSV format

Required and optional columns:

| Column            | Required | Notes                                                                                  |
| ----------------- | -------- | -------------------------------------------------------------------------------------- |
| **`name`**        | Yes      | The category name. Empty rows are skipped.                                             |
| **`description`** | No       | Optional short description.                                                            |
| **`parent`**      | No       | Reference to a parent category. Maps to `custrecord_brm_cat_parent` on the new record. |

The header row is matched case-insensitively, so `Name`, `name`, or `NAME` all work.

### Run the import

{% stepper %}
{% step %}

### Click Import CSV

A file picker opens. Select your `.csv` file.
{% endstep %}

{% step %}

### Watch the progress

The button changes to *Importing…* with a spinner. Each row is processed individually.
{% endstep %}

{% step %}

### Check the result toast

On success: *Import Complete — Successfully imported {N} categories{, M failed if any}*. On total failure: *Import Failed — All {N} categories failed to import. Check console for details.*
{% endstep %}

{% step %}

### Review the tree

After import, the page reloads its category list automatically so the new categories appear. Tick the ones that should be visible to Client Admins, and click **Save**.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
The import creates categories *in NetSuite*. It does not automatically select them for visibility — that's still a separate Save step here.
{% endhint %}

## What success looks like

* The tree reflects your tick selections.
* Client Admins on this subsidiary, when they visit their **Categories** page, see exactly the subset you selected.
* New categories are either auto-included (if Auto-add is on) or wait for your Save (if it's off).

## Common issues

* **The page says&#x20;*****Access Denied*** — your account isn't currently in the NetSuite Admin role. Switch roles in the top bar if you have both, or have a NetSuite Admin do this.
* **A new NetSuite category isn't appearing in the tree** — refresh the page. The tree is loaded once per subsidiary, not on every render.
* **Auto-add is on but a new category didn't show up downstream** — the Auto-add flag fires when categories are *first observed* by this screen. Visit the page once after the new category is created in NetSuite so the system picks it up.
* **CSV import errors on every row** — confirm the `name` column header is present (case-insensitive). Empty `name` values cause the row to be skipped silently. If parent references don't resolve, the records still create but without a parent link.
* **Saved selection doesn't reach Client Admins** — confirm the subsidiary selector at the top of the page matches the subsidiary the Client Admins are working on. Selections are scoped per subsidiary.

## Related

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Categories &#x26; Attributes</strong></td><td>The read-only Categories page that Client Admins see — driven by the selection here.</td><td><a href="/pages/Lhd78fJQEK4v1phG1c1F">/pages/Lhd78fJQEK4v1phG1c1F</a></td></tr><tr><td><strong>Creating a Catalog</strong></td><td>Where Client Admins pick from these visible categories when building a catalog.</td><td><a href="/pages/sqKV6Gm0WqBRQeT9aFbs">/pages/sqKV6Gm0WqBRQeT9aFbs</a></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.in8sync.com/client-admin-guide/categories-overview/managing-categories.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
