# Custom Fields Added in FileWave 12.7.0, Custom Fields will allow you to create custom inventory values and assign them to your devices in a 5 different ways. You will find this option under the **Assistants** menu called **Custom Fields**, from there you can either **Import CSV** or **Edit Custom Fields**. The Edit Custom Fields section has four different options you can chose from that will allow you to create custom fields and in turn assign those values to devices.
Important Note: You cannot use special characters in the creation of Custom Fields!
See [Importing and Exporting Custom Field Files](https://kb.filewave.com/books/custom-fields/page/importing-and-exporting-custom-field-files "Importing and Exporting Custom Field Files")
## Display Name A user friendly name for your reference later ## Internal Name A system-wide variable that can be used in to reference these field valuesFileWave will let you create an internal name which is the same as a FileWave inventory item internal name, for example %location% is already a built-in variable. When you are referencing custom values prefix them as below to avoid conflicts.
Method | Prefix | Example |
MDM Profile | custom\_field | %custom\_field.location% |
Scripted (Launch Argument or Environment Variable) | CustomFields | %CustomFields.location% |
***Important:** Python and Perl will need to be installed on your Windows clients. When installing Python and Perl make sure a system path is added to environment variables during install.*
The Script will be executed after each verify, before sending inventory data. Another option you have for script, is setting launch arguments and Environment Variables. (This option is also for any scripts you have in Desktop Filesets) So now any inventory field value can be plugged into a script.   Dates must be ISO-8601 format (for instance: 2011-08-27T23:22:37Z).
The last line feed will be ignored to ease conversion, as commands like "echo" (bash) or "print" (python) add a line feed at the end of standard output. Scripts are stored encrypted on the disk and the FileWave client will automatically decrypt them when it needs to run. The encryption used is RSA 2048 bits, with no symmetric key exchange (only RSA). ### Client Command Line This is used for existing Custom Fields that were made prior to FileWave 12.7.0 using a script to write to the custom.ini file on the client, this generally won't be used going forward for new custom fields. But if you have used custom queries with FileWave before, you will notice all of those are still present in the Custom Fields window. This will also allow you to now change the names from the deafult "custom\_string\_01" name for instance, to whatever you like. ### LDAP You will be able to pull attribute values from whichever directory service is being extracted in the LDAP tab in FileWave Preferences. These values are then assigned to your devices in FileWave so that you can query them at anytime. You will simply find the attribute you would like to query such as "department", which in this case is a String type. Your chooses are String, Integer, Boolean, Date/Time. If the value does not match the data type you will get a type conversion error flag when the value is pulled. Then the object class which is either user or computer: - *User:* LDAP entry is matched using either Authusername for iPads or the last LDAP user to log into a macOS and Windows device. - *Computer:* LDAP entry is found using the device name in inventory against the computer name in the LDAP directory.  \_How often does LDAP get scanned for updated values? \_Anytime a custom field is assigned to a device in FileWave or when the LDAP server is synced in the FileWave Preferences (this is either at the Refresh interval you can set or manually). However if a LDAP Custom Field is modified, your directory service will not be scanned right away, instead it will be scheduled to scan in 120 seconds; which is the minimum. (to change this time please contact FileWave support). **Other LDAP Considerations:** If the value of the attribute you specified is empty or the attribute is not found in LDAP, then the value of the Custom Field will simply be empty. In the case of an attribute that has multiple entries, all entries will be returned as encoded JSON array for string custom fields. For other types of custom fields the value would contain the type conversion error flag instead. The order of entries in the JSON array is not specified. It may happen where no matching LDAP user or computer is found for a given client associated with LDAP custom field(s). In this case, the appropriate status for custom fields values will be set upon extraction ("Matching LDAP User/Computer Not Found"). Administrator has a global option to clear current custom field(s) value when such situation occurs. The option can be found in Preferences, Inventory tab, "Clear value if there is no match between client and LDAP user or computer" checkbox.
## Importing from a CSV This will allow you to change values of Custom Fields that have already been associated to devices in bulk. In the Import Custom Fields CSV window we provide a template that will let you choose not only which existing custom fields you would like in the template, but also how you would like to identify devices. Identifying devices in this section can be done with FileWave Client Name, Serial Number, Device ID, or FileWave ID.It is important to remember that the only custom field values that will be changed are ones that have already been associated in FileWave to your devices. If you upload a CSV that specifies a value for a device that does not have the corresponding custom fields associate to it prior to upload, then you will see an error telling you those values were skipped.
  ## Related Content - [Importing and Exporting Custom Field Files](https://kb.filewave.com/books/custom-fields/page/importing-and-exporting-custom-field-files "Importing and Exporting Custom Field Files")