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

# Customize the Data Model

> Create your own types and fields, hide standard fields, and control where a type is available.

Under *Administration › Data Model › Types and Fields* you define which types
exist, which fields they carry and where they appear. That sets this area
apart from [Environment Data](/docs/en/settings/environment-data), which manages
the tenant's own inventory — here the model itself is defined, not the data.

## How this area is organized

*Data Model* leads to two entries, each with its own task:

| Page | Task |
| - | - |
| *Types and Fields* | create types, add fields — work on the model itself |
| *Visibility* | the same switches for every type side by side |

<Note>
  The two pages share the same data but read it separately. A change on one
  becomes visible on the other only when you open it again.
</Note>

## Built-in and custom types

The interface treats both kinds of type alike; what is saved differs:

| You are editing | What happens |
| - | - |
| a built-in type | the type stays as delivered; your fields are added alongside it |
| a custom type | you edit and delete the type itself |

<Warning>
  A custom type that still carries assets cannot be deleted. For a custom type
  without assets, *Delete type?* removes it irrevocably. For a built-in type
  with custom fields, *Delete extension?* instead removes only the custom
  fields — the type itself remains.
</Warning>

## Creating a custom type

The *Type* button above the sidebar opens the *Create Type* dialog. It
captures only the basics: a type name in German and English, an optional
description, an icon and at least one navigation list item. You edit fields,
lists and the preview afterward, on the new type's other tabs.

<Note>
  Both *Type Name (German)* and *Type Name (English)* are required. Without an
  English name, the type is either missing from the English interface or shows
  up there in German.
</Note>

A display name that is already taken is rejected, as is a name that starts
with a digit or that derives the same internal identifier as an existing
custom type.

This dialog does not exist for built-in types — for them, only the fields
path applies, see below.

New types and fields can be created only after the settings for custom fields
have loaded; until then, the buttons for creating them are locked. If loading
fails, *Types and Fields* shows an error bar.

<Note>
  If the error bar offers no retry, the server rejected the request for lack of
  permission. Opening the page again does not change that.
</Note>

## Adding fields

Standard fields and custom fields sit in one shared list; a custom field can
be dragged between two standard fields instead of only being appended at the
end.

| Kind | Possible |
| - | - |
| standard field | reorder, show or hide via a checkbox |
| custom field | reorder, edit, delete |

<Note>
  On a standard field, only visibility and position can be changed. Field
  type, label and required flag stay as the product delivers them.
</Note>

A custom field carries a display name in German (required) and English, a
type, an optional *Required* switch, and a default value:

| Type | Default value |
| - | - |
| *Text* | text field |
| *Number* | number field, decimals allowed |
| *Data Size* | number plus unit — always stored in bytes |
| *Yes/No* | checkbox for the default state |
| *Date* | date picker |
| *Time* | time picker |
| *Selection* | its own value list, see below |
| *Reference* | a reference to any asset |

If *Display Name (English)* is left empty, the field appears in the English
interface with its German name.

The technical name of a custom field starts with a prefix. How to address it
through the API is described under
[Developer › Data Model](/docs/en/api/data-model#technical-names-of-custom-fields).

<Note>
  A new field of type *Number* accepts decimals; *Integer* cannot be selected
  for new fields. A custom field that still carries the earlier number type
  accepts no decimals: the field list shows it as *Number*, and only the field
  dialog shows the type *Integer*. If you select another type there, *Integer*
  can no longer be selected afterward.
</Note>

<Warning>
  Changing the type of a field whose last saved state carried a different type
  shows a notice that data already captured may no longer fit afterward. The
  notice is skipped for a newly created field with no saved state yet, and for
  a type that has no assets.
</Warning>

### Editing selection values

For the *Selection* field type, you enter the values yourself: a display
name in German and English per value, and whether it is the default. An empty
English display name is replaced by the German one, as for the field. Exactly
one value can be marked as default; a duplicate display name is rejected. The
list order is the order of the selection — changeable at any time, even later.

## Adding a field for every type

Under *Shared Fields* sits the row *Base*. A field you create there
afterward applies to every type. That row carries only the *Fields* and
*Preview* tabs — it is not itself a type that could be hidden or assigned to
a list.

## Visibility per type

For the selected type, the *Usage* tab sets three switches:

| Switch | Effect |
| - | - |
| *Type Active* | Off hides the type everywhere — navigation, search, selection. The data still exists. |
| *ITAM* | shows the ITAM tab on the asset and makes the type selectable in ITAM bulk editing |
| *ISMS* | shows the ISMS tab on the asset, makes the type selectable in ISMS bulk editing, and offers it as a scope in risk assessment |

*ITAM* and *ISMS* decide here whether a type takes part in the
[ITAM tab](/docs/en/itam/understanding-itam) or the
[ISMS tab](/docs/en/isms/understanding-isms) of the asset.

<Note>
  When *Type Active* is off, *ITAM* and *ISMS* are locked.
</Note>

The *Lists* tab sets which navigation lists a custom type appears in.

<Note>
  At least one list must stay assigned. Trying to deselect the last one has no
  effect.
</Note>

## Preview

The *Preview* tab shows the layout of this type's detail page: under
*General*, all visible fields in their order, without values. A hidden
standard field is missing there. If a type description is set, the
*Description* section is added.

## Visibility at a glance

The *Visibility* page shows *Active*, *ITAM* and *ISMS* for every type side
by side — built-in and custom alike.

<Note>
  A locked row means that the visibility state of this type is not known. The
  same state locks the switches on the *Usage* tab.
</Note>

## Saving

The *Fields* tab collects changes and saves them only when you click *Save*.
If you switch type or tab while unsaved changes exist, a prompt asks whether
to discard them.

The *Usage* and *Lists* tabs save immediately on every change. Only deletion
always asks for confirmation.

## Related

How a type's fields appear on the asset's detail page is described under
[Assets – Basics](/docs/en/assets/overview). What a built-in type brings along in
scan data is described on the pages of the *Data Captured* group, for
example under [Systems](/docs/en/assets/systems).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.