---
id: custom-fields
title: Custom fields
sidebar_label: Custom fields
---

Add additional fields to time entries and track anything!

With custom fields, you can manually track: expenses, mileage, breaks, overtime, invoice status, number of units, custom dropdowns, quantity, codes, location, equipment, estimate, deal number, link to ticket, receipts, images, all sorts of IDs (invoice, task, user, project)… and more!

In addition to user data, you can also track project metadata - perfect when you need to analyze data in pivot tables, or when you need to integrate Clockify with external systems via [API](# 'API').

Custom fields are an extra feature, which you can enable by [upgrading](# 'upgrading') your workspace to Pro or Enterprise plan. You can try out the feature for free by activating the [free 7-day](# 'free 7-day') trial (no credit card required). If you use Custom fields during your trial, once the trial period ends all custom fields will disappear, however they will be activated as soon as you purchase the Pro or Enterprise plan, without losing any data.

Users can enter data into custom fields via: web, browser extension, iOS, Android, and Mac (support for Windows coming soon).

## Creating fields

You can create custom fields in Workspace Settings > Custom Fields tab. You can have up to 50 fields in a workspace.

When creating a field, you need to specify field type:

- **Text** - input field where you can type anything you wish (project ID, additional notes, coordinates)
- **Number** - input field that accepts only numerical values (mileage, expenses, number of units)
- **Link** - input field that accepts URL to websites or files (receipts, screenshots, documents, task reference)
- **Switch** - a simple yes/no switch (invoiced, paid, urgent)
- **Select** - input field that lets users select a single option from a pre-determined list (location, status, category)
- **Select** multiple - input field that lets users select any number of values from a pre-determined list (equipment used, custom tag list for a project)

You can also prevent regular users from entering or changing data by settings "Who can edit: Admins" (for example, you can have Unpaid/Paid status which users can see but only admins can change).

## Using fields

In order for your users to see and use the fields you've created, drag-and-drop the field to the Visible slot in Active column. Then, the fields will show up in Time Tracker and Timesheet for everyone in the workspace.

In Timesheet, you can enter data for additional fields when you hover over a cell with time and click on the three dots.

You can have up to 5 visible fields for the whole workspace, plus 5 more on projects.

Fields function like regular inputs, depending on the field type you've specified. Users can enter text, number, check a checkbox, or select from a list of predetermined values.

**When to use invisible fields**

Invisible fields are useful when you need to integrate Clockify with external systems via API, or you need entries to inherit additional metadata from projects (like project ID or project type) and you don't want to overburden your users with irrelevant data.

If you activate a field and make it invisible, users won't see the field anywhere, but all created entries will have them. Entries can inherit value for invisible fields via project, or you can update them via API or some integration.

Invisible fields and their data show up in Excel and CSV export of Detailed report.

## Setting fields on projects

In addition to activating custom fields for the whole workspace, you can also activate them by project instead, as well as override visibility and default value in project settings.

All invisible fields automatically show up in projects. You can set their default value for that project, plus make them visible (or invisible) when a user selects that project.

You can have up to 10 visible fields on a project.

In addition to managing active fields, you can also add a field from a list of available fields, so only entries on that particular project have that field.

If you wish fields to have some default value when a user selects a project. For example, if a user selects ProjectX, a field "Location" can be set to "USA", which the user can later override if it's not "USA".

Be careful with default values as they always override existing values. For example, if a time entry has "My Value" and then you change a project with a "Default Value", it will overwrite "My Value" (you can re-enter "My Value", but if you change a time entry's project again, "My Value" will be lost).

A project manager can override a field's visibility and set a default value for their projects.

## Advanced usage

You can achieve any workflow you need by using these four mechanisms:

- **Editing permission** - You can let users edit data in a field for their time entries, or limit editing to admins only
- **Visibility** - Affects whether users can see a field in Time Tracker and Timesheet
- **Default value**- Fields on time entries start out as empty unless you prefill them with some default value
- **Project overrides** - You can override a field's visibility and default value by project

For example, you can set a field as non-editable by regular users and visible only on certain projects. Or, you can make some field invisible and set a default value on projects so each time entry has its project metadata.

## Editing and deleting fields

Activating a field doesn't impact older entries. Only new time entries going forward will have custom fields and default values. To retroactively add fields to time entries, you'll have to manually update the time entries.

If you move a field from Active to Available, new entries will stop having that field, but existing entries will retain their data and show up in exports.

Deleting a custom field deletes that field and all its data from all time entries, across the whole workspace. Once you delete a field, it's like it never existed. There is no undo. To retain data, it's best to deactivate it by moving the field to Available column.

If you edit the options of a “Select” type field, existing time entries will retain the original values. Unless:

- You manually change the value of “Select” type custom field on the time entry to a different value
- You change the project of the time entry to a project which has a default value set for this "Select" type field. In this case, the entry will get the default value for the "Select" type custom field of the project you selected.

### Editing example

Let's say you have a “Select” type custom field named "Location" with 3 select options: "Los Angeles", "New York", and "Boston".

You create a time entry and select "Los Angeles" as your location. Then you go to Workspace settings and rename "Los Angeles" option to "San Francisco".

The created entry will retain the value "Los Angeles".

If you edit the created entry and change its project to a project that has a default value for the Location field (e.g. New York) the entry will now have "New York" set as Location. In other words, default value will overwrite the original value any time you update an entry.

Another example: let's say you create a field called "Updated", set default value "2020", and make it invisible. Your old entries won't have that field, but each entry moving forward will have it.

If someone changes the project on their old entry, that entry will pick up the "2020" value even though it never had it, thus allowing you to see if some entry has been tampered with.

## Custom fields in reports

You can retrieve time entries with all their fields and data in Detailed Report via Excel and CSV export. Then, you can create all sorts of custom reports in pivot tables.

You can see and edit the data for visible fields directly in the Detailed report. Additionally, admins can edit custom fields data other users have entered (regular members can only edit and delete time entries that belong to them).

You can also use Bulk Edit to update Custom fields on multiple time entries with one click.

Excel and CSV export list all active fields. If some entry has some value in some custom field that is no longer active in neither workspace nor some project, that field won't show up.

[Download sample report (Excel)](# 'Download sample report (Excel)')

The Reports also allows you to filter the report by custom fields. You can easily enable or disable what custom fields you'd like to see as filters and use them when filtering the time entries.

These filters are user-specific. When you add some custom fields to filters, this doesn’t affect other users. Each user can have their own set of filters.
