> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# NSPreferenceAgent

> Preferences, user interface tab configuration.

Preferences, user interface tab configuration.

## Constructors

### NSPreferenceAgent()

```crmscript theme={null}
NSPreferenceAgent
```

Preferences, user interface tab configuration.

## Methods

## CreateDefaultPreference()

Sets default values into a new NSPreference.

```crmscript theme={null}
NSPreference CreateDefaultPreference()
```

**Returns:** [CRMScript.NetServer.NSPreference](CRMScript.NetServer.NSPreference)

<Note>
  NetServer calculates default values (for example, Country) on the entity, which is required when creating/storing a new instance
</Note>

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreference thing = agent.CreateDefaultPreference();
thing = agent.SavePreference(thing);
```

## CreateDefaultPreferenceDescription()

Sets default values into a new NSPreferenceDescription.

```crmscript theme={null}
NSPreferenceDescription CreateDefaultPreferenceDescription()
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescription](CRMScript.NetServer.NSPreferenceDescription)

<Note>
  NetServer calculates default values (for example, Country) on the entity, which is required when creating/storing a new instance
</Note>

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceDescription thing = agent.CreateDefaultPreferenceDescription();
thing = agent.SavePreferenceDescription(thing);
```

## CreateDefaultPreferenceDescriptionLine()

Sets default values into a new NSPreferenceDescriptionLine.

```crmscript theme={null}
NSPreferenceDescriptionLine CreateDefaultPreferenceDescriptionLine()
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescriptionLine](CRMScript.NetServer.NSPreferenceDescriptionLine)

<Note>
  NetServer calculates default values (for example, Country) on the entity, which is required when creating/storing a new instance
</Note>

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceDescriptionLine thing = agent.CreateDefaultPreferenceDescriptionLine();
thing = agent.SavePreferenceDescriptionLine(thing);
```

## DeleteFromSectionAndKey(String,String)

Gets an NSPreferenceDescription based on the section and key

```crmscript theme={null}
Void DeleteFromSectionAndKey(String section, String key)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String section;
String key;
agent.DeleteFromSectionAndKey(section, key);
```

## DeletePrefDescLinesByPrefDescId(Integer)

Deletes the PrefDescLines associated with Preference Description ID in the SuperOffice database

```crmscript theme={null}
Void DeletePrefDescLinesByPrefDescId(Integer prefDescId)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer prefDescId;
agent.DeletePrefDescLinesByPrefDescId(prefDescId);
```

## DeletePrefDescLinesByPrefDescIds(Integer\[])

Deletes the PrefDescLines associated with Preference Description IDs in the SuperOffice database

```crmscript theme={null}
Void DeletePrefDescLinesByPrefDescIds(Integer[] prefDescIds)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer[] prefDescIds;
agent.DeletePrefDescLinesByPrefDescIds(prefDescIds);
```

## DeletePreference(Integer)

Deletes a preference by ID

```crmscript theme={null}
Void DeletePreference(Integer id)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer id;
agent.DeletePreference(id);
```

## DeletePreferenceDescription(Integer)

Deletes the NSPreferenceDescription

```crmscript theme={null}
DeletePreferenceDescription(Integer preferenceDescription)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
agent.DeletePreferenceDescription(123);
```

## DeletePreferenceDescriptionLine(Integer)

Deletes the NSPreferenceDescriptionLine

```crmscript theme={null}
DeletePreferenceDescriptionLine(Integer preferenceDescriptionLine)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
agent.DeletePreferenceDescriptionLine(123);
```

## DeletePreferenceDescriptionLines(Integer\[])

Deletes the PrefDescLines in the SuperOffice database

```crmscript theme={null}
Void DeletePreferenceDescriptionLines(Integer[] prefDescLineIds)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer[] prefDescLineIds;
agent.DeletePreferenceDescriptionLines(prefDescLineIds);
```

## DeletePreferences(Integer\[])

Deletes some preferences by ID

```crmscript theme={null}
Void DeletePreferences(Integer[] ids)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer[] ids;
agent.DeletePreferences(ids);
```

## GetAll()

Gets a list of all PreferenceDescriptions in the system.

```crmscript theme={null}
NSPreferenceDescription[] GetAll()
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescription](CRMScript.NetServer.NSPreferenceDescription)\[]

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceDescription[] res = agent.GetAll();
```

## GetAllFromSection(String)

Gets all NSPreferenceDescription-items in the specified section

```crmscript theme={null}
NSPreferenceDescription[] GetAllFromSection(String section)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescription](CRMScript.NetServer.NSPreferenceDescription)\[]

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String section;
NSPreferenceDescription[] res = agent.GetAllFromSection(section);
```

## GetFromSectionAndKey(String,String)

Gets an NSPreferenceDescription based on the section and key

```crmscript theme={null}
NSPreferenceDescription GetFromSectionAndKey(String section, String key)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescription](CRMScript.NetServer.NSPreferenceDescription)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String section;
String key;
NSPreferenceDescription res = agent.GetFromSectionAndKey(section, key);
```

## GetNetServicesStatusUrl()

Returns URL to status service. e.g. '[https://help.superoffice.com/sodispatcher/v1/status](https://help.superoffice.com/sodispatcher/v1/status)'

```crmscript theme={null}
String GetNetServicesStatusUrl()
```

**Returns:** [CRMScript.Global.String](CRMScript.Global.String) - URL; NULL if status does not need to be checked yet.

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String res = agent.GetNetServicesStatusUrl();
```

## GetPreference(Integer)

Gets a preference by ID

```crmscript theme={null}
NSPreference GetPreference(Integer id)
```

**Returns:** [CRMScript.NetServer.NSPreference](CRMScript.NetServer.NSPreference)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer id;
NSPreference res = agent.GetPreference(id);
```

## GetPreferenceByName(String,String,Integer)

Gets a preference by name

```crmscript theme={null}
NSPreference GetPreferenceByName(String prefSection, String prefKey, Integer prefLevel)
```

**Returns:** [CRMScript.NetServer.NSPreference](CRMScript.NetServer.NSPreference)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String prefSection;
String prefKey;
Integer prefLevel;
NSPreference res = agent.GetPreferenceByName(prefSection, prefKey, prefLevel);
```

## GetPreferenceByNameAndId(String,String,Integer,Integer)

Gets a preference by name and owner ID.

```crmscript theme={null}
NSPreference GetPreferenceByNameAndId(String prefSection, String prefKey, Integer prefLevel, Integer ownerId)
```

**Returns:** [CRMScript.NetServer.NSPreference](CRMScript.NetServer.NSPreference)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String prefSection;
String prefKey;
Integer prefLevel;
Integer ownerId;
NSPreference res = agent.GetPreferenceByNameAndId(prefSection, prefKey, prefLevel, ownerId);
```

## GetPreferenceDescription(Integer)

Gets an NSPreferenceDescription object.

```crmscript theme={null}
NSPreferenceDescription GetPreferenceDescription(Integer preferenceDescriptionId)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescription](CRMScript.NetServer.NSPreferenceDescription)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceDescription thing = agent.GetPreferenceDescription(123);
```

## GetPreferenceDescriptionLine(Integer)

Gets an NSPreferenceDescriptionLine object.

```crmscript theme={null}
NSPreferenceDescriptionLine GetPreferenceDescriptionLine(Integer preferenceDescriptionLineId)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescriptionLine](CRMScript.NetServer.NSPreferenceDescriptionLine)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceDescriptionLine thing = agent.GetPreferenceDescriptionLine(123);
```

## GetPreferenceDescriptionLineFromIdAndValue(Integer,String)

Gets a preference description line from a prefDesc\_id and a prefValue

```crmscript theme={null}
NSPreferenceDescriptionLine GetPreferenceDescriptionLineFromIdAndValue(Integer prefDescId, String prefValue)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescriptionLine](CRMScript.NetServer.NSPreferenceDescriptionLine)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer prefDescId;
String prefValue;
NSPreferenceDescriptionLine res = agent.GetPreferenceDescriptionLineFromIdAndValue(prefDescId, prefValue);
```

## GetPreferenceDescriptionLinesByPrefDescId(Integer)

Gets all preference description lines from a prefDesc\_id

```crmscript theme={null}
NSPreferenceDescriptionLine[] GetPreferenceDescriptionLinesByPrefDescId(Integer prefDescId)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescriptionLine](CRMScript.NetServer.NSPreferenceDescriptionLine)\[]

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
Integer prefDescId;
NSPreferenceDescriptionLine[] res = agent.GetPreferenceDescriptionLinesByPrefDescId(prefDescId);
```

## GetPreferences(NSPreferenceSpec\[])

Gets one or more preferences based on a set of specifications.

```crmscript theme={null}
NSPreference[] GetPreferences(NSPreferenceSpec[] specifications)
```

**Returns:** [CRMScript.NetServer.NSPreference](CRMScript.NetServer.NSPreference)\[]

<Note>
  The prefDisplayvalue and prefDisplaytooltip are blank (faster processing relative to GetPreferencesWithDisplayValues)
</Note>

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceSpec[] specifications;
NSPreference[] res = agent.GetPreferences(specifications);
```

## GetPreferencesWithDisplayValues(NSPreferenceSpec\[])

Gets one or more preferences based on a set of specifications.

```crmscript theme={null}
NSPreference[] GetPreferencesWithDisplayValues(NSPreferenceSpec[] specifications)
```

**Returns:** [CRMScript.NetServer.NSPreference](CRMScript.NetServer.NSPreference)\[]

<Note>
  The PrefDisplayValue and PrefDisplaytooltip are populated, at some additional processing cost.
</Note>

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceSpec[] specifications;
NSPreference[] res = agent.GetPreferencesWithDisplayValues(specifications);
```

## GetTabOrder(String)

Gets the tab order.

```crmscript theme={null}
NSTabOrder GetTabOrder(String tabName)
```

**Returns:** [CRMScript.NetServer.NSTabOrder](CRMScript.NetServer.NSTabOrder)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String tabName;
NSTabOrder res = agent.GetTabOrder(tabName);
```

## GetTabOrders()

```crmscript theme={null}
NSTabOrder[] GetTabOrders()
```

**Returns:** [CRMScript.NetServer.NSTabOrder](CRMScript.NetServer.NSTabOrder)\[]

## SaveFromSectionAndKey(String,String,NSPreferenceDescription)

Updates an NSPreferenceDescription based on the section and key

```crmscript theme={null}
NSPreferenceDescription SaveFromSectionAndKey(String section, String key, NSPreferenceDescription preferenceDescription)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescription](CRMScript.NetServer.NSPreferenceDescription)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String section;
String key;
NSPreferenceDescription preferenceDescription;
NSPreferenceDescription res = agent.SaveFromSectionAndKey(section, key, preferenceDescription);
```

## SavePreference(NSPreference)

Saves this preference

```crmscript theme={null}
Void SavePreference(NSPreference preference)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreference preference;
agent.SavePreference(preference);
```

## SavePreferenceDescription(NSPreferenceDescription)

Updates the existing NSPreferenceDescription or creates a new NSPreferenceDescription if the id parameter is 0

```crmscript theme={null}
NSPreferenceDescription SavePreferenceDescription(NSPreferenceDescription preferenceDescription)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescription](CRMScript.NetServer.NSPreferenceDescription)

**Example:**

```crmscript theme={null}
NSPreference  agent;
NSPreferenceDescription thing = agent.CreateDefaultPreferenceDescription();
thing = agent.SavePreferenceDescription(thing);
```

## SavePreferenceDescriptionLine(NSPreferenceDescriptionLine)

Updates the existing NSPreferenceDescriptionLine or creates a new NSPreferenceDescriptionLine if the id parameter is 0

```crmscript theme={null}
NSPreferenceDescriptionLine SavePreferenceDescriptionLine(NSPreferenceDescriptionLine preferenceDescriptionLine)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescriptionLine](CRMScript.NetServer.NSPreferenceDescriptionLine)

**Example:**

```crmscript theme={null}
NSPreference  agent;
NSPreferenceDescriptionLine thing = agent.CreateDefaultPreferenceDescriptionLine();
thing = agent.SavePreferenceDescriptionLine(thing);
```

## SavePreferenceDescriptionLines(NSPreferenceDescriptionLine\[])

Saves the PreferenceDescriptionLine array in the SuperOffice database

```crmscript theme={null}
NSPreferenceDescriptionLine[] SavePreferenceDescriptionLines(NSPreferenceDescriptionLine[] preferenceDescriptionLines)
```

**Returns:** [CRMScript.NetServer.NSPreferenceDescriptionLine](CRMScript.NetServer.NSPreferenceDescriptionLine)\[]

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreferenceDescriptionLine[] preferenceDescriptionLines;
NSPreferenceDescriptionLine[] res = agent.SavePreferenceDescriptionLines(preferenceDescriptionLines);
```

## SavePreferenceEntities(NSPreference\[],Bool)

Saves this set of preferences.

```crmscript theme={null}
Void SavePreferenceEntities(NSPreference[] preferences, Bool removeLowerLevels)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

## SavePreferenceEntity(NSPreference,Bool)

Saves a complete preference object, on any level and any target.

```crmscript theme={null}
NSPreference SavePreferenceEntity(NSPreference preference, Bool removeLowerLevels)
```

**Returns:** [CRMScript.NetServer.NSPreference](CRMScript.NetServer.NSPreference)

<Note>
  Preference administrator rights are required to use this
</Note>

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSPreference preference;
Bool removeLowerLevels;
NSPreference res = agent.SavePreferenceEntity(preference, removeLowerLevels);
```

## SavePreferences(NSPreference\[])

Saves this set of preferences.

```crmscript theme={null}
Void SavePreferences(NSPreference[] preferences)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

<Note>
  DOES NOT look at level/targetId, it only saves on behalf of the CURRENT USER.
</Note>

## SaveTabOrder(NSTabOrder)

Saves the tab order. The order is saved pr. user.

```crmscript theme={null}
Void SaveTabOrder(NSTabOrder tabOrder)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
NSTabOrder tabOrder;
agent.SaveTabOrder(tabOrder);
```

## SaveTabOrders(NSTabOrder\[])

```crmscript theme={null}
Void SaveTabOrders(NSTabOrder[] tabOrders)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

## UpdateNetServicesStatus(String)

Updates the NetServices preferences with values contained in the content from the Status URL

```crmscript theme={null}
Void UpdateNetServicesStatus(String xmlOrJson)
```

**Returns:** [CRMScript.Global.Void](CRMScript.Global.Void)

**Example:**

```crmscript theme={null}
NSPreferenceAgent agent;
String xmlOrJson;
agent.UpdateNetServicesStatus(xmlOrJson);
```


## Related topics

- [Preferences](/en/admin/preferences/index.md)
- [Save Preferences](/en/api/reference/restful/agent/preference_agent/save-preferences.md)
- [Save Preference](/en/api/reference/restful/agent/preference_agent/save-preference.md)
- [Set preference](/en/api/web-services/howto/user-preferences/set-preferences-preferenceagent.md)
- [Get Preferences](/en/api/reference/restful/agent/preference_agent/get-preferences.md)
- [Get Preference](/en/api/reference/restful/agent/preference_agent/get-preference.md)
