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.
|Everyone||Visible||Empty||For user input|
A user sees an input field and enters a value (eg. mileage, expenses, receipts)
|Everyone||Visible||Inherits||For 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.
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.