---
title: Reusable field schemas
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

When modeling site content, you may encounter situations where specific groups of fields keep repeating across content types. For example, each web page content type might need a basic set of fields such as title, date, and excerpt text. Or a set of fields dedicated to search engine optimization and social media promotion, such as for the Open Graph protocol or a specific platform (Twitter, etc.).

Reusable field schemas save you from having to repeatedly define similar fields across multiple content types. Instead, each schema can define a set of fields, often dedicated to a specific use case or scenario, that you then link to content types as required. All changes you make to a schema – adding, removing, or renaming a field, for example – get immediately reflected in all linked content types.

## Create and assign reusable field schemas

1. Open the **Content types** application and switch to the **List of reusable field schemas** tab.
2. Select **New reusable field schema**.
3. Enter the schema display name, code name, and description
4. **Save** the schema.
5. On the **Fields** tab, define schema fields using the [field editor](https://docs.kentico.com/documentation/developers-and-admins/customization/field-editor.md).
   - There are a couple of things to keep in mind when naming fields – see [Field naming guidelines](https://docs.kentico.com/documentation/developers-and-admins/development/content-types.md#field-naming-guidelines)
   - Note: We strongly recommend prefixing all field names with the name of the reusable schema. For example, for a schema **SEOFields**, use **SEOFieldsTitle**, **SEOFieldsDescription**, **SEOFieldsTags**, and so on. This is to prevent column name conflicts between different schemas. See [Remarks](#remarks) for details.

> **Info:** **Data type availability in schema fields**
>
> Schema fields can use a smaller set of data types than content type fields. Data types tied to a single kind of content type (for example, _Content item asset_ and _Headless items_) are not available.
>
> Custom data types are available in schema fields if their registration includes the `ReusableFieldSchema` target. See [Add custom data types](https://docs.kentico.com/documentation/developers-and-admins/customization/field-editor/add-custom-data-types.md#data-type-configuration).

To assign created schemas to a content type:

1. Edit a content type in the **Content types** application.
2. On the **Fields** tab, select **Add reusable schema**.
3. Select the schemas you want to assign and **Confirm**.
4. [Regenerate code files](https://docs.kentico.com/documentation/developers-and-admins/api/generate-code-files-for-system-objects.md) for the modified content type to access the added schema fields in your model classes.

This adds new bar items with the _Reusable field schema_ label to the content type field listing. Each item represents a single schema and lists all fields that it contains.

![Reusable schema indicated on the Fields tab](https://docs.kentico.com/docsassets/documentation/reusable-field-schemas/reusableSchemaItem.png "Reusable schema indicated on the Fields tab")

The system treats fields assigned via reusable schemas as regular content type fields. You can retrieve and filter them via [Content Item](https://docs.kentico.com/documentation/developers-and-admins/api/content-item-api.md) and [GraphQL](https://docs.kentico.com/documentation/developers-and-admins/development/content-retrieval/retrieve-headless-content.md) queries or access them [using macros in email templates](https://docs.kentico.com/documentation/developers-and-admins/digital-marketing-setup/email-templates.md#content-type-field-macros).

> **Info:** You can configure [AIRA features](https://docs.kentico.com/documentation/business-users/aira.md) for fields defined in reusable field schemas.
>
> The same limitations apply as when configuring AIRA features for content type fields:
>
> - Supported field data types: **Text**, **Long text**, **Rich text (HTML)**, and **Taxonomy**.
> - Supported form components: **Text input**, **Text area**, **Rich text editor**, and **Tag selector**.
>
> For setup details, see [Add AIRA features to your content types](https://docs.kentico.com/documentation/developers-and-admins/configuration/aira-configuration.md#add-aira-features-to-your-content-types).

## View reusable field schema usage

To see which content types use a specific reusable field schema:

1. Open the **Content types** application and switch to the **List of reusable field schemas** tab.
2. Edit a reusable field schema.
3. Switch to the **Used in** tab.

The tab displays a table listing all content types that have the selected schema assigned. Each row shows:

- **Content type name** – the display name of the content type
- **Code name** – the code name of the content type
- **Content type for** – the type of content the content type is used for (e.g., _Pages_, _Reusable content_, _Headless items_, or _Emails_)

You can open a content type directly from the table by selecting the arrow () icon.

![Used in tab](https://docs.kentico.com/docsassets/documentation/reusable-field-schemas/RFS_Used_In.png "Used in tab")

> **Tip:** **Quick check before deleting a schema**
>
> Use the **Used in** tab to verify that no content types depend on a schema before you [delete](#delete-reusable-field-schemas) it.

## Unassign reusable field schemas

To unassign a reusable field schema, remove it via the content type **Fields** tab when editing content types in the **Content types** application.

1. Open the **Content types** application and edit a content type.
2. Switch to the fields tab.
3. Find schema fields by the _Reusable field schema_ label and remove them using the recycle bin () icon.
   - Unassigning a schema also **deletes all data** stored by the removed schema fields for the corresponding content type.

## Delete reusable field schemas

1. Open the **Content types** application and switch to the **List of reusable field schemas** tab.
2. Delete the schema using the recycle bin () icon.
   - You can't delete a schema that is currently assigned to at least one content type. Unassign the schema from all content types first. To check which content types use the schema, see [View reusable field schema usage](#view-reusable-field-schema-usage).

This removes the schema from the system.

## Remarks

### Field count limitations

All schema fields are stored in the _CMS\_ContentItemCommonData_ table. SQL tables have a maximum limit of 1024 columns per table. Therefore, a hard limit exists on the number of columns that can be defined for reusable schemas in a single instance.

### Field name collisions

All schema fields are stored in the _CMS\_ContentItemCommonData_ table. When defining schema fields, prefix each field with the name of the corresponding schema to prevent column name collisions on the SQL level.
