--- title: "Concepts: Custom Fields Deep Dive" slug: "scripting-tutorials-custom-fields-deep-dive" updated: 2024-09-18T17:50:13Z published: 2024-09-18T17:50:13Z canonical: "help.agilityblue.com/scripting-tutorials-custom-fields-deep-dive" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.agilityblue.com/llms.txt > Use this file to discover all available pages before exploring further. # Concepts: Custom Fields Deep Dive ## Introduction This article takes a deeper look at each custom field data type and provides examples, details, and tips for each one. ## Available Data Types As previously outlined in the [system objects with custom fields intro](/v1/docs/scripting-tutorials-system-objects-with-custom-fields-intro) article, there are currently 10 different data types available: | Data Type Id | Data Type Name | Stored As | | --- | --- | --- | | 1 | Basic Text | ValueAsString | | 2 | Rich Text* | ValueAsString | | 3 | Whole Number | ValueAsNumber | | 4 | Decimal Number | ValueAsDecimal | | 5 | Yes or No Choice | ValueAsBoolean | | 6 | Date Only | ValueAsDate | | 7 | Date and Time | ValueAsDate | | 8 | Single Choice | ValueAsString | | 9 | Multiple Choice** | ValueAsString | | 10 | Reference | ReferenceObject | ## Data Type: Basic Text The following script example creates a new client that has a basic text custom field named “Billing Contact Name” ```powershell $billingContactNameFieldId  = 10 $clientToCreate = @{  Name      = "SoundWave Studios"  Reference = "SWS0001"  Fields = @(    @{      FieldId = $billingContactNameFieldId      Label   = "Billing Contact Name"      Value = @{        ValueAsString = "Seth Trapsitell"      }    }  ) } $createdClient = Add-Client -Entry $clientToCreate Write-Output "Client $($createdClient.ClientId) ($($createdClient.Name)) was created" ``` The output of this script: ```plaintext Client 85 (SoundWave Studios) was created ``` **Points of Interest**: - Note that we used the `ValueAsString` property to store the decimal value. ## Data Type: Rich Text The following script example creates a new client that has a rich text custom field named “Client Address” ```powershell $clientAddressFieldId  = 90 $clientToCreate = @{  Name      = "SoundWave Studios"  Reference = "SWS0001"  Fields = @(    @{      FieldId = $clientAddressFieldId        Label   = "Client Address"      Value = @{        ValueAsString = "

123 Main Street
Suite 2400
Somewheresville, NW 55555

"      }    }  ) } $createdClient = Add-Client -Entry $clientToCreate Write-Output "Client $($createdClient.ClientId) ($($createdClient.Name)) was created" ``` The output of this script: ```plaintext Client 86 (SoundWave Studios) was created ``` **Points of Interest**: - Note that we used the `ValueAsString` property to store the decimal value. - Rich text fields allow you to add light-weight tag-based HTML formatting to your values. As seen in the example above, we wrapped the value in an HTML paragraph tag, made the street portion of the address bold, and added HTML line breaks to format the address so it displays nicely in the browser. > [!NOTE] > Head’s Up! > > As mentioned, light-weight tag-based HTML formatting is allowed, but there are many HTML features that are sanitized for security reasons, specifically