Skip to main content

NetSuite Customer Category and Pricing Group Mapping Documentation

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

PRICE_GROUP_ONLY (used when the setting is left blank)

Use the customer's pricing group(s) only; ignore the price level.

PRICE_LEVEL_ONLY

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.

GROUP_THEN_LEVEL

Prefer the pricing group; if the customer has no pricing group, fall back to the price level.

LEVEL_THEN_GROUP

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 / IsPriceLevel flags: 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

Id

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

false

IsInactive

Control. The integration creates categories as active (value false).

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

IsInactive ? "In-Active" : "Active"

Description

Optional. A description reflecting the category's status — Active or In-Active based on the NetSuite category's inactive flag.

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

if(IsPriceLevel==true) return PriceLevelRefName; else return PriceGroupRefName;

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

PriceGroupRefName + " " + PriceLevelRefName;

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

  1. Category round-trip. Create a category in iPaaS.com, sync it to NetSuite, then capture it back; confirm the name and external-ID correlation.

  2. Pricing group capture. Capture a NetSuite pricing group / price level and confirm it arrives in iPaaS.com with the IsPricingGroup / IsPriceLevel flags set.

  3. 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.

  4. 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 / IsPriceLevel flags 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.

Related Documents

Did this answer your question?