Configuring FSM Customer and Asset Selection
Configure the relationship used to offer Customer and Asset choices on NetSuite forms. Keep both directions consistent: assets allowed for a customer and customers allowed for an asset.
These settings apply to project, case, CRM task, project task, opportunity, estimate (quote), sales order, and invoice forms. Each supported record type uses the same relationship. A change for sales orders also applies to the other supported NetSuite forms. FSM Mobile has separate selection configuration.
Properties and Defaults
The following table lists the selection properties, accepted values, defaults, and effects.
|
Property or Setting |
Location |
Accepted Value |
Default |
Effect |
|---|---|---|---|---|
|
|
|
Boolean |
|
Stops interactive filtering when set to |
|
|
|
Page-field ID strings |
|
Identify the filtered selectors added to the form. |
|
|
|
Maps with |
Both maps use |
Supply the selector IDs and display text. |
|
|
|
Mapped ID list, Boolean, or supported collection result |
Internal ID of the asset's customer. |
Supplies customers permitted for the asset. |
|
|
|
Mapped ID list, Boolean, or supported collection result |
|
Supplies assets permitted for the customer. An empty mapped value uses the |
|
|
|
Search collection definition |
Owned-asset search collection |
Supplies assets permitted for the customer. |
Default JSON
This JSON fragment shows the standard defaults for the listed properties. Other properties remain inherited.
{
"views/assetcustomer": {
"hidden": false,
"customerFilter": "custpage_nx_customer",
"assetFilter": "custpage_nx_asset",
"customerOption": {
"id": "internalid",
"label": "formulatext:nvl(nvl(trim({firstname}||' '||{lastname}),{companyname}), {entityid})"
},
"assetOption": {
"id": "internalid",
"label": "name"
}
},
"models/asset": {
"prototype": {
"map": {
"customers": "formulatext:{custrecord_nx_asset_customer.internalid}"
}
}
},
"models/customer": {
"prototype": {
"map": {
"assets": "formulatext:''"
},
"assets": {
"array": true,
"asset": {
"all": true,
"record": "customrecord_nx_asset",
"filters": [
"custrecord_nx_asset_customer",
"anyof",
"${ customer.id }"
]
}
}
}
}
}
Changing the Selection Relationship
Before changing these settings, prepare an inactive copy of the Field Service Configuration record. Merge your changes into its existing JSON and preserve unrelated properties. Validate the revised configuration before activation. For the full workflow, see Updating and Validating FSM Configuration.
For example, a multiselect field on an asset record can identify permitted service-provider customers.
The field ID custrecord_nxc_service_providers represents an existing multiselect field for customer records on an asset record. Replace both occurrences with the internal ID of that field in your account. Populate the field with permitted service-provider customers before using this relationship.
{
"models/asset": {
"prototype": {
"map": {
"customers": "custrecord_nxc_service_providers[]|"
}
}
},
"models/customer": {
"prototype": {
"assets": {
"asset": {
"filters": [
"custrecord_nxc_service_providers",
"anyof",
"${ customer.id }"
]
}
}
}
}
}
The asset map reads permitted customer IDs, and the customer search finds assets with that customer in the multiselect field. For supported patterns that use ID lists, Boolean values, or association records, see Customer and Asset Eligibility.
To stop interactive filtering, set views/assetcustomer.hidden to true.
Dependencies and Customization Limits
The configured relationship controls selection eligibility. It does not transfer asset ownership or grant NetSuite permissions. Parent customer and subcustomer relationships do not automatically expand the standard search for owned assets.
Preserve the fallback for an empty mapped value when a collection determines eligibility. The Boolean value true permits unrestricted selection in that direction. The value false offers no choices. Unrestricted selection can allow service work for the wrong billing customer.
Why Both Directions Must Agree
Both mapped IDs and collection definitions must describe the same permitted pairings. If an asset is allowed for a customer, that customer must also be allowed for that asset. FSM evaluates the relationship for the field being filtered. FSM does not automatically derive the reverse relationship or compare both lists before offering a choice.
For example, an asset might allow a service-provider customer, but that customer's asset search still returns only assets it owns. If you select the asset first, the list can offer the service provider. If you select the customer first, the list excludes that asset. The result depends on which field controls filtering. Changing or clearing the controlling selection can reapply filtering in the opposite direction and clear a value that is no longer offered. If a required field is empty, you must supply a valid value before you can save the form.
The selector does not raise a dedicated configuration error when the two directions disagree. An available choice, or a successful save, does not prove that both definitions permit the pairing. Inconsistent definitions can prevent valid service work or offer a customer and asset pairing that the intended relationship should exclude. This mismatch can cause work to be recorded for the wrong billing customer.
Record-specific sourcing and reconciliation during saving still apply. These processes can change selected values or related project and case links. For details about these interactions, see FSM Customer and Asset Selection.
When Changes Apply
Changes to selectors and option maps apply when a form loads and on subsequent selection changes. Opening an existing record does not, by itself, clear its current combination. Changing the customer or asset selection reapplies selection rules. Record-model reconciliation also runs during saving.