Supported entities
Custom fields can be added to the following entities:Issues
The most common use case. Fields can be scoped to specific trackers and projects.
Projects
Extra metadata about a project, visible on the project overview page.
Users
Additional profile information for user accounts.
Groups
Extra attributes on groups.
Time entries
Extra data attached to time log records.
Versions
Extra metadata on project versions (milestones).
Documents
Extra metadata on documents uploaded to projects.
Issue priorities
Extra attributes on priority enumeration values.
Time entry activities
Extra attributes on time entry activity enumeration values.
Field formats
Each custom field has a Format that determines the type of data it stores and how it is displayed.| Format | Internal name | Description |
|---|---|---|
| Text (single line) | string | A single-line text input. Supports min/max length, regexp validation, and optional URL pattern. Searchable. |
| Long text | text | A multi-line textarea. Supports full text formatting if enabled. Searchable. |
| Integer | int | A whole number. Supports min/max length validation and can be summed in issue lists. |
| Float | float | A decimal number. Supports totalling in issue lists. |
| Date | date | A date picker. Stored as YYYY-MM-DD. Supports date filters. |
| Boolean | bool | A yes/no field. Rendered as a checkbox, radio button, or select list. |
| List | list | A dropdown list of predefined values you define. Supports multiple selection and is searchable. |
| Key/value list | enumeration | A list backed by a CustomFieldEnumeration record, similar to list but with additional metadata. |
| User | user | A dropdown that shows project members. Can be filtered by role. Supports multiple selection. |
| Version | version | A dropdown that shows project versions. Can be filtered by version status. Supports multiple selection. |
| Link | link | A URL field. Renders as a clickable link. Supports URL pattern templates. |
| Attachment | attachment | A file upload field. Files are attached to the record. Not filterable and not bulk-editable. |
Common field options
All custom fields share these configuration options:| Option | Field | Description |
|---|---|---|
| Required | is_required | Users must fill in the field before saving the record. |
| For all projects | is_for_all | Issue custom fields: the field appears in all projects. When unchecked, you choose which projects include the field. |
| Used as filter | is_filter | The field appears as a filter option in the issue list and query builder. |
| Searchable | searchable | The field’s values are included in Redmine’s full-text search. Supported by string, text, and list formats. |
| Multiple values | multiple | Allows the user to select or enter more than one value. Supported by list, user, version, and enumeration formats. |
| Default value | default_value | Pre-fills the field when a new record is created. |
| Description | description | Explanatory text displayed below the field on the form. |
| Visible | visible | When unchecked, the field is only visible to users whose role is listed in the Roles section. |
| Editable | editable | Controls whether the field can be edited by users (as opposed to being read-only). |
| Minimum length | min_length | For text-based formats: the minimum number of characters required. |
| Maximum length | max_length | For text-based formats: the maximum number of characters allowed. |
| Regular expression | regexp | For text-based formats: validates the value against a regular expression. Maximum 255 characters. |
| URL pattern | url_pattern | Renders the field value as a link. Use %value%, %id%, %project_id%, and %project_identifier% as substitution tokens. |
Issue custom fields: tracker and project scoping
Issue custom fields have two additional scoping options:For all projects (is_for_all)
For all projects (is_for_all)
When enabled, the field appears on issues in every project. When disabled, you select specific projects from a list on the custom field’s edit page (
project_ids).Trackers (tracker_ids)
Trackers (tracker_ids)
Select which trackers display the field. For example, a “Steps to reproduce” field might only apply to the Bug tracker. If no trackers are selected, the field does not appear on any issue form.
Issue custom fields that are not visible to all roles must have at least one role listed in the Roles section. This is enforced by a validation in
IssueCustomField.Creating a custom field
Open the Custom fields list
Go to Administration → Custom fields and click New custom field. Choose the entity type (Issues, Projects, Users, etc.).
Choose a format
Select the field format from the Format dropdown. The available options depend on the entity type.
Configure options
Fill in the relevant options — required, default value, validators, visibility, and (for issues) tracker and project scope.
Visibility and role-based access
By default (visible = true), a custom field is visible to all users who can view the record. When you uncheck Visible, you must select which roles can see the field. Redmine uses a join table (custom_fields_roles) to store this mapping.
