<a id="object-definitions"></a>
<a id="custom-objects"></a>
# Object Definitions

As well as standard Draft objects such as [Forms](../../form.html.md#form) and [Folders](../../folder_list.html.md#folder-list) it is also possible to define new types of objects.

Object Definitions can have the following attributes set:

|  |  |
| --- | --- |
| **Name** | The name of the Object Definition, e.g. "Report Specification" it can be up to 100 characters. [[1]](#f1) |
| **Plural Name** | The plural name for more than one of the Object Definition, e.g. "Report Specifications". [[1]](#f1) |
| **Parent Object** | If this Object is a child of another object (e.g. Field is a child of Form) then this shows the parent object. [[2]](#f2) |
| **External Name** | The name of the Excel sheet to be used for import/export of this data in a Draft Export. [[3]](#f3) |
| **Icon** | An identifier for an icon taken from the [FontAwesome 4.7 icon list](https://fontawesome.com/v4/icons/) or from the [Organization Icons](../../organizations/icons.html.md#organization-icons) set. |
| **Display Order** | Controls the order that custom objects are shown at the draft level |
| **Display** | Controls whether this object is shown in the Draft counts summary and in breadcrumb listings. |
| **Identifier Separator** | When an instance of an Object Definition is made, it will be given an identifier (a name) based on the set of custom properties which contribute to the identifier. This setting determines how multiple values are concatenated to create that identifier. If the values are name and version you could have an identifier of "MyName \| MyVersion" if the separator is " \| " and "MyName/MyVersion" if the separator is "/".<br>Identifiers are always single-line. Line breaks, control characters and the various unicode space characters in the contributing property values are automatically replaced with a single normal space, while zero-width and other invisible characters are removed entirely - so the identifier matches what you actually see on screen and matches consistently against standard libraries. The separator is normalized the same way, so the value you save is exactly the value used in identifiers. |
| **Description** | A description of the object. Use this to document the intended use for objects of this type. |

> **Note:** Because an identifier is built from the values of the properties that contribute to it, changing one of those values changes the identifier. This includes bulk changes made from the property's value list, such as renaming a choice value — see [Effects of a Bulk Value Change](../properties.html.md#bulk-value-change-effects).

Custom objects may also have Layouts which control how their data entry controls are displayed.

On a URL with LLM Agents enabled, the [Agent Instructions](agent_instructions.html.md#object-definition-agent-instructions) tab controls what the Agents are told about this object type and which of its Custom Properties are sent to the model.

- [Custom Object Layouts](layouts/index.html.md)
- [Agent Instructions](agent_instructions.html.md)

Footnotes

[1] ([1](#id1),[2](#id2))

Object Definition names and plural names must be unique in a URL and cannot use any of the standard object names "Form", "Edit Check", "Matrix", "Test Case" etc...

[[2](#id3)]

Parent-child relationships can only be 1 level deep and can only link to other custom objects. You cannot link an object definition to another object definition which is itself a child of another object.

[[3](#id4)]

External name values must unique and valid for Excel sheet names. They can be a maximum of 31 characters long, cannot start or end with an apostrophe ('), cannot be named "History" which Excel reserves for itself and cannot contain any of the characters: / \ ? * : [ ]
