Custom fields allow you to add additional information to time entries in Clockify.

With custom fields, you can track anything you imagine: expenses, mileage, number of processed units, job codes, location, equipment, payment status, task status, project ID, deal number, links to receipts and screenshots, documentation…

In addition to user data, you can also track project metadata – perfect when you need to analyse data in pivot tables, or if you need to integrate Clockify with external systems.

Custom fields is a paid feature, available in Enteprise plan.

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 accept 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 you 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.

You can have up to 5 visible fields for whole workspace, plus up to 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 ned 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 visiblity and default value in project settings

All invisible fields automatically show up in projects. You can set their default value for that project. You can also make them visible when a user selects that project. You can have up to 5 visible fields on a project (in addition to the 5 visible fields on the workspace).

In addition to managing active fields, you can also add a field from a list 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”.

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 user and visible only on certain projects. Or, you can make some field invisible and set default value on projects so each time entry have its project metadata.

EDITVISIBILITYDEFAULT USE CASE
EveryoneVisibleEmptyFor user input
A user sees an input field and enters a value (eg. mileage, expenses, receipts)
Everyone VisibleInheritsFor users to override if necessary
A user sees an input field with a prefilled value, which they can change if necessary (eg. select a different value)
Everyone Invisible Empty For user integrations
Entries have that field with an empty value, which can be updated only via API
Everyone Invisible Inherits For project metadata
All entries inherit metadata from a workspace or project (eg. workspace name, project ID)
Admins Visible Empty For users to track status
Admins edit time entries of others so users can later see the status of their entries (eg. admin indicate time was paid out)
Admins Visible Inherits For user reference
Entries show to users project information for reference purpose
Admins Invisible Empty For admin integrations
Entries have field with an empty value, which can be updated only by admins via API
Admins Invisible Inherits For admin project metadata
Workspace or project metadata, which only admins can override via API (eg. workspace name, project ID)

Getting data 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.

Download sample report (Excel)

Coming later

Currently, users can enter data for custom fields only in the web version, and admins can get the data only via export.

Later, we’ll add abilities to :

  • See and edit the data for visible fields directly in the Detailed report
  • Filter reports by custom fields
  • Edit field data in bulk
  • Track custom fields in apps (mobile/desktop)
  • Upload and attach files to time entries

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.

If you edit opions of a “Select” type field, existing time entries will retain the original values. If you manually update the entries, they will pick up the new values.

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.