NetSuite Customer Category and Pricing Group Mapping Documentation
This document covers the customer reference collections that support the Customer feature: customer categories (written to NetSuite and captured from NetSuite) and pricing groups and price levels (captured from NetSuite as categories). Each collection is small and standalone; they are grouped here because they all describe how a customer's category and pricing are represented between the two systems.
Collections in This Document
Collection | Direction | Purpose |
Add/Update NetSuite Customer Category FROM iPaaS.com | iPaaS.com → NetSuite | Writes a customer category to NetSuite. |
Add/Update NetSuite Customer Category TO iPaaS.com | NetSuite → iPaaS.com | Captures a customer category from NetSuite (supports bulk initialization). |
Add/Update NetSuite Customer Pricing Group TO iPaaS.com | NetSuite → iPaaS.com | Captures NetSuite pricing groups and price levels as iPaaS.com categories. |
Customer Pricing: Categories, Pricing Groups, and Price Levels
In NetSuite, a customer can be assigned a pricing group and/or a price level — these are what determine the prices that customer sees. iPaaS.com represents both of them as customer categories. So when the integration captures a customer (or company) from NetSuite, it turns that customer's pricing group and/or price level into one or more iPaaS.com customer categories.
Which of the two it uses — and in what order — is controlled by a subscription setting:
Customer Pricing Source — for individual (person) customers.
Customer Company Pricing Source — for organization (company) customers.
Both are set in the NetSuite subscription's Subscription Settings in iPaaS.com (the subscription's preset values), along with an optional Default Price Level fallback. The accepted values are:
Setting value | What it does |
| Use the customer's pricing group(s) only; ignore the price level. |
| Use the price level only — the customer's own price level, or the Default Price Level when the customer has none; ignore the pricing group. |
| Prefer the pricing group; if the customer has no pricing group, fall back to the price level. |
| Prefer the price level; if the customer has no price level, fall back to the pricing group. |
For these categories to resolve, the matching pricing groups and price levels must first have been captured into iPaaS.com through Add/Update NetSuite Customer Pricing Group TO iPaaS.com (which is why that collection flags each captured category with IsPricingGroup / IsPriceLevel). Writing ordinary customer categories back to NetSuite is handled by Add/Update NetSuite Customer Category FROM iPaaS.com.
ID Format
The category or pricing group is identified by the iPaaS.com record ID (FROM direction) or the NetSuite internal ID (TO direction). The external-ID link correlates the record so subsequent transfers update the existing record rather than creating a new one.
Mapping Collection Status
All three collections are Enabled. The FROM collection (Customer Category) transfers on the iPaaS.com outbound triggers (Outbound Data Flows in the iPaaS.com subscription configuration); the TO collections transfer on NetSuite events (Inbound Data Flows plus the NetSuite-side webhook scripts). Customer Category TO additionally supports bulk initialization to bring existing NetSuite categories into iPaaS.com — see the Initialization Support section of NetSuite Connections and Settings.
System Caveats
Categories vs pricing groups / price levels. A true customer category and a pricing group / price level are kept distinct by the
IsPricingGroup/IsPriceLevelflags: the Category collections process only true categories, and the Pricing Group collection processes only pricing groups and price levels. These flags feed the Customer Pricing Source / Customer Company Pricing Source settings (in the NetSuite subscription's Subscription Settings in iPaaS.com) that resolve customer pricing.Pricing group / price level name consistency. The pricing group / price level Name must match between NetSuite and iPaaS.com so customer pricing resolves correctly — do not customize it per environment.
Mappings
Add/Update NetSuite Customer Category FROM iPaaS.com
iPaaS.com data type: Customer Category
Mapping Filter
var value = GetCustomFieldValue(CustomFields, "IsPricingGroup");
if (!string.IsNullOrWhiteSpace(value) && value.ToLower() == "true"){
return false;
}
var value2 = GetCustomFieldValue(CustomFields, "IsPriceLevel");
if (!string.IsNullOrWhiteSpace(value2) && value2.ToLower() == "true"){
return false;
}
return true;Filter Description. The filter inspects the iPaaS.com record's custom fields: if IsPricingGroup equals true, or IsPriceLevel equals true, the record is skipped (return false). Only records that are neither a pricing group nor a price level pass — so this collection writes true customer categories only; pricing groups and price levels are not written back as NetSuite categories.
Creates or updates a customer category in NetSuite from an iPaaS.com customer category.
Mapping Type | Source Field (iPaaS.com) | Destination Field (NetSuite) | Description |
Field | Name | Name | Required. The customer category name; identifies the category in NetSuite. |
Dynamic Formula |
| ExternalId | Recommended. An external identifier set from the iPaaS.com category ID, so the category is correlated between systems and subsequent transfers update the existing category. |
Static |
| IsInactive | Control. The integration creates categories as active (value |
Add/Update NetSuite Customer Category TO iPaaS.com
iPaaS.com data type: Customer Category
Mapping Filter
!IsPricingGroup && !IsPriceLevel
Filter Description. Passes a NetSuite record only when it is neither a pricing group nor a price level (both flags false). This captures true customer categories only; pricing groups and price levels are captured by the Pricing Group collection.
Captures a customer category from NetSuite into iPaaS.com.
Mapping Type | Source Field (NetSuite) | Destination Field (iPaaS.com) | Description |
Field | Name | Name | Required. The customer category name captured from NetSuite. |
Dynamic Formula |
| Description | Optional. A description reflecting the category's status — |
Add/Update NetSuite Customer Pricing Group TO iPaaS.com
iPaaS.com data type: Customer Category
Mapping Filter
IsPricingGroup== true || IsPriceLevel==true
Filter Description. Passes a NetSuite record when it is a pricing group (IsPricingGroup == true) or a price level (IsPriceLevel == true). This captures NetSuite pricing groups and price levels into iPaaS.com as customer categories so customer pricing assignments can be reflected in iPaaS.com; ordinary customer categories are skipped here and captured by the Category collection.
Captures NetSuite pricing groups and price levels into iPaaS.com as customer categories, flagged so the pricing-source logic can tell them apart from ordinary categories.
Mapping Type | Source Field (NetSuite) | Destination Field (iPaaS.com) | Description |
Field | IsPricingGroup | IsPricingGroup | Control. Flags that the captured category represents a NetSuite pricing group (written to an iPaaS.com custom field); lets the pricing logic distinguish pricing groups from price levels. |
Field | IsPriceLevel | IsPriceLevel | Control. Flags that the captured category represents a NetSuite price level; lets the pricing logic distinguish price levels from pricing groups. |
Dynamic Formula |
| Name | Required. The name of the pricing group or price level, captured from NetSuite. Keep the name format consistent across systems so the same pricing assignment matches everywhere — do not customize per environment. |
Dynamic Formula |
| Description | Optional. A description combining the pricing group and price level names. |
Error Handling
Category not written — an iPaaS.com category flagged as a pricing group or price level is intentionally skipped by Customer Category FROM iPaaS.com (it is not a true category). This is expected behavior, not an error.
Category does not resolve to a customer's pricing — if a customer's pricing group / price level has not been captured into iPaaS.com yet, the customer's categories will not resolve. Resolution: capture the pricing groups / price levels first via Customer Pricing Group TO iPaaS.com.
Testing & Validation
Test Scenarios
Category round-trip. Create a category in iPaaS.com, sync it to NetSuite, then capture it back; confirm the name and external-ID correlation.
Pricing group capture. Capture a NetSuite pricing group / price level and confirm it arrives in iPaaS.com with the
IsPricingGroup/IsPriceLevelflags set.Category vs pricing-group routing. Confirm a true category routes to the Category collections and a pricing group / price level routes to the Pricing Group collection.
Pricing resolution. With pricing groups / price levels captured and the Customer Pricing Source setting configured, capture a customer and confirm its iPaaS.com categories reflect the expected pricing source.
Validation Checklist
The
IsPricingGroup/IsPriceLevelflags are mapped so categories and pricing groups route correctly.Pricing group / price level names match between NetSuite and iPaaS.com.
The Customer Pricing Source / Customer Company Pricing Source setting is configured (in the NetSuite subscription's Subscription Settings in iPaaS.com) for how categories should resolve.
Additional Notes
The pricing-group / price-level flags feed the Customer Pricing Source and Customer Company Pricing Source settings used when capturing customers — see Customer Pricing: Categories, Pricing Groups, and Price Levels above. Those settings live in the NetSuite subscription's Subscription Settings in iPaaS.com.
Customer Payments are documented elsewhere. A NetSuite Customer Payment records an invoice's payment against a NetSuite invoice — it is transaction-related, not customer reference data — so the Add/Update NetSuite Customer Payment FROM iPaaS.com collection is documented with the Invoice feature rather than here.
Known limitations affecting customers will be collected in NetSuite Known Limitations.
